:root{--bg:#0b0f14;--panel:#131a22;--border:#24303b;--text:#e7edf3;--muted:#8ea1b2;--red:#ef4444;--orange:#f59e0b;--yellow:#eab308;--green:#22c55e;--blue:#3b82f6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button{font-family:inherit}.skip-nav{position:absolute;top:-100px;left:8px;z-index:1000;background:#fff;color:#0b0f14;padding:12px 18px;border-radius:6px;font-weight:700;font-size:14px;text-decoration:none;transition:top .15s ease-in-out}.skip-nav:focus{top:8px;outline:3px solid #0b5fff;outline-offset:2px}input{font-family:inherit}.u-mt-4{margin-top:4px}.u-mt-8{margin-top:8px}.u-mt-10{margin-top:10px}.u-mt-16{margin-top:16px}.u-mt-neg8{margin-top:-8px}.u-inline-btn{display:inline-block;text-decoration:none}.u-text-left{text-align:left}.u-max-640{max-width:640px;margin-left:auto;margin-right:auto}@media (min-width:768px){.w3-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}}.andy-summary-grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px;margin:16px 0}@media (min-width:640px){.andy-summary-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.andy-summary-grid{grid-template-columns:repeat(4,1fr)}}:root{--focus:#4349ef;--focus-ring:0 0 0 3px rgba(67,73,239,.35);--hover-lift:-1px;--active-press:1px;--interaction-duration:150ms;--interaction-duration-fast:100ms;--interaction-easing:cubic-bezier(0.4,0,0.2,1);--shadow-hover:0 4px 12px rgba(0,0,0,.24);--shadow-active:inset 0 2px 4px rgba(0,0,0,.15);--shadow-focus-soft:0 0 0 3px rgba(67,73,239,.25)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.skip-nav:focus-visible{outline:3px solid #fff;outline-offset:2px}.btn,.btn-primary,.btn-secondary,.dep-btn,.dep-btn-primary,.dep-btn-secondary,.dt-btn,.dt-btn-secondary,.ep-btn,.pp-btn,.pp-btn-ghost,.pp-btn-primary,.pp-btn-secondary,.q4-btn,.q4-btn-secondary,.ss-btn,.ss-btn-secondary,.tw-btn,.tw-btn-secondary,button.primary,button.secondary,button[type=submit]{position:relative;cursor:pointer}@media (prefers-reduced-motion:no-preference){.btn,.btn-primary,.btn-secondary,.dep-btn,.dep-btn-primary,.dep-btn-secondary,.dt-btn,.dt-btn-secondary,.ep-btn,.pp-btn,.pp-btn-ghost,.pp-btn-primary,.pp-btn-secondary,.q4-btn,.q4-btn-secondary,.ss-btn,.ss-btn-secondary,.tw-btn,.tw-btn-secondary,button.primary,button.secondary,button[type=submit]{transition:transform var(--interaction-duration) var(--interaction-easing),box-shadow var(--interaction-duration) var(--interaction-easing),background-color var(--interaction-duration) var(--interaction-easing),border-color var(--interaction-duration) var(--interaction-easing),color var(--interaction-duration) var(--interaction-easing),filter var(--interaction-duration) var(--interaction-easing);will-change:transform}}.btn-primary:not(:disabled):hover,.btn-secondary:not(:disabled):hover,.btn:not(:disabled):hover,.dep-btn-primary:not(:disabled):hover,.dep-btn-secondary:not(:disabled):hover,.dep-btn:not(:disabled):hover,.dt-btn-secondary:not(:disabled):hover,.dt-btn:not(:disabled):hover,.ep-btn:not(:disabled):hover,.pp-btn-ghost:not(:disabled):hover,.pp-btn-primary:not(:disabled):hover,.pp-btn-secondary:not(:disabled):hover,.pp-btn:not(:disabled):hover,.q4-btn-secondary:not(:disabled):hover,.q4-btn:not(:disabled):hover,.ss-btn-secondary:not(:disabled):hover,.ss-btn:not(:disabled):hover,.tw-btn-secondary:not(:disabled):hover,.tw-btn:not(:disabled):hover,button.primary:not(:disabled):hover,button.secondary:not(:disabled):hover,button[type=submit]:not(:disabled):hover{filter:brightness(1.08);box-shadow:var(--shadow-hover)}@media (prefers-reduced-motion:no-preference){.btn-primary:not(:disabled):hover,.btn-secondary:not(:disabled):hover,.btn:not(:disabled):hover,.dep-btn-primary:not(:disabled):hover,.dep-btn-secondary:not(:disabled):hover,.dep-btn:not(:disabled):hover,.dt-btn-secondary:not(:disabled):hover,.dt-btn:not(:disabled):hover,.ep-btn:not(:disabled):hover,.pp-btn-ghost:not(:disabled):hover,.pp-btn-primary:not(:disabled):hover,.pp-btn-secondary:not(:disabled):hover,.pp-btn:not(:disabled):hover,.q4-btn-secondary:not(:disabled):hover,.q4-btn:not(:disabled):hover,.ss-btn-secondary:not(:disabled):hover,.ss-btn:not(:disabled):hover,.tw-btn-secondary:not(:disabled):hover,.tw-btn:not(:disabled):hover,button.primary:not(:disabled):hover,button.secondary:not(:disabled):hover,button[type=submit]:not(:disabled):hover{transform:translateY(var(--hover-lift))}}.btn-primary:not(:disabled):active,.btn-secondary:not(:disabled):active,.btn:not(:disabled):active,.dep-btn-primary:not(:disabled):active,.dep-btn-secondary:not(:disabled):active,.dep-btn:not(:disabled):active,.dt-btn-secondary:not(:disabled):active,.dt-btn:not(:disabled):active,.ep-btn:not(:disabled):active,.pp-btn-ghost:not(:disabled):active,.pp-btn-primary:not(:disabled):active,.pp-btn-secondary:not(:disabled):active,.pp-btn:not(:disabled):active,.q4-btn-secondary:not(:disabled):active,.q4-btn:not(:disabled):active,.ss-btn-secondary:not(:disabled):active,.ss-btn:not(:disabled):active,.tw-btn-secondary:not(:disabled):active,.tw-btn:not(:disabled):active,button.primary:not(:disabled):active,button.secondary:not(:disabled):active,button[type=submit]:not(:disabled):active{box-shadow:var(--shadow-active);filter:brightness(.96)}@media (prefers-reduced-motion:no-preference){.btn-primary:not(:disabled):active,.btn-secondary:not(:disabled):active,.btn:not(:disabled):active,.dep-btn-primary:not(:disabled):active,.dep-btn-secondary:not(:disabled):active,.dep-btn:not(:disabled):active,.dt-btn-secondary:not(:disabled):active,.dt-btn:not(:disabled):active,.ep-btn:not(:disabled):active,.pp-btn-ghost:not(:disabled):active,.pp-btn-primary:not(:disabled):active,.pp-btn-secondary:not(:disabled):active,.pp-btn:not(:disabled):active,.q4-btn-secondary:not(:disabled):active,.q4-btn:not(:disabled):active,.ss-btn-secondary:not(:disabled):active,.ss-btn:not(:disabled):active,.tw-btn-secondary:not(:disabled):active,.tw-btn:not(:disabled):active,button.primary:not(:disabled):active,button.secondary:not(:disabled):active,button[type=submit]:not(:disabled):active{transform:translateY(var(--active-press))}}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn:focus-visible,.dep-btn-primary:focus-visible,.dep-btn-secondary:focus-visible,.dep-btn:focus-visible,.dt-btn-secondary:focus-visible,.dt-btn:focus-visible,.ep-btn:focus-visible,.pp-btn-ghost:focus-visible,.pp-btn-primary:focus-visible,.pp-btn-secondary:focus-visible,.pp-btn:focus-visible,.q4-btn-secondary:focus-visible,.q4-btn:focus-visible,.ss-btn-secondary:focus-visible,.ss-btn:focus-visible,.tw-btn-secondary:focus-visible,.tw-btn:focus-visible,button.primary:focus-visible,button.secondary:focus-visible,button[type=submit]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.btn-primary:disabled,.btn-secondary:disabled,.btn:disabled,.dep-btn-primary:disabled,.dep-btn-secondary:disabled,.dep-btn:disabled,.dt-btn-secondary:disabled,.dt-btn:disabled,.ep-btn:disabled,.pp-btn-ghost:disabled,.pp-btn-primary:disabled,.pp-btn-secondary:disabled,.pp-btn:disabled,.q4-btn-secondary:disabled,.q4-btn:disabled,.ss-btn-secondary:disabled,.ss-btn:disabled,.tw-btn-secondary:disabled,.tw-btn:disabled,button.primary:disabled,button.secondary:disabled,button[type=submit]:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important;filter:none!important}a[href]:not(.pp-btn):not(.pp-btn-primary):not(.pp-btn-secondary):not(.pp-btn-ghost):not(.tw-btn):not(.tw-btn-secondary):not(.ss-btn):not(.ss-btn-secondary):not(.dt-btn):not(.dt-btn-secondary):not(.q4-btn):not(.dep-btn):not(.ep-btn):not(.btn):not(.btn-primary):not(.btn-secondary):not(.card):not(.pp-card):not(.tw-card):not(.skip-nav){text-decoration-thickness:1px;text-underline-offset:2px}@media (prefers-reduced-motion:no-preference){a[href]:not(.pp-btn):not(.pp-btn-primary):not(.pp-btn-secondary):not(.pp-btn-ghost):not(.tw-btn):not(.tw-btn-secondary):not(.ss-btn):not(.ss-btn-secondary):not(.dt-btn):not(.dt-btn-secondary):not(.q4-btn):not(.dep-btn):not(.ep-btn):not(.btn):not(.btn-primary):not(.btn-secondary):not(.card):not(.pp-card):not(.tw-card):not(.skip-nav){transition:text-decoration-thickness var(--interaction-duration-fast) var(--interaction-easing),color var(--interaction-duration-fast) var(--interaction-easing),opacity var(--interaction-duration-fast) var(--interaction-easing)}}a[href]:not(.pp-btn):not(.pp-btn-primary):not(.pp-btn-secondary):not(.pp-btn-ghost):not(.tw-btn):not(.tw-btn-secondary):not(.ss-btn):not(.ss-btn-secondary):not(.dt-btn):not(.dt-btn-secondary):not(.q4-btn):not(.dep-btn):not(.ep-btn):not(.btn):not(.btn-primary):not(.btn-secondary):not(.card):not(.pp-card):not(.tw-card):not(.skip-nav):hover{text-decoration-thickness:2px;opacity:.85}input:not([type=submit]):not([type=button]):not([type=reset]):not([type=checkbox]):not([type=radio]),select,textarea{transition:border-color var(--interaction-duration-fast) var(--interaction-easing),box-shadow var(--interaction-duration-fast) var(--interaction-easing),background-color var(--interaction-duration-fast) var(--interaction-easing)}input:not([type=submit]):not([type=button]):not([type=reset]):not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:var(--shadow-focus-soft)}input:not([type=submit]):not([type=button]):not([type=reset]):not([type=checkbox]):not([type=radio]):focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:1px}input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.card[data-clickable=true],.pp-card[data-clickable=true],.tw-card[data-clickable=true],[role=link].card,[role=link].pp-card,[role=link].tw-card,a .card,a .pp-card,a .tw-card{cursor:pointer}@media (prefers-reduced-motion:no-preference){.card[data-clickable=true],.pp-card[data-clickable=true],.tw-card[data-clickable=true],[role=link].card,[role=link].pp-card,[role=link].tw-card,a .card,a .pp-card,a .tw-card{transition:transform var(--interaction-duration) var(--interaction-easing),box-shadow var(--interaction-duration) var(--interaction-easing),border-color var(--interaction-duration) var(--interaction-easing)}}.card[data-clickable=true]:hover,.pp-card[data-clickable=true]:hover,.tw-card[data-clickable=true]:hover,[role=link].card:hover,[role=link].pp-card:hover,[role=link].tw-card:hover,a:hover .card,a:hover .pp-card,a:hover .tw-card{box-shadow:var(--shadow-hover)}@media (prefers-reduced-motion:no-preference){.card[data-clickable=true]:hover,.pp-card[data-clickable=true]:hover,.tw-card[data-clickable=true]:hover,[role=link].card:hover,[role=link].pp-card:hover,[role=link].tw-card:hover,a:hover .card,a:hover .pp-card,a:hover .tw-card{transform:translateY(var(--hover-lift))}}[data-copy-feedback]{position:relative;cursor:pointer}@media (prefers-reduced-motion:no-preference){[data-copy-feedback]{transition:background-color var(--interaction-duration) var(--interaction-easing),color var(--interaction-duration) var(--interaction-easing)}}[data-copy-feedback][data-copied=true]{background-color:#188c42!important;color:#fff!important}[data-copy-feedback] .cf-check{display:none;margin-right:4px}[data-copy-feedback][data-copied=true] .cf-check{display:inline}.skeleton{background-color:var(--panel,#131a22);border-radius:4px;color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@media (prefers-reduced-motion:no-preference){.skeleton{background-image:linear-gradient(90deg,var(--panel,#131a22) 0,hsla(0,0%,100%,.05) 50%,var(--panel,#131a22) 100%);background-size:800px 100%;animation:shimmer 1.4s ease-in-out infinite}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border,#24303b);border-top-color:var(--focus);border-radius:50%}@media (prefers-reduced-motion:no-preference){.spinner{animation:spin .8s linear infinite}}@media (prefers-reduced-motion:reduce){.spinner{border-top-color:var(--focus);border-right-color:var(--focus)}}.toast{position:fixed;top:16px;right:16px;z-index:2000;padding:12px 16px;border-radius:8px;background:var(--panel,#131a22);color:var(--text,#e7edf3);border:1px solid var(--border,#24303b);box-shadow:var(--shadow-hover);font-size:14px;max-width:360px}@keyframes toast-in{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@media (prefers-reduced-motion:no-preference){.toast{animation:toast-in .2s var(--interaction-easing) both}}@keyframes success-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.success-check{display:inline-flex;align-items:center;justify-content:center;color:#21c45d;font-weight:700}@media (prefers-reduced-motion:no-preference){.success-check{animation:success-pop .26s var(--interaction-easing) both}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.andy-btn{transition:background-color var(--interaction-duration-fast) var(--interaction-easing),border-color var(--interaction-duration-fast) var(--interaction-easing),transform var(--interaction-duration-fast) var(--interaction-easing),box-shadow var(--interaction-duration-fast) var(--interaction-easing);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (hover:hover) and (prefers-reduced-motion:no-preference){.andy-btn:hover:not(:disabled){transform:translateY(var(--hover-lift));box-shadow:var(--shadow-hover)}}.andy-btn:active:not(:disabled){transform:translateY(var(--active-press));box-shadow:var(--shadow-active)}.andy-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.andy-btn-done:not(:disabled):active{filter:brightness(.92)}.andy-btn-link:hover:not(:disabled),.andy-btn-snooze:hover:not(:disabled){border-color:var(--blue,#3b82f6)}.andy-input:focus-visible{outline:2px solid var(--focus);outline-offset:1px}@media (max-width:480px){.andy-todo-actions{gap:6px}.andy-btn{flex:1 1 auto;min-width:0}}