:root{--bg:#f4f8f5;--card:#fff;--ink:#1c2b24;--muted:#62756b;--line:#dbe5de;--brand:#1f7a4d;--brand-d:#165a39;--warn:#b45309;--err:#b42318;--ok:#1f7a4d;--r:14px}
@media (prefers-color-scheme:dark){:root{--bg:#0f1713;--card:#17231d;--ink:#e7f0ea;--muted:#9bb0a3;--line:#27382f;--brand:#39b073;--brand-d:#2e9460;--warn:#f0a04b;--err:#ff7b6b}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1{font-size:1.5rem;margin:.4rem 0}h2{font-size:1.1rem;margin:0 0 .6rem}
a{color:var(--brand)}
.muted{color:var(--muted)}.small{font-size:.85rem}.r{text-align:right}.mono{font-family:ui-monospace,Menlo,monospace;font-size:.82rem}
.top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 16px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:.5rem;font-weight:700}
.who{display:flex;align-items:center;gap:.6rem}.who-name{font-size:.85rem;color:var(--muted);max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grid{display:grid;gap:14px;padding:16px;max-width:1000px;margin:0 auto;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.wide{grid-column:1/-1}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0}
.tx{margin-bottom:10px;background:var(--bg)}.tx:last-child{margin-bottom:0}
.row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap}.gap{justify-content:flex-start}
.btn{appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:10px;padding:.6rem 1rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;min-height:44px}
.btn:hover{background:var(--brand-d)}.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--brand)}.btn.ghost:hover{background:rgba(31,122,77,.08)}
.btn.small{padding:.3rem .7rem;min-height:34px;font-size:.9rem}.btn.danger{color:var(--err);border-color:var(--err)}
.big-btn{width:100%;font-size:1.1rem;padding:.9rem}
label{display:block;font-weight:600;font-size:.9rem;margin:.7rem 0}
input,select{width:100%;font:inherit;padding:.6rem .7rem;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);min-height:44px;margin-top:.25rem}
input[type=month],input[type=date]{width:auto;margin:0}
fieldset{border:1px solid var(--line);border-radius:10px;margin:.8rem 0}legend{font-weight:600;font-size:.9rem;padding:0 .3rem}
.inline{display:flex;gap:.5rem;flex-wrap:wrap}.inline select{flex:1 1 180px;margin:0}.inline input{flex:0 0 110px;margin:0}
.pin-input{text-transform:uppercase;text-align:center;letter-spacing:.3em;font-weight:700}
.pin{font:700 3rem/1.1 ui-monospace,Menlo,monospace;letter-spacing:.35em;text-align:center;padding:.6rem 0 .6rem .35em;margin:.8rem 0 .2rem;background:var(--bg);border:2px dashed var(--brand);border-radius:12px}
.picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.4rem;align-items:center}.picker select{margin:0}
.chips{list-style:none;padding:0;margin:.5rem 0;display:flex;flex-wrap:wrap;gap:.4rem}
.chips li{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.25rem .7rem;display:flex;align-items:center;gap:.5rem;font-size:.9rem}
.badge{display:inline-block;border-radius:999px;padding:.1rem .6rem;font-size:.78rem;font-weight:700;margin-right:.3rem;background:var(--line);color:var(--ink)}
.badge.ok{background:rgba(31,122,77,.15);color:var(--ok)}.badge.wait{background:rgba(37,99,235,.14);color:#2563eb}.badge.warn{background:rgba(180,83,9,.16);color:var(--warn)}
.big{font-size:2rem;font-weight:800;margin:.2rem 0}
.lines{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;margin:.6rem 0}.lines dt{color:var(--muted)}.lines dd{margin:0;text-align:right}
.total{margin:.6rem 0;font-size:1.1rem;display:flex;justify-content:space-between}
.weights label{margin:.4rem 0}.with-unit{display:flex;align-items:center;gap:.4rem}.with-unit input{margin:0}.with-unit span{min-width:2rem;color:var(--muted)}
.warn-text{color:var(--warn);font-weight:600}
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}.tbl th,.tbl td{padding:.5rem .4rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.tbl th{color:var(--muted);font-weight:600;white-space:nowrap}.tbl td.r{text-align:right}
.scroll{overflow-x:auto}
.pager{display:flex;justify-content:center;align-items:center;gap:.8rem;margin-top:.8rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:.6rem 0 1rem}.kpis div{background:var(--bg);border-radius:10px;padding:.6rem .8rem}.kpis strong{display:block;font-size:1.3rem}
.bar{margin:.8rem 0;padding:.6rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:#1c2b24;color:#fff;padding:.7rem 1rem;border-radius:10px;max-width:90vw;transition:.25s;z-index:20}
.toast.show{opacity:1;transform:translate(-50%,0)}.toast.err{background:var(--err)}
.auth{display:grid;place-items:center;min-height:100vh;padding:16px}.auth-card{width:100%;max-width:400px;text-align:center}.auth-card.wide{max-width:520px;text-align:left}
.auth-card form{text-align:left}.auth-card .btn{width:100%;margin-top:.5rem}
.notice:empty{display:none}.notice{background:rgba(37,99,235,.1);border-radius:10px;padding:.6rem;margin:.6rem 0}
.or{display:flex;align-items:center;gap:.6rem;color:var(--muted);margin:1rem 0}.or::before,.or::after{content:"";flex:1;border-top:1px solid var(--line)}#googleBtn{display:flex;justify-content:center}
.center{display:grid;place-items:center;min-height:60vh}
@media (max-width:520px){.who-name{display:none}.pin{font-size:2.4rem}}
