:root{--altcha-border-color:var(--altcha-color-neutral);--altcha-border-width:1px;--altcha-border-radius:6px;--altcha-color-base:light-dark(oklch(100% .00011 271.152),oklch(20.904% .00002 271.152));--altcha-color-base-content:light-dark(oklch(20.904% .00002 271.152),oklch(100% .00011 271.152));--altcha-color-error:oklch(51.284% .20527 28.678);--altcha-color-error-content:oklch(100% .00011 271.152);--altcha-color-neutral:light-dark(oklch(83.591% .0001 271.152),oklch(46.04% .00005 271.152));--altcha-color-neutral-content:light-dark(oklch(46.76% .00005 271.152),oklch(100% .00011 271.152));--altcha-color-primary:oklch(40.279% .2449 268.131);--altcha-color-primary-content:oklch(100% .00011 271.152);--altcha-color-success:oklch(55.748% .18968 142.511);--altcha-color-success-content:oklch(100% .00011 271.152);--altcha-checkbox-border-color:light-dark(oklch(66.494% .00233 15.434),oklch(51.028% .00006 271.152));--altcha-checkbox-border-radius:5px;--altcha-checkbox-border-width:var(--altcha-border-width);--altcha-checkbox-outline:2px solid var(--altcha-checkbox-outline-color);--altcha-checkbox-outline-color:-webkit-focus-ring-color;--altcha-checkbox-outline-offset:2px;--altcha-checkbox-size:22px;--altcha-checkbox-transition-duration:var(--altcha-transition-duration);--altcha-input-background-color:var(--altcha-color-base);--altcha-input-border-radius:3px;--altcha-input-border-width:1px;--altcha-input-color:var(--altcha-color-base-content);--altcha-max-width:320px;--altcha-padding:.75rem;--altcha-popover-arrow-size:6px;--altcha-popover-color:var(--altcha-border-color);--altcha-shadow:drop-shadow(3px 3px 6px oklch(0% 0 0/.2));--altcha-spinner-color:var(--altcha-color-base-content);--altcha-switch-background-color:var(--altcha-color-neutral);--altcha-switch-border-radius:calc(infinity*1px);--altcha-switch-height:var(--altcha-checkbox-size);--altcha-switch-padding:.25rem;--altcha-switch-width:calc(var(--altcha-checkbox-size)*1.75);--altcha-switch-toggle-border-radius:100%;--altcha-switch-toggle-color:var(--altcha-color-neutral-content);--altcha-switch-toggle-size:calc(var(--altcha-switch-height) - var(--altcha-switch-padding)*2);--altcha-transition-duration:.6s;--altcha-z-index:99999999;--altcha-z-index-popover:999999999}@supports (-moz-appearance:none){:root{--altcha-checkbox-outline-color:var(--altcha-color-primary)}}.altcha{all:revert-layer;display:none;font-family:inherit;font-size:inherit;position:relative}.altcha[data-visible]{display:block}.altcha *,.altcha-popover,.altcha-popover *{all:revert-layer;box-sizing:border-box;font-family:inherit;font-size:inherit;line-height:1.25}.altcha a,.altcha-popover a{color:currentColor;text-decoration:none}.altcha a:hover,.altcha-popover a:hover{color:currentColor}.altcha-main{align-items:start;background-color:var(--altcha-color-base);border:var(--altcha-border-width,1px) solid var(--altcha-border-color);border-radius:var(--altcha-border-radius,0);color:var(--altcha-color-base-content);display:flex;flex-direction:column;gap:.5rem;justify-content:space-between;max-width:var(--altcha-max-width,100%);padding:var(--altcha-padding)}.altcha-main>*{display:flex;width:100%}.altcha-main>:first-child{flex-grow:1}.altcha-checkbox-wrap{align-items:center;display:flex;flex-direction:row;flex-grow:1;gap:.5rem}.altcha-checkbox-wrap>*{display:flex}.altcha-logo{opacity:.7}.altcha-footer{align-items:center;display:flex;flex-grow:1;font-size:.7rem;gap:.5rem;justify-content:flex-end;opacity:.7}.altcha-footer p{margin:0;padding:0}.altcha-error{font-size:.85rem}.altcha-button{align-items:center;background:var(--altcha-color-primary);border:var(--altcha-input-border-width) solid var(--altcha-color-primary);border-radius:var(--altcha-input-border-radius);color:var(--altcha-color-primary-content);cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;padding:.35rem}.altcha-button:focus{border-color:var(--altcha-color-primary);outline:var(--altcha-checkbox-outline);outline-offset:var(--altcha-checkbox-outline-offset)}.altcha-button>.altcha-spinner,.altcha-button>svg{height:20px;width:20px}.altcha-button-secondary{background:transparent;border-color:var(--altcha-color-neutral);color:var(--altcha-color-neutral-content)}.altcha-input{background:var(--altcha-input-background-color);border:var(--altcha-input-border-width) solid var(--altcha-color-neutral);border-radius:var(--altcha-input-border-radius);color:var(--altcha-input-color);flex-grow:1;font-size:1rem;min-width:0;padding:.25rem;width:auto}.altcha-input:focus{border-color:var(--altcha-color-primary);outline:var(--altcha-checkbox-outline);outline-offset:var(--altcha-checkbox-outline-offset)}.altcha-spinner{animation:altcha-rotate .6s linear infinite;border:var(--altcha-checkbox-border-width) solid var(--altcha-spinner-color);border-bottom-color:transparent;border-radius:100%;border-right-color:transparent;opacity:.7}.altcha-popover{background-color:var(--altcha-color-base);border:var(--altcha-border-width) solid var(--altcha-border-color);border-radius:var(--altcha-border-radius);color:var(--altcha-color-base-content);filter:var(--altcha-shadow);left:calc(var(--altcha-padding)/2);max-width:calc(var(--altcha-max-width) - var(--altcha-padding));position:absolute;top:calc(var(--altcha-padding) + var(--altcha-checkbox-size) + var(--altcha-popover-arrow-size));z-index:var(--altcha-z-index-popover)}.altcha-popover-arrow{border-bottom-color:transparent;border:var(--altcha-popover-arrow-size) solid transparent;border-bottom:var(--altcha-popover-arrow-size) solid var(--altcha-popover-color);content:"";height:0;left:calc(var(--altcha-checkbox-size)/2);position:absolute;top:calc(var(--altcha-popover-arrow-size)*-2);width:0}.altcha-popover-content{max-height:100dvh;overflow:auto;padding:var(--altcha-padding)}.altcha-popover[data-top=true][data-display=standard]{bottom:calc(100% - var(--altcha-padding) + var(--altcha-popover-arrow-size));top:auto}.altcha-popover[data-top=true][data-display=standard] .altcha-popover-arrow{border-bottom-color:transparent;border-top-color:var(--altcha-popover-color);bottom:calc(var(--altcha-popover-arrow-size)*-2);top:auto}.altcha-popover[data-variant=error]{--altcha-popover-color:var(--altcha-color-error);background-color:var(--altcha-color-error);border-color:var(--altcha-color-error);color:var(--altcha-color-error-content)}.altcha-popover[data-variant=error] .altcha-popover-content{padding:calc(var(--altcha-padding)/1.5) var(--altcha-padding)}.altcha-popover[data-display=overlay]{animation:altcha-overlay-slidein .5s forwards;top:45%;transform:translate(-50%,-50%)}.altcha-popover[data-display=bottomsheet],.altcha-popover[data-display=overlay]{left:50%;position:fixed;width:var(--altcha-max-width);z-index:var(--altcha-z-index)}.altcha-popover[data-display=bottomsheet]{animation:altcha-bottomsheet-slideup .5s forwards;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;bottom:-100%;top:auto;transform:translate(-50%)}.altcha-popover[data-display=bottomsheet] .altcha-popover-content{padding-bottom:calc(var(--altcha-padding)*2)}.altcha-popover-backdrop{background:var(--altcha-color-base-content);inset:0;opacity:.1;position:fixed;transition:opacity .5s;z-index:var(--altcha-z-index)}.altcha-popover-close{color:var(--altcha-color-base-content);cursor:pointer;display:inline-block;font-size:1rem;height:1.25rem;line-height:.95;position:absolute;right:0;text-align:center;text-shadow:0 0 1px var(--altcha-color-base);top:-1.5rem;width:1.25rem;z-index:var(--altcha-z-index)}[dir=rtl] .altcha-popover{left:auto;right:calc(var(--altcha-padding)/2)}[dir=rtl] .altcha-popover-arrow{left:auto;right:calc(var(--altcha-checkbox-size)/2)}[dir=rtl] .altcha-popover-close{left:0;right:auto}.altcha-popover[data-display=bottomsheet] .altcha-footer,.altcha-popover[data-display=overlay] .altcha-footer{align-items:center;gap:.5rem;justify-content:center;padding-top:1rem}.altcha-popover[data-display=bottomsheet] .altcha-footer svg,.altcha-popover[data-display=overlay] .altcha-footer svg{height:18px;vertical-align:middle;width:18px}.altcha-code-challenge>form{display:flex;flex-direction:column;gap:.5rem}.altcha-code-challenge-title{font-weight:600}.altcha-code-challenge-text{font-size:.85rem}.altcha-code-challenge-image{background:#fff;border:var(--altcha-input-border-width) solid var(--altcha-color-neutral);border-radius:var(--altcha-input-border-radius);height:50px;object-fit:contain}.altcha-code-challenge-row{display:flex;gap:.5rem}.altcha-code-challenge-buttons{align-items:center;display:flex;flex-direction:column;gap:.5rem;justify-content:space-between;margin-top:var(--altcha-padding)}.altcha-code-challenge-buttons button{justify-content:center;width:100%}.altcha-checkbox{position:relative}.altcha-checkbox,.altcha-checkbox input{cursor:pointer;height:var(--altcha-checkbox-size);width:var(--altcha-checkbox-size)}.altcha-checkbox input{appearance:none;background:var(--altcha-input-background-color);border:var(--altcha-checkbox-border-width,2px) solid var(--altcha-checkbox-border-color);border-radius:var(--altcha-checkbox-border-radius);left:0;margin:0;padding:0;position:absolute;top:0}@supports (hanging-punctuation:first) and (font:-apple-system-body) and (-webkit-appearance:none){.altcha-checkbox input:focus{outline-style:solid;outline-width:2px}}.altcha-checkbox input:before{background:var(--altcha-color-neutral);border-radius:var(--altcha-checkbox-border-radius);content:"";display:block;height:100%;transform:scale(0);width:100%}.altcha-checkbox input:checked{background-color:var(--altcha-color-success);border-color:var(--altcha-color-success)}.altcha-checkbox input:checked:before{background-color:var(--altcha-color-success);opacity:0;transform:scale(2.2);transition:all var(--altcha-checkbox-transition-duration) ease;transition-delay:.1s}.altcha-checkbox svg{--altcha-radio-svg-size:calc(var(--altcha-checkbox-size)*.5);--altcha-radio-svg-offset:calc(var(--altcha-checkbox-size)*.25);fill:none;height:var(--altcha-radio-svg-size);left:var(--altcha-radio-svg-offset);opacity:0;position:absolute;stroke:currentColor;stroke-dasharray:16px;stroke-dashoffset:16px;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;top:var(--altcha-radio-svg-offset);transform:translateZ(0);width:var(--altcha-radio-svg-size)}.altcha-checkbox input:checked+svg{color:var(--altcha-color-success-content);opacity:1;stroke-dashoffset:0;transition:all var(--altcha-checkbox-transition-duration) ease;transition-delay:.1s}.altcha-checkbox-spinner{display:none;height:var(--altcha-checkbox-size);left:0;position:absolute;top:0;width:var(--altcha-checkbox-size)}.altcha-checkbox[data-loading=true] input{appearance:none;opacity:0;pointer-events:none}.altcha-checkbox[data-loading=true] .altcha-checkbox-spinner{display:block}.altcha-checkbox-native{position:relative}.altcha-checkbox-native,.altcha-checkbox-native input{height:var(--altcha-checkbox-size);width:var(--altcha-checkbox-size)}.altcha-checkbox-native input{margin:0}.altcha-checkbox-native-spinner{display:none;height:var(--altcha-checkbox-size);left:0;position:absolute;top:0;width:var(--altcha-checkbox-size)}.altcha-checkbox-native[data-loading=true] input{appearance:none;opacity:0;pointer-events:none}.altcha-checkbox-native[data-loading=true] .altcha-checkbox-native-spinner{display:block}.altcha-switch{align-items:center;background-color:var(--altcha-switch-background-color);border-radius:var(--altcha-switch-border-radius);display:flex;height:var(--altcha-switch-height);padding:var(--altcha-switch-padding);position:relative;width:var(--altcha-switch-width)}.altcha-switch:focus-within{outline:var(--altcha-checkbox-outline);outline-offset:var(--altcha-checkbox-outline-offset)}.altcha-switch input{appearance:none;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.altcha-switch-toggle{align-items:center;background-color:var(--altcha-switch-toggle-color);border-radius:var(--altcha-switch-toggle-border-radius);cursor:pointer;display:flex;justify-content:center;left:var(--altcha-switch-padding);position:absolute;transition:width .15s ease-out,left .15s ease-out}.altcha-switch-spinner,.altcha-switch-toggle{height:var(--altcha-switch-toggle-size);width:var(--altcha-switch-toggle-size)}.altcha-switch-spinner{display:none}.altcha-switch[data-loading=true]{pointer-events:none}.altcha-switch[data-loading=true] .altcha-switch-spinner{display:block}.altcha-switch[data-loading=true] .altcha-switch-toggle{background-color:transparent;left:calc(50% - var(--altcha-switch-toggle-size)/2)}[data-state=verified] .altcha-switch{--altcha-switch-background-color:var(--altcha-color-success)}[data-state=verified] .altcha-switch-toggle{background-color:var(--altcha-color-success-content)}[data-state=verified] .altcha-switch-toggle,[dir=rtl] .altcha-switch-toggle{left:calc(100% - var(--altcha-switch-height) + var(--altcha-switch-padding))}[dir=rtl][data-state=verified] .altcha-switch-toggle{left:var(--altcha-switch-padding)}.altcha-floating-arrow{border:6px solid transparent;border-bottom:6px solid var(--altcha-border-color);content:"";height:0;left:12px;position:absolute;top:-12px;width:0}.altcha-overlay-backdrop{inset:0;position:fixed;transition:opacity var(--altcha-transition-duration);z-index:var(--altcha-z-index)}.altcha-overlay-close{color:currentColor;cursor:pointer;display:inline-block;font-size:1rem;height:1rem;line-height:.85;position:absolute;right:0;text-align:center;text-shadow:0 0 1px var(--altcha-color-base);top:-1.5rem;width:1rem;z-index:var(--altcha-z-index)}.altcha[data-display=overlay]{animation:altcha-overlay-slidein var(--altcha-transition-duration) forwards;filter:var(--altcha-shadow);left:50%;opacity:0;position:fixed;top:45%;transform:translate(-50%,-50%);z-index:var(--altcha-z-index)}.altcha[data-display=overlay] .altcha-main{width:var(--altcha-max-width)}.altcha[data-display=floating]{display:none;filter:var(--altcha-shadow);left:var(--altcha-floating-left,-100%);position:fixed;top:var(--altcha-floating-top,-100%);z-index:var(--altcha-z-index)}.altcha[data-display=floating] .altcha-main{width:var(--altcha-max-width)}.altcha[data-display=floating][data-floating-position=top] .altcha-floating-arrow{border-bottom-color:transparent;border-top-color:var(--altcha-border-color);bottom:-12px;top:auto}.altcha[data-display=floating][data-visible]{display:flex}.altcha[data-display=bar]{bottom:-100%;filter:var(--altcha-shadow);left:0;position:fixed;right:0;transition:bottom var(--altcha-transition-duration),top var(--altcha-transition-duration);z-index:var(--altcha-z-index)}.altcha[data-display=bar] .altcha-main{align-items:center;border-radius:0;border-width:var(--altcha-border-width) 0 0 0;flex-direction:row;max-width:100%!important}.altcha[data-display=bar] .altcha-main>*{width:auto}.altcha[data-display=bar][data-placement=top]{bottom:auto;top:-100%}.altcha[data-display=bar][data-placement=top] .altcha-main{border-width:0 0 var(--altcha-border-width) 0}.altcha[data-display=bar][data-placement=bottom]:not([data-state=unverified]){bottom:0}.altcha[data-display=bar][data-placement=top]:not([data-state=unverified]){top:0}.altcha[data-display=invisible]{display:none}@keyframes altcha-rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes altcha-bottomsheet-slideup{to{bottom:0}}@keyframes altcha-overlay-slidein{to{opacity:1;top:50%}}:root{font-family:system-ui,-apple-system,sans-serif;line-height:1.5;color:#0f172a;background:#f8fafc}*{box-sizing:border-box}body{margin:0}a{color:#2563eb}.app{max-width:720px;margin:0 auto;padding:2rem 1rem}.app-wide{max-width:none}.card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1.25rem;margin-top:1rem}.btn{display:inline-block;background:#0f172a;color:#fff;border:none;border-radius:6px;padding:.6rem 1rem;font-size:1rem;cursor:pointer;text-decoration:none}.btn.secondary{background:#fff;color:#0f172a;border:1px solid #cbd5e1}.muted{color:#64748b;font-size:.9rem}ul.items{list-style:none;padding:0;margin:0}ul.items li{border-top:1px solid #e2e8f0;padding:.75rem 0}ul.items li:first-child{border-top:none}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap}.page-head h1{margin:0 0 .2rem}.page-head p{margin:0}.app main>h1{margin:0 0 .2rem}.app main>h1+p{margin:0}.entity-table-card{padding:0;overflow:hidden}.list-toolbar{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-bottom:1px solid #e2e8f0;background:#fff}.list-toolbar select{margin-left:.35rem;padding:.3rem .45rem}.entity-table-wrap{overflow-x:auto}.entity-table{width:100%;border-collapse:collapse;font-size:.9rem}.entity-table th{text-align:left;font-weight:600;background:#f1f5f9;color:#334155;padding:.45rem .75rem;border-bottom:1px solid #e2e8f0;white-space:nowrap}.entity-table td{padding:.5rem .75rem;border-bottom:1px solid #eef2f6;vertical-align:middle}.entity-table tbody tr:nth-child(2n){background:#f8fafc}.entity-table tbody tr:hover{background:#eef6ff}.entity-table tr.is-current{box-shadow:inset 3px 0 #0f172a}.entity-table .num,.entity-table .row-actions{text-align:right;white-space:nowrap}.entity-sub{max-width:28rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-actions{display:flex;justify-content:flex-end;gap:.85rem}.row-actions a,.row-actions button{background:none;border:0;padding:0;color:#2563eb;cursor:pointer;font:inherit;text-decoration:none}.row-actions button.danger,.row-actions a.danger{color:#b91c1c}.row-actions button:disabled{color:#94a3b8;cursor:default}.entity-form-page{max-width:36rem}.entity-form{display:flex;flex-direction:column;gap:.85rem}.entity-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.reminder-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end}.reminder-row label{flex:1 1 9rem}.entity-form input,.entity-form select,.entity-form textarea{padding:.55rem .7rem;border:1px solid #cbd5e1;border-radius:6px;font:inherit;font-size:1rem}.entity-form textarea{min-height:7rem;resize:vertical}.back-link{margin:0 0 .75rem}.error{color:#b91c1c}.auth-page .auth-main{flex:1;display:flex;flex-direction:column;justify-content:center;max-width:24rem;margin:0 auto;width:100%}.auth-form{display:flex;flex-direction:column;gap:.85rem;margin-top:1rem}.auth-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.auth-form input{padding:.55rem .7rem;border:1px solid #cbd5e1;border-radius:6px;font-size:1rem}.auth-links{margin-top:1.25rem}.app-with-footer{min-height:100vh;display:flex;flex-direction:column}.app-footer{margin-top:auto;padding-top:2rem;font-size:.75rem;color:#64748b}.version-banner{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.5rem 1rem;background:#0f172a;color:#fff;font-size:.9rem}.version-banner .btn{padding:.35rem .75rem;font-size:.85rem;background:#fff;color:#0f172a}.home{text-align:center}.home-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem}.home-brand{margin:0;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:#64748b}.home-title{margin:.75rem 0 0;font-size:clamp(2.5rem,8vw,4rem);font-weight:600;letter-spacing:-.03em}.home-copy{margin:.75rem 0 0;font-size:1.1rem}.app-chrome{margin:-.5rem -.25rem 0;padding-bottom:.65rem;border-bottom:1px solid #e2e8f0}.widget-area{min-height:2.85rem;display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0 -.25rem .85rem;padding:.45rem .1rem 0}.widget{display:inline-flex;align-items:center;gap:.4rem;margin:0;min-height:2rem;max-width:100%;padding:.2rem .75rem;border:1px solid #e2e8f0;border-radius:999px;background:#fff;font-size:.9rem}.widget-note{border-radius:10px}.app-chrome-top{display:flex;align-items:center;gap:.75rem 1rem;flex-wrap:wrap}.chrome-brand{display:flex;align-items:center;gap:.75rem;flex:none}.brand-mark{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#64748b;text-decoration:none;font-weight:600;padding:.35rem .15rem}.brand-mark:hover{color:#0f172a}.app-nav{display:flex;flex-wrap:wrap;gap:.25rem;flex:1;border-bottom:0;padding-bottom:0}.app-nav-link{display:inline-flex;align-items:center;gap:.4rem;color:#475569;text-decoration:none;padding:.4rem .65rem;border-radius:999px;font-size:.9rem}.app-nav-link svg{flex:none}.app-nav-link.active{background:#0f172a;color:#fff}.app-nav-link:hover{background:#e2e8f0;color:#0f172a}.app-nav-link.active:hover{background:#0f172a;color:#fff}.chrome-tools{display:flex;align-items:center;gap:.4rem;margin-inline-start:auto}.lang-switch{height:2.15rem;max-width:9.5rem;padding:0 .65rem;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#0f172a;font:inherit;font-size:.85rem;font-weight:600}.app-chrome.is-compact .app-chrome-top{justify-content:space-between}.app-chrome.is-compact .burger{margin-inline-start:auto}.chrome-menu{display:flex;flex-direction:column;gap:.35rem;width:min(20rem,100%);margin-top:.65rem;margin-inline-start:auto;padding:.55rem;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 12px 32px #0f172a1a}.chrome-menu .app-nav{flex-direction:column;align-items:stretch}.chrome-menu-sep{width:100%;border:0;border-top:1px solid #e2e8f0;margin:.45rem 0}.chrome-menu-account{display:flex;flex-direction:column;align-items:stretch;gap:.45rem}.chrome-menu-account .menu,.chrome-menu-account .menu-trigger,.chrome-menu-account .profile-chip{width:100%;max-width:none}.chrome-menu-account .menu-pop{position:static;width:auto;margin-top:.35rem;box-shadow:none}.chrome-menu-account .icon-btn{width:100%;justify-content:flex-start;gap:.45rem;padding:0 .75rem;border-radius:999px}.chrome-menu-account .lang-switch{width:100%;max-width:none}.back-link a:before{content:"← "}[dir=rtl] .back-link a:before{content:"→ "}[dir=rtl] .ledger-total,[dir=rtl] .hbar-value,[dir=rtl] .dash-period strong,[dir=rtl] .widget-task{direction:ltr;unicode-bidi:isolate}.chrome-menu-label{display:none}.chrome-menu-account .chrome-menu-label{display:inline}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.15rem;height:2.15rem;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;cursor:pointer;padding:0}.icon-btn:hover{background:#f1f5f9}.profile-chip{display:inline-flex;align-items:center;gap:.45rem;height:2.15rem;max-width:12rem;padding:0 .7rem 0 .3rem;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#0f172a;text-decoration:none;box-shadow:0 1px 1px #0f172a0a}.profile-chip:hover,.profile-chip.active{border-color:#94a3b8;background:#f8fafc}.profile-mark{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;border-radius:999px;background:#0f172a;color:#fff;font-size:.75rem;font-weight:600;flex:none}.profile-chip-name{font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu{position:relative}.menu-trigger{display:inline-flex;align-items:center;gap:.4rem;height:2.15rem;max-width:14rem;padding:0 .55rem 0 .65rem;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#0f172a;cursor:pointer;font:inherit;box-shadow:0 1px 1px #0f172a0a}.menu-trigger:hover,.menu.is-open .menu-trigger{border-color:#94a3b8;background:#f8fafc}.menu-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600}.menu-chevron{flex:none;color:#64748b}.menu.is-open .menu-chevron{transform:rotate(180deg)}.menu-pop{position:absolute;top:calc(100% + .35rem);right:0;z-index:40;min-width:14rem;margin:0;padding:.3rem;list-style:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 8px 24px #0f172a1f}.menu-pop button{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;width:100%;border:0;background:transparent;border-radius:8px;padding:.45rem .55rem;font:inherit;text-align:left;cursor:pointer;color:inherit}.menu-pop button:hover,.menu-pop button.is-current{background:#f1f5f9}.menu-pop button.is-current{font-weight:600}@media(max-width:720px){.profile-chip,.menu-trigger{max-width:9rem}}.timer-chip{gap:1.7rem;padding-right:.25rem}.timer-chip .widget-main{padding-right:0}.timer-chip svg{flex:none}.widget-main{display:inline-flex;align-items:center;gap:.4rem;min-width:0;border:0;background:transparent;color:inherit;font:inherit;padding:.15rem .15rem .15rem 0;cursor:pointer;text-align:left}.widget-task{color:#2563eb;text-decoration:none}.widget-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:1.7rem;height:1.7rem;border:0;border-radius:999px;background:#0f172a;color:#fff;padding:0;cursor:pointer}.widget-icon:hover{background:#334155}.widget-icon:disabled{opacity:.5;cursor:default}.profile-page{max-width:40rem}.profile-page h2{margin:0;font-size:1.15rem}.theme-choice{border:0;margin:0;padding:0;display:flex;gap:1rem}.theme-choice legend{font-size:.9rem;margin-bottom:.35rem}.theme-choice label{display:flex;flex-direction:row;align-items:center;gap:.35rem}.dash-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.workspace-switcher{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}.workspace-switcher select,.dash-header select,.auth-form select{padding:.4rem .55rem;border:1px solid #cbd5e1;border-radius:6px;font-size:1rem;background:#fff}.dash-periods{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:0;margin-top:1rem;overflow:hidden}.dash-period{padding:1rem 1.1rem .9rem;border-left:1px solid #e2e8f0;min-width:0}.dash-period:first-child{border-left:0}.dash-period strong{display:block;margin-top:.15rem;font-size:1.45rem;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.dash-period-note{min-height:1.3rem;margin-top:.1rem;font-size:.8rem}.dash-period .hbar-track{margin-top:.55rem}.dash-empty{margin:.75rem 0 0}.dash-graphs{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.dash-page h2{margin:0;font-size:1.05rem}.dash-filter{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.dash-filter select{min-width:12rem;padding:.4rem .55rem;border:1px solid #cbd5e1;border-radius:8px;font:inherit;background:#fff;color:inherit}.dash-tasks{margin-top:.85rem}.dash-task,.dash-task-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1.3fr) auto auto auto;gap:.65rem .85rem;align-items:center}.dash-tasks.is-one-workspace .dash-task,.dash-tasks.is-one-workspace .dash-task-head{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto auto auto}.dash-task-head{font-size:.75rem;padding-bottom:.35rem}.dash-task{border-top:1px solid #e2e8f0;padding:.55rem 0}.dash-task-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-task-start{justify-self:end}.dash-page .card>.muted{margin:.2rem 0 0}.hbars{margin-top:.85rem;display:flex;flex-direction:column;gap:.7rem}.hbar{display:grid;grid-template-columns:minmax(7rem,11rem) 1fr auto;gap:.65rem;align-items:center}.hbar-name{min-width:0;font-size:.9rem}.hbar-name>div:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar-track{height:.5rem;border-radius:999px;background:#e2e8f0;overflow:hidden}.hbar-fill{height:100%;border-radius:999px;background:#2563eb}.hbar-value{font-variant-numeric:tabular-nums;font-size:.85rem;color:#64748b;white-space:nowrap}.day-chart-wrap{margin-top:.85rem}.day-chart{display:block;width:100%;height:9rem}.day-chart rect{fill:#93c5fd}.day-chart rect.is-today{fill:#2563eb}.day-chart-base{stroke:#e2e8f0;stroke-width:1}.day-axis{display:flex;margin-top:.25rem}.day-axis span{flex:1 1 0;min-width:0;text-align:center;font-size:.65rem;color:#64748b;font-variant-numeric:tabular-nums}.day-axis span.is-today{color:#2563eb;font-weight:600}.project-block{margin-top:.75rem}.task-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.task-row-body{min-width:0;flex:1}.task-desc{white-space:pre-wrap;margin-top:.15rem}.task-create{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.task-create textarea{width:100%;min-height:4.5rem;padding:.45rem .6rem;border:1px solid #cbd5e1;border-radius:6px;font-family:inherit;font-size:inherit;resize:vertical}.btn-sm{padding:.3rem .65rem;font-size:.85rem}.btn-row{display:flex;gap:.5rem;margin:.75rem 0}.inline-form{display:flex;gap:.5rem;margin-top:1rem}.inline-form input,.inline-form select{flex:1;padding:.45rem .6rem;border:1px solid #cbd5e1;border-radius:6px}.recover label{display:flex;flex-direction:column;gap:.35rem;margin:.75rem 0}.sheet-card{padding:1rem}.sheet-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.sheet-week{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.sheet-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:6px}.sheet{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.9rem}.sheet th,.sheet td{border:1px solid #e2e8f0}.sheet thead th{background:#f8fafc;font-weight:600;padding:.4rem .35rem;text-align:center;font-size:.75rem;color:#475569}.sheet thead th.today{background:#e2e8f0;color:#0f172a}.sheet .weekend{background:#f8fafc}.sheet-task{text-align:left;min-width:14rem;max-width:18rem;position:sticky;left:0;z-index:1;background:#fff;padding:.35rem .6rem;font-weight:500}.sheet thead .sheet-task,.sheet tfoot .sheet-task{background:#f8fafc;z-index:2}.sheet-task-cell{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sheet-task-name{font-weight:600}.sheet-hours{min-width:4.25rem;padding:0}.sheet-hours input{width:100%;border:0;background:transparent;text-align:center;padding:.55rem .2rem;font-variant-numeric:tabular-nums;font-size:.95rem}.sheet-hours input::placeholder{color:#cbd5e1}.sheet-hours input:focus{outline:2px solid #0f172a;outline-offset:-2px;background:#fff}.sheet-hours input:disabled{color:#0f172a}.sheet-hours.today{background:#f1f5f9}.sheet-hours.live{box-shadow:inset 0 0 0 2px #2563eb}.sheet-hours.live input{color:#2563eb;font-weight:600}.sheet-total{background:#f1f5f9;font-weight:600;text-align:right;padding:.45rem .55rem;min-width:4.25rem}.sheet-empty{padding:1rem;text-align:center;color:#64748b}.sheet tfoot .sheet-task,.sheet tfoot td{background:#f1f5f9}.sheet td.sheet-hours{text-align:center;padding:.5rem .25rem}.card.ledger-card{padding:0;overflow:hidden;border-radius:8px;font-size:.9rem;line-height:1.5;--ledger-project: 160px;--ledger-task: 160px;--ledger-note: 128px;--ledger-date: 124px;--ledger-start: 72px;--ledger-end: 72px;--ledger-total: 76px;--ledger-actions: 72px}.card.ledger-card.is-col-resizing,.card.ledger-card.is-col-resizing *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.card.ledger-card input,.card.ledger-card button{font-family:inherit;font-size:inherit;line-height:inherit}.ledger-cols{display:grid;grid-template-columns:var(--ledger-project) var(--ledger-task) var(--ledger-note) var(--ledger-date) var(--ledger-start) var(--ledger-end) var(--ledger-total) var(--ledger-actions);grid-template-areas:"project task note date start end total actions";gap:0;align-items:stretch;padding:0;min-height:2.35rem;width:100%;box-sizing:border-box}.ledger-cols>*{min-width:0;width:auto;border-right:1px solid rgba(229,229,229,.7)}.ledger-cols>:last-child{border-right:0}.ledger-project{grid-area:project}.ledger-task{grid-area:task}.ledger-note,.ledger-note-head{grid-area:note}.ledger-date,.ledger-date-head{grid-area:date}.ledger-start,.ledger-start-head{grid-area:start}.ledger-end,.ledger-end-head{grid-area:end}.ledger-end{display:flex;flex-direction:column;justify-content:center;min-width:0}.ledger-end-day{font-size:.68rem;line-height:1.1;color:#64748b;padding:0 .15rem .1rem}.ledger-end .ledger-time{height:auto}html.dark .ledger-end-day{color:#94a3b8}.ledger-overlap{box-shadow:inset 3px 0 #c2410c}[dir=rtl] .ledger-overlap{box-shadow:inset -3px 0 #c2410c}.ledger-head{font-weight:500;color:#737373;background:#fff;border-bottom:1px solid #e5e5e5;min-height:2.35rem}.ledger-head>div{position:relative;display:flex;align-items:center;padding:.45rem .75rem}.ledger-col-resizer{position:absolute;top:0;right:-3px;z-index:3;width:7px;height:100%;cursor:col-resize;touch-action:none}.ledger-col-resizer:hover,.ledger-col-resizer.is-dragging{background:#1a73e873}.ledger-new{background:#fafafa;border-bottom:1px solid #e5e5e5}.ledger-live{background:transparent}.ledger-total{grid-area:total;display:flex;align-items:center;justify-content:flex-end;font-variant-numeric:tabular-nums;padding:0 .45rem;color:#3c4043;white-space:nowrap}.ledger-actions{grid-area:actions;display:flex;align-items:center;justify-content:center;padding:0 .25rem}.ledger-card .ledger-actions .btn{padding:0 .4rem;min-height:1.35rem;font-weight:500;border-radius:2px}.ledger-time{width:100%;height:100%;border:0;border-radius:0;background:transparent;padding:.4rem .75rem;font-variant-numeric:tabular-nums;color:inherit}.ledger-time:focus{outline:none;box-shadow:inset 0 0 0 2px #1a73e8;background:#fff}.ledger-time:disabled{color:#80868b}.ledger-note{width:100%;height:100%;border:0;border-radius:0;background:transparent;padding:.4rem .75rem;color:inherit}.ledger-note:focus{outline:none;box-shadow:inset 0 0 0 2px #1a73e8;background:#fff}.ledger-note:disabled{color:#80868b}.filter-select{position:relative;min-width:0}.filter-select-field{display:flex;align-items:stretch;width:100%;height:100%;border:0;border-radius:0;background:transparent}.filter-select-field:focus-within,.filter-select-field.is-open{box-shadow:inset 0 0 0 2px #1a73e8;background:#fff}.filter-select-field input{flex:1;min-width:0;width:100%;border:0;background:transparent;padding:.4rem .1rem .4rem .75rem;outline:none}.filter-select-field input:disabled{color:#94a3b8}.filter-select-chevron{flex:none;width:1.15rem;border:0;background:transparent;color:#80868b;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.filter-select.is-open .filter-select-chevron svg{transform:rotate(180deg)}.filter-select-chevron:disabled{cursor:default;color:#cbd5e1}.filter-select-list{overflow:auto;margin:0;padding:.15rem;list-style:none;background:#fff;border:1px solid #dadce0;border-radius:2px;box-shadow:0 2px 6px #3c404326,0 8px 24px #3c40431f;font-family:inherit;font-size:.9rem;line-height:1.5}.filter-select-list .muted{padding:.3rem .45rem}.filter-select-list button{display:block;width:100%;text-align:left;border:0;background:none;padding:.28rem .45rem;border-radius:1px;cursor:pointer;font-family:inherit;font-size:inherit}.filter-select-list button.active{background:#e2e8f0}.filter-select-list button.filter-select-option{display:flex;flex-direction:column;align-items:flex-start;gap:.05rem}.filter-select-option-hint{display:block;font-size:.8em;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.filter-select-list button.filter-select-create{color:#2563eb;font-weight:500}.filter-select-list button[aria-selected=true]{font-weight:600}.ledger-card .swipe-row{position:relative;overflow:hidden;border-bottom:1px solid #e5e5e5;width:100%}.swipe-row-actions{position:absolute;inset:0 0 0 auto;width:5.5rem;display:flex;align-items:stretch}.swipe-delete{width:100%;border-radius:0;background:#b91c1c}.swipe-row-front{position:relative;background:#fff;touch-action:pan-y}.ledger-rows>.swipe-row:nth-child(odd) .swipe-row-front{background:#f5f5f5}.ledger-rows>.swipe-row:hover .swipe-row-front{background:#17171714}.ledger-rows>.swipe-row .swipe-row-front:has(.ledger-live){background:#e6f4ea}.ledger-rows>.swipe-row:hover .swipe-row-front:has(.ledger-live){background:#ceead6}@media(max-width:720px){.dash-periods,.dash-graphs{grid-template-columns:1fr}.dash-period{border-left:0;border-top:1px solid #e2e8f0}.dash-period:first-child{border-top:0}.dash-task,.dash-task-head,.dash-tasks.is-one-workspace .dash-task,.dash-tasks.is-one-workspace .dash-task-head{grid-template-columns:1fr auto}.dash-task-head{display:none}.dash-task-start{grid-column:2;grid-row:1}.ledger-head,.ledger-col-resizer{display:none}.ledger-cols,.ledger-card .swipe-row{width:auto;min-width:0}.ledger-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"project project project" "task task task" "note note note" "total total total" "date date date" "start end actions";gap:.2rem 0;padding:.35rem .45rem;align-items:stretch}.ledger-cols>*{border-right:0;width:auto;min-width:0}.ledger-start,.ledger-end{border-right:1px solid #e0e0e0}.ledger-card .filter-select-field,.ledger-card .ledger-time,.ledger-card .ledger-note{min-height:1.85rem;border:1px solid #e0e0e0}.ledger-total{text-align:left;padding:.15rem .15rem .35rem}.ledger-total:before{content:"Total ";font-weight:600;color:#475569}.ledger-actions{justify-content:stretch;align-self:stretch}.ledger-actions .btn{width:100%;height:100%;min-width:4.4rem}}html.dark{color-scheme:dark;--ink: #e2e8f0;--muted: #94a3b8;--bg: #0b1220;--surface: #111827;--surface-2: #1e293b;--line: #334155;--accent: #93c5fd}html.dark body{background:var(--bg);color:var(--ink)}html.dark a,html.dark .widget-task{color:var(--accent)}html.dark a.btn,html.dark .btn{background:#e2e8f0;color:#0f172a}html.dark a.btn.secondary,html.dark .btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}html.dark .muted,html.dark .brand-mark,html.dark .app-footer,html.dark .home-brand,html.dark .filter-select-option-hint,html.dark .ledger-head,html.dark .ledger-time:disabled,html.dark .ledger-note:disabled,html.dark .filter-select-chevron,html.dark .menu-chevron{color:var(--muted)}html.dark .brand-mark:hover{color:#f8fafc}html.dark .card,html.dark .icon-btn,html.dark .profile-chip,html.dark .menu-trigger,html.dark .menu-pop,html.dark .widget,html.dark .list-toolbar,html.dark .filter-select-list,html.dark .version-banner .btn{background:var(--surface);border-color:var(--line);color:var(--ink)}html.dark .app-chrome,html.dark .list-toolbar,html.dark ul.items li,html.dark .entity-table td,html.dark .entity-table th,html.dark .sheet-wrap,html.dark .sheet th,html.dark .sheet td,html.dark .ledger-cols>*,html.dark .ledger-card .swipe-row,html.dark .ledger-head{border-color:var(--line)}html.dark .dash-period,html.dark .dash-task,html.dark .chrome-menu{background:var(--surface);border-color:var(--line);box-shadow:0 16px 40px #00000059}html.dark .chrome-menu-sep{border-color:var(--line)}html.dark .hbar-track{background:var(--surface-2)}html.dark .hbar-fill{background:var(--accent)}html.dark .hbar-value,html.dark .day-axis span{color:var(--muted)}html.dark .day-chart rect{fill:#3b82f6}html.dark .day-chart rect.is-today{fill:var(--accent)}html.dark .day-chart-base{stroke:var(--line)}html.dark .day-axis span.is-today{color:var(--accent)}html.dark .app-nav-link{color:#cbd5e1}html.dark .app-nav-link:hover,html.dark .icon-btn:hover{background:var(--surface-2);color:#f8fafc}html.dark .app-nav-link.active,html.dark .app-nav-link.active:hover{background:#e2e8f0;color:#0f172a}html.dark .lang-switch{background:var(--surface);border-color:var(--line);color:var(--ink)}html.dark .profile-chip:hover,html.dark .profile-chip.active,html.dark .menu-trigger:hover,html.dark .menu.is-open .menu-trigger{border-color:#94a3b8;background:var(--surface-2)}html.dark .widget-icon{background:#94a3b8;color:#0f172a}html.dark .widget-icon:hover{background:#cbd5e1;color:#0f172a}html.dark .profile-mark{background:#e2e8f0;color:#0f172a}html.dark .menu-pop button:hover,html.dark .menu-pop button.is-current{background:var(--surface-2)}html.dark .entity-table th,html.dark .sheet thead th,html.dark .sheet thead .sheet-task,html.dark .sheet tfoot .sheet-task,html.dark .sheet tfoot td,html.dark .sheet-total{background:var(--surface-2);color:var(--ink)}html.dark .entity-table tbody tr:nth-child(2n),html.dark .sheet .weekend{background:#0f172a}html.dark .entity-table tbody tr:hover,html.dark .sheet thead th.today,html.dark .sheet-hours.today{background:var(--surface-2);color:var(--ink)}html.dark .entity-table tr.is-current{box-shadow:inset 3px 0 0 var(--accent)}html.dark .sheet-task,html.dark .swipe-row-front{background:var(--surface);color:var(--ink)}html.dark .ledger-rows>.swipe-row:nth-child(odd) .swipe-row-front{background:#0f172a}html.dark .ledger-rows>.swipe-row:hover .swipe-row-front{background:var(--surface-2)}html.dark .ledger-rows>.swipe-row .swipe-row-front:has(.ledger-live){background:#13291c}html.dark .ledger-rows>.swipe-row:hover .swipe-row-front:has(.ledger-live){background:#163524}html.dark .ledger-head{background:var(--surface)}html.dark .ledger-new{background:#0f172a;border-bottom-color:var(--line)}html.dark .ledger-total{color:var(--ink)}html.dark input,html.dark select,html.dark textarea,html.dark .ledger-time:focus,html.dark .ledger-note:focus,html.dark .filter-select-field:focus-within,html.dark .filter-select-field.is-open,html.dark .sheet-hours input:focus{background:#0f172a;color:var(--ink);border-color:var(--line)}html.dark .ledger-card input,html.dark .ledger-card select,html.dark .ledger-card textarea,html.dark .filter-select-field input,html.dark .sheet-hours input{background:transparent;color:inherit}html.dark .sheet-hours input:disabled{color:var(--muted)}html.dark .filter-select-list button{color:var(--ink)}html.dark .filter-select-list button.active,html.dark .filter-select-list button:hover{background:var(--surface-2)}html.dark .filter-select-list button.filter-select-create{color:var(--accent)}html.dark .error,html.dark .row-actions button.danger,html.dark .row-actions a.danger{color:#fca5a5}html.dark .ledger-card .filter-select-field,html.dark .ledger-card .ledger-time,html.dark .ledger-card .ledger-note,html.dark .ledger-start,html.dark .ledger-end{border-color:var(--line)}
