:root{--bg:#fafaf8;--surface:#fff;--surface-2:#f3f3f0;--surface-3:#ecece8;--text:#1a1d1f;--text-muted:#6b7177;--text-faint:#9aa0a6;--border:#e6e8e6;--border-strong:#d6d9d6;--accent:#2f6e78;--accent-hover:#275a62;--accent-soft:#e8f0f1;--accent-text:#fff;--state-available-bg:#e7f0ea;--state-available-fg:#3e6b4f;--state-reserved-bg:#f6ecd9;--state-reserved-fg:#8a6420;--state-sold-bg:#f2e4e1;--state-sold-fg:#8c463c;--state-neutral-bg:#eceef0;--state-neutral-fg:#5a6168;--radius:12px;--radius-sm:8px;--radius-xs:6px;--shadow-sm:0 1px 2px #1a1d1f0a, 0 1px 3px #1a1d1f0d;--shadow-md:0 4px 16px #1a1d1f12;--shadow-lg:0 12px 40px #1a1d1f1f;--font-display:"Fraunces", Georgia, serif;--font-body:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, monospace;--sidebar-w:248px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);margin:0;font-weight:600}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{font-family:inherit}::selection{background:var(--accent-soft)}.mono{font-family:var(--font-mono)}.tnum{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid var(--bg);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}@keyframes ar-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ar-rise{animation:.4s cubic-bezier(.2,.7,.2,1) both ar-rise}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;height:38px;padding:0 16px;font-size:13.5px;font-weight:600;transition:background .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:16px;height:16px}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{color:var(--text);border-color:var(--border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.btn-subtle{color:var(--text-muted);background:0 0}.btn-subtle:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-danger{color:var(--state-sold-fg);border-color:var(--state-sold-bg);background:0 0}.btn-danger:hover:not(:disabled){background:var(--state-sold-bg)}.btn-sm{height:31px;padding:0 11px;font-size:12.5px}.btn-icon{width:34px;height:34px;padding:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:20px}.statcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:6px;padding:18px 20px;display:flex;position:relative;overflow:hidden}.statcard .sc-label{color:var(--text-muted);letter-spacing:.01em;text-transform:uppercase;font-size:12px;font-weight:500}.statcard .sc-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap;font-size:26px;font-weight:600;line-height:1.1}.statcard .sc-hint{color:var(--text-faint);font-size:12px}.statcard .sc-icon{color:var(--accent);opacity:.5;position:absolute;top:16px;right:16px}.statcard .sc-icon svg{width:20px;height:20px}.badge{letter-spacing:.01em;background:var(--state-neutral-bg);height:23px;color:var(--state-neutral-fg);border-radius:999px;align-items:center;gap:5px;padding:0 9px;font-size:11.5px;font-weight:600;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge-available{background:var(--state-available-bg);color:var(--state-available-fg)}.badge-reserved{background:var(--state-reserved-bg);color:var(--state-reserved-fg)}.badge-sold{background:var(--state-sold-bg);color:var(--state-sold-fg)}.badge-active{background:var(--state-available-bg);color:var(--state-available-fg)}.badge-completed{background:var(--accent-soft);color:var(--accent)}.badge-cancelled{background:var(--state-neutral-bg);color:var(--state-neutral-fg)}.badge-expired{background:var(--state-sold-bg);color:var(--state-sold-fg)}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--text-muted);font-size:12.5px;font-weight:600}.field-hint{color:var(--text-faint);font-size:11.5px}.field-error{color:var(--state-sold-fg);font-size:12px}.input,.select,.textarea{width:100%;height:38px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:0 12px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.textarea{resize:vertical;height:auto;min-height:84px;padding:10px 12px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B7177' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table thead th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--surface);z-index:1;padding:11px 16px;font-size:11.5px;font-weight:600;position:sticky;top:0}.table tbody td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;padding:13px 16px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background .12s}.table tbody tr:hover{background:var(--surface-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .actions{text-align:right;white-space:nowrap}.pagination{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.pagination .pg-info{color:var(--text-muted);font-size:12.5px}.pagination .pg-btns{gap:6px;display:flex}.empty{text-align:center;color:var(--text-muted);padding:56px 20px}.empty .empty-icon{width:44px;height:44px;color:var(--text-faint);margin:0 auto 14px}.empty h3{margin-bottom:6px;font-size:16px}.empty p{max-width:360px;margin:0 auto;font-size:13.5px}.spinner{border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite ar-spin}.spinner-center{place-items:center;padding:56px;display:grid}@keyframes ar-spin{to{transform:rotate(360deg)}}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#1a1d1f52;place-items:center;padding:24px;animation:.18s ar-fade;display:grid;position:fixed;inset:0}@keyframes ar-fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:560px;max-height:90vh;animation:.22s cubic-bezier(.2,.7,.2,1) both ar-rise;display:flex}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3{font-size:17px}.modal-body{padding:22px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 22px;display:flex}.toast-stack{z-index:80;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:22px;right:22px}.toast{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);min-width:280px;max-width:420px;box-shadow:var(--shadow-md);align-items:center;gap:10px;padding:12px 14px;font-size:13.5px;animation:.22s both ar-rise;display:flex}.toast svg{flex-shrink:0;width:18px;height:18px}.toast-success{border-left:3px solid var(--state-available-fg)}.toast-success svg{color:var(--state-available-fg)}.toast-error{border-left:3px solid var(--state-sold-fg)}.toast-error svg{color:var(--state-sold-fg)}.row{align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;display:grid}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.stack{flex-direction:column;gap:16px;display:flex}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar .grow{flex:1;min-width:180px}@media (width<=720px){.grid-2{grid-template-columns:1fr}}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:10px;padding:20px 22px 16px;display:flex}.brand-mark{background:var(--accent);color:#fff;width:30px;height:30px;font-family:var(--font-display);border-radius:8px;place-items:center;font-size:16px;font-weight:700;display:grid}.brand-name{font-family:var(--font-display);letter-spacing:-.01em;font-size:18px;font-weight:600}.brand-name b{color:var(--accent)}.nav{flex:1;padding:6px 12px;overflow-y:auto}.nav-group{margin-top:16px}.nav-group-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);padding:0 12px 6px;font-size:10.5px;font-weight:700}.nav-item{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;align-items:center;gap:11px;margin-bottom:2px;padding:9px 12px;font-size:13.5px;font-weight:500;transition:background .12s,color .12s;display:flex;position:relative}.nav-item svg{width:18px;height:18px}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-item.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-12px}.sidebar-foot{border-top:1px solid var(--border);padding:12px}.user-chip{border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 10px;display:flex}.avatar{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.user-chip .u-name{color:var(--text);font-size:13px;font-weight:600;line-height:1.2}.user-chip .u-role{color:var(--text-faint);text-transform:capitalize;font-size:11.5px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#fafaf8cc;flex-shrink:0;justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.topbar h1{font-size:19px;font-weight:600}.topbar .crumb{color:var(--text-faint);font-size:12.5px}.content{width:100%;max-width:1240px;margin:0 auto;padding:28px}.menu-toggle{display:none}@media (width<=880px){.sidebar{z-index:40;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.menu-toggle{display:inline-flex}.content{padding:18px}}.scrim{display:none}@media (width<=880px){.scrim.show{z-index:35;background:#0003;display:block;position:fixed;inset:0}}.login{grid-template-columns:1.05fr 1fr;min-height:100vh;display:grid}.login-aside{background:radial-gradient(1100px 500px at 12% -10%, #2f6e781a, transparent 60%), radial-gradient(900px 600px at 110% 120%, #2f6e7812, transparent 55%), var(--surface);border-right:1px solid var(--border);flex-direction:column;justify-content:space-between;padding:44px 56px;display:flex}.login-brand{align-items:center;gap:11px;display:flex}.login-aside .brand-mark{background:var(--accent);color:#fff;width:34px;height:34px;font-family:var(--font-display);border-radius:9px;place-items:center;font-size:18px;font-weight:700;display:grid}.login-aside .brand-name{font-family:var(--font-display);font-size:21px;font-weight:600}.login-aside .brand-name b{color:var(--accent)}.login-pitch{max-width:460px}.login-pitch h2{letter-spacing:-.02em;margin-bottom:16px;font-size:34px;line-height:1.12}.login-pitch p{color:var(--text-muted);font-size:15px;line-height:1.6}.login-features{flex-direction:column;gap:14px;margin:28px 0 0;padding:0;list-style:none;display:flex}.login-features li{color:var(--text);align-items:center;gap:12px;font-size:14px;font-weight:500;display:flex}.login-features li svg{color:var(--accent);flex-shrink:0}.login-foot{color:var(--text-faint);font-size:12.5px}.login-main{place-items:center;padding:40px;display:grid}.login-form{width:100%;max-width:360px}.login-form h1{font-size:28px}.login-error{background:var(--state-sold-bg);color:var(--state-sold-fg);border-radius:var(--radius-sm);margin-bottom:18px;padding:11px 14px;font-size:13px;font-weight:500}.login-divider{color:var(--text-faint);align-items:center;gap:12px;margin:18px 0;font-size:12px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}@media (width<=880px){.login{grid-template-columns:1fr}.login-aside{display:none}}.plans-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;display:grid}.plan-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:6px;padding:22px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.plan-card.current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.plan-card .plan-name{font-family:var(--font-display);font-size:19px;font-weight:600}.plan-card .plan-price{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:6px;font-size:30px;font-weight:600}.plan-card .plan-price small{color:var(--text-muted);font-size:13px;font-weight:500;font-family:var(--font-body)}.plan-card .plan-users{color:var(--text-muted);margin:4px 0 14px;font-size:13px}.plan-card .plan-cta{margin-top:auto}.plan-badge-current{position:absolute;top:16px;right:16px}.cycle-toggle{background:var(--surface-2);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.cycle-toggle button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:7px 16px;font-size:13px;font-weight:600}.cycle-toggle button.on{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.billing-note{background:var(--state-reserved-bg);color:var(--state-reserved-fg);border-radius:var(--radius-sm);align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;display:flex}.billing-note svg{flex-shrink:0;width:18px;height:18px;margin-top:1px}
