:root{--bg:#fff;--surface:#fff;--ink:#1c1e21;--ink-deep:#0a1317;--muted:#5d6c7b;--line:#dee3e9;--accent:#c44e12;--accent-deep:#a3400f;--accent-soft:#fff0e8;--booked:#31a24c;--booked-soft:#e8f8ec;--cancel:#e41e3f;--cancel-soft:#fde8ec;--shadow:0 1px 4px #14161a4d;--radius:16px;--sans:Montserrat, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{overflow-x:clip}body{font:16px/1.5 var(--sans);letter-spacing:-.16px;color:var(--ink);background:var(--bg);font-feature-settings:"ss01", "ss02"}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth{place-items:center;min-height:100%;padding:24px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);border-radius:16px;padding:32px}.brand{align-items:center;gap:10px;font-weight:800;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.auth-card h1{letter-spacing:0;margin:14px 0 6px;font-size:36px;font-weight:500}.auth-card p{color:var(--muted);margin:0 0 8px}.shell{grid-template-columns:240px 1fr;min-height:100%;display:grid}.side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:8px;padding:20px 14px;display:flex}.side .brand{margin-bottom:18px;padding:0 8px}.side a,.side button.nav{text-align:left;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:100px;padding:8px 16px;font-size:14px;font-weight:700;display:block}.side a.active,.side a:hover,.side button.nav:hover{background:var(--accent);color:#fff}.side .spacer{flex:1}.main{padding:32px 40px 56px}.page-title h1{letter-spacing:0;margin:0;font-size:36px;font-weight:500;line-height:1.28}.page-title p{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0;display:flex}.toolbar{justify-content:space-between;align-items:flex-start;gap:16px;margin:0 0 20px;display:flex}.field{color:var(--ink);gap:6px;margin-top:14px;font-size:14px;font-weight:700;display:grid}.password-field{margin-top:6px;position:relative}.password-field input{box-sizing:border-box;width:100%;min-height:44px;color:var(--ink);background:#fff;border:1px solid #ced0d4;border-radius:8px;padding:12px 72px 12px 12px;font-weight:400}.password-toggle{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:6px 8px;font-size:13px;font-weight:700;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.field input,.field select{min-height:44px;color:var(--ink);background:#fff;border:1px solid #ced0d4;border-radius:8px;padding:12px;font-weight:400}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-grid .field{margin-top:0}.section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:16px;margin-top:16px;padding:32px;display:flex}.section h2{margin:0;font-size:15px}.section>p{margin:0}.meta-line{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 0;margin:0;font-size:14px;font-weight:500;line-height:1.5;display:flex}.meta-line span:not(:last-child):after{content:"·";color:#9aa5b1;margin:0 10px;font-weight:700}.section-split{border-top:1px solid var(--line);gap:16px;padding-top:16px;display:grid}.btn{border:2px solid var(--accent);min-height:44px;color:var(--accent);letter-spacing:-.14px;background:0 0;border-radius:100px;padding:14px 30px;font-size:14px;font-weight:700}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-deep)}.btn:disabled{opacity:.55;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px 16px;font-size:13px}th{color:var(--muted);background:#fafbfc;font-size:12px;font-weight:600}tr:last-child td{border-bottom:0}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--accent-soft)}.chip{color:#4b5563;background:#f3f4f6;border-radius:999px;align-items:center;min-height:24px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.chip.ok{background:var(--booked-soft);color:#1f7a4d}.chip.warn{background:var(--cancel-soft);color:#b42318}.error{background:var(--cancel-soft);color:#b42318;border-radius:10px;margin-top:12px;padding:10px 12px;font-size:13px}.muted{color:var(--muted)}.modal-backdrop{z-index:40;background:#1a1a1a73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:min(480px,100%);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:22px}.modal h2{margin:0 0 8px}.cred{background:var(--accent-soft);border-radius:12px;gap:8px;margin-top:14px;padding:12px;display:grid}.cred code{font-size:14px;font-weight:700}.tenant-detail{padding:4px 8px 8px}.tenant-detail .section{padding:32px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.toolbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-menu,.rail-scrim{display:none}@media (width<=860px){.shell{grid-template-columns:1fr}.side{display:none}.side.open{z-index:41;width:min(280px,88vw);height:100%;display:flex;position:fixed;inset:0 auto 0 0}.rail-scrim{z-index:40;background:#1a1a1a66;border:0;display:block;position:fixed;inset:0}.admin-menu{z-index:30;border:0;border-bottom:1px solid var(--line);background:#fff;align-items:center;min-height:48px;margin:0;padding:0 16px;font-weight:800;display:inline-flex;position:sticky;top:0}.main{padding:20px 18px 40px}.form-grid{grid-template-columns:1fr}.toolbar{flex-direction:column;align-items:stretch}.toolbar .btn{text-align:center;width:100%}.page-title h1{font-size:22px}.table-wrap thead{display:none}.table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{width:100%;display:block}.table-wrap td{border-bottom:0;justify-content:space-between;gap:12px;padding:8px 16px;display:flex}.table-wrap td:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.table-wrap td:not([data-label]):before{display:none}.modal{width:100%}.modal-actions{flex-wrap:wrap}input,select{font-size:16px}}
