:root{--bg:#f1f5f9;--card:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--brand:#1d4ed8;--brand2:#3b82f6;--field:#fff;--btn:#e2e8f0;--shadow:0 1px 3px rgba(15,23,42,.08),0 4px 12px rgba(15,23,42,.04)}
@media(prefers-color-scheme:dark){:root{--bg:#0b1220;--card:#131c2e;--text:#e5e9f0;--muted:#94a3b8;--line:#243049;--field:#0f172a;--btn:#243049;--shadow:none}}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}
header{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;padding:10px 12px 6px;position:sticky;top:0;z-index:5;box-shadow:0 2px 10px rgba(29,78,216,.35)}
header h1{font-size:1.1rem;margin:0 0 6px;font-weight:700}
nav{display:flex;gap:4px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
nav::-webkit-scrollbar{display:none}
nav button{background:rgba(255,255,255,.12);color:#fff;border:0;padding:7px 13px;border-radius:999px;font-size:.9rem;cursor:pointer;white-space:nowrap;flex:0 0 auto}
nav button.active{background:#fff;color:var(--brand);font-weight:700}
main{max-width:980px;margin:0 auto;padding:12px 12px 40px}
.tab{display:none}.tab.active{display:block;animation:fade .18s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
h3.sec{margin:18px 2px 8px;font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
h3{color:var(--text)}

/* form */
.row{display:flex;gap:8px;align-items:center;margin:8px 0;flex-wrap:wrap}
input,select{padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:1rem;width:100%;background:var(--field);color:var(--text);min-width:0}
input:focus,select:focus{outline:2px solid var(--brand2);outline-offset:-1px}
.row input,.row select{flex:1}
select.auto{flex:0 0 auto;width:auto}
.btn{background:var(--btn);border:0;padding:10px 14px;border-radius:10px;font-size:.95rem;cursor:pointer;white-space:nowrap;color:var(--text);display:inline-block;text-align:center}
.btn:active{transform:scale(.97)}
.btn.primary{background:#16a34a;color:#fff;font-weight:600}
.btn.danger{background:#dc2626;color:#fff}
.btn.warn{background:#f59e0b;color:#fff}
.btn.sm{padding:5px 9px;font-size:.82rem;border-radius:8px}
.btn.big{padding:14px 18px;font-size:1.05rem;border-radius:12px}
.scroll{overflow-x:auto;border-radius:12px}
.tbl{width:100%;border-collapse:collapse;background:var(--card);border-radius:12px;overflow:hidden;margin:8px 0;box-shadow:var(--shadow)}
.tbl th{background:var(--bg);color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}
.tbl th,.tbl td{padding:9px 8px;text-align:left;border-bottom:1px solid var(--line);font-size:.92rem;vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl td input[type=number]{width:84px;padding:6px}
.tbl td input[type=checkbox]{width:auto}
.muted{color:var(--muted)}
.pay,.form,.card{background:var(--card);border-radius:14px;padding:14px;box-shadow:var(--shadow)}
.pay{margin-top:10px}
.form{margin-bottom:12px}
.pay label,.form label{display:grid;gap:4px;font-size:.85rem;color:var(--muted);margin:8px 0}
.pay label input,.pay label select,.form label input,.form label select{color:var(--text);font-size:1rem}
label.chk{display:flex!important;gap:8px;align-items:center;color:var(--text)!important}
label.chk input{width:auto}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.total{font-size:1.05rem;margin:8px 0}
.total strong{font-size:1.7rem}
.form h3{margin:0 0 6px}
.full{margin:8px 0}
.suggest{background:var(--card);border-radius:10px;box-shadow:var(--shadow)}
.suggest div{padding:10px;border-bottom:1px solid var(--line);cursor:pointer}
.suggest div:hover{background:var(--bg)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:10px}
.card strong{display:block;font-size:1.3rem;margin-top:2px}
.card{color:var(--muted);font-size:.9rem}
.card strong{color:var(--text)}

/* dashboard */
.hero{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 2px 12px}
.hero h2{margin:2px 0 0;font-size:1.5rem}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:700px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--card);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);cursor:pointer;border-left:4px solid var(--brand2)}
.stat:nth-child(2){border-color:#16a34a}.stat:nth-child(3){border-color:#8b5cf6}.stat:nth-child(4){border-color:#ef4444}
.stat span{display:block;font-size:.78rem;color:var(--muted)}
.stat strong{font-size:1.25rem;display:block;margin-top:2px;word-break:break-word}
.menu{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:700px){.menu{grid-template-columns:repeat(4,1fr)}}
.mcard{position:relative;background:var(--card);border:0;border-radius:16px;padding:16px 12px;box-shadow:var(--shadow);cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;color:var(--text);transition:transform .12s}
.mcard:hover{transform:translateY(-2px)}.mcard:active{transform:scale(.97)}
.mcard .ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.5rem;background:color-mix(in srgb,var(--c) 16%,transparent);margin-bottom:8px}
.mcard b{font-size:1.02rem}
.mcard small{color:var(--muted);font-size:.78rem}
.mcard .dot{position:absolute;top:10px;right:10px;background:#ef4444;color:#fff;border-radius:999px;font-style:normal;font-size:.75rem;min-width:22px;height:22px;display:grid;place-items:center;padding:0 6px;font-weight:700}
.bars{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;height:150px}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;height:100%}
.bar div{width:100%;max-width:38px;background:var(--brand2);border-radius:6px 6px 2px 2px;opacity:.55}
.bar.now div{opacity:1;background:#16a34a}
.bar span{font-size:.72rem;color:var(--muted)}
.bar small{font-size:.65rem;color:var(--muted)}
.alert{padding:8px 4px;border-bottom:1px solid var(--line);cursor:pointer;color:var(--text)}
.alert:last-child{border-bottom:0}

.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:10}
.modal[hidden]{display:none}
.modal-box{background:var(--card);padding:14px;border-radius:14px;width:92%;max-width:460px}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#0f172a;color:#fff;padding:10px 16px;border-radius:10px;z-index:20;max-width:90%;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.toast[hidden]{display:none}
.badge{border-radius:6px;padding:1px 7px;font-size:.74rem;background:#fef3c7;color:#92400e;font-weight:600}
.badge.red{background:#fee2e2;color:#991b1b}
.badge.green{background:#dcfce7;color:#166534}
.badge.gray{background:#e2e8f0;color:#334155}
.chip{display:inline-flex;gap:6px;align-items:center;background:var(--btn);border-radius:999px;padding:4px 12px;margin:3px}
.chip button{border:0;background:none;cursor:pointer;color:#ef4444;font-size:1rem}
@media(max-width:600px){.grid2{grid-template-columns:1fr}.tbl th,.tbl td{padding:7px 5px;font-size:.82rem}.hero h2{font-size:1.25rem}}
