@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_fcbcbf{font-family:Inter,Inter Fallback;font-style:normal}@property --daylight-warmth{syntax:"<number>";inherits:true;initial-value:0}:root{transition:--daylight-warmth .7s ease}:root[data-daylight-boot]{transition:none}@media (prefers-reduced-motion:reduce){:root{transition:none}}:root{--daylight-warmth:0;--daylight-tint:#ff9d3d;--daylight-mix:calc(var(--daylight-warmth) * 14%);--bg:color-mix(in oklab,#f5f5f5,var(--daylight-tint) var(--daylight-mix));--panel:color-mix(in oklab,rgba(250,251,252,0.92),var(--daylight-tint) var(--daylight-mix));--panel-solid:color-mix(in oklab,#f8f9fb,var(--daylight-tint) var(--daylight-mix));--card-bg:color-mix(in oklab,#f1f2f3f4,var(--daylight-tint) var(--daylight-mix));--card-panel-bg:color-mix(in oklab,#fff,var(--daylight-tint) var(--daylight-mix));--line:rgba(24,28,34,0.11);--text:#292929;--muted:#636c78;--accent:#1f1919;--accent-ink:#1f1919;--accent-soft:#ededed;--danger:#a33333;--ok-bg:#ddeee2;--ok-text:#1e4a2c;--bad-bg:#f3e1e1;--bad-text:#6b2d2d;--warn-bg:#f3ecd9;--warn-text:#6b5320;--sel-bg:#fbf0d0;--sel-text:#6d4f0f;--sel-line:#d0a94b;--neutral-bg:#e6e9ed;--neutral-text:#4b5563;--shadow:0 24px 60px rgba(18,24,32,0.07);--wash-hover:rgba(24,28,34,0.05);--wash-focus:rgba(24,28,34,0.07);--row-hover:color-mix(in oklab,#fff,var(--daylight-tint) var(--daylight-mix));--input-bg:color-mix(in oklab,#fff,var(--daylight-tint) var(--daylight-mix));--field-bg:color-mix(in oklab,rgba(255,255,255,0.8),var(--daylight-tint) var(--daylight-mix));--field-bg-focus:color-mix(in oklab,rgba(255,255,255,0.8),var(--daylight-tint) var(--daylight-mix));--field-border-focus:rgba(18,24,32,0.28);--toolbar-btn-bg:color-mix(in oklab,#ffffff,var(--daylight-tint) var(--daylight-mix));--toolbar-btn-bg-hover:color-mix(in oklab,#eef0f3,var(--daylight-tint) var(--daylight-mix));--chrome-bg:color-mix(in oklab,rgba(240,240,240,0.94),var(--daylight-tint) var(--daylight-mix));--chrome-bg-soft:color-mix(in oklab,rgba(247,248,250,0.86),var(--daylight-tint) var(--daylight-mix));--chrome-bg-strong:color-mix(in oklab,rgba(247,248,250,0.98),var(--daylight-tint) var(--daylight-mix));--chrome-line:rgba(24,28,34,0.075);--surface-raised:color-mix(in oklab,rgba(251,252,253,0.98),var(--daylight-tint) var(--daylight-mix));--surface-glass:color-mix(in oklab,rgba(255,255,255,0.62),var(--daylight-tint) var(--daylight-mix));--surface-glass-strong:color-mix(in oklab,rgba(255,255,255,0.84),var(--daylight-tint) var(--daylight-mix));--surface-chip:rgba(28,34,43,0.08);--nav-item-hover:color-mix(in oklab,rgba(255,255,255,0.62),var(--daylight-tint) var(--daylight-mix));--nav-item-active:rgba(28,34,43,0.08);--overlay-scrim:rgba(18,24,32,0.34);--overlay-scrim-strong:rgba(0,0,0,0.4);--wash-faint:rgba(24,28,34,0.04);--wash-strong:rgba(24,28,34,0.06)}*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;color:var(--text);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;background:transparent}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(18,24,32,.022) 1px,transparent 0);background-size:100% 32px;opacity:.4}h1,h2,p,ul{margin:0}h1{margin-top:10px;font-size:clamp(2rem,4vw,3rem);font-weight:650;letter-spacing:-.04em;line-height:1.02}h2{font-size:1.16rem;font-weight:600;letter-spacing:-.02em;margin-bottom:10px}label{font-size:.95rem}button,input{font:inherit}input{border:1px solid var(--line);background:var(--field-bg);color:var(--text);padding:14px 16px;outline:none}input:focus{border-color:var(--field-border-focus);background:var(--field-bg-focus)}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}button{border:0;background:transparent;color:inherit;cursor:pointer;transition:transform .12s ease,opacity .12s ease}button:hover{opacity:.94}button:active{transform:translateY(1px)}.button-muted{width:auto;background:var(--accent-soft);color:var(--text);padding-inline:18px}textarea{border:1px solid var(--line);background:var(--field-bg);color:var(--text);border-radius:0;padding:10px 12px;font:inherit;resize:vertical;min-height:100px}textarea:focus{border-color:var(--field-border-focus);background:var(--field-bg-focus)}select{background:var(--field-bg);border-color:var(--line);color:var(--text)}body.popup-open{overflow:hidden}.inline-link{width:auto;display:inline-flex}.muted{line-height:1.55}.muted,.muted-list li{color:var(--muted)}.eyebrow,.meta-label,.section-label{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--muted)}.text-dim{color:var(--muted);font-size:12px}.error{color:var(--danger);font-size:.95rem}.code-block{display:block;margin-top:10px;padding:14px 16px;border-radius:18px;background:var(--panel-solid);border:1px solid var(--line);overflow-wrap:anywhere;font-size:.92rem}:root{--grain-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='2.2' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.fx-grain{position:relative}.fx-grain:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background-image:var(--grain-img);background-size:48px 48px;opacity:.3;mix-blend-mode:soft-light}.ui-status{display:inline-flex;align-items:center;font-size:.7rem;font-weight:300;line-height:1.4;padding:1px 7px;border-radius:3px;white-space:nowrap;text-transform:lowercase;background:var(--neutral-bg);color:var(--neutral-text)}.ui-status[data-status=active]{background:var(--ok-bg);color:var(--ok-text)}.ui-status[data-status=archived]{background:var(--bad-bg);color:var(--bad-text)}.ui-status[data-status=in_progress]{background:var(--warn-bg);color:var(--warn-text)}.ui-status[data-status=live]{background:var(--ok-bg);color:var(--ok-text)}.ui-status[data-status=running]{background:var(--neutral-bg);color:var(--accent-ink)}.ui-status[data-status=looping],.ui-status[data-status=stalled],.ui-status[data-status=waiting]{background:var(--warn-bg);color:var(--warn-text)}.ui-status[data-status=done]{background:var(--ok-bg);color:var(--ok-text)}.ui-status[data-status=failed],.ui-status[data-status=stopped]{background:var(--bad-bg);color:var(--bad-text)}.ui-button{--ui-button-bg:var(--accent);--ui-button-fg:#f8fafc;--ui-button-border:transparent;width:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 16px;border-radius:2px;border:1px solid var(--ui-button-border);background:var(--ui-button-bg);color:var(--ui-button-fg);text-decoration:none;white-space:nowrap}.ui-button-sm{min-height:34px;padding:7px 12px;border-radius:2px;font-size:.92rem}.ui-button-lg{min-height:48px;padding:12px 20px;border-radius:2px}.ui-button-style-icon{min-width:42px;padding-inline:0}.ui-button-style-text-icon{gap:8px}.ui-button-icon-mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.ui-button-icon-mark svg{width:16px;height:16px;display:block}.btn-metal{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;-webkit-backface-visibility:hidden;backface-visibility:hidden;color:#fff;border-radius:2px;padding:7px 25px;font-size:.92rem;font-weight:400;text-shadow:0 1px 4px rgba(0,0,0,.45);border:1px solid #505050;background:linear-gradient(180deg,#838383,#6d7073 45%,#494a4d 55%,#6d7073);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 1px 3px rgba(0,0,0,.3);cursor:pointer;text-decoration:none}.btn-metal:active{transform:translateY(2px)}[data-theme=dark] .btn-metal{background:linear-gradient(180deg,#777777,#636568 45%,#424346 55%,#636568);box-shadow:inset 0 1px 0 rgba(255,255,255,.58),0 1px 3px rgba(0,0,0,.39)}.btn-metal:disabled{opacity:.55;cursor:default}.btn-metal:disabled:active{transform:none}.btn-metal:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background-image:var(--grain-img);background-size:48px 48px;opacity:.3;mix-blend-mode:soft-light}.btn-metal>span{position:relative;z-index:1;display:inline-flex;align-items:center;gap:7px}.btn-metal svg{width:15px;height:15px;flex-shrink:0;margin-top:-1px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.ui-button-primary{--ui-button-bg:var(--accent);--ui-button-fg:#f8fafc}.ui-button-secondary{--ui-button-bg:rgba(255,255,255,0.9);--ui-button-fg:var(--text);--ui-button-border:var(--line)}.ui-button-muted{--ui-button-bg:rgba(221,226,232,0.95);--ui-button-fg:var(--text);--ui-button-border:rgba(24,28,34,0.08)}.ui-button-success{--ui-button-bg:#2c7a5b;--ui-button-fg:#fff}.ui-button-danger{--ui-button-bg:#392626;--ui-button-fg:#fff;position:relative;overflow:hidden;background:linear-gradient(180deg,transparent 0,rgba(0,0,0,.4) 50%,transparent 100%),var(--ui-button-bg)}[data-theme=dark] .ui-button-danger{--ui-button-bg:#461b1b}.ui-button-danger:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background-image:var(--grain-img);background-size:48px 48px;opacity:.3;mix-blend-mode:soft-light}.ui-button-ghost{--ui-button-bg:transparent;--ui-button-fg:var(--text);--ui-button-border:var(--line)}.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:12px 16px;border:1px solid var(--line);background:var(--card-panel-bg);flex-wrap:wrap}.list-toolbar.list-toolbar-plain{border:none;background:transparent}[data-theme=dark] body.app-shell-body .list-toolbar.list-toolbar-plain{background:transparent}.list-toolbar-left{display:flex;flex-direction:column;gap:2px}.list-toolbar-right{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.list-toolbar-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.list-toolbar-filter{position:relative}.list-toolbar-trigger{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border:none;background:var(--toolbar-btn-bg);color:var(--muted);font:inherit;font-size:.78rem;font-weight:500;cursor:pointer;transition:background .12s,color .12s}.list-toolbar-trigger:hover{background:var(--toolbar-btn-bg-hover);color:var(--text)}.list-toolbar-trigger svg{width:14px;height:14px;flex-shrink:0}.list-toolbar-plain .list-toolbar-trigger{font-size:.86rem;padding:9px 14px}.list-toolbar-plain .list-toolbar-trigger svg{width:16px;height:16px}.card,.task-card{background:var(--card-panel-bg);border:1px solid var(--line);padding:28px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.auth-card{width:min(460px,calc(100vw - 32px))}.meta-pill{background:var(--panel-solid);border:1px solid var(--line);color:var(--muted)}.meta-pill,.status{display:inline-flex;align-items:center;padding:8px 12px;font-size:.9rem}.status{border-radius:999px}.status-ok{background:var(--ok-bg);color:var(--ok-text)}.status-bad{background:var(--bad-bg);color:var(--bad-text)}.status-neutral{background:var(--neutral-bg);color:var(--neutral-text)}.flash{padding:14px 16px;border-radius:18px;border:1px solid var(--line)}.flash-ok{background:var(--ok-bg);color:var(--ok-text)}.flash-bad{background:var(--bad-bg);color:var(--bad-text)}.tables-block{margin-top:20px}.table-list{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.table-list li{padding:12px 14px;border-radius:16px;background:var(--surface-glass);border:1px solid var(--line)}.invoice-form-overlay{position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.35);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);align-items:flex-start;justify-content:center;padding-top:120px;display:none}.invoice-form-overlay.is-open{display:flex}.invoice-form-modal{width:100%;max-width:480px}.invoice-form-fields{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.invoice-form-actions{display:flex;gap:8px;justify-content:flex-end}.ui-link{display:inline-flex;align-items:center;gap:6px;width:auto;min-height:32px;padding:0 10px;border:1px solid transparent;border-radius:9px;text-decoration:none;font-size:.85rem;font-weight:600;line-height:1;transition:color .12s ease,background .12s ease,border-color .12s ease}.ui-link,.ui-link:visited{color:var(--muted)}.ui-link:hover{color:var(--text);background:var(--surface-glass);border-color:var(--line);opacity:1}.ui-link:focus-visible{outline:2px solid color-mix(in srgb,var(--accent-ink) 45%,transparent);outline-offset:2px}.ui-link-inline{font:inherit;text-decoration:underline;text-underline-offset:2px;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);transition:-webkit-text-decoration-color .12s ease;transition:text-decoration-color .12s ease;transition:text-decoration-color .12s ease,-webkit-text-decoration-color .12s ease}.ui-link-inline,.ui-link-inline:visited{color:var(--text)}.ui-link-inline:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.ui-link-inline:focus-visible{outline:2px solid color-mix(in srgb,var(--accent-ink) 45%,transparent);outline-offset:2px}.ui-switcher{--ui-switcher-bg:rgba(255,255,255,0.78);--ui-switcher-shadow:0 10px 24px rgba(18,24,32,0.05);padding:4px;border:none;background:var(--ui-switcher-bg);box-shadow:var(--ui-switcher-shadow)}.ui-switcher,.ui-switcher-option{display:inline-flex;align-items:center;gap:6px}.ui-switcher-option{min-width:88px;justify-content:center;padding:9px 14px;color:var(--text);text-decoration:none;background:transparent;border:0;width:auto}.ui-switcher-style-icon .ui-switcher-option{min-width:42px;padding-inline:10px}.ui-switcher-style-text-icon .ui-switcher-option{gap:8px}.ui-switcher-icon-mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.ui-switcher-icon-mark svg{width:16px;height:16px;display:block}.ui-switcher-option.active{background:var(--surface-chip);color:var(--text);font-weight:600}.ui-switcher-option:disabled{color:var(--muted);cursor:not-allowed}.ui-switcher-option:disabled.active{background:transparent;font-weight:400}.ui-switcher-soft{--ui-switcher-bg:rgba(255,255,255,0.78)}.ui-switcher-outline{--ui-switcher-bg:transparent;--ui-switcher-shadow:none}.ui-switcher-compact{padding:3px}.ui-switcher-soft.ui-switcher-compact{--ui-switcher-bg:transparent;--ui-switcher-shadow:none}.ui-switcher-compact .ui-switcher-option{min-width:72px;padding:7px 11px;font-size:.92rem}.ptb{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;min-height:40px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.ptb::-webkit-scrollbar{display:none}.ptb-actions,.ptb-filters,.ptb-tabs{display:flex;align-items:center;gap:8px;min-width:0}.ptb-filters{grid-column:1;justify-self:start;flex-wrap:nowrap;position:relative}.ptb-tabs{grid-column:2;justify-content:center}.ptb-actions{grid-column:3;justify-self:end;flex-wrap:nowrap}@media (min-width:761px) and (max-width:960px){.page-shell-header:not(:empty){padding-left:48px}}@media (max-width:760px){.ptb{display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.ptb::-webkit-scrollbar{display:none}.ptb-actions,.ptb-filters,.ptb-tabs{flex:0 0 auto;flex-wrap:nowrap;white-space:nowrap}.ptb-actions{margin-left:auto}}.ptb-view-switcher{background:var(--toolbar-btn-bg);padding:2px;box-shadow:none}.ptb-view-switcher .ui-switcher-option{height:32px;padding:0 10px}.ptb-icon-btn{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;background:var(--toolbar-btn-bg);color:var(--muted);cursor:pointer;transition:background .12s,color .12s}.projects-icon-btn.is-active,.ptb-icon-btn.is-active,.ptb-icon-btn:hover{background:var(--toolbar-btn-bg-hover);color:var(--text)}.selpop-trigger.ptb-select{height:36px;padding:0 12px;border:none;background:var(--toolbar-btn-bg);color:var(--text);font-size:13px;font-weight:500;max-width:220px}.selpop-trigger.ptb-select:hover{background:var(--toolbar-btn-bg-hover)}.ptb-search{display:flex;align-items:center;gap:10px;height:40px;margin-top:10px;padding:0 14px;background:var(--toolbar-btn-bg);color:var(--muted)}.ptb-search:focus-within{color:var(--text)}.ptb-search svg{flex-shrink:0}.ptb-search input{flex:1 1 auto;min-width:0;border:none;background:transparent;color:var(--text);font:inherit;font-size:14px;outline:none}.ptb-search input::placeholder{color:var(--muted)}.ptb-search-count{flex-shrink:0;font-size:12px;color:var(--muted);white-space:nowrap}.ptb-search-close{flex-shrink:0;width:28px;height:28px;border:none;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}.ptb-search-close:hover{color:var(--text)}.main-popup-root{position:fixed;inset:0;z-index:10050}.main-popup-backdrop{position:absolute;inset:0;background:var(--overlay-scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.main-popup{--popup-accent:#2563eb;position:relative;width:min(520px,calc(100vw - 28px));margin:clamp(132px,17vh,172px) auto 0;padding:24px;border-radius:24px;border:1px solid var(--line);background:var(--surface-raised);box-shadow:0 30px 80px rgba(18,24,32,.22)}.main-popup[data-tone=success]{--popup-accent:#2c7a5b}.main-popup[data-tone=warning]{--popup-accent:#b7791f}.main-popup[data-tone=danger]{--popup-accent:#b04747}.main-popup-close{position:absolute;top:14px;right:14px;width:36px;height:36px;padding:0;border-radius:50%;background:var(--wash-strong);color:var(--text)}.main-popup-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--muted);margin-bottom:10px}.main-popup h2{margin-bottom:12px;padding-right:42px}.main-popup-message{margin:0;color:var(--muted);line-height:1.6}.main-popup-actions{position:relative;display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:18px}.main-popup-actions:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:999px;background:var(--popup-accent)}.main-popup-confirm{width:auto;padding-inline:18px;background:var(--popup-accent)}.popup-lab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.popup-lab-card{display:grid;grid-gap:10px;gap:10px}.popup-lab-actions{display:flex;flex-wrap:wrap;gap:12px}.popup-lab-button{width:auto;padding-inline:18px}.popup-lab-button-danger{background:#8a2e2e}@keyframes popup-shake{0%,to{transform:translateX(0)}15%{transform:translateX(-7px)}30%{transform:translateX(6px)}45%{transform:translateX(-4px)}60%{transform:translateX(3px)}80%{transform:translateX(-2px)}}.popup-shake{animation:popup-shake .32s ease-in-out}@media (prefers-reduced-motion:reduce){.popup-shake{animation:none;outline:2px solid var(--sel-line,var(--line));outline-offset:2px}}.pp-overlay{position:fixed;inset:0;z-index:260;display:flex;align-items:center;justify-content:center;padding:24px 16px;overflow-y:auto}.pp-backdrop{position:absolute;inset:0;background:var(--overlay-scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.pp-panel{position:relative;z-index:1;width:100%;margin:auto;display:flex;flex-direction:column;background:var(--card-bg);border:1px solid var(--line);box-shadow:0 12px 40px rgba(0,0,0,.18);padding:22px 24px 18px;max-height:calc(100vh - 48px)}.pp-sm{max-width:380px}.pp-md{max-width:480px}.pp-lg{max-width:640px}.pp-head,.sp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;flex-shrink:0}.pp-head-text{min-width:0}.pp-eyebrow{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}.pp-title{font-size:1.05rem;font-weight:700;margin:0;color:var(--text)}.pp-close{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--muted);font-size:1.05rem;line-height:1;cursor:pointer;transition:background .12s,color .12s}.pp-close:hover{background:var(--wash-hover);color:var(--text)}.pp-body,.sp-body{gap:14px;min-height:0;overflow-y:auto}.pp-body,.pp-field,.sp-body{display:flex;flex-direction:column}.pp-field{gap:5px;min-width:0}.pp-label{font-weight:600;text-transform:uppercase;letter-spacing:.06em}.pp-hint,.pp-label{font-size:11px;color:var(--muted)}.pp-hint{line-height:1.45}.pp-body input[type=email],.pp-body input[type=number],.pp-body input[type=search],.pp-body input[type=text],.pp-body textarea,.sp-body input[type=email],.sp-body input[type=text]{width:100%;box-sizing:border-box;min-height:36px;padding:7px 10px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;font-size:.86rem}.pp-body textarea,.sp-body textarea{min-height:76px;resize:vertical}.pp-body input:focus,.pp-body textarea:focus,.sp-body input:focus,.sp-body textarea:focus{outline:none;border-color:var(--focus-line,var(--muted))}.pp-row{display:flex;align-items:center;gap:8px}.pp-row>:first-child{flex:1 1;min-width:0}.pp-foot,.sp-foot{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.pp-foot-main{margin-left:auto}.pp-foot-extra,.pp-foot-main{display:flex;align-items:center;gap:8px}.pp-foot-extra{font-size:.8rem;color:var(--muted);min-width:0}.pp-foot-extra a{color:var(--muted);text-decoration:none}.pp-foot-extra a:hover{color:var(--text);text-decoration:underline}.pp-btn-quiet{border:none;background:transparent;color:var(--muted);font:inherit;font-size:.86rem;padding:7px 12px;cursor:pointer;transition:color .12s,background .12s}.pp-btn-quiet:hover{color:var(--text);background:var(--wash-hover)}.pp-btn-danger{border:1px solid transparent;background:var(--bad-bg);color:var(--bad-text);font:inherit;font-size:.86rem;padding:7px 12px;cursor:pointer}.pp-btn-danger:hover{border-color:var(--bad-text)}.pp-btn-danger:disabled{opacity:.55;cursor:default}.pp-empty{padding:18px 4px;text-align:center;font-size:.8rem;color:var(--muted)}.pp-error{font-size:.8rem;color:var(--bad-text);margin:0}.sp-overlay{position:fixed;inset:0;z-index:240;display:flex;justify-content:flex-end}.sp-backdrop{position:absolute;inset:0;background:var(--overlay-scrim)}.sp-panel{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;background:var(--card-bg);border-left:1px solid var(--line);box-shadow:-12px 0 40px rgba(0,0,0,.22);padding:18px 22px 14px;animation:sp-slide-in .22s ease}@keyframes sp-slide-in{0%{transform:translateX(100%)}to{transform:translateX(0)}}@media (prefers-reduced-motion:reduce){.sp-panel{animation:none}}.sp-sm{width:clamp(320px,32%,480px)}.sp-md{width:clamp(460px,50%,900px)}.sp-lg{width:clamp(560px,70%,1200px)}@media (max-width:640px){.sp-lg,.sp-md,.sp-sm{width:100%}}.sp-head{margin-bottom:14px}.sp-head-extra{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:.8rem;color:var(--muted)}.sp-body{flex:1 1;gap:16px}.sp-foot{margin-top:14px}.ovd-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--line)}.ovd-check{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:var(--text);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ovd-check input[type=checkbox],.ovd-row-check{width:15px;height:15px;margin:0;flex-shrink:0;accent-color:var(--accent-ink);cursor:pointer}.ovd-head-hint{font-size:.76rem;color:var(--muted)}.ovd-list{display:flex;flex-direction:column;gap:0}.ovd-row{display:flex;align-items:flex-start;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}.ovd-row:last-child{border-bottom:none}.ovd-row:hover{background:var(--wash-hover)}.ovd-row.is-sel{background:var(--wash-focus)}.ovd-row:focus-visible{outline:1px solid var(--accent-ink);outline-offset:-1px}.ovd-row-check{margin-top:2px}.ovd-row-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.ovd-row-title{font-size:.88rem;color:var(--text);overflow-wrap:anywhere}.ovd-row-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;font-size:.74rem;color:var(--muted)}.ovd-row-project{display:inline-flex;align-items:center;gap:5px;min-width:0}.ovd-row-late{color:var(--bad-text)}.ovd-row-rec{padding:1px 6px;background:var(--surface-chip);color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}.ovd-row-date{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:color .12s,border-color .12s}.ovd-row-date:hover{color:var(--text);border-color:var(--accent-ink)}.ovd-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.ovd-bulk-count{color:var(--text);white-space:nowrap}.ovd-bulk-date.dtf-trigger{padding:5px 8px;font-size:.8rem;min-width:118px}@media (max-width:640px){.ovd-head-hint{display:none}}.pp{position:relative}.pp-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:var(--toolbar-btn-bg);color:var(--text);font:inherit;font-size:.85rem;cursor:pointer;text-align:left}.pp-trigger:hover{color:var(--accent-ink)}.pp-trigger:disabled{opacity:.55;cursor:not-allowed}.pp-icon{width:22px;height:22px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:var(--muted)}.pp-icon svg{width:14px;height:14px}img.pp-icon{border-radius:6px;object-fit:cover}.pp-name{flex:1 1;min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-chevron{flex-shrink:0;color:var(--muted)}.pp-dropdown{min-width:240px;max-width:320px;background:var(--panel-solid,#fff);border:1px solid var(--line);box-shadow:0 12px 32px rgba(18,24,32,.12);padding:4px}.pp-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.pp-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:0;background:transparent;color:var(--text);cursor:pointer;transition:background .1s;font:inherit;font-size:.82rem;text-align:left}.pp-item:hover{background:var(--wash-faint)}.pp-item.active{background:var(--wash-strong)}.pp-item-name{flex:1 1;min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-item-none{color:var(--muted)}.bp-dropdown{min-width:160px;max-width:240px}.bp-icon{color:var(--muted)}.selpop-trigger{display:inline-flex;align-items:center;gap:6px;max-width:240px;font-size:.84rem;color:var(--text);background:transparent;border:1px solid var(--line);padding:5px 8px;cursor:pointer;outline:none;transition:border-color .12s,background .12s}.selpop-trigger:disabled{opacity:.5;cursor:default}.selpop-value{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.selpop-chevron{flex-shrink:0;color:var(--muted)}.selpop{display:flex;flex-direction:column;width:280px;max-width:calc(100vw - 16px);max-height:min(420px,calc(100vh - 28px));background:var(--panel-solid,#fff);border:1px solid var(--line);box-shadow:0 12px 32px rgba(18,24,32,.16);overflow:hidden}.selpop-search{flex:0 0 auto;border-bottom:1px solid var(--line);padding:4px}.selpop-search input{width:100%;border:none;outline:none;background:transparent;color:var(--text);font-size:.84rem;padding:6px 8px}.selpop-search input:focus{background:var(--wash-hover)}.selpop-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:6px}.selpop-option{display:flex;align-items:center;gap:8px;width:100%;border:none;background:transparent;color:var(--text);font-size:.84rem;padding:6px 8px;cursor:pointer;text-align:left}.selpop-option.is-hi{background:var(--wash-hover)}.selpop-option.is-selected{font-weight:600}.selpop-option-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selpop-create .selpop-option-label{color:var(--accent-ink);font-weight:600}.selpop-empty{padding:10px;font-size:.8rem;color:var(--muted)}.dtf-trigger{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:.85rem;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:2px;padding:7px 10px;cursor:pointer;outline:none;text-align:left;transition:border-color .12s,background .12s}.dtf-trigger:hover{border-color:var(--accent-ink)}.dtf-trigger.dtf-empty .dtf-value{color:var(--muted)}.dtf-value{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dtf-icon{flex-shrink:0;color:var(--muted)}.dtf-panel{width:244px;padding:6px;background:var(--panel-solid,#fff);border:1px solid var(--line);box-shadow:0 12px 32px rgba(18,24,32,.18);display:flex;flex-direction:column;gap:4px}.dtf-panel-time{width:auto;min-width:168px}.dtf-quick{display:flex;gap:4px}.dtf-quick button{flex:1 1;padding:5px 4px;font:inherit;font-size:.72rem;color:var(--text);background:var(--accent-soft);border:none;cursor:pointer}.dtf-quick button:hover{background:var(--wash-hover);color:var(--accent-ink)}.dtf-head{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:600;padding:2px 2px 0}.dtf-head button{width:22px;height:22px;border:none;background:none;color:var(--muted);cursor:pointer;font-size:.85rem;line-height:1}.dtf-head button:hover{color:var(--accent-ink)}.dtf-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px}.dtf-wd{font-size:.62rem;font-weight:600;color:var(--muted);padding:3px 0}.dtf-day,.dtf-wd{text-align:center}.dtf-day{padding:5px 0;font:inherit;font-size:.75rem;color:var(--text);background:none;border:none;cursor:pointer}.dtf-day:hover{background:var(--wash-hover)}.dtf-day.dtf-pad{visibility:hidden}.dtf-day.is-today{color:var(--accent-ink);font-weight:700}.dtf-day.is-sel{background:var(--accent);color:#fff;font-weight:600}.dtf-time{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line);padding-top:6px;margin-top:2px}.dtf-time-label{font-size:.72rem;color:var(--muted)}.dtf-time input{width:62px;padding:5px 8px;font:inherit;font-size:.8rem;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:2px;outline:none}.dtf-time input:focus{border-color:var(--accent-ink)}.dtf-clear,.dtf-now{padding:5px 8px;font:inherit;font-size:.72rem;color:var(--muted);background:none;border:none;cursor:pointer}.dtf-now{margin-left:auto}.dtf-clear:hover,.dtf-now:hover{color:var(--accent-ink)}.dtf-clear{border-top:1px solid var(--line);text-align:left}:is(.money-modal-fields,.projects-panel-body,.companies-panel-body,.dg-popover) :is(input:not([type=checkbox]):not([type=radio]):not([type=color]),textarea,.selpop-trigger,.pp-trigger,.dtf-trigger,.pform-user-trigger){width:100%;max-width:none;box-sizing:border-box;min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:2px;background:transparent;color:var(--text);font:inherit;font-size:.85rem;outline:none}:is(.money-modal-fields,.projects-panel-body,.companies-panel-body,.dg-popover) :is(.selpop-trigger,.pp-trigger,.dtf-trigger,.pform-user-trigger):hover,:is(.money-modal-fields,.projects-panel-body,.companies-panel-body,.dg-popover) :is(input:not([type=checkbox]):not([type=radio]):not([type=color]),textarea):focus{border-color:var(--accent-ink)}:is(.money-modal-fields,.projects-panel-body,.companies-panel-body,.dg-popover) textarea{min-height:76px;resize:vertical}:is(.money-modal-fields,.projects-panel-body,.companies-panel-body,.dg-popover) .meta-label{display:block;text-transform:none;letter-spacing:0;font-size:.78rem;font-weight:600;color:var(--muted)}:is(.money-modal-fields,.projects-panel-body,.companies-panel-body,.dg-popover) input[type=color]{width:36px;height:36px;padding:2px;border:1px solid var(--line);background:transparent;cursor:pointer}.projects-name-row>.projects-panel-input,.projects-name-row>input{flex:1 1;min-width:0}.pd-ava-trigger.pd-ava-boxed{border-radius:2px}.companies-panel,.money-modal,.pd-ava-trigger.pd-ava-boxed .pd-ava-img,.projects-panel{border-radius:0}.money-modal-row,.pform-row{display:flex;gap:10px;align-items:flex-end}.pform-row>*{flex:1 1;min-width:0}.pform-group{border-top:1px solid var(--line);padding-top:12px;margin-top:2px;display:flex;flex-direction:column;gap:14px}.pform-group-title{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:-4px}.pform-group-fold{gap:12px}.pform-group-fold:not(.is-open){gap:0}.pp-body .pform-group-toggle{display:flex;align-items:center;gap:7px;width:100%;padding:0;border:none;background:none;color:var(--muted);cursor:pointer;text-align:left}.pp-body .pform-group-toggle:hover .pform-group-title{color:var(--text)}.pform-group-toggle .pform-group-title{margin-bottom:0}.pform-group-caret{flex-shrink:0;transition:transform .15s}.pform-group-fold.is-open .pform-group-caret{transform:rotate(90deg)}.pform-group-badge{margin-left:auto;font-size:.72rem;font-weight:600;color:var(--muted)}.pform-group-body{display:flex;flex-direction:column;gap:14px}@keyframes ui-reveal{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.ui-reveal{animation:ui-reveal .18s ease-out both}@media (prefers-reduced-motion:reduce){.ui-reveal{animation:none}}.pform-check,.projects-field.pform-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.82rem;color:var(--text)}.pform-check input[type=checkbox]{width:15px;height:15px;min-height:0;margin:0;flex-shrink:0;cursor:pointer}.pform-check-hint{font-size:.72rem;color:var(--muted);margin:4px 0 0 23px}.pform-user-trigger{display:flex;align-items:center;gap:8px;cursor:pointer}.pform-user-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.fs-shell{position:fixed;inset:0;z-index:140;display:flex;flex-direction:row;background:var(--bg,var(--card-bg));animation:fs-fade-in .16s ease;overflow:hidden}body.fs-open .fab-dock{display:none}@keyframes fs-fade-in{0%{opacity:0}to{opacity:1}}.fs-sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:var(--card-bg);border-right:1px solid var(--line);transition:width .18s ease,opacity .18s ease}.fs-sidebar-collapsed{width:0;opacity:0;border-right-width:0;overflow:hidden;pointer-events:none;visibility:hidden;transition:width .18s ease,opacity .18s ease,visibility 0s linear .18s}.fs-sidebar>*{min-width:258px}@media (prefers-reduced-motion:reduce){.fs-sidebar,.fs-sidebar-collapsed{transition:none}}.fs-sidebar-head{display:flex;align-items:center;gap:10px;padding:12px 12px 10px;border-bottom:1px solid var(--line);flex-shrink:0}.fs-sidebar-head>:not(.fs-back):not(.fs-sidebar-collapse){flex:1 1;min-width:0}.fs-sidebar-collapse{margin-left:auto}.fs-sidebar-head>:not(.fs-back):not(.fs-sidebar-collapse)~.fs-sidebar-collapse{margin-left:0}.fs-sidebar-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:10px 10px 20px;gap:12px}.fs-main,.fs-sidebar-body{flex:1 1;display:flex;flex-direction:column}.fs-main{min-width:0}.fs-prehead{display:flex;align-items:stretch;min-width:0;flex-shrink:0}.fs-prehead>.fs-prehead-sidebar{align-self:center;width:34px;height:34px;margin:0 8px 0 10px}.fs-prehead>.fs-prehead-sidebar>svg{width:21px;height:21px}.fs-prehead-slot{flex:1 1;min-width:0}.fs-head{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);flex-shrink:0}.fs-titles{min-width:0;flex:0 1 auto;display:flex;flex-direction:column}.fs-eyebrow{font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.fs-title{font-size:.95rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fs-tabs{display:flex;align-items:center;gap:6px}.fs-actions,.fs-sidebar-show,.fs-status,.fs-tabs{margin-left:auto}.fs-actions~.fs-sidebar-show,.fs-status~.fs-actions,.fs-status~.fs-sidebar-show,.fs-tabs~.fs-actions,.fs-tabs~.fs-sidebar-show,.fs-tabs~.fs-status{margin-left:0}.fs-status{font-size:.72rem;color:var(--muted);white-space:nowrap}.fs-actions{display:flex;align-items:center;gap:6px}.fs-icon-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid transparent;border-radius:2px;background:transparent;color:var(--muted);cursor:pointer;font-size:1.1rem;line-height:1;transition:background .12s,color .12s,border-color .12s}.fs-icon-btn:hover{background:var(--accent-soft);color:var(--text)}.fs-back{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border:1px solid var(--line);border-radius:2px;background:transparent;color:var(--muted);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.fs-back:hover{background:var(--wash-hover);color:var(--text);border-color:var(--text-dim,#999)}.fs-body{flex:1 1;min-height:0;display:flex;flex-direction:column;overflow:auto}.fs-foot{display:flex;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--line)}.fs-foot,.fs-open-btn{align-items:center;flex-shrink:0}.fs-open-btn{width:36px;height:36px;padding:0;display:inline-flex;justify-content:center;border:none;background:var(--toolbar-btn-bg);color:var(--muted);cursor:pointer;transition:background .12s,color .12s}.fs-open-btn:hover{background:var(--toolbar-btn-bg-hover);color:var(--text)}@media (max-width:760px){.fs-sidebar{width:210px}}.main-toast-container{position:fixed;top:16px;right:16px;z-index:10001;display:flex;flex-direction:column;gap:8px;pointer-events:none}.main-toast{--toast-accent:#2563eb;pointer-events:auto;display:flex;align-items:center;gap:12px;min-width:260px;max-width:380px;padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:var(--panel-solid);box-shadow:0 8px 32px rgba(18,24,32,.18);animation:toast-in .25s ease-out}.main-toast.is-leaving{animation:toast-out .2s ease-in forwards}.main-toast[data-tone=success]{--toast-accent:#2c7a5b}.main-toast[data-tone=warning]{--toast-accent:#b7791f}.main-toast[data-tone=danger]{--toast-accent:#b04747}.main-toast[data-tone=info]{--toast-accent:#2563eb}.main-toast-indicator{flex-shrink:0;width:4px;height:28px;border-radius:999px;background:var(--toast-accent)}.main-toast-body{flex:1 1;min-width:0}.main-toast-message{font-size:.85rem;line-height:1.4;color:var(--text)}.main-toast-action{flex-shrink:0;padding:2px 10px;min-height:0;border-radius:6px;font-size:.75rem;font-weight:600;line-height:1.6;background:var(--toast-accent);color:#fff;cursor:pointer;border:none;transition:opacity .15s}.main-toast-action:hover{opacity:.85}@keyframes toast-in{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@keyframes toast-out{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(40px)}}.savebar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(22px + env(safe-area-inset-bottom, 0px));z-index:120;display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg);border:1px solid var(--line);box-shadow:0 10px 32px rgba(0,0,0,.16)}.savebar-note{font-size:.82rem;color:var(--muted);white-space:nowrap}.savebar-note.is-saved{color:var(--ok-text,#16a34a)}.savebar-error{font-size:.8rem;color:var(--danger);max-width:320px;line-height:1.35}@media (max-width:960px){.savebar{bottom:calc(92px + env(safe-area-inset-bottom, 0px))}}.fab-dock{position:fixed;right:20px;bottom:20px;z-index:150;width:48px;height:48px}.fab-dock-items{position:absolute;right:2px;bottom:2px;width:0;height:0}.fab-item{position:absolute;right:0;bottom:0;transform:translate(var(--fab-x),var(--fab-y));transition:transform .18s cubic-bezier(.2,.8,.3,1) calc(var(--fab-i) * 30ms),opacity .14s ease calc(var(--fab-i) * 30ms)}.fab-dock:not(.is-open) .fab-item{transform:translate(0) scale(.6);opacity:0;pointer-events:none}.fab-btn,.fab-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card-bg,#fff);color:var(--text);box-shadow:0 8px 24px rgba(18,24,32,.16);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,opacity .15s ease}.fab-btn:hover,.fab-toggle:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(18,24,32,.22);border-color:var(--accent-ink)}.fab-btn:active,.fab-toggle:active{transform:translateY(0)}.fab-btn svg,.fab-toggle svg{display:block}.fab-toggle{width:48px;height:48px}.fab-dock.is-open .fab-toggle{border-color:var(--accent-ink)}@media (prefers-reduced-motion:reduce){.fab-btn,.fab-item,.fab-toggle{transition:none}}@media (max-width:960px){.fab-dock{right:14px;bottom:calc(90px + env(safe-area-inset-bottom))}}