:root{--blue:#006bff;--blue-soft:#e8f1ff;--ink:#1a1a1a;--muted:#64748b;--line:#e2e8f0;--bg:#f8fafc;--green:#14a44d;--amber:#f59e0b}*{box-sizing:border-box;margin:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#app{width:100%;height:100dvh;display:flex}.main{flex:1;min-width:0;padding:0 32px 24px;overflow-y:auto}.content{width:100%;max-width:1280px;margin:0 auto}.topbar{z-index:10;background:var(--bg);border-bottom:1px solid var(--line);margin:0 0 16px;padding:20px 0 12px;position:sticky;top:0}.topbar .toolbar{margin-bottom:0}.topbar h1{margin-bottom:12px}.side{z-index:20;border-left:1px solid var(--line);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#fff;width:400px;height:100dvh;position:fixed;top:0;right:0;overflow-y:auto}.sidebar-enter-active,.sidebar-leave-active{transition:transform .15s ease-out,opacity .15s ease-out}.sidebar-enter-from,.sidebar-leave-to{opacity:0;transform:translate(100%)}h1{margin-bottom:16px;font-size:22px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.toolbar-fields,.toolbar-meta{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.toolbar-meta{color:var(--muted);font-size:13px}select,input[type=date]{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:320px;padding:8px 12px;font-size:14px}.btn{border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--blue);color:var(--blue)}.btn:disabled{opacity:.5;cursor:not-allowed}.icon{vertical-align:middle;font-size:18px;line-height:1}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{opacity:.9;color:#fff}.empty,.loading{color:var(--muted);text-align:center;padding:40px 0;font-size:14px}.stepper{border:1px solid var(--line);outline-offset:2px;background:#fff;border-radius:8px;align-items:center;gap:2px;padding:2px;display:inline-flex}.stepper:focus{outline:2px solid var(--blue)}.stepper .arrow{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;padding:6px 8px;font-size:11px}.stepper .arrow:hover{background:var(--blue-soft);color:var(--blue)}.stepper .lbl{color:var(--muted);text-align:center;min-width:128px;font-size:13px}.stepper .lbl.on{color:var(--blue);font-weight:600}.slot{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:16px;margin-bottom:8px;padding:14px 18px;transition:border-color .15s;display:flex}.slot:hover{border-color:var(--blue)}.slot.selected{border-color:var(--blue);background:var(--blue-soft)}.slot.past{opacity:.55}.slot .time{width:165px;color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:14px}.slot .dot{background:var(--amber);border-radius:50%;flex-shrink:0;width:10px;height:10px}.slot.live .dot{background:var(--green)}.slot .name{overflow-wrap:anywhere;font-size:14px;font-weight:600}.slot-info{min-width:0}.slot .count{color:var(--muted);font-size:13px}.slot .fill{text-align:right;flex-shrink:0;margin-left:auto}.badge{border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.badge.live{color:var(--green);background:#e6f6ec}.badge.soon{color:var(--amber);background:#fef3e2}.bar{background:var(--line);border-radius:3px;width:110px;height:5px;margin-top:6px;overflow:hidden}.bar i{background:var(--blue);border-radius:3px;height:100%;display:block}.panel{padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));position:relative}.close-x{top:max(8px, env(safe-area-inset-top));right:max(8px, env(safe-area-inset-right));cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:16px;line-height:1;display:inline-flex;position:absolute}.close-x:hover{background:var(--bg);color:var(--ink)}.panel h2{margin:4px 0 2px;font-size:17px}.panel .sub{color:var(--muted);margin-bottom:16px;font-size:13px}.panel .bar{margin-bottom:10px}.section{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.section h3{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-bottom:10px;font-size:13px}.spots{margin-bottom:10px;font-size:14px}.actions{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.invitee{border:1px solid var(--line);border-radius:8px;margin-bottom:8px;padding:10px 12px}.invitee .row{cursor:pointer;align-items:center;gap:10px;display:flex}.invitee .row>:nth-child(2){min-width:0}.avatar{background:var(--blue-soft);width:32px;height:32px;color:var(--blue);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.invitee .nm{overflow-wrap:anywhere;font-size:14px;font-weight:600}.invitee .em{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.invitee .chev{color:var(--muted);flex-shrink:0;margin-left:auto;font-size:12px}.qa{border-top:1px dashed var(--line);margin-top:10px;padding-top:10px;font-size:13px}.qa .q{color:var(--muted);margin-top:8px}.qa .a{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:2px}.loc{color:var(--ink);overflow-wrap:anywhere;font-size:13px}.note{color:var(--muted);margin-top:8px;font-size:12px}.login-wrap{min-width:0;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));flex:1;justify-content:center;align-items:center;display:flex;overflow-y:auto}.login-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:14px;flex-direction:column;gap:12px;width:340px;padding:36px 40px;display:flex}.login-card .lock{font-size:28px}.login-card h2{font-size:19px}.login-card p{color:var(--muted);font-size:13px}.login-card input{border:1px solid var(--line);text-align:center;border-radius:8px;padding:10px 12px;font-size:14px}.login-card input:focus{outline:2px solid var(--blue);border-color:var(--blue)}.login-card .btn{justify-content:center;padding:10px;font-size:14px}.login-err{color:#b91c1c;font-size:13px}.btn.logout{margin-left:auto}.error{color:#b91c1c;background:#fef2f2;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.error .hint{color:#7f1d1d;margin-top:4px;font-size:12px}.error .retry{margin-top:8px}@media (width>=768px) and (width<=1024px){.main{padding:0 max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left))}.toolbar,.toolbar-fields,.toolbar-meta{gap:10px}select,input[type=date],.btn,.stepper{min-height:44px}.stepper .arrow{min-width:40px;min-height:40px}.side{width:min(440px,56vw)}}@media (width<=767px),(height<=500px) and (pointer:coarse){.main{padding:0 max(12px, env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left))}.topbar{padding-top:max(12px, env(safe-area-inset-top));margin-bottom:12px;padding-bottom:10px}.topbar h1{margin-bottom:10px;font-size:20px}.toolbar{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;width:100%;display:grid}.toolbar-fields{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.toolbar-fields select,.toolbar-fields input[type=date]{width:100%;min-width:0;max-width:none;min-height:44px;padding:8px 10px;font-size:16px}.toolbar-fields .btn{grid-column:1/-1;justify-content:center}.toolbar-fields .stepper{grid-column:1/-1;justify-content:space-between;width:100%;min-height:44px}.stepper .arrow{min-width:40px;min-height:40px}.stepper .lbl{flex:1;min-width:0}.toolbar-meta{flex-direction:column;align-items:flex-start;gap:2px;font-size:12px}.btn{min-height:44px}.btn.logout{align-self:center;margin-left:0}.slot{grid-template-columns:10px minmax(0,1fr) 106px;grid-template-areas:"dot time fill""dot info fill";align-items:start;gap:4px 10px;padding:12px;display:grid}.slot .time{grid-area:time;align-self:center;width:auto;font-size:13px}.slot .dot{grid-area:dot;align-self:center}.slot-info{grid-area:info}.slot .fill{grid-area:fill;align-self:center;width:106px;margin-left:0}.slot .bar{width:100%}.badge{margin-top:2px;display:inline-block}.side{border-left:none;width:100%;left:0}.panel{min-height:100%;padding:calc(20px + env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.panel h2,.panel .sub{padding-right:44px}.actions .btn,.invitee .row{min-height:44px}.login-wrap{padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.login-card{width:100%;max-width:340px;padding:28px 20px}.login-card input{min-height:44px;font-size:16px}}@media (width<=359px){.slot{grid-template-columns:10px minmax(0,1fr);grid-template-areas:"dot time""dot info"".fill"}.slot .fill{text-align:left;width:100%;margin-top:6px}}@media (height<=500px) and (pointer:coarse){.login-wrap{align-items:flex-start}}
