@font-face{font-family:Wilker;src:url(/fonts/Wilker.otf)format("opentype");font-weight:400;font-display:swap}@font-face{font-family:Courier Prime Code;src:url(/fonts/CourierPrimeCode.ttf)format("truetype");font-weight:400 700;font-display:swap}@font-face{font-family:Dot Matrix Duo;src:url(/fonts/DotMatrixDuo.otf)format("opentype");font-weight:400;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--scale:1;--fs-xs:calc(9px * var(--scale));--fs-sm:calc(10px * var(--scale));--fs-base:13px;--fs-md:calc(12px * var(--scale));--fs-lg:calc(13px * var(--scale));--fs-xl:calc(16px * var(--scale));--fs-2xl:calc(20px * var(--scale));--fs-3xl:calc(30px * var(--scale));--sp-xs:calc(4px * var(--scale));--sp-sm:calc(8px * var(--scale));--sp-md:calc(12px * var(--scale));--sp-lg:calc(16px * var(--scale));--sp-xl:calc(24px * var(--scale));--red:#b42025;--red-deep:#8e191c;--green:#16a34a;--black:#000;--bg:#fff;--card:#fff;--text:#0a0a0a;--sub:#6b6b6b;--silver:#d9d9d9;--border:#e8e8e8;--shadow:0 2px 16px #00000012;--spring:cubic-bezier(.32,.72,0,1);--font-display:"Wilker","Anton","Arial Narrow",system-ui,sans-serif;--font-mono:"Courier Prime Code","Courier New",Courier,monospace;--font-scent:"Dot Matrix Duo","Courier New",monospace}html,body{background:var(--bg);color:var(--text);overscroll-behavior-x:none;-webkit-tap-highlight-color:transparent;height:100%;font-family:system-ui,-apple-system,sans-serif;overflow:hidden}body{overflow-wrap:break-word;word-break:break-word;flex-direction:column;width:100%;max-width:100vw;height:100dvh;display:flex}input,textarea,button,select{font-family:inherit;font-size:inherit}button{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:none}.card,.pill,.stat-card,[class$=-card],[class*=-row],[data-add],[data-plus],[data-minus]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.selectable{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.topbar{padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top,0));border-bottom:2px solid var(--black);z-index:100;background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;display:flex;position:relative}.topbar-event{font-family:var(--font-mono);font-size:var(--fs-base);color:#fff;background:var(--black);text-overflow:ellipsis;white-space:nowrap;border:1.5px solid var(--black);text-align:center;border-radius:50px;flex:1;max-width:180px;padding:6px 14px;font-weight:700;overflow:hidden}.status-dot{background:var(--silver);border-radius:50%;flex-shrink:0;width:10px;height:10px;transition:background .3s}.status-dot.online{background:var(--red)}.main{-webkit-overflow-scrolling:touch;background:var(--bg);flex:1;min-height:0;overflow:hidden auto}.main::-webkit-scrollbar{display:none}.main{-ms-overflow-style:none;scrollbar-width:none}.tab-page{padding:16px;padding-bottom:calc(100px + env(safe-area-inset-bottom,0));animation:.22s fadeIn;display:none}.tab-page.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.boot-screen{background:var(--bg);z-index:2000;justify-content:center;align-items:center;transition:opacity .35s,visibility 0s .35s;display:flex;position:fixed;inset:0}.boot-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.boot-inner{flex-direction:column;align-items:center;gap:10px;display:flex}.boot-label{letter-spacing:.4px;color:var(--sub);font-family:Courier New,monospace;font-size:12px}.boot-logo{height:40px}.welcome-overlay{background:var(--bg);z-index:1000;opacity:0;visibility:hidden;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:32px;transition:opacity .3s,visibility 0s .3s;display:flex;position:fixed;inset:0}.welcome-overlay.active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s,visibility}.welcome-overlay .wlogo{height:72px;margin-bottom:24px}.welcome-overlay .wlogo-text{font-family:var(--font-display);color:var(--black);letter-spacing:2px;margin-bottom:24px;font-size:40px;font-weight:400}.welcome-overlay h1{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;margin-bottom:8px;font-size:21px;font-weight:400}.welcome-overlay p{font-family:var(--font-mono);color:var(--red);text-transform:uppercase;letter-spacing:1px;margin-bottom:28px;font-size:13px;font-weight:700}.skeleton{background:linear-gradient(90deg,#eee 25%,#f5f5f5 37%,#eee 63%) 0 0/400% 100%;border-radius:12px;animation:1.4s infinite skeletonShine}@keyframes skeletonShine{0%{background-position:100% 0}to{background-position:0 0}}.toast-container{bottom:calc(100px + env(safe-area-inset-bottom,0));z-index:999;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{color:#fff;font-size:var(--fs-md);animation:toastIn .3s var(--spring);white-space:nowrap;text-overflow:ellipsis;border-radius:50px;max-width:90vw;padding:12px 24px;font-weight:600;overflow:hidden;box-shadow:0 4px 20px #00000026}.toast.success{background:var(--green)}.toast.error{background:var(--red)}.toast.toast-leaving{animation:.3s forwards toastOut}.toast.toast-with-action{animation:toastIn .3s var(--spring);pointer-events:auto;align-items:center;gap:10px;padding-right:10px;display:flex}.toast-action{color:#fff;letter-spacing:.3px;text-transform:uppercase;background:#ffffff47;border:none;border-radius:50px;flex-shrink:0;padding:7px 14px;font-size:12px;font-weight:800}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{to{opacity:0;transform:translateY(20px)}}.section-title{font-family:var(--font-mono);font-size:var(--fs-base);text-transform:uppercase;letter-spacing:.5px;color:var(--black);margin-top:20px;margin-bottom:10px;font-weight:800}.section-title:first-child{margin-top:0}.divider{background:var(--border);height:1px;margin:16px 0}.empty-state{text-align:center;color:var(--sub);padding:40px 20px}.empty-state p{font-size:14px}.empty-state-action{cursor:pointer;transition:background-color .15s}.empty-state-action p{color:var(--red);font-weight:700}.empty-state-action:active{background:#fafafa}.btn{font-family:var(--font-mono);font-weight:700;font-size:var(--fs-lg);text-transform:uppercase;letter-spacing:.5px;transition:transform .15s var(--spring),opacity .15s;white-space:nowrap;border-radius:50px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:12px 28px;display:inline-flex;position:relative;overflow:hidden}.btn:active{transform:scale(.97)}.card:active,.exp-card:active,[class$=-row]:active:not(.no-tap-feedback){transition:transform .12s var(--spring);transform:scale(.98)}[class$=-card],[class$=-row]{animation:.2s fadeIn}.btn-primary{background:var(--red);color:#fff;box-shadow:0 4px 14px #b4202540}.btn-secondary{background:var(--card);color:var(--red);border:2px solid var(--red)}.btn-danger{color:var(--red);background:#fff0f0}.btn-black{background:var(--black);color:#fff;box-shadow:0 4px 14px #0003}.btn-sm{font-size:var(--fs-base);padding:8px 18px}.btn-full{width:100%}.btn:disabled{opacity:.4;pointer-events:none}.pill-group,.pill-scroll{flex-wrap:wrap;gap:8px;display:flex}.pill{font-size:var(--fs-base);border:1.5px solid var(--border);color:var(--sub);background:var(--card);transition:transform .15s var(--spring),background-color .15s,border-color .15s,color .15s;cursor:pointer;white-space:nowrap;border-radius:50px;flex-shrink:0;padding:8px 18px;font-weight:600}.pill:active{transform:scale(.97)}.pill.selected{background:var(--red);color:#fff;border-color:var(--red)}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:20px;margin-bottom:12px;padding:16px}.dash-toggle{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:50px;gap:6px;margin-bottom:16px;padding:4px;display:flex}.dash-toggle .dt-btn{font-family:var(--font-mono);font-size:var(--fs-sm);text-transform:uppercase;text-align:center;color:var(--sub);transition:transform .15s var(--spring),background-color .15s,color .15s;cursor:pointer;border-radius:50px;flex:1;padding:10px 8px;font-weight:700}.dash-toggle .dt-btn:active{transform:scale(.97)}.dash-toggle .dt-btn.active{background:var(--red);color:#fff}.input-group{margin-bottom:14px}.input-group label{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--sub);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-weight:700;display:block}.input-field{border:1.5px solid var(--border);background:var(--card);width:100%;color:var(--text);border-radius:12px;padding:12px 14px;font-size:16px;transition:border-color .2s}.input-field:focus{border-color:var(--red);outline:none}.input-field.error{border-color:var(--red);animation:.4s shake}textarea.input-field{resize:vertical;min-height:60px;max-height:100px;font-family:inherit}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.summary-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.stat-card{box-shadow:var(--shadow);border-radius:16px;min-width:0;padding:14px;container-type:inline-size}.stat-card .label{font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.3px;opacity:.8;font-weight:700}.stat-card .value{font-family:var(--font-display);font-size:clamp(14px,13cqw,var(--fs-2xl));letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-weight:400;overflow:hidden}.stat-card .s-sub{opacity:.7;text-transform:uppercase;letter-spacing:.3px;margin-top:3px;font-size:9px}.stat-red{background:var(--red);color:#fff}.stat-black{background:var(--black);color:#fff}.stat-white{background:var(--card);color:var(--text);border:1px solid var(--border)}.stat-white .label{color:var(--sub)}.chart-wrap{background:var(--card);box-shadow:var(--shadow);border-radius:20px;margin-bottom:14px;padding:16px}.chart-wrap h3{font-size:var(--fs-md);margin-bottom:12px;font-weight:700}.chart-wrap canvas{max-height:260px;width:100%!important}.inv-table,.setup-table{border-collapse:collapse;width:100%;font-size:13px}.inv-table th,.setup-table th{text-align:left;font-size:var(--fs-xs);color:var(--sub);text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 4px;font-weight:700}.inv-table td,.setup-table td{border-bottom:1px solid var(--border);font-weight:600;font-size:var(--fs-base);padding:10px 4px}.inv-table tr.low{background:#fff5f5}.inv-table tr.amber{background:#fffbea}.inv-table tr:nth-child(2n):not(.low):not(.amber){background:#fafafa}.setup-table .actions{gap:6px;display:flex}.setup-table .actions button{border-radius:8px;padding:4px 10px;font-size:11px;font-weight:700}.inv-row{background:var(--card);border:1.5px solid var(--border);cursor:pointer;border-radius:14px;margin-bottom:10px;padding:12px 14px}.inv-row.low{background:#fff5f5;border-color:#ffd9d9}.inv-row.amber{background:#fffbea;border-color:#f5e6a8}.inv-row-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.inv-row-name{font-weight:700;font-size:var(--fs-md)}.inv-actions{cursor:default;flex-shrink:0;gap:2px;display:flex}.entry-actions button,.inv-actions button,.ec-actions button,.meet-actions button,.task-del{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:6px;padding:3px 5px;font-size:12px;line-height:1;transition:opacity .15s,background-color .15s}.entry-actions button:active,.inv-actions button:active,.ec-actions button:active,.meet-actions button:active,.task-del:active{opacity:1;background:var(--border)}@media (hover:hover){.entry-actions button:hover,.inv-actions button:hover,.ec-actions button:hover,.meet-actions button:hover,.task-del:hover{opacity:.85}}.entry-actions{gap:2px;display:flex}.inv-row-stats{grid-template-columns:repeat(3,1fr);gap:10px 6px;display:grid}.inv-stat-label{color:var(--sub);text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px;font-size:10px}.inv-stat-val{font-size:var(--fs-base);font-variant-numeric:tabular-nums;font-weight:700}.section-title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.section-title-row .section-title{margin-bottom:0}.dd-trigger{border:1.5px solid var(--border);background:var(--card);font-size:var(--fs-sm);color:var(--text);cursor:pointer;border-radius:50px;align-items:center;gap:6px;padding:8px 16px;font-weight:700;display:inline-flex}.dd-trigger svg{color:var(--sub);flex-shrink:0}.dd-pop{z-index:600;background:var(--card);border:1.5px solid var(--border);opacity:0;visibility:hidden;border-radius:14px;flex-direction:column;max-height:min(280px,50vh);padding:8px;transition:opacity .16s,transform .16s,visibility 0s .16s;display:flex;position:fixed;transform:translateY(-4px)scale(.97);box-shadow:0 10px 32px #0000002e}.dd-pop.active{opacity:1;visibility:visible;transition:opacity .16s,transform .16s,visibility;transform:translateY(0)scale(1)}.dd-pop-title{text-transform:uppercase;letter-spacing:.5px;color:var(--sub);padding:4px 8px 6px;font-size:11px;font-weight:800}.dd-select-list{flex-direction:column;gap:2px;min-height:0;display:flex;overflow-y:auto}.dd-select-row{font-size:var(--fs-sm);cursor:pointer;border-radius:9px;padding:10px;font-weight:600}.dd-select-row:active{background:var(--bg)}.dd-select-row.selected{color:var(--red);background:#fff0f0;font-weight:700}.badge{font-size:var(--fs-xs);border-radius:50px;padding:3px 10px;font-weight:700;display:inline-flex}.badge-event{color:var(--red);background:#fff0f0}.badge{font-family:var(--font-mono)}.badge-gift{background:var(--black);color:#fff}.badge-pay{color:#3730a3;background:#eef2ff}.badge-disc{color:#92400e;background:#fef3c7}.badge-tester{color:#065f46;background:#ecfdf5}.badge-low{color:var(--red);background:#fff0f0;font-size:10px}.badge-amber{color:#a6790f;background:#fff6e5;font-size:10px}.modal-overlay{top:var(--vv-top,0);left:var(--vv-left,0);width:var(--vv-width,100vw);height:var(--visible-vh,100vh);z-index:500;opacity:0;visibility:hidden;pointer-events:none;background:#0006;justify-content:center;align-items:flex-end;transition:opacity .25s,visibility 0s .25s;display:flex;position:fixed}.modal-overlay.active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .25s,visibility}.modal-sheet{background:var(--card);width:100%;max-width:500px;max-height:92%;padding:20px 16px calc(100px + env(safe-area-inset-bottom,0));transition:transform .28s var(--spring);border-radius:20px 20px 0 0;overflow:hidden auto;transform:translateY(100%)}.modal-overlay.active .modal-sheet{transform:translateY(0)}.modal-title{font-family:var(--font-display);font-size:var(--fs-xl);text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px;font-weight:400}.modal-handle{background:#ddd;border-radius:4px;width:40px;height:4px;margin:0 auto 16px}.fullmodal{top:var(--vv-top,0);left:var(--vv-left,0);width:var(--vv-width,100vw);height:var(--visible-vh,100vh);background:var(--bg);z-index:600;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,transform .28s var(--spring),visibility 0s .28s;flex-direction:column;display:flex;position:fixed;overflow:hidden;transform:translate(3%)}.fullmodal.active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .25s ease,transform .28s var(--spring),visibility 0s;transform:translate(0)}.fullmodal-header{padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top,0));border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0;align-items:center;display:flex}.fullmodal-header .back-btn{color:var(--text);padding:4px 8px 4px 0;font-size:22px}.fullmodal-header h2{font-size:calc(17px * var(--scale));flex:1;font-weight:700}.fullmodal-body{-webkit-overflow-scrolling:touch;min-height:0;padding:16px 16px calc(100px + env(safe-area-inset-bottom,0));flex:1;overflow:hidden auto}.fullmodal-body *{min-width:0}.fullmodal-body,.fullmodal-body *{overflow-wrap:break-word}.confirm-dialog{top:var(--vv-top,0);left:var(--vv-left,0);width:var(--vv-width,100vw);height:var(--visible-vh,100vh);z-index:700;opacity:0;visibility:hidden;pointer-events:none;background:#00000080;justify-content:center;align-items:center;padding:24px;transition:opacity .2s,visibility 0s .2s;display:flex;position:fixed}.confirm-dialog.active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s,visibility}.confirm-box{background:var(--card);text-align:center;width:100%;max-width:340px;transition:transform .22s var(--spring);border-radius:20px;padding:24px;transform:scale(.92)}.confirm-dialog.active .confirm-box{transform:scale(1)}.confirm-box h3{font-size:calc(16px * var(--scale));margin-bottom:8px;font-weight:700}.confirm-box p{font-size:var(--fs-md);color:var(--sub);margin-bottom:20px;line-height:1.5}.confirm-box .btn-row{justify-content:center;gap:10px;display:flex}.runway-warn{background:#fff4e5;border:1.5px solid #f0a93b;border-radius:14px;align-items:flex-start;gap:12px;margin-bottom:14px;padding:14px;display:flex}.runway-warn .rw-icon{font-size:20px;line-height:1}.runway-warn .rw-title{font-weight:800;font-size:var(--fs-md);color:#8a5a00}.runway-warn .rw-sub{font-size:var(--fs-sm);color:#8a5a00;margin-top:2px;line-height:1.4}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;flex-shrink:0;justify-content:center;gap:5px;width:26px;height:26px;padding:0;display:flex}.hamburger span{background:var(--black);border-radius:2px;height:2px;display:block}.hamburger span:first-child,.hamburger span:nth-child(2){width:20px}.hamburger span:nth-child(3){width:13px}.nav-scrim{pointer-events:none;z-index:400;background:0 0;transition:background .28s;position:fixed;inset:0}.nav-scrim.open{pointer-events:auto;background:#0000006b}.nav-drawer{background:var(--card);border-right:2px solid var(--black);width:min(78%,320px);transition:transform .3s var(--spring);z-index:401;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.nav-drawer.open{transform:translate(0)}.nav-drawer-head{border-bottom:1.5px solid var(--black);cursor:pointer;margin-bottom:4px;padding:18px}.nav-drawer-logo{height:24px;margin-bottom:12px;display:block}.nav-drawer-head .who{font-family:var(--font-display);font-size:var(--fs-xl);text-transform:uppercase;letter-spacing:.5px}.nav-drawer-head .role{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--sub);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.mod{border-bottom:1px solid var(--border)}.mod-head{cursor:pointer;align-items:center;gap:12px;padding:14px 18px;display:flex}.mod-head svg:not(.chev){width:19px;height:19px;color:var(--black);flex-shrink:0}.mod-head span{font-family:var(--font-mono);font-size:var(--fs-base);text-transform:uppercase;letter-spacing:.3px;flex:1;font-weight:700}.mod-head .chev{width:13px;height:13px;color:var(--sub);flex-shrink:0;transition:transform .22s}.mod.expanded .mod-head .chev{transform:rotate(90deg)}.mod.expanded .mod-head{background:var(--bg)}.mod.current .mod-head span,.mod.current .mod-head svg:not(.chev){color:var(--red)}.sub{max-height:0;transition:max-height .25s;overflow:hidden}.mod.expanded .sub{max-height:260px}.sub-item{font-family:var(--font-mono);font-size:var(--fs-sm);text-transform:uppercase;color:var(--sub);cursor:pointer;letter-spacing:.3px;padding:11px 18px 11px 49px;font-weight:700}.sub-item.on{color:var(--red);background:#fff0f0}.nav-dock{left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0));background:var(--card);border:1.5px solid var(--black);z-index:110;border-radius:50px;gap:6px;padding:6px;transition:opacity .25s,transform .25s;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000029}.nav-dock.dock-minimized{opacity:.7;transform:translate(-50%)scale(.68)}.dock-btn{width:48px;height:48px;color:var(--sub);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.dock-btn svg{width:21px;height:21px}.dock-btn.on{background:var(--red);color:#fff}.dock-btn:active{transform:scale(.94)}
