:root{--bg: #05070c;--card-bg: rgba(255, 255, 255, .035);--card-bg-hover: rgba(255, 255, 255, .055);--card-border: rgba(255, 255, 255, .08);--border-input: rgba(255, 255, 255, .12);--text: #e8ecf4;--text-mid: #c9d1e0;--text-dim: #8b93a7;--text-faint: #5b6376;--accent: #b7ee3f;--accent-hover: #d3f97a;--amber: #ffb84d;--amber-fg: #1a1206;--red: #ff6b57;--red-soft: #ff9d8f;--font-head: "Manrope", sans-serif;--font-mono: "JetBrains Mono", monospace;--font-text: "Inter", sans-serif;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-pill: 999px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg)}body{color:var(--text);font-family:var(--font-text);font-size:14px;line-height:1.45}#root>div.app-bg{min-height:100vh;position:relative;overflow-x:hidden;background:radial-gradient(1100px 520px at 78% -8%,rgba(96,124,60,.2),transparent 62%),radial-gradient(800px 480px at 8% 4%,rgba(40,60,120,.22),transparent 60%),var(--bg)}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:8px}::-webkit-scrollbar-track{background:transparent}::selection{background:var(--accent);color:#06090f}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid rgba(183,238,63,.7);outline-offset:2px}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes slideBar{0%{transform:translate(-100%)}to{transform:translate(420%)}}@keyframes twinkle{0%,to{opacity:.15}50%{opacity:.6}}.mono{font-family:var(--font-mono)}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.amber{color:var(--amber)}.accent{color:var(--accent)}.starfield{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.starfield span{position:absolute;border-radius:50%;background:#cfd7e6;animation:twinkle ease-in-out infinite}.starfield span.accent-star{background:var(--accent)}.topbar{position:sticky;top:0;z-index:20;background:#06090fdb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--card-border)}.topbar-inner{max-width:1360px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:11px 24px}.brand{display:flex;align-items:center;gap:10px;padding-right:8px}.brand-logo{width:28px;height:28px;border-radius:9px;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#06090f;font-family:var(--font-head);font-weight:800;font-size:14px}.brand-name{font-family:var(--font-head);font-weight:800;font-size:17px;letter-spacing:-.02em}.brand-version{font-family:var(--font-mono);font-size:10px;color:var(--text-dim);border:1px solid var(--border-input);background:#ffffff0a;border-radius:var(--radius-pill);padding:2px 8px}.brand-sep{width:1px;height:22px;background:var(--card-border)}.tabs{display:flex;align-items:center;gap:4px}.tab{display:flex;align-items:center;gap:7px;border-radius:var(--radius-pill);padding:8px 15px;cursor:pointer;font-family:var(--font-head);font-weight:700;font-size:13.5px;color:var(--text-dim);background:transparent}.tab:hover{background:#ffffff12}.tab.active{color:var(--text);background:#ffffff1a}.tab-badge{font-family:var(--font-mono);font-size:10px;font-weight:700;background:var(--amber);color:var(--amber-fg);border-radius:var(--radius-pill);padding:1px 7px}.topbar .spacer{flex:1}.topbar .right{display:flex;align-items:center;gap:9px}.topbar .date{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:11px;color:var(--text-dim);border:1px solid var(--border-input);background:#ffffff0a;border-radius:var(--radius-pill);padding:6px 12px}.topbar .date .dot{width:6px;height:6px;border-radius:var(--radius-pill);background:var(--accent);box-shadow:0 0 8px var(--accent)}.logout-btn{display:flex;align-items:center;border-radius:var(--radius-pill);padding:7px 15px;cursor:pointer;font-family:var(--font-head);font-weight:700;font-size:12.5px;color:var(--text);border:1px solid var(--border-input);background:transparent}.logout-btn:hover{background:#ffffff12}.loading-bar{height:2px;background:#ffffff0f;overflow:hidden;position:relative}.loading-bar div{position:absolute;left:0;top:0;bottom:0;width:24%;background:var(--accent);animation:slideBar .85s linear infinite}.error-banner{display:flex;align-items:center;gap:12px;max-width:1360px;margin:16px auto 0;padding:0 24px}.error-banner-inner{display:flex;align-items:center;gap:12px;width:100%;border:1px solid rgba(255,107,87,.45);background:#ff6b571a;color:var(--red-soft);padding:12px 16px;border-radius:var(--radius-md);font-size:13px}.error-banner .tag{font-family:var(--font-head);font-weight:800}.error-banner .msg{flex:1}.error-banner button{font-family:var(--font-text);font-size:12px;font-weight:600;color:var(--red-soft);background:transparent;border:1px solid rgba(255,107,87,.6);border-radius:var(--radius-pill);padding:5px 13px;cursor:pointer}.error-banner button:hover{background:#ff6b5729}.layout{position:relative;z-index:2;max-width:1360px;margin:0 auto;padding:26px 24px 90px}.page{animation:fadeUp .3s ease}h1{font-family:var(--font-head);font-size:42px;font-weight:800;line-height:1.05;letter-spacing:-.03em;margin:0 0 10px}.eyebrow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--text-faint);margin-bottom:12px}.subtitle{font-size:14px;color:var(--text-dim);margin:0 0 22px;max-width:620px;line-height:1.6}h2{font-family:var(--font-head);font-size:20px;font-weight:800;letter-spacing:-.01em;margin:30px 0 14px}.page-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:4px}.back-link{display:inline-block;font-size:12px;color:var(--text-dim);cursor:pointer;margin-bottom:12px}.back-link:hover{color:var(--accent)}.page-head .spacer{flex:1}.page-head h1{margin:0;font-size:32px}.btn-primary{font-family:var(--font-head);font-size:14px;font-weight:800;color:#06090f;background:var(--accent);border:none;border-radius:var(--radius-md);padding:13px 20px;cursor:pointer}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{font-family:var(--font-head);font-size:12.5px;font-weight:700;color:var(--text);background:#ffffff14;border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:9px 16px;cursor:pointer}.btn-secondary:hover{background:#ffffff24}.btn-amber{font-family:var(--font-head);font-size:12.5px;font-weight:800;color:var(--amber-fg);background:var(--amber);border:none;border-radius:var(--radius-sm);padding:9px 16px;cursor:pointer}.btn-amber:hover{filter:brightness(1.08)}.btn-outline{font-family:var(--font-text);font-size:12px;font-weight:600;color:var(--text-dim);background:transparent;border:1px solid var(--border-input);border-radius:var(--radius-pill);padding:6px 13px;cursor:pointer}.btn-outline:hover{color:var(--red);border-color:#ff6b5799}.btn-ghost-danger{font-family:var(--font-text);font-size:12px;color:var(--text-faint);background:transparent;border:none;cursor:pointer;padding:0}.btn-ghost-danger:hover{color:var(--red)}input,select{font-family:var(--font-text);font-size:13px;color:var(--text);background:#ffffff0d;border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:8px 12px;outline:none}input:focus,select:focus{border-color:var(--accent)}input.mono-input{font-family:var(--font-mono)}input.num{font-family:var(--font-mono);text-align:right}select{cursor:pointer}select.pending-select{background:#ffb84d14;border-color:#ffb84d8c}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;border-radius:4px}input::placeholder{color:var(--text-faint)}.stat-grid{display:flex;gap:12px;flex-wrap:wrap}.stat-card{border-radius:var(--radius-lg);padding:16px 20px;min-width:132px;border:1px solid var(--card-border);background:var(--card-bg)}.stat-card .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim);margin-bottom:10px}.stat-card .value{font-family:var(--font-head);font-size:34px;font-weight:800;line-height:1}.stat-total{border-color:var(--card-border);background:var(--card-bg)}.stat-warn{border-color:#ffb84d66;background:#ffb84d1a;cursor:pointer}.stat-warn:hover{filter:brightness(1.12)}.stat-warn .value{color:var(--amber)}.stat-invoices{border-color:#b7ee3f47;background:#b7ee3f12}.stat-invoices .value{color:var(--accent)}.events-head{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:24px}.events-head .col{flex:1;min-width:340px}.card-grid{display:grid;gap:14px}.card-grid.events{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.card-grid.people{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.card-grid.services{grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.card{border:1px solid var(--card-border);background:var(--card-bg);border-radius:var(--radius-lg);padding:20px}.card.clickable{cursor:pointer;transition:border-color .15s,transform .15s}.card.clickable:hover{border-color:#b7ee3f73;transform:translateY(-2px)}.card.inactive{opacity:.5}.event-card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}.event-card-name{font-family:var(--font-head);font-weight:800;font-size:19px;letter-spacing:-.01em;margin-bottom:5px}.event-card-date{font-family:var(--font-mono);font-size:12px;color:var(--text-faint)}.progress-track{height:5px;border-radius:var(--radius-pill);background:#ffffff12;overflow:hidden;margin-bottom:14px}.progress-fill{height:100%;background:var(--accent);border-radius:var(--radius-pill)}.event-card-stats{display:flex;gap:20px}.event-card-stats .num{font-family:var(--font-mono);font-size:17px;font-weight:700}.event-card-stats .cap{font-size:11px;color:var(--text-faint)}.event-card-open{flex:1;display:flex;align-items:flex-end;justify-content:flex-end;font-size:12px;color:var(--text-dim);font-weight:600}.avatar{border-radius:var(--radius-sm);color:#06090f;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:800;flex-shrink:0}.avatar.sm{width:34px;height:34px;font-size:13px;border-radius:11px}.avatar.md{width:42px;height:42px;font-size:15px;border-radius:13px}.avatar.lg{width:44px;height:44px;font-size:16px;border-radius:13px}.group{border:1px solid var(--card-border);background:#ffffff08;border-radius:var(--radius-lg);margin-bottom:14px;overflow:hidden}.group-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--card-border);background:#ffffff08}.group-head .name{font-family:var(--font-head);font-weight:700;font-size:15px}.group-head .count{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-dim);border:1px solid var(--border-input);border-radius:var(--radius-pill);padding:4px 11px}.grid-row{display:grid;gap:14px;padding:12px 18px;align-items:center;border-bottom:1px solid rgba(255,255,255,.05)}.grid-row:last-child{border-bottom:none}.grid-row.clickable{cursor:pointer;border-radius:var(--radius-md)}.grid-row.clickable:hover{background:var(--card-bg-hover)}.grid-row.inactive{opacity:.45}.wi-thumb{width:40px;height:40px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--card-border);background:#ffffff0a;display:block}.tr{text-align:right}.cell-mono{font-family:var(--font-mono)}.cell-strong{font-weight:600}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-rows{display:flex;flex-direction:column;gap:8px}.list-rows .grid-row{border:1px solid var(--card-border);background:var(--card-bg);border-radius:var(--radius-md);padding:14px 18px}.list-rows .grid-row.clickable:hover{border-color:#b7ee3f66;background:var(--card-bg-hover)}.chip-status{display:inline-block;font-size:11px;font-weight:600;border-radius:var(--radius-pill);padding:4px 11px}.empty-box{border:1px dashed var(--border-input);border-radius:var(--radius-lg);padding:44px;text-align:center;color:var(--text-dim);font-size:14px}.empty-box.small{padding:30px;font-size:13px}.form-bar{display:flex;gap:10px;align-items:center;padding:14px 18px;flex-wrap:wrap}.form-bar.head{border:1px solid var(--card-border);background:#ffffff0a;border-radius:var(--radius-md);margin-bottom:16px}.form-bar.footer{background:#ffffff08}.form-bar .form-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:var(--text-faint)}.form-bar input.grow{flex:1;min-width:160px}.res-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;border:1px solid var(--border-input);background:#ffffff0d;color:var(--text-mid);border-radius:var(--radius-pill);padding:4px 11px}.res-chip .x{cursor:pointer;color:var(--text-faint);font-weight:700}.res-chip .x:hover{color:var(--red)}.res-add-btn{font-family:var(--font-text);font-size:12px;font-weight:700;color:var(--text-dim);background:transparent;border:1px solid var(--border-input);border-radius:var(--radius-pill);padding:4px 12px;cursor:pointer}.res-add-btn:hover{color:var(--accent);border-color:#b7ee3f99}.invoice-layout{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.invoice-main{flex:1 1 520px;min-width:0}.invoice-side{position:sticky;top:88px;flex:1 1 300px;max-width:340px;min-width:0;display:flex;flex-direction:column;gap:12px}.total-box{border:1px solid rgba(183,238,63,.3);background:linear-gradient(180deg,#b7ee3f1f,#b7ee3f0a);border-radius:var(--radius-lg);padding:22px}.total-box .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--text-dim);margin-bottom:12px}.total-box .value{font-family:var(--font-head);font-size:36px;font-weight:800;line-height:1.05;letter-spacing:-.02em;color:var(--accent);word-break:break-word}.total-extra{font-family:var(--font-mono);font-size:13px;color:var(--amber);margin-top:10px}.total-box .note{font-size:12px;color:var(--text-dim);margin-top:14px;line-height:1.5}.readonly-note{border:1px solid var(--card-border);background:var(--card-bg);border-radius:var(--radius-md);padding:14px 16px;font-size:12.5px;color:var(--text-dim);line-height:1.5}.bonus-panel{border:1px solid rgba(255,184,77,.25);background:#ffb84d0d;border-radius:var(--radius-lg);margin-top:14px;overflow:hidden}.bonus-panel .panel-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid rgba(255,184,77,.2)}.bonus-panel .panel-head .title{font-family:var(--font-head);font-size:15px;font-weight:800;color:var(--amber)}.panel{border:1px solid var(--card-border);background:#ffffff08;border-radius:var(--radius-lg);overflow:hidden}.panel-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--card-border)}.grid-head{display:grid;gap:12px;padding:0 18px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:var(--text-faint)}.panel .grid-head{padding:12px 18px;border-bottom:1px solid var(--card-border);background:#ffffff08;margin:0}.login-hero{position:relative;z-index:2;min-height:100vh;display:flex;flex-wrap:wrap;align-items:center;gap:48px;max-width:1280px;margin:0 auto;padding:48px 32px}.login-copy{flex:1 1 420px;min-width:0;animation:fadeUp .4s ease}.login-pill{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--card-border);background:#ffffff0a;border-radius:var(--radius-pill);padding:6px 14px;font-size:12px;color:var(--text-dim);margin-bottom:26px}.login-pill .dot{width:7px;height:7px;border-radius:var(--radius-pill);background:var(--accent);box-shadow:0 0 10px var(--accent)}.login-copy h1{font-size:clamp(34px,4.8vw,62px);margin:0 0 20px;text-wrap:balance}.login-copy p{font-size:16px;line-height:1.6;color:var(--text-dim);max-width:520px;margin:0;text-wrap:pretty}.login-stats{display:flex;gap:28px;margin-top:34px}.login-stats .num{font-family:var(--font-mono);font-size:26px;font-weight:700;color:var(--accent)}.login-stats .num.plain{color:var(--text)}.login-stats .cap{font-size:12px;color:var(--text-faint)}.login-card{flex:1 1 380px;max-width:460px;min-width:0;border:1px solid var(--card-border);background:#0c1018db;border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 30px 80px #0000008c;animation:fadeUp .45s ease}.login-head{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid var(--card-border)}.login-logo{width:36px;height:36px;border-radius:11px;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#06090f;font-weight:800;font-family:var(--font-head);font-size:17px}.login-title{font-family:var(--font-head);font-weight:800;font-size:16px;letter-spacing:-.01em}.login-sub{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.14em}.login-body{padding:24px;display:flex;flex-direction:column;gap:16px}.login-body label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim);margin-bottom:7px}.login-body input{width:100%;font-family:var(--font-mono);font-size:14px;padding:11px 14px}.login-error{border:1px solid rgba(255,107,87,.5);background:#ff6b571a;color:var(--red-soft);font-size:13px;padding:11px 14px;border-radius:var(--radius-sm)}.login-body .btn-primary{width:100%}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#030509c7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{width:460px;border:1px solid var(--border-input);background:#0b0f17;border-radius:var(--radius-lg);animation:fadeUp .22s ease;box-shadow:0 30px 90px #0009}.modal-title{padding:20px 22px 0;font-family:var(--font-head);font-weight:800;font-size:19px;letter-spacing:-.01em}.modal-text{padding:12px 22px 20px;font-size:14px;color:var(--text-dim);line-height:1.6}.modal-actions{display:flex;gap:10px;padding:0 22px 22px}.modal-actions .btn-primary{width:auto;padding:11px 20px;font-size:13px}.modal-cancel{font-family:var(--font-head);font-size:13px;font-weight:700;color:var(--text-mid);background:transparent;border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:11px 20px;cursor:pointer}.modal-cancel:hover{background:#ffffff0f}.loading-note{color:var(--text-dim);font-family:var(--font-mono);font-size:13px}
