:root{--ink:#173f35;--green:#27705d;--mint:#dcebe5;--bg:#f4f6f3;--card:#fff;--line:#d9dfdc;--amber:#a86600;--red:#a93434;--shadow:0 8px 28px rgba(18,56,46,.09)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#17231f;font:15px/1.45 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{min-height:100vh}.top{background:var(--ink);color:#fff;padding:15px max(16px,calc((100% - 1180px)/2));display:flex;gap:12px;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.brand{display:flex;gap:10px;align-items:center;font-weight:800}.logo{display:grid;place-items:center;width:34px;height:34px;border:2px solid #fff;border-radius:10px}.user{display:flex;gap:8px;align-items:center}.user select{max-width:170px}.nav{background:#fff;border-bottom:1px solid var(--line);display:flex;gap:4px;padding:8px max(12px,calc((100% - 1180px)/2));overflow:auto;position:sticky;top:64px;z-index:9}.nav button{border:0;background:transparent;padding:10px 13px;border-radius:999px;white-space:nowrap}.nav button.active{background:var(--mint);color:var(--ink);font-weight:700}.main{max-width:1180px;margin:auto;padding:22px 16px 90px}.hero{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:18px}.hero h1{font-size:clamp(25px,4vw,40px);line-height:1.05;margin:0 0 7px}.muted{color:#66736e}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow)}.span12{grid-column:span 12}.span8{grid-column:span 8}.span6{grid-column:span 6}.span4{grid-column:span 4}.card h2,.card h3{margin:0 0 10px}.stat{font-size:30px;font-weight:800;color:var(--ink)}.btn{border:0;border-radius:10px;padding:10px 13px;background:var(--ink);color:#fff;font-weight:700}.btn.alt{background:var(--mint);color:var(--ink)}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.warn{background:#fff2dc;color:#865300}.btn.danger{background:#fbe5e5;color:var(--red)}.actions{display:flex;flex-wrap:wrap;gap:8px}.field{display:grid;gap:6px;margin:10px 0}.field label{font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid #bcc8c3;border-radius:9px;padding:10px;background:#fff}.days{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.day{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.day.selected{border:2px solid var(--green);background:#f1faf6}.day .date{font-weight:800}.slots{display:grid;gap:7px;margin-top:10px}.slot{border-left:5px solid var(--green);padding:8px 10px;background:#edf7f2;border-radius:8px}.slot.visitor{border-color:var(--amber);background:#fff5e4}.slot.block{border-color:#777;background:#eee}.slot.open{border-color:#9ab5aa;background:#f7faf8}.pill{display:inline-block;border-radius:999px;padding:3px 8px;font-size:12px;background:var(--mint);color:var(--ink);font-weight:700}.pill.amber{background:#fff0ce;color:#7a4a00}.pill.red{background:#fbe4e4;color:#8b2727}.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:650px}.table th,.table td{text-align:left;padding:10px;border-bottom:1px solid var(--line)}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#68746f}.notice{padding:11px 13px;border-radius:10px;background:#eef6f2;border-left:4px solid var(--green);margin:10px 0}.notice.warn{background:#fff4df;border-color:var(--amber)}.empty{padding:22px;text-align:center;color:#66736e;border:1px dashed #bbc7c2;border-radius:12px}.bar{height:9px;background:#e6ebe8;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green)}.settings{display:grid;grid-template-columns:1fr 1fr;gap:12px}.footer{font-size:12px;color:#718079;margin-top:26px}.toast{position:fixed;right:16px;bottom:18px;background:#17231f;color:#fff;padding:12px 16px;border-radius:11px;box-shadow:var(--shadow);z-index:50}.login{max-width:520px;margin:8vh auto}.login .card{padding:28px}.small{font-size:12px}.right{text-align:right}@media(max-width:820px){.span8,.span6,.span4{grid-column:span 12}.days{grid-template-columns:1fr}.settings{grid-template-columns:1fr}.hero{align-items:start;flex-direction:column}.top{position:static}.nav{top:0}.hide-mobile{display:none}}@media(max-width:480px){.main{padding:15px 10px 80px}.card{padding:13px;border-radius:13px}.top{padding:12px}.user{min-width:0}.user select{width:130px}.btn{min-height:44px}.nav button{min-height:44px}}