:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f7f5f2;--color-surface:#fff;--color-surface-2:#f1eee9;--color-surface-3:#e8e4dd;--color-border:#e3ded6;--color-border-strong:#cfc8bd;--color-text:#1f1c18;--color-text-muted:#6b645a;--color-text-subtle:#8f877b;--color-text-inverse:#fff;--color-accent:#0f6e66;--color-accent-hover:#0b5a53;--color-accent-soft:#e2f1ee;--color-accent-text:#0b5a53;--color-on-accent:#fff;--color-success:#2f7a3e;--color-success-soft:#e5f2e7;--color-warning:#9a6200;--color-warning-soft:#fbf0db;--color-danger:#b3261e;--color-danger-soft:#fbe7e5;--color-info:#245f9e;--color-info-soft:#e4eef8;--color-focus:#0f6e66;--color-overlay:#1f1c1873;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.875rem;--leading-tight:1.25;--leading-normal:1.5;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-0:0;--space-half:.25rem;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:2.5rem;--space-6:3rem;--space-8:4rem;--radius-sm:6px;--radius-md:10px;--radius-lg:12px;--radius-xl:16px;--radius-full:999px;--shadow-sm:0 1px 2px #1f1c180f;--shadow-md:0 4px 12px #1f1c1814;--shadow-lg:0 12px 32px #1f1c1829;--tap-target:44px;--topbar-height:56px;--bottomnav-height:64px;--sidebar-width:248px;--content-max:960px;--safe-bottom:env(safe-area-inset-bottom,0px);--duration-fast:.12s;--duration-normal:.2s;--ease-out:cubic-bezier(.2, .8, .2, 1);--z-sticky:10;--z-nav:20;--z-overlay:40;--z-sheet:50;--z-toast:60}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#151412;--color-surface:#1d1b19;--color-surface-2:#252320;--color-surface-3:#302d29;--color-border:#34302b;--color-border-strong:#48433c;--color-text:#f1ede7;--color-text-muted:#b3aba0;--color-text-subtle:#8d857a;--color-text-inverse:#151412;--color-accent:#3fb5a8;--color-accent-hover:#5cc6ba;--color-accent-soft:#173a36;--color-accent-text:#6fd0c4;--color-on-accent:#0c1a18;--color-success:#6cc47f;--color-success-soft:#1c3322;--color-warning:#e3b155;--color-warning-soft:#3a2d14;--color-danger:#f08a80;--color-danger-soft:#3d1c19;--color-info:#7fb3ea;--color-info-soft:#1a2c40;--color-focus:#5cc6ba;--color-overlay:#0009;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 12px 32px #00000080}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#151412;--color-surface:#1d1b19;--color-surface-2:#252320;--color-surface-3:#302d29;--color-border:#34302b;--color-border-strong:#48433c;--color-text:#f1ede7;--color-text-muted:#b3aba0;--color-text-subtle:#8d857a;--color-text-inverse:#151412;--color-accent:#3fb5a8;--color-accent-hover:#5cc6ba;--color-accent-soft:#173a36;--color-accent-text:#6fd0c4;--color-on-accent:#0c1a18;--color-success:#6cc47f;--color-success-soft:#1c3322;--color-warning:#e3b155;--color-warning-soft:#3a2d14;--color-danger:#f08a80;--color-danger-soft:#3d1c19;--color-info:#7fb3ea;--color-info-soft:#1a2c40;--color-focus:#5cc6ba;--color-overlay:#0009;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 12px 32px #00000080}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100dvh;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}img,svg,video{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--color-accent-text);text-underline-offset:2px}h1,h2,h3,h4{line-height:var(--leading-tight);font-weight:var(--weight-semibold)}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}h4{font-size:var(--text-base)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--color-text-muted)}.subtle{color:var(--color-text-subtle)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.stack{gap:var(--stack-gap,var(--space-2));flex-direction:column;display:flex}.stack-sm{--stack-gap:var(--space-1)}.stack-lg{--stack-gap:var(--space-3)}.cluster{align-items:center;gap:var(--cluster-gap,var(--space-1));flex-wrap:wrap;display:flex}.spread{justify-content:space-between;align-items:center;gap:var(--space-1);display:flex}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:20px;height:20px}.icon-sm{width:16px;height:16px}.icon-lg{width:24px;height:24px}.app{min-height:100dvh}.app-sidebar{display:none}.app-main{padding-bottom:calc(var(--bottomnav-height) + var(--safe-bottom) + var(--space-4))}.app-content{width:100%;max-width:var(--content-max);padding:var(--space-2);margin-inline:auto}.topbar{z-index:var(--z-sticky);align-items:center;gap:var(--space-1);height:var(--topbar-height);padding-inline:var(--space-1) var(--space-1);background:color-mix(in srgb, var(--color-bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);display:flex;position:sticky;top:0}.topbar-title{min-width:0;font-size:var(--text-md);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;flex:1;padding-inline-start:var(--space-1);overflow:hidden}.topbar-search,.topbar-add{display:none}.sync-badge{align-items:center;gap:var(--space-half);min-height:32px;padding:0 var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-xs);white-space:nowrap;display:inline-flex}.sync-badge-dot{background:var(--color-success);border-radius:50%;width:8px;height:8px}.sync-badge[data-state=offline] .sync-badge-dot{background:var(--color-text-subtle)}.sync-badge[data-state=pending] .sync-badge-dot{background:var(--color-warning)}.bottomnav{z-index:var(--z-nav);height:calc(var(--bottomnav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--color-surface);border-top:1px solid var(--color-border);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}.bottomnav-link{min-height:var(--tap-target);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);flex-direction:column;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.bottomnav-link[aria-current=page]{color:var(--color-accent-text)}.fab{right:var(--space-2);bottom:calc(var(--bottomnav-height) + var(--safe-bottom) + var(--space-2));z-index:var(--z-nav);border-radius:var(--radius-full);background:var(--color-accent);width:56px;height:56px;color:var(--color-on-accent);box-shadow:var(--shadow-md);border:0;place-items:center;display:grid;position:fixed}.fab:hover{background:var(--color-accent-hover)}.sidebar-brand{align-items:center;gap:var(--space-1);height:var(--topbar-height);padding-inline:var(--space-2);font-weight:var(--weight-bold);color:var(--color-text);text-decoration:none;display:flex}.sidebar-brand-mark{border-radius:var(--radius-sm);background:var(--color-accent);width:28px;height:28px;color:var(--color-on-accent);font-size:var(--text-sm);place-items:center;display:grid}.sidebar-nav{padding:var(--space-1);flex-direction:column;gap:2px;display:flex}.sidebar-link{align-items:center;gap:var(--space-1);min-height:40px;padding:0 var(--space-1);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none;display:flex}.sidebar-link:hover{background:var(--color-surface-2);color:var(--color-text)}.sidebar-link[aria-current=page]{background:var(--color-accent-soft);color:var(--color-accent-text)}.sidebar-footer{padding:var(--space-1);border-top:1px solid var(--color-border);margin-top:auto}@media (width>=900px){.app{grid-template-columns:var(--sidebar-width) 1fr;display:grid}.app-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;height:100dvh;display:flex;position:sticky;top:0;overflow-y:auto}.app-main{min-width:0;padding-bottom:var(--space-6)}.app-content{padding:var(--space-3) var(--space-4)}.topbar{padding-inline:var(--space-4) var(--space-2)}.topbar-title{flex:0 auto;padding-inline-start:0}.topbar-search{flex:1;max-width:420px;margin-inline-start:auto;display:flex}.topbar-add{display:inline-flex}.topbar-search-mobile,.bottomnav,.fab{display:none}}.guest{min-height:100dvh;padding:var(--space-2);place-items:center;display:grid}.guest-card{width:100%;max-width:400px}.guest-brand{justify-content:center;align-items:center;gap:var(--space-1);margin-bottom:var(--space-3);font-size:var(--text-lg);font-weight:var(--weight-bold);display:flex}.banner{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--color-warning-soft);color:var(--color-warning);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.banner a,.banner button{color:inherit;font-weight:var(--weight-semibold)}.sync-badge{cursor:pointer}.notif-btn{position:relative}.notif-count{border-radius:var(--radius-full);background:var(--color-danger);color:#fff;min-width:18px;height:18px;font-size:11px;font-weight:var(--weight-bold);text-align:center;padding:0 4px;line-height:18px;position:absolute;top:6px;right:4px}.notif-item.is-unread .list-row-title{font-weight:var(--weight-bold)}.btn{--btn-bg:var(--color-surface);--btn-fg:var(--color-text);--btn-border:var(--color-border-strong);justify-content:center;align-items:center;gap:var(--space-1);min-height:var(--tap-target);padding:0 var(--space-2);border:1px solid var(--btn-border);border-radius:var(--radius-md);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--text-base);font-weight:var(--weight-medium);white-space:nowrap;transition:background var(--duration-fast), border-color var(--duration-fast);line-height:1;text-decoration:none;display:inline-flex}.btn:hover{--btn-bg:var(--color-surface-2)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;pointer-events:none}.btn-primary{--btn-bg:var(--color-accent);--btn-fg:var(--color-on-accent);--btn-border:var(--color-accent)}.btn-primary:hover{--btn-bg:var(--color-accent-hover);--btn-border:var(--color-accent-hover)}.btn-ghost{--btn-bg:transparent;--btn-border:transparent}.btn-danger{--btn-bg:var(--color-danger);--btn-fg:#fff;--btn-border:var(--color-danger)}.btn-danger:hover{--btn-bg:var(--color-danger);filter:brightness(.95)}.btn-sm{min-height:36px;padding:0 var(--space-1);font-size:var(--text-sm)}.btn-block{width:100%}.btn-link{color:inherit;font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.icon-btn{width:var(--tap-target);height:var(--tap-target);border-radius:var(--radius-md);color:var(--color-text-muted);background:0 0;border:0;flex-shrink:0;place-items:center;padding:0;text-decoration:none;display:inline-grid}.icon-btn:hover{background:var(--color-surface-2);color:var(--color-text)}.icon-btn-accent{background:var(--color-accent);color:var(--color-on-accent)}.icon-btn-accent:hover{background:var(--color-accent-hover);color:var(--color-on-accent)}.icon-btn-disabled{opacity:.5;cursor:help;position:relative}.icon-btn-badge{color:var(--color-warning);position:absolute;bottom:6px;right:6px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.card-body{padding:var(--space-2)}.card-header{justify-content:space-between;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-2) var(--space-1);display:flex}.card-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.card-footer{padding:var(--space-1) var(--space-2);border-top:1px solid var(--color-border)}.list{padding:0;list-style:none}.list>li+li .list-row,.list>.list-row+.list-row{border-top:1px solid var(--color-border)}.list-row{align-items:center;gap:var(--space-1);min-height:56px;padding:var(--space-1) var(--space-2);color:inherit;text-decoration:none;display:flex}a.list-row:hover{background:var(--color-surface-2)}.list-row-main{flex:1;min-width:0}.list-row-title{font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-row-meta{color:var(--color-text-muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-row-actions{flex-shrink:0;gap:2px;display:flex}.list-row-button{text-align:left;background:0 0;border:0;width:100%}.list-row-button:hover{background:var(--color-surface-2)}.badge{--badge-bg:var(--color-surface-2);--badge-fg:var(--color-text-muted);align-items:center;gap:var(--space-half);min-height:24px;padding:0 var(--space-1);border-radius:var(--radius-full);background:var(--badge-bg);color:var(--badge-fg);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;display:inline-flex}.badge-accent{--badge-bg:var(--color-accent-soft);--badge-fg:var(--color-accent-text)}.badge-success{--badge-bg:var(--color-success-soft);--badge-fg:var(--color-success)}.badge-warning{--badge-bg:var(--color-warning-soft);--badge-fg:var(--color-warning)}.badge-danger{--badge-bg:var(--color-danger-soft);--badge-fg:var(--color-danger)}.badge-info{--badge-bg:var(--color-info-soft);--badge-fg:var(--color-info)}.chip{align-items:center;gap:var(--space-half);min-height:36px;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);display:inline-flex}.chip[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-text)}.chip:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-text)}.chip input{opacity:0;pointer-events:none;position:absolute}.avatar{width:var(--avatar-size,36px);height:var(--avatar-size,36px);border-radius:var(--radius-full);background:var(--color-accent-soft);color:var(--color-accent-text);font-size:calc(var(--avatar-size,36px) * .4);font-weight:var(--weight-semibold);text-transform:uppercase;flex-shrink:0;place-items:center;display:inline-grid}.avatar-sm{--avatar-size:28px}.avatar-lg{--avatar-size:48px}.stage-chip{align-items:center;gap:var(--space-half);min-height:24px;padding:0 var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;display:inline-flex}.stage-chip:before{content:"";background:var(--stage-color,var(--color-text-subtle));border-radius:50%;width:8px;height:8px}.progress{align-items:center;gap:var(--space-1);display:flex}.progress-track{border-radius:var(--radius-full);background:var(--color-surface-3);flex:1;height:6px;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--color-accent);height:100%;transition:width var(--duration-normal) var(--ease-out)}.progress-label{min-width:3ch;color:var(--color-text-muted);font-size:var(--text-xs);text-align:right}.sheet{border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--color-surface);width:100%;max-width:100%;max-height:92dvh;color:var(--color-text);box-shadow:var(--shadow-lg);border:0;margin:0;padding:0;position:fixed;inset:auto 0 0;overflow:hidden}.sheet[open]{animation:sheet-up var(--duration-normal) var(--ease-out);flex-direction:column;display:flex}.sheet::backdrop{background:var(--color-overlay)}.sheet-handle{width:40px;height:4px;margin:var(--space-1) auto 0;border-radius:var(--radius-full);background:var(--color-border-strong)}.sheet-header{justify-content:space-between;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-2);display:flex}.sheet-title{font-size:var(--text-md)}.sheet-body{padding:0 var(--space-2) var(--space-2);flex:1;overflow-y:auto}.sheet-footer{gap:var(--space-1);padding:var(--space-1) var(--space-2) calc(var(--space-1) + var(--safe-bottom));border-top:1px solid var(--color-border);display:flex}.sheet-footer>.btn{flex:1}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes panel-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media (width>=900px){.sheet{border-left:1px solid var(--color-border);border-radius:0;width:440px;height:100dvh;max-height:100dvh;inset:0 0 0 auto}.sheet[open]{animation-name:panel-in}.sheet-handle{display:none}}.sheet-content,.sheet-form{flex-direction:column;flex:1;min-height:0;display:flex}.sheet-form>.alert{margin:0 var(--space-2) var(--space-1)}.sheet-loading{min-height:200px;color:var(--color-text-muted);place-items:center;display:grid}.sheet-page{max-width:640px;margin-inline:auto}.sheet-page .sheet-body{padding-top:0;overflow:visible}.sheet-page .sheet-footer{justify-content:flex-end}.sheet-page .sheet-footer>.btn{flex:none}.modal{width:calc(100% - var(--space-4));border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);max-width:480px;color:var(--color-text);box-shadow:var(--shadow-lg);padding:0}.modal::backdrop{background:var(--color-overlay)}.modal-header{padding:var(--space-1) var(--space-1) 0 var(--space-2);justify-content:space-between;align-items:center;display:flex}.modal-body{padding:var(--space-2)}.modal-footer{justify-content:flex-end;gap:var(--space-1);padding:0 var(--space-2) var(--space-2);display:flex}.tabs{gap:var(--space-half);border-bottom:1px solid var(--color-border);scrollbar-width:none;display:flex;overflow-x:auto}.tab{min-height:var(--tap-target);padding:0 var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;text-decoration:none;display:inline-flex}.tab[aria-selected=true],.tab[aria-current=page]{border-bottom-color:var(--color-accent);color:var(--color-accent-text)}.empty-state{align-items:center;gap:var(--space-1);padding:var(--space-4) var(--space-2);text-align:center;flex-direction:column;display:flex}.empty-state-icon{width:56px;height:56px;margin-bottom:var(--space-1);border-radius:var(--radius-full);background:var(--color-surface-2);color:var(--color-text-subtle);place-items:center;display:grid}.empty-state-title{font-size:var(--text-md);font-weight:var(--weight-semibold)}.empty-state-text{max-width:36ch;color:var(--color-text-muted)}.empty-state-action{margin-top:var(--space-1)}.toasts{right:var(--space-2);bottom:calc(var(--bottomnav-height) + var(--safe-bottom) + var(--space-2));left:var(--space-2);z-index:var(--z-toast);align-items:center;gap:var(--space-1);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-1);max-width:480px;min-height:48px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);background:var(--color-text);color:var(--color-text-inverse);box-shadow:var(--shadow-lg);font-size:var(--text-sm);pointer-events:auto;animation:toast-in var(--duration-normal) var(--ease-out);display:flex}.toast-action{padding:var(--space-half) var(--space-1);color:inherit;font-weight:var(--weight-semibold);background:0 0;border:0;margin-inline-start:auto;text-decoration:underline}.toast-success .icon{color:var(--color-success-soft)}.toast-danger{background:var(--color-danger);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width>=900px){.toasts{bottom:var(--space-3);align-items:flex-end;left:auto}}.install-card{right:var(--space-2);bottom:calc(var(--bottomnav-height) + var(--safe-bottom) + var(--space-2));left:var(--space-2);z-index:var(--z-sheet);gap:var(--space-2);max-width:480px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);animation:toast-in var(--duration-normal) var(--ease-out);margin-inline:auto;display:flex;position:fixed}.install-card-icon img{border-radius:var(--radius-md);display:block}.install-card-body{flex:1;min-width:0}.install-card-title{margin:0 var(--space-4) var(--space-half) 0;font-size:var(--text-base)}.install-card-text{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.install-card-key{font-weight:var(--weight-medium);color:var(--color-text);align-items:center;gap:2px;display:inline-flex}.install-card-actions{gap:var(--space-1);margin-top:var(--space-1);display:flex}.install-card-close{top:var(--space-half);right:var(--space-half);position:absolute}@media (width>=900px){.install-card{display:none}}@media (prefers-reduced-motion:reduce){.install-card{animation:none}}.field{gap:var(--space-half);flex-direction:column;display:flex}.label{font-size:var(--text-sm);font-weight:var(--weight-medium)}.hint{color:var(--color-text-muted);font-size:var(--text-xs)}.field-error{align-items:center;gap:var(--space-half);color:var(--color-danger);font-size:var(--text-sm);display:flex}.input,.select,.textarea{width:100%;min-height:var(--tap-target);padding:var(--space-1) var(--space-2) var(--space-1) 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-base)}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-focus);outline:2px solid color-mix(in srgb, var(--color-focus) 25%, transparent);outline-offset:0}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--color-danger)}.textarea{resize:vertical;min-height:96px}.select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px;padding-inline-end:var(--space-4)}.checkbox{align-items:center;gap:var(--space-1);min-height:var(--tap-target);display:flex}.checkbox input{width:20px;height:20px;accent-color:var(--color-accent)}.search-input{align-items:center;width:100%;display:flex;position:relative}.search-input .icon{color:var(--color-text-subtle);pointer-events:none;position:absolute;left:12px}.search-input .input{background:var(--color-surface-2);border-color:#0000;min-height:40px;padding-inline-start:40px}.alert{gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);background:var(--color-info-soft);color:var(--color-info);font-size:var(--text-sm);display:flex}.alert-success{background:var(--color-success-soft);color:var(--color-success)}.alert-danger{background:var(--color-danger-soft);color:var(--color-danger)}.alert-warning{background:var(--color-warning-soft);color:var(--color-warning)}.kanban{gap:var(--space-2);padding-bottom:var(--space-2);scroll-snap-type:x mandatory;display:flex;overflow-x:auto}.kanban-column{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-2);scroll-snap-align:start;flex-direction:column;flex:0 0 85%;max-height:calc(100dvh - 200px);display:flex}.kanban-column-header{justify-content:space-between;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);display:flex}.kanban-column-body{gap:var(--space-1);min-height:80px;padding:0 var(--space-1) var(--space-1);flex-direction:column;flex:1;display:flex;overflow-y:auto}.kanban-card{padding:var(--space-1) 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:grab}.kanban-card.sortable-ghost{opacity:.4}@media (width>=900px){.kanban-column{flex-basis:280px}}.kanban-column-closing{opacity:.9;flex-basis:60%}.kanban-drop-hint{padding:var(--space-2) var(--space-1);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}.kanban-card{gap:var(--space-half);flex-direction:column;display:flex}.kanban-card-title{color:var(--color-text);font-weight:var(--weight-medium);text-decoration:none}.kanban-card-meta{gap:var(--space-half) var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.kanban-card-meta:empty{display:none}.kanban-card-move{margin-top:var(--space-half)}.kanban-card.is-saving{opacity:.6}.sortable-chosen{box-shadow:var(--shadow-md)}@media (width>=900px){.kanban-column-closing{flex-basis:200px}}.kanban-card-locked{cursor:default}.timeline{padding:0;list-style:none;position:relative}.timeline-item{gap:var(--space-1);padding-bottom:var(--space-2);grid-template-columns:32px 1fr;display:grid;position:relative}.timeline-item:before{content:"";background:var(--color-border);width:2px;position:absolute;top:32px;bottom:0;left:15px}.timeline-item:last-child:before{display:none}.timeline-icon{border-radius:var(--radius-full);background:var(--color-surface-2);width:32px;height:32px;color:var(--color-text-muted);place-items:center;display:grid}.timeline-content{min-width:0;padding-top:4px}.timeline-meta{color:var(--color-text-muted);font-size:var(--text-xs)}.timeline-item-marker{color:var(--color-text-muted);font-size:var(--text-sm);align-items:center}.timeline-item-marker .timeline-icon{background:var(--stage-color,var(--color-border-strong));width:12px;height:12px;margin-left:10px}.timeline-item-marker:before{top:20px}.workspace-switcher{margin:0 var(--space-1) var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.workspace-switcher>summary,div.workspace-switcher{min-height:var(--tap-target);padding:var(--space-half) 12px;cursor:pointer;grid-template-columns:1fr auto;align-items:center;list-style:none;display:grid}div.workspace-switcher{cursor:default}.workspace-switcher>summary::-webkit-details-marker{display:none}.workspace-switcher-label{color:var(--color-text-subtle);font-size:var(--text-xs);grid-column:1}.workspace-switcher-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;grid-column:1;overflow:hidden}.workspace-switcher>summary .icon{color:var(--color-text-muted);grid-area:1/2/span 2}.workspace-switcher[open]>summary .icon{transform:rotate(180deg)}.workspace-switcher .list{border-top:1px solid var(--color-border)}.workspace-switcher-option{width:100%;min-height:var(--tap-target);font-size:var(--text-sm);text-align:left;background:0 0;border:0}.workspace-switcher-option:hover{background:var(--color-surface-2)}.sheet .workspace-switcher{margin:0 0 var(--space-2)}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-1) var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.page-header h1{font-size:var(--text-xl)}.page-header-meta{color:var(--color-text-muted);font-size:var(--text-sm)}.filters{gap:var(--space-1);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.filters .input,.filters .select{flex:180px;width:auto}.details{gap:var(--space-1) var(--space-2);font-size:var(--text-sm);grid-template-columns:minmax(96px,max-content) 1fr;display:grid}.details dt{color:var(--color-text-muted)}.details dd{overflow-wrap:anywhere;min-width:0;margin:0}.form-grid{gap:var(--space-2);display:grid}@media (width>=700px){.form-grid-2{grid-template-columns:1fr 1fr}.form-grid-2>.span-2{grid-column:span 2}}.form-actions{gap:var(--space-1);margin-top:var(--space-2);flex-wrap:wrap;display:flex}fieldset{border:0;min-width:0;padding:0}legend{margin-bottom:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium)}.next-step{padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md)}.next-step+.next-step{margin-top:var(--space-1)}.next-step:has(>legend input:checked){border-color:var(--color-accent);background:var(--color-accent-soft)}.pagination{justify-content:space-between;gap:var(--space-1);margin-top:var(--space-2);display:flex}.layout-2col{gap:var(--space-2);display:grid}@media (width>=1100px){.layout-2col{grid-template-columns:minmax(0,1fr) 360px;align-items:start}}.danger-zone{border-color:var(--color-danger-soft)}.text-danger{color:var(--color-danger)}.inline-form{display:inline}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-weight:var(--weight-medium);text-align:left;white-space:nowrap}.table td{padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--color-border);vertical-align:middle}.num{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right!important}.invoice-lines td{padding:var(--space-half)}.invoice-lines .col-qty{width:80px}.invoice-lines .col-price{width:130px}.invoice-lines .col-tax{width:150px}.invoice-lines .col-amount{width:120px}.invoice-lines .col-remove{width:48px}.invoice-lines .input,.invoice-lines .select{min-height:40px}.totals{gap:2px var(--space-2);font-variant-numeric:tabular-nums;grid-template-columns:auto auto;margin-left:auto;display:grid}.totals dt{color:var(--color-text-muted)}.totals dd{text-align:right;margin:0}.totals .total{font-weight:var(--weight-bold);color:var(--color-text)}.chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.chips-sm .chip{min-height:32px;font-size:var(--text-xs);padding:0 12px}.chip{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}button.chip:hover{background:var(--color-surface-2)}.chip:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.chip-stage:before{content:"";background:var(--stage-color);border-radius:50%;width:8px;height:8px}.chip-won:has(input:checked){border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success)}.chip-lost:has(input:checked){border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger)}.segmented{border-radius:var(--radius-md);background:var(--color-surface-2);grid-template-columns:repeat(3,1fr);padding:3px;display:grid}.segment{position:relative}.segment input{opacity:0;position:absolute}.segment span{border-radius:calc(var(--radius-md) - 3px);min-height:40px;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;place-items:center;display:grid}.segment input:checked+span{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.segment input:focus-visible+span{outline:2px solid var(--color-focus)}.next{gap:var(--space-2);flex-direction:column;display:flex}.next-panel{padding-top:var(--space-half)}.input-date{flex:160px;width:auto}.input-time{flex:0 120px;width:auto}.disclosure>summary{min-height:var(--tap-target);color:var(--color-accent-text);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;align-items:center;display:inline-flex}.menu{position:relative}.menu>summary{cursor:pointer;list-style:none}.menu>summary::-webkit-details-marker{display:none}.menu-panel{z-index:var(--z-overlay);min-width:200px;margin-top:var(--space-half);padding:var(--space-half);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);position:absolute;right:0}form.menu-panel{padding:var(--space-1)}.menu-item{justify-content:space-between;gap:var(--space-2);width:100%;min-height:var(--tap-target);padding:0 var(--space-1);border-radius:var(--radius-sm);font-size:var(--text-sm);text-align:left;background:0 0;border:0;display:flex}.menu-item:hover{background:var(--color-surface-2)}.select-sm{min-height:36px;font-size:var(--text-sm);padding-block:0}.row-with-actions{padding-right:var(--space-1);align-items:center;display:flex}.row-with-actions>.list-row{flex:1;min-width:0}.row-with-actions+.row-with-actions{border-top:1px solid var(--color-border)}.list-row-quick{flex-shrink:0;display:flex}.today-greeting h1{font-size:var(--text-2xl)}.today-counters{gap:var(--space-1);grid-template-columns:repeat(2,1fr);display:grid}.counter{padding:12px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:inherit;flex-direction:column;gap:2px;text-decoration:none;display:flex}.counter-value{font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:1.1}.counter-label{color:var(--color-text-muted);font-size:var(--text-sm)}.counter-danger .counter-value{color:var(--color-danger)}@media (width>=600px){.today-counters{grid-template-columns:repeat(4,1fr)}}.today-section{gap:var(--space-1);scroll-margin-top:calc(var(--topbar-height) + var(--space-2));flex-direction:column;display:flex}.today-section-title{align-items:center;gap:var(--space-1);font-size:var(--text-md);display:flex}.today-list{padding:0;list-style:none;overflow:visible}.today-row{align-items:center;gap:var(--space-1) var(--space-2);padding:12px var(--space-2);flex-wrap:wrap;display:flex}.today-row+.today-row{border-top:1px solid var(--color-border)}.today-row-main{flex:220px;min-width:0}.today-row-title{font-weight:var(--weight-medium);overflow-wrap:anywhere}.today-row-title a{color:inherit;text-decoration:none}.today-row-title a:hover{text-decoration:underline}.today-row-meta{align-items:center;gap:var(--space-half) var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm);flex-wrap:wrap;margin-top:2px;display:flex}.today-row-actions{flex-wrap:wrap;align-items:center;gap:2px;margin-left:auto;display:flex}.today-row .progress{margin-top:var(--space-1)}a.counter:hover{border-color:var(--color-border-strong)}.offline-state{place-items:center;min-height:60dvh;display:grid}.cal-toolbar{align-items:center;gap:var(--space-1);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.cal-toolbar h1{min-width:160px;font-size:var(--text-lg);flex:1}.cal-grid{border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.cal-head,.cal-day{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.cal-head{padding:var(--space-half);color:var(--color-text-muted);font-size:var(--text-xs);text-align:center}.cal-day{min-height:64px;padding:var(--space-half);color:inherit;font-size:var(--text-xs);flex-direction:column;gap:2px;text-decoration:none;display:flex}.cal-day:hover{background:var(--color-surface-2)}.cal-day.is-other{color:var(--color-text-subtle);background:var(--color-bg)}.cal-day.is-today .cal-date{background:var(--color-accent);color:var(--color-on-accent)}.cal-date{border-radius:var(--radius-full);width:22px;height:22px;font-weight:var(--weight-semibold);place-items:center;display:inline-grid}.cal-dot{background:var(--color-surface-3);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:1px 4px;overflow:hidden}.cal-dot.kind-meeting{background:var(--color-info-soft);color:var(--color-info)}.cal-dot.kind-waiting{background:var(--color-warning-soft);color:var(--color-warning)}.cal-dot.kind-project{background:var(--color-accent-soft);color:var(--color-accent-text)}.cal-dot.is-done{opacity:.7;text-decoration:line-through}.cal-more{color:var(--color-text-muted)}@media (width<=599px){.cal-dot{display:none}.cal-day .cal-count{display:block}.cal-day{align-items:center;min-height:48px}}.cal-count{color:var(--color-accent-text);font-weight:var(--weight-bold);display:none}.cal-list-day{margin-top:var(--space-2)}.cal-list-day h2{margin-bottom:var(--space-1);font-size:var(--text-md)}.event-kind{background:var(--color-text-subtle);border-radius:50%;flex-shrink:0;width:10px;height:10px}.event-kind.kind-meeting{background:var(--color-info)}.event-kind.kind-waiting{background:var(--color-warning)}.event-kind.kind-project{background:var(--color-accent)}.cal-dot.kind-invoice{background:var(--color-danger-soft);color:var(--color-danger)}.event-kind.kind-invoice{background:var(--color-danger)}.bar{background:var(--color-surface-3);border-radius:4px;height:8px;overflow:hidden}.bar>span{background:var(--color-accent);border-radius:inherit;height:100%;display:block}.counter-success .counter-value{color:var(--color-success)}
