:root{--black:#0b0b0b;--ink:#191919;--gold:#c99a2e;--gold-light:#f5e8bd;--white:#fff;--paper:#f7f5f0;--line:#dedbd2;--muted:#716f69;--green:#2f7d5a;--red:#b94840;--amber:#bd7d18}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif}.topbar{height:82px;padding:0 6vw;display:flex;align-items:center;gap:6vw;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{color:var(--black);font-family:"Playfair Display",serif;font-size:27px;text-decoration:none;letter-spacing:.06em}.brand span{display:block;font:600 9px "DM Sans",sans-serif;letter-spacing:.21em;color:var(--gold)}.topbar nav{display:flex;gap:30px;margin-left:auto}.topbar nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:14px}.top-actions{display:flex;align-items:center;gap:12px}.language{border:0;background:transparent;font-weight:700}.language span{color:#999}.button{border:0;border-radius:8px;padding:13px 20px;font-weight:700;cursor:pointer}.button-outline{border:1px solid var(--black);background:#fff}.button-gold{background:var(--gold);color:var(--black);box-shadow:0 8px 22px #c99a2e30}.hero{min-height:430px;background:var(--black);color:#fff;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;padding:64px 8vw;overflow:hidden}.eyebrow{color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.18em;margin:0 0 12px}.hero h1{font:700 clamp(48px,6vw,82px)/.98 "Playfair Display",serif;margin:0;max-width:740px}.hero-copy>p:last-child{max-width:520px;color:#c8c8c8;font-size:18px;line-height:1.6}.hero-mark{height:310px;position:relative;display:grid;place-items:center}.hero-mark>span{font:700 100px "Playfair Display",serif;color:var(--gold);border:1px solid var(--gold);width:190px;height:190px;border-radius:50%;display:grid;place-items:center}.orbit{position:absolute;border:1px solid #c99a2e55;border-radius:50%;transform:rotate(-20deg)}.orbit-one{width:420px;height:190px}.orbit-two{width:300px;height:290px}.search-panel{width:min(1240px,88vw);margin:-38px auto 0;background:#fff;border:1px solid var(--line);box-shadow:0 18px 50px #00000018;border-radius:12px;padding:20px;display:grid;grid-template-columns:1.3fr 1fr .8fr .8fr auto;gap:12px;position:relative}.field label{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;margin-bottom:7px}.field button{width:100%;padding:11px 0;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;display:flex;justify-content:space-between}.search-panel>.button{align-self:end}.facilities{padding:72px 6vw}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:26px}.section-heading h2,.dashboard-header h2{font:700 38px "Playfair Display",serif;margin:0}.section-heading a{color:var(--ink);font-weight:700}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.facility-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.card-image{height:170px;background:#191919;position:relative;display:grid;place-items:center;color:var(--gold)}.card-image:before{content:"";position:absolute;inset:18px;border:1px solid #c99a2e55}.card-image span{font:700 54px "Playfair Display",serif}.image-hall{background:#28241b}.image-info{background:#171717}.image-dorm{background:#262626}.card-body{padding:21px}.card-body p{font-size:10px;letter-spacing:.13em;color:var(--muted);font-weight:700}.card-body h3{font:700 22px "Playfair Display",serif;margin:8px 0 22px}.status{font-size:12px;color:var(--green);font-weight:700}.status.limited{color:var(--amber)}.hidden{display:none!important}.dashboard{display:grid;grid-template-columns:245px 1fr;min-height:100vh;background:#f4f3ef}.dashboard aside{background:var(--black);color:#fff;padding:32px 24px;display:flex;flex-direction:column}.brand-light{color:#fff;margin-bottom:50px}.dashboard aside nav{display:grid;gap:8px}.dashboard aside nav a{color:#bbb;text-decoration:none;padding:13px;border-radius:7px;font-weight:600}.dashboard aside nav a.active{background:var(--gold);color:#111}.back-link{margin-top:auto;background:transparent;border:0;color:#ddd;text-align:left;cursor:pointer}.dashboard-main{padding:44px}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.stats article{background:#fff;border:1px solid var(--line);border-radius:9px;padding:22px;display:flex;justify-content:space-between;align-items:center}.stats span{color:var(--muted);font-size:13px}.stats strong{font-size:26px}.calendar{background:#fff;border:1px solid var(--line);border-radius:10px;padding:26px}.calendar-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendar-heading h3{font-size:21px;margin:0}.legend{display:flex;gap:16px;font-size:12px}.available{color:var(--green)}.pending{color:var(--amber)}.booked{color:var(--red)}.calendar-grid{display:grid;grid-template-columns:1.35fr repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar-grid>div,.calendar-grid>i{min-height:60px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;place-items:center;font-size:12px;font-style:normal}.calendar-grid>div:not(.row-label):not(.corner){background:#f9f8f5;color:var(--muted)}.corner,.row-label{padding:10px;justify-content:start!important;font-weight:700}.calendar-grid i:after{content:"✓";width:70%;height:32px;border-radius:5px;display:grid;place-items:center}.calendar-grid i.free:after{content:"✓";background:#e5f2e9;color:var(--green)}.calendar-grid i.hold:after{content:"●";background:#fff0d5;color:var(--amber)}.calendar-grid i.busy:after{content:"×";background:#fae4e1;color:var(--red)}
@media(max-width:900px){.topbar nav{display:none}.hero{grid-template-columns:1fr;padding:60px 7vw}.hero-mark{display:none}.search-panel{grid-template-columns:1fr 1fr;margin-top:-24px}.search-panel>.button{grid-column:1/-1}.card-grid{grid-template-columns:1fr 1fr}.dashboard{grid-template-columns:1fr}.dashboard aside{display:none}.dashboard-main{padding:24px}.stats{grid-template-columns:1fr}.calendar{overflow:auto}.calendar-grid{min-width:850px}}
@media(max-width:560px){.topbar{padding:0 20px}.language{display:none}.hero h1{font-size:48px}.search-panel{grid-template-columns:1fr}.card-grid{grid-template-columns:1fr}.facilities{padding:60px 20px}.dashboard-main{padding:16px}.dashboard-header{align-items:flex-start;gap:16px}.dashboard-header h2{font-size:28px}}
.admin-badge{background:var(--gold-light);color:#6f510b;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700}.admin-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:26px}.request-title{display:flex;justify-content:space-between;gap:20px}.request-title h3{font:700 25px "Playfair Display",serif;margin:8px 0}.request-title p{color:var(--muted);margin:0}.request-ref{color:#80600e;font-size:11px;font-weight:800;letter-spacing:.08em}.pill{height:max-content;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700}.pending-pill{background:#fff0d5;color:var(--amber)}.approved-pill{background:#e5f2e9;color:var(--green)}.request-details{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0;padding:20px;background:#f8f7f3;border-radius:8px}.request-details span{display:block;color:var(--muted);font-size:11px;margin-bottom:6px}.approval-actions{display:flex;justify-content:flex-end;gap:10px}.button-muted{background:#eeece6;color:#333}.button-dark{background:#111;color:#fff}.modal{position:fixed;inset:0;background:#000a;z-index:30;display:grid;place-items:center;padding:20px}.modal-card{width:min(640px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:14px;padding:30px;position:relative;box-shadow:0 30px 80px #0008}.modal-close{position:absolute;right:20px;top:16px;border:0;background:transparent;font-size:28px;cursor:pointer}.modal-card h2{font:700 32px "Playfair Display",serif;margin:0 0 24px}.progress{display:flex;gap:6px;margin-bottom:28px}.progress span{height:3px;flex:1;background:#ddd}.progress span.active{background:var(--gold)}.step{display:none}.step.active{display:block}.option-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:9px;padding:16px;margin-bottom:10px;cursor:pointer}.option-card.selected{border-color:var(--gold);background:#fffaf0}.option-card span{display:grid;gap:4px;flex:1}.option-card small{color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label{font-size:12px;font-weight:700}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid textarea,.form-grid select{width:100%;margin-top:7px;border:1px solid var(--line);border-radius:7px;padding:12px;font:inherit}.form-grid textarea{min-height:86px}.summary-box{background:#f7f5ef;border-radius:9px;padding:18px}.summary-box p{display:flex;justify-content:space-between;margin:0;padding:10px 0;border-bottom:1px solid var(--line)}.summary-box .total{font-size:18px;border:0}.terms{display:flex;gap:10px;margin:18px 0;font-size:12px;line-height:1.5}.success-mark{width:70px;height:70px;border-radius:50%;background:var(--gold);display:grid;place-items:center;margin:12px auto;font-size:32px}.step[data-step="4"]{text-align:center}.step[data-step="4"] h3{font:700 27px "Playfair Display",serif;margin-bottom:8px}.modal-actions{display:flex;justify-content:space-between;margin-top:24px}.toast{position:fixed;right:24px;bottom:24px;background:#111;color:#fff;padding:16px 20px;border-left:4px solid var(--gold);border-radius:7px;z-index:50;box-shadow:0 10px 30px #0005}
@media(max-width:700px){.request-details{grid-template-columns:1fr 1fr}.approval-actions{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}
