:root{--c:#0f766e;--ink:#16181d;--mut:#5b6270;--line:#e3e6ea;--bg:#f4f5f7;--bad:#b42318;--ok:#067647}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--c)}h1{font-size:24px;margin:0 0 4px}h2{font-size:17px;margin:0 0 10px}p.sub{margin:0 0 20px;color:var(--mut)}
.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.side{background:#fff;border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh}
.side .brand{font-weight:800;font-size:18px;padding:4px 10px 16px;color:var(--c)}
.side a{display:block;padding:9px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}
.side a.on{background:#e6f4f2;color:var(--c);font-weight:600}.side a:hover{background:#f0f2f4}
.side .grow{flex:1}.side button{margin:0 4px}
main{padding:28px;max-width:1000px;width:100%}
.bar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.stat small{color:var(--mut);text-transform:uppercase;letter-spacing:.05em;font-size:12px}
.stat b{display:block;font-size:24px;margin-top:2px}
button,.btn{font:inherit;border:0;background:var(--c);color:#fff;padding:9px 16px;border-radius:10px;cursor:pointer;font-weight:600;text-decoration:none;display:inline-block}
button.ghost,.btn.ghost{background:#eceff2;color:var(--ink)}button.danger{background:#fde8e6;color:var(--bad)}button.sm{padding:5px 10px;font-size:13px}
button:disabled{opacity:.5;cursor:default}
input,select,textarea{font:inherit;width:100%;padding:9px 11px;border:1px solid #cfd4da;border-radius:10px;background:#fff}
textarea{min-height:80px;resize:vertical}label{display:block;font-weight:600;font-size:13px;margin:12px 0 4px}label small{font-weight:400;color:var(--mut)}
.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:140px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-top:1px solid var(--line);vertical-align:middle}th{font-size:12px;text-transform:uppercase;color:var(--mut);border:0}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600;background:#eceff2}
.pill.live,.pill.paid{background:#dcfae6;color:var(--ok)}.pill.overdue,.pill.lost{background:#fde8e6;color:var(--bad)}.pill.paused,.pill.pending{background:#fef0c7;color:#93370d}
.empty{text-align:center;padding:36px 16px;color:var(--mut)}.empty h2{color:var(--ink)}
.msg{padding:10px 14px;border-radius:10px;margin-bottom:12px;background:#fde8e6;color:var(--bad)}.msg.ok{background:#dcfae6;color:var(--ok)}
.auth{max-width:380px;margin:9vh auto;padding:0 16px}.auth .card{padding:26px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:7px 13px;border-radius:99px;border:1px solid #cfd4da;background:#fff;color:var(--ink);cursor:pointer}.chip.on{background:var(--c);color:#fff;border-color:var(--c)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}.tabs button{background:none;color:var(--mut);border-radius:0;border-bottom:3px solid transparent}.tabs button.on{color:var(--c);border-color:var(--c)}
.steps{color:var(--mut);font-size:13px;margin-bottom:10px}
.bars{display:flex;align-items:flex-end;gap:4px;height:90px}.bars div{flex:1;background:var(--c);opacity:.85;border-radius:3px 3px 0 0;min-height:2px}
.hoursrow{display:grid;grid-template-columns:90px 1fr 1fr 80px;gap:8px;align-items:center;margin-bottom:6px}
.qrbox{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.qrbox img,.qrbox canvas{border:1px solid var(--line);border-radius:8px;padding:6px;background:#fff}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#16181d;color:#fff;padding:10px 18px;border-radius:99px;z-index:9}
.top{display:none}
@media(max-width:760px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.side .brand,.side .grow{display:none}.side a{white-space:nowrap}main{padding:16px}.hoursrow{grid-template-columns:70px 1fr 1fr 70px}}
