:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1015;--surface:#171a21;--surface-2:#20242e;--border-card-color:#282e3b;--border-input-color:#3d4556;--border:var(--border-card-color);--border-card:1px solid var(--border-card-color);--border-input:1px solid var(--border-input-color);--text:#f3f5f8;--text-secondary:#b8c0d0;--muted:var(--text-secondary);--accent:#f2a93b;--accent-ink:#1b1200;--danger:#ff7b7b;--ok:#5fd394;--tap:48px;--radius:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:20px;--text-xl:28px}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);height:100%;color:var(--text);font:var(--text-md)/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;overflow-wrap:break-word;-webkit-text-size-adjust:100%;margin:0;overflow-x:hidden}#app{height:100%}h1{font-size:var(--text-xl);margin:0;line-height:1.2}h2{font-size:var(--text-lg);margin:0 0 var(--space-3);line-height:1.3}h3{font-size:var(--text-md);margin:0 0 var(--space-2);line-height:1.4}p{font-size:var(--text-md);margin:0}a{color:var(--accent)}code{background:var(--surface-2);padding:var(--space-1) var(--space-2);border-radius:var(--space-1);font-size:var(--text-sm)}.muted{color:var(--muted)}.error{color:var(--danger);font-size:var(--text-sm);margin:0}.error:empty,.caption:empty,.field-hint:empty,.state-box:empty{display:none}.empty{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-4);border:var(--border-card);border-radius:var(--radius);background:var(--surface);color:var(--muted);font-size:var(--text-md);text-align:center;flex-direction:column;margin:0;display:flex}.empty-text{color:var(--text);margin:0;font-weight:500}.empty-action{color:var(--muted);font-size:var(--text-sm);margin:0}.state-error{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.back{min-height:var(--tap);min-width:var(--tap);font-size:var(--text-md);align-self:flex-start;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.stack{gap:var(--space-4);flex-direction:column;display:flex}.two{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.two>*{min-width:0}.page-head{gap:var(--space-2);flex-direction:column;margin:0;padding:0;display:flex}.page-head-row{justify-content:space-between;align-items:center;gap:var(--space-3);min-width:0;display:flex}.page-head-text{flex-direction:column;flex:auto;min-width:0;display:flex}.page-sub{color:var(--muted);font-size:var(--text-sm);margin:0}.page-sub a{min-height:var(--tap);align-items:center;display:inline-flex}.page-head-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.login{min-height:100vh;justify-content:center;align-items:stretch;gap:var(--space-5);max-width:420px;min-height:100dvh;padding:var(--space-6) var(--space-4);text-align:left;flex-direction:column;margin:0 auto;display:flex}.login-brand{align-items:flex-start;gap:var(--space-2);text-align:left;flex-direction:column;display:flex}.login-badge{align-self:flex-start;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);margin-bottom:var(--space-1);border:var(--border-card);background:var(--surface);color:var(--accent);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;text-align:left;border-radius:999px;font-weight:700;display:inline-flex}.login-badge .icon svg{width:16px;height:16px}.login-title{font-size:var(--text-xl);letter-spacing:-.01em;text-align:left;margin:0;line-height:1.2}.login-helper{font-size:var(--text-sm);text-align:left;margin:0;line-height:1.5}.login-card{padding:var(--space-4);border:var(--border-card);border-radius:var(--radius);background:var(--surface);text-align:left}.login-error{padding:var(--space-3);border:1px solid var(--danger);border-radius:var(--radius);font-size:var(--text-sm);text-align:left;background:#ff7b7b1a}.login-meta{font-size:var(--text-xs);text-align:left;margin:0}.shell{height:100vh;flex-direction:column;height:100dvh;display:flex}.topbar{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:56px;padding:0 var(--space-3) 0 var(--space-4);background:var(--surface);border-bottom:var(--border-card);flex-wrap:nowrap;display:flex}.topbar .btn-ghost{padding:0 var(--space-2);font-size:var(--text-sm)}.topbar .btn-ghost[aria-current=page],.topbar .btn-ghost[aria-expanded=true]{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.topbar-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.topbar .more-btn{align-items:center;gap:var(--space-1);min-height:var(--tap);padding:0 var(--space-2);color:var(--text);font-weight:500;font-size:var(--text-sm);white-space:nowrap;display:inline-flex}.topbar .more-btn .icon svg{width:18px;height:18px}.brand{font-size:var(--text-md);white-space:nowrap;flex-shrink:0}.brand-short{display:inline}.brand-full{display:none}@media (min-width:420px){.brand-short{display:none}.brand-full{display:inline}}.sync-dot{cursor:default;flex-shrink:0;justify-content:center;align-items:center;width:24px;min-width:24px;height:24px;min-height:24px;padding:0;display:inline-flex}.sync-dot:before{content:"";background:var(--ok);border-radius:50%;width:10px;height:10px;transition:background-color .2s}.sync-dot[data-state=ok]:before,.sync-dot[data-state=synced]:before{background:var(--ok)}.sync-dot[data-state=warn]:before,.sync-dot[data-state=pending]:before{background:var(--accent)}.sync-dot[data-state=error]:before{background:var(--danger)}.banner,.notice{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.banner{color:var(--danger);background:#3a1d1d}.notice{color:var(--ok);background:#163226}.banner span,.notice span{flex:1;min-width:0}.outlet{min-height:0;padding:var(--space-4);flex:1;overflow:hidden auto}.page{gap:var(--space-5);max-width:720px;padding-bottom:calc(var(--tap) + 24px);flex-direction:column;margin:0 auto;display:flex}.tabbar{box-sizing:border-box;background:var(--surface);border-top:var(--border-card);height:56px;padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.tab{justify-content:center;align-items:center;gap:var(--space-1);height:100%;min-width:var(--tap);padding:var(--space-1) 0;color:var(--muted);font-size:var(--text-xs);letter-spacing:-.02em;white-space:nowrap;overflow-wrap:normal;flex-direction:column;line-height:1.2;text-decoration:none;display:flex}.tab span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tab[aria-current=page]{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent);font-weight:600}.icon{display:inline-flex}.more-backdrop{z-index:20;padding:56px var(--space-4) var(--space-4);background:#00000073;justify-content:flex-end;align-items:flex-start;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.more-menu{border:var(--border-input);border-radius:var(--radius);background:var(--surface);flex-direction:column;min-width:200px;display:flex;overflow:hidden;box-shadow:0 8px 24px #00000080}.more-menu>*+*{border-top:var(--border-card)}.more-item{align-items:center;gap:var(--space-3);min-height:var(--tap);padding:var(--space-3) var(--space-4);color:var(--text);font-size:var(--text-md);font-weight:600;text-decoration:none;display:flex}button.more-item{width:100%;font:inherit;font-size:var(--text-md);text-align:left;cursor:pointer;background:0 0;border:0;font-weight:600}.more-item:hover{background:var(--surface-2)}.more-item[aria-current=page]{color:var(--accent);background:var(--surface-2)}.fab{right:var(--space-4);bottom:calc(56px + 16px + env(safe-area-inset-bottom,0px));z-index:5;position:fixed;box-shadow:0 4px 12px #00000073}.fab-spacer{height:calc(var(--tap) + 24px);pointer-events:none;flex-shrink:0;width:100%}.btn,.btn-big{height:var(--tap);min-height:var(--tap);max-height:var(--tap);min-width:var(--tap);padding:0 var(--space-4);border:var(--border-input);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font:inherit;font-size:var(--text-md);white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;margin:0;font-weight:600;line-height:1.125;text-decoration:none;display:inline-flex}.btn:active{filter:brightness(1.2)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-block{width:100%;margin:0;display:flex}.icon-btn{width:var(--tap);height:var(--tap);min-height:var(--tap);min-width:var(--tap);border-radius:var(--radius);color:var(--text);font:inherit;font-size:var(--text-lg);cursor:pointer;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.field{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.field-label,.field-hint{color:var(--muted);font-size:var(--text-sm);line-height:1.4}input,select,textarea{width:100%;min-height:var(--tap);padding:14px var(--space-4);border:var(--border-input);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-md);margin:0;line-height:1.125}input:not([type=checkbox]),select{height:var(--tap)}textarea{min-height:calc(var(--tap) * 2);resize:vertical;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.row:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.toggle-row:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.more-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.back:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.check-row{align-items:center;gap:var(--space-3);min-height:var(--tap);font-size:var(--text-md);cursor:pointer;display:flex}input.check{width:24px;height:24px;min-height:24px;accent-color:var(--accent);padding:0}.chips{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(96px,1fr));display:grid}.chip{height:var(--tap);min-height:var(--tap);min-width:var(--tap);padding:0 var(--space-3);border:var(--border-input);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-md);white-space:nowrap;overflow-wrap:normal;cursor:pointer;justify-content:center;align-items:center;margin:0;font-weight:600;display:inline-flex}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.list{border:var(--border-card);border-radius:var(--radius);background:var(--surface);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.list>*+*{border-top:var(--border-card)}.row{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:56px;padding:var(--space-3) var(--space-4);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-md);text-align:left;border:0;text-decoration:none;display:flex}a.row,button.row{cursor:pointer}a.row:hover,button.row:hover{background:var(--surface-2)}.row-main{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.row-title{font-size:var(--text-md);font-weight:600}.row-sub{color:var(--muted);font-size:var(--text-sm)}.row-right{justify-content:center;align-items:flex-end;gap:var(--space-1);font-size:var(--text-md);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;flex-direction:column;flex-shrink:0;margin-left:auto;font-weight:600;display:flex}.toggles{border:var(--border-card);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.toggles>*+*{border-top:var(--border-card)}.toggle-row{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:56px;padding:var(--space-3) var(--space-4);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-md);text-align:left;cursor:pointer;border:0;display:flex}.toggle-text{gap:var(--space-1);flex-direction:column;display:flex}.toggle-text small{color:var(--muted);font-size:var(--text-sm)}.switch{background:var(--border-input-color);border-radius:999px;flex-shrink:0;width:52px;height:32px;position:relative}.switch:after{content:"";top:var(--space-1);left:var(--space-1);background:var(--text);border-radius:50%;width:24px;height:24px;transition:transform .12s;position:absolute}.toggle-row[aria-checked=true] .switch{background:var(--accent)}.toggle-row[aria-checked=true] .switch:after{background:var(--accent-ink);transform:translate(20px)}.sheet-backdrop{z-index:10;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.sheet{width:100%;max-width:720px;max-height:92vh;border-radius:var(--radius) var(--radius) 0 0;background:var(--bg);border:var(--border-card);flex-direction:column;max-height:92dvh;display:flex}.sheet-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-bottom:var(--border-card);display:flex}.sheet-head h2{font-size:var(--text-lg);margin:0}.sheet-body{padding:var(--space-4) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));overflow-y:auto}.tile-value{font-size:var(--text-md);text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.tile-label{color:var(--muted);font-size:var(--text-sm)}.picked{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-3) var(--space-4);border:var(--border-card);border-radius:var(--radius);background:var(--surface);display:flex}.picked .row-main{flex:1}.angle-big{align-items:center;gap:var(--space-1);padding:var(--space-4);border:var(--border-card);border-radius:var(--radius);background:var(--surface);text-align:center;flex-direction:column;margin:0;display:flex}.angle-label,.angle-note{color:var(--muted);font-size:var(--text-sm)}.angle-value{color:var(--accent);font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.2}.facts{border:var(--border-card);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(0,1fr) minmax(0,2fr);margin:0;display:grid;overflow:hidden}.facts dt,.facts dd{min-height:56px;padding:var(--space-3) var(--space-4);background:var(--surface);font-size:var(--text-md);align-items:center;margin:0;display:flex}.facts dt{color:var(--muted);font-size:var(--text-sm)}.facts dd{text-align:right;font-variant-numeric:tabular-nums;justify-content:flex-end}.facts dd a{min-height:var(--tap);align-items:center;display:inline-flex}.facts dt:nth-of-type(n+2),.facts dd:nth-of-type(n+2){border-top:var(--border-card)}.photos{gap:var(--space-2);display:flex;overflow-x:auto}.photos img{border-radius:var(--radius);width:auto;height:120px}.block{margin:0}.block>h2{margin:0 0 var(--space-3);font-size:var(--text-lg)}.block h3{margin:0 0 var(--space-2);font-size:var(--text-md)}.caption{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--text-sm)}.amt-income{color:var(--ok)}.amt-expense{color:var(--danger)}.row-line{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.meter{height:var(--space-2);border-radius:var(--space-1);background:var(--surface-2);overflow:hidden}.meter i{height:100%;display:block}.fill-income{background:var(--ok)}.fill-expense{background:var(--danger)}.fill-net{background:var(--accent)}.share{justify-content:center;gap:var(--space-2);min-height:56px;padding:var(--space-3) var(--space-4);background:var(--surface);flex-direction:column;display:flex}.threshold-line{padding:var(--space-4);border:var(--border-card);border-radius:var(--radius);background:var(--surface);font-size:var(--text-md);font-variant-numeric:tabular-nums;margin:0;font-weight:600}.threshold-warn{border-color:var(--danger);color:var(--danger)}.period{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:var(--border-input);border-radius:var(--radius);background:var(--surface);margin:0;display:flex}.period .btn{width:var(--tap);height:var(--tap);min-width:var(--tap);min-height:var(--tap);flex-shrink:0;padding:0}.day{gap:var(--space-2);flex-direction:column;display:flex}.day-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);font-size:var(--text-md);flex-wrap:wrap;font-weight:600;display:flex}.day-head .muted{font-weight:400;font-size:var(--text-sm);text-align:right;font-variant-numeric:tabular-nums;margin-left:auto}.chart-wrap{padding:var(--space-4);border:var(--border-card);border-radius:var(--radius);background:var(--surface)}.chart{width:100%;height:auto;display:block}.chart-text{fill:var(--muted);font-size:var(--text-xs)}.chart-grid{stroke:var(--border-card-color);stroke-width:1px}.chart-zero{stroke:var(--muted);stroke-width:1px}.chart .bar.c-income,.swatch.c-income{fill:var(--ok);background:var(--ok)}.chart .bar.c-expense,.swatch.c-expense{fill:var(--danger);background:var(--danger)}.chart .bar.c-count{fill:var(--accent)}.chart .line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round}.chart .dot{fill:var(--accent)}.swatch.c-net{background:var(--accent)}.legend{gap:var(--space-2) var(--space-4);padding:var(--space-2) 0 0;color:var(--muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:var(--space-2);display:inline-flex}.swatch{width:var(--space-3);height:var(--space-3);border-radius:var(--space-1);display:inline-block}.item-actions{gap:var(--space-2);padding:0 var(--space-4) var(--space-3);flex-wrap:wrap;display:flex}.cal-card{gap:var(--space-2);padding:var(--space-2);border:var(--border-card);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.cal-weekdays,.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;width:100%;display:grid}.cal-weekday{padding:var(--space-1) 0;color:var(--muted);font-size:var(--text-xs);text-align:center;white-space:nowrap;font-weight:600}.cal-cell{width:100%;min-width:0;min-height:var(--tap);padding:var(--space-1) 0;border-radius:var(--space-2);color:var(--text);font:inherit;font-size:var(--text-sm);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:3px;margin:0;font-weight:600;display:flex}.cal-cell:hover{background:var(--surface-2)}.cal-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cal-cell[data-in-month=false]{color:var(--muted);opacity:.45}.cal-day-num{border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;line-height:1;display:inline-flex}.cal-cell[data-today=true] .cal-day-num{box-shadow:0 0 0 2px var(--accent);color:var(--accent);font-weight:700}.cal-cell[aria-pressed=true]{background:var(--surface-2);border-color:var(--accent)}.cal-cell[aria-pressed=true] .cal-day-num{background:var(--accent);color:var(--accent-ink)}.cal-dots{justify-content:center;align-items:center;gap:var(--space-1);max-width:100%;height:6px;display:inline-flex;overflow:hidden}.cal-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.cal-dot-booking{background:var(--accent);border-radius:50%;width:6px;height:6px}.cal-dot-shift{background:#8ab4f8;border-radius:1px;width:5px;height:5px}.cal-legend{padding:var(--space-1) var(--space-2) 0;border-top:var(--border-card)}.cal-shifts-banner{padding:var(--space-3) var(--space-4);border:var(--border-input);border-radius:var(--radius);background:var(--surface);color:var(--muted);font-size:var(--text-sm)}.cal-row-booking{border-left:3px solid var(--accent)}.cal-row-shift{border-left:3px solid var(--border-input-color);background:var(--bg);color:var(--muted)}.cal-row-shift .row-title{color:var(--muted);font-weight:500}.cal-shift-tag{padding:2px var(--space-2);border:var(--border-card);border-radius:var(--space-1);background:var(--surface-2);color:var(--muted);font-size:var(--text-xs);font-weight:500}.cal-time-badge{color:var(--text);font-size:var(--text-sm);font-weight:600}.cal-overlap-warn{color:var(--accent);font-size:var(--text-xs);font-weight:600}.cal-sync-warn{color:var(--danger);font-size:var(--text-xs)}.stack-sm{gap:var(--space-2);flex-direction:column;display:flex}.cal-cancel-confirm{padding:var(--space-3);border:1px solid var(--danger);border-radius:var(--radius);background:var(--surface)}.cal-day-list{padding-bottom:calc(var(--tap) + 24px)}
