:root{--brand:#2b8fe0;--brand-ink:#1f6fb5;--brand-soft:#e6f3fd;--navy:#1f3a5f;--side:#0f2540;--ink:#0f2540;--muted:#5f7086;--line:#dbe5ee;--surface:#f3f7fb;--card:#fff;--ok:#2e8f68;--warn:#c98a21;--alert:#c4553d;--r-sm:6px;--r-md:10px;--r-lg:14px;--ui:Manrope,ui-sans-serif,-apple-system,"Helvetica Neue",Arial,sans-serif;--disp:"Bebas Neue",Impact,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior-x:none;overflow-x:clip}html,body,#root{height:100%}body{background:var(--surface);color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}img,svg{max-width:100%;display:block}button,input,select,textarea{font-family:inherit}h2,h3{margin:0}.auth{justify-content:center;align-items:center;min-height:100dvh;padding:32px 20px;display:flex}.auth-card{text-align:center;width:100%;max-width:380px;margin:0 auto}.auth-head{margin-bottom:26px}.auth-head img{height:110px;margin:0 auto}.auth-head .tag{font-family:var(--disp);letter-spacing:.08em;color:var(--navy);margin:12px 0 0;font-size:26px}.auth-head .by{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px;font-size:10px;font-weight:700}.field{text-align:left;margin-bottom:12px}.field label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;font-size:10px;font-weight:700;display:block}.field input,.field select{width:100%;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 13px;font-size:16px}.field input:focus,.field select:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}.btn{border-radius:var(--r-md);background:var(--brand);color:#fff;cursor:pointer;border:0;width:100%;padding:13px;font-size:15px;font-weight:700}.btn:hover{background:var(--brand-ink)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{color:var(--navy);border:1px solid var(--line);background:0 0}.btn.ghost:hover{background:var(--card)}.btn.danger{background:var(--alert)}.btn.sm{width:auto;padding:8px 14px;font-size:13px}.link{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:6px 4px;font-size:13.5px;font-weight:700}.link.danger{color:#9e3f2c}.note{border-radius:var(--r-md);background:var(--brand-soft);color:var(--brand-ink);text-align:left;border:1px solid #2b8fe047;margin-top:14px;padding:11px 13px;font-size:13px;line-height:1.5}.note.err{color:#9e3f2c;background:#c4553d14;border-color:#c4553d4d}.foot-line{color:var(--muted);margin-top:20px;font-size:12px}.admin{min-height:100dvh;display:flex}.aside{background:var(--side);color:#fff;flex-direction:column;flex:none;gap:22px;width:240px;padding:22px 16px;display:flex}.brandrow{align-items:center;gap:12px;display:flex}.brandrow img{filter:brightness(0)invert();width:auto;height:54px}.brandname{font-family:var(--disp);letter-spacing:.08em;font-size:22px;line-height:1}.brandsub{letter-spacing:.2em;color:#8fb6d8;margin-top:5px;font-size:8.5px}.aside nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav{text-align:left;color:#b7d0e6;border-radius:var(--r-md);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-size:14px;display:flex}.nav:hover{color:#fff;background:#ffffff0f}.nav.on{background:var(--brand);color:#fff;font-weight:700}.nav .cnt{background:#ffffff29;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.nav.on .cnt{background:#ffffff4d}.asideuser{border-top:1px solid #ffffff1f;align-items:center;gap:10px;padding-top:16px;display:flex}.avatar{background:var(--brand);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:800;display:flex}.asideuser .un{overflow-wrap:anywhere;font-size:13px;font-weight:700}.asideuser .ur{color:#8fb6d8;font-size:11px}.signout{color:#8fb6d8;cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:12px}.signout:hover{color:#fff}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--card);border-bottom:1px solid var(--line);z-index:4;align-items:center;gap:12px;padding:14px 24px;display:flex;position:sticky;top:0}.topbar h1{font-family:var(--disp);letter-spacing:.06em;color:var(--navy);margin:0;font-size:26px;font-weight:400;line-height:1}.topbar .sp{flex:1}.navtoggle{color:var(--navy);cursor:pointer;background:0 0;border:0;padding:4px;display:none}.navtoggle svg{width:24px;height:24px}.pad{max-width:1180px;padding:22px 24px 48px}.fine{color:var(--muted);font-size:12.5px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar .sp{flex:1}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:22px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);text-align:left;cursor:pointer;width:100%;min-width:0;padding:16px 18px;transition:border-color .15s;display:block;position:relative;overflow:hidden}.stat:hover{border-color:var(--brand)}.stat .v{font-family:var(--disp);color:var(--navy);letter-spacing:.02em;font-size:40px;line-height:1}.stat .k{color:var(--muted);margin-top:6px;font-size:12.5px;font-weight:600}.stat.hot .v{color:var(--alert)}.stat.warn .v{color:var(--warn)}.stat.ok .v{color:var(--ok)}.cols{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.tablewrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:16px;overflow:hidden}.tablehead{border-bottom:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;font-size:12px;font-weight:800;display:flex}.tablehead .btn{width:auto;padding:8px 14px;font-size:13px}.tscroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 16px;font-size:11px}td{border-bottom:1px solid var(--line);vertical-align:top;padding:11px 16px}tr:last-child td{border-bottom:0}tr.click{cursor:pointer}tr.click:hover td{background:var(--surface)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td .sub{color:var(--muted);font-size:12px;display:block}.empty{text-align:center;color:var(--muted);padding:28px 18px;font-size:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:700}.chip[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.pill.ok{color:var(--ok);background:#2e8f681f}.pill.brand{background:var(--brand-soft);color:var(--brand-ink)}.pill.grey{background:var(--surface);color:var(--muted)}.pill.alert{color:#9e3f2c;background:#c4553d1f}.pill.warn{color:#9c6a14;background:#c98a2124}.pill.navy{background:var(--navy);color:#fff}.search{width:100%;max-width:360px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 14px;font-size:16px}.search:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}.formbody{flex-direction:column;gap:14px;padding:16px 18px;display:flex}.frow{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.frow label,.fblock{flex-direction:column;gap:5px;min-width:0;display:flex}.frow label.wide{grid-column:1/-1}.lbl{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:800}.formbody input,.formbody select,.formbody textarea,.itemrow input,.itemrow select{width:100%;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;font-size:16px}.formbody textarea{resize:vertical;min-height:70px}.formbody input:focus,.formbody select:focus,.formbody textarea:focus,.itemrow input:focus,.itemrow select:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}.formbody .btn{align-self:flex-start;width:auto;padding:10px 20px}.actions{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding-top:6px;display:flex}.actions .btn{width:auto;padding:10px 18px;font-size:14px}.actions .sp{flex:1}.itemrow{grid-template-columns:minmax(0,3fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,1.2fr) auto;align-items:center;gap:8px;display:grid}.itemrow .tot{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.qtot{flex-direction:column;align-items:flex-end;gap:4px;margin-top:6px;font-size:14px;display:flex}.qtot div{gap:18px;display:flex}.qtot strong{color:var(--navy);font-size:20px}.block{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:12px;display:flex}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.detail-grid p{overflow-wrap:anywhere;margin:3px 0 0;font-size:14px}.overlay{z-index:30;background:#0f254073;justify-content:center;align-items:flex-start;padding:32px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--card);border-radius:var(--r-lg);width:100%;max-width:760px;margin:auto 0;box-shadow:0 30px 80px #0f254059}.modal.narrow{max-width:520px}.modal .mh{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 18px;display:flex}.modal .mh h2{font-family:var(--disp);letter-spacing:.06em;color:var(--navy);flex:1;font-size:24px;font-weight:400;line-height:1}.modal .x{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:22px;line-height:1}.yard{flex-direction:column;gap:18px;display:flex}.area{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 18px}.area .ah{align-items:center;gap:10px;margin-bottom:12px;display:flex}.area .ah h3{font-family:var(--disp);letter-spacing:.06em;color:var(--navy);font-size:22px;font-weight:400}.slots{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;display:grid}.slot{border:1px solid var(--line);border-radius:var(--r-md);text-align:left;background:var(--surface);cursor:pointer;flex-direction:column;gap:3px;min-height:76px;padding:10px;display:flex}.slot:hover{border-color:var(--brand)}.slot .c{letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:800}.slot .b{overflow-wrap:anywhere;color:var(--navy);font-size:13.5px;font-weight:700}.slot .d{color:var(--muted);font-size:11px}.slot.in{background:#e3f1fc;border-color:#9fcdf2}.slot.reserved{background:#fff5e3;border-color:#f0d29a}.day{margin-bottom:14px}.day h3{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:12px}.appt{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;align-items:flex-start;gap:14px;margin-bottom:6px;padding:10px 14px;display:flex}.appt:hover{border-color:var(--brand)}.appt .t{font-family:var(--disp);letter-spacing:.04em;color:var(--navy);min-width:56px;font-size:22px;line-height:1.1}.appt .b{flex:1;min-width:0}.appt .b strong{display:block}.appt.done{opacity:.55}.appt.cancelled{opacity:.45;text-decoration:line-through}@media (width<=900px){.admin{display:block}.aside{z-index:20;transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-100%);box-shadow:0 0 40px #081a264d}.aside.open{transform:none}.navtoggle{display:block}.pad{padding:16px 14px 48px}.topbar{padding:12px 14px}.itemrow{grid-template-columns:1fr 1fr}.itemrow input:first-child{grid-column:1/-1}.overlay{padding:12px 8px}}@media print{body{background:#fff}}
