:root {
  --ink:#090909;
  --dark:#38383b;
  --accent:#a8a59f;
  --light:#dfe0e1;
  --paper:#f7f7f5;
  --white:#fff;
  --blue:#0f2bed;
  --violet:#7b13f8;
  --green:#237b55;
  --amber:#9a5d00;
  --red:#a42c37;
  --line:rgba(9,9,9,.14);
  --shadow:0 22px 65px rgba(0,0,0,.09);
  font-family:"Poppins","Avenir Next","Segoe UI",sans-serif;
  color:var(--ink);
  background:#000;
  font-synthesis:none;
}
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:#000; font-weight:300; }
button,input { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; }
.hidden { display:none !important; }
.site-header { min-height:94px; padding:24px clamp(22px,4vw,64px); display:flex; align-items:center; justify-content:space-between; gap:28px; color:#fff; background:#000; border-bottom:1px solid rgba(255,255,255,.14); }
.site-header a,.site-header button { color:#fff; }
.wordmark { font-size:25px; font-weight:500; text-decoration:none; letter-spacing:-.04em; }
nav { display:flex; align-items:center; gap:clamp(18px,3vw,42px); font-size:13px; font-weight:500; }
nav a,.text-button { text-decoration:none; background:none; border:0; padding:6px 0; cursor:pointer; }
nav a:hover,.text-button:hover { opacity:.55; }
main { min-height:calc(100vh - 174px); color:#fff; background:#000; }
.center-view { min-height:calc(100vh - 174px); padding:48px 22px; display:grid; place-content:center; place-items:center; text-align:center; }
.loading-mark { width:46px; height:46px; border:2px solid rgba(255,255,255,.28); border-top-color:#fff; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.login-shell { min-height:calc(100vh - 174px); display:grid; grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr); }
.login-copy { padding:clamp(60px,9vw,150px) clamp(30px,7vw,110px); color:#fff; background:linear-gradient(135deg,var(--blue),var(--violet)); display:flex; flex-direction:column; justify-content:center; }
.login-copy h1 { margin:8px 0 22px; font-size:clamp(46px,7vw,92px); line-height:.98; letter-spacing:-.055em; font-weight:500; }
.login-copy p:last-child { max-width:610px; font-size:clamp(16px,1.4vw,20px); line-height:1.75; }
.eyebrow { margin:0 0 9px; font-size:11px; line-height:1.2; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.login-card { margin:auto; width:min(430px,calc(100% - 44px)); padding:42px; color:#f1f1f2; background:#242426; border:1px solid rgba(255,255,255,.09); border-radius:10px; box-shadow:0 22px 65px rgba(0,0,0,.32); }
.login-card h2 { margin:0 0 12px; font-size:30px; font-weight:500; letter-spacing:-.035em; }
.login-card > p:not(.eyebrow):not(.form-message) { color:#d0d0d4; line-height:1.7; }
.login-card input { color:#f1f1f2; background:#151516; border-color:rgba(255,255,255,.2); }
.login-card input::placeholder { color:#89898f; }
.login-card input:focus { border-color:#d8d8dc; box-shadow:0 0 0 3px rgba(255,255,255,.1); }
.login-card .primary-button { color:#111; background:#ededee; }
.login-card .primary-button:hover { background:#fff; }
label { display:block; margin:25px 0 8px; font-size:12px; font-weight:600; }
input { width:100%; height:52px; padding:0 15px; border:1px solid var(--line); border-radius:8px; outline:none; background:#fff; }
input:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(15,43,237,.1); }
.primary-button,.secondary-button { min-height:48px; padding:13px 20px; border:0; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; font-weight:500; text-decoration:none; cursor:pointer; }
.primary-button { margin-top:14px; width:100%; background:var(--dark); color:#fff; }
.primary-button:hover { background:#151516; }
.primary-button:disabled { opacity:.5; cursor:wait; }
.secondary-button { border:1px solid var(--line); background:#fff; color:var(--ink); }
.form-message { min-height:24px; margin:14px 0 0; font-size:13px; line-height:1.55; color:var(--green); }
.form-message.error { color:var(--red); }
.privacy-note { margin-bottom:0; font-size:11px; }
.message-card { width:min(580px,100%); padding:46px; color:var(--ink); background:#fff; border-radius:10px; box-shadow:var(--shadow); }
.message-card h1 { margin:5px 0 15px; font-size:38px; line-height:1.15; font-weight:500; letter-spacing:-.04em; }
.message-card p:not(.eyebrow) { color:#616166; line-height:1.7; }
.account-shell { width:min(1500px,calc(100% - clamp(36px,8vw,128px))); margin:0 auto; padding:clamp(52px,7vw,105px) 0 90px; }
.account-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:38px; }
.account-heading h1 { margin:3px 0 7px; font-size:clamp(42px,5vw,70px); line-height:1; font-weight:500; letter-spacing:-.055em; }
.muted { color:#6b6b70; }
.account-heading .muted { color:#aaaab0; }
.summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:0 0 84px; }
.summary-grid article { min-height:140px; padding:24px; background:var(--dark); color:#fff; border-radius:10px; display:flex; flex-direction:column; justify-content:space-between; }
.summary-grid span { font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.67); }
.summary-grid strong { font-size:39px; font-weight:500; }
.content-section { margin-top:80px; }
.section-heading { margin-bottom:25px; display:flex; align-items:end; justify-content:space-between; }
.section-heading h2 { margin:0; font-size:clamp(31px,4vw,48px); font-weight:500; letter-spacing:-.045em; }
.licence-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(18px,2.5vw,38px); }
.licence-card { overflow:hidden; color:var(--ink); background:#fff; border-radius:10px; box-shadow:0 10px 35px rgba(0,0,0,.045); }
.licence-top { min-height:185px; padding:30px; color:#fff; background:linear-gradient(135deg,var(--blue),var(--violet)); display:flex; flex-direction:column; justify-content:space-between; }
.licence-top h3 { margin:0; font-size:clamp(25px,3vw,38px); font-weight:500; letter-spacing:-.04em; }
.status { align-self:flex-start; padding:6px 10px; border-radius:99px; background:rgba(255,255,255,.17); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; }
.licence-body { padding:26px 30px 30px; }
.licence-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.licence-meta div { padding:13px; border:1px solid var(--line); border-radius:8px; }
.licence-meta span,.seat-list span { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:#6d6d72; }
.licence-meta strong { display:block; margin-top:5px; font-size:18px; font-weight:500; }
.key-row { margin-top:20px; padding:14px; border-radius:8px; background:var(--paper); display:flex; justify-content:space-between; align-items:center; gap:15px; }
.key-value { font-family:"SFMono-Regular",Consolas,monospace; font-size:13px; font-weight:600; overflow-wrap:anywhere; }
.small-button { flex:0 0 auto; padding:8px 12px; border:1px solid var(--line); border-radius:7px; background:#fff; font-size:12px; font-weight:600; cursor:pointer; }
.card-actions { display:flex; gap:10px; margin-top:18px; }
.card-actions .primary-button { margin:0; width:auto; flex:1; }
.seat-list { margin-top:23px; padding-top:19px; border-top:1px solid var(--line); }
.seat-list h4 { margin:0 0 12px; font-size:13px; font-weight:600; }
.seat-item { display:grid; grid-template-columns:1fr auto; gap:5px 14px; padding:11px 0; border-top:1px solid rgba(0,0,0,.07); }
.seat-item:first-of-type { border-top:0; }
.seat-item strong { font-size:13px; font-weight:500; }
.seat-item time { font-size:12px; color:#727277; }
.table-shell { overflow-x:auto; color:var(--ink); border-radius:10px; background:#fff; box-shadow:0 10px 35px rgba(0,0,0,.04); }
table { width:100%; min-width:760px; border-collapse:collapse; }
th,td { padding:18px 20px; border-bottom:1px solid rgba(0,0,0,.08); text-align:left; }
th { font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:#77777c; }
td { font-size:14px; }
tbody tr:last-child td { border-bottom:0; }
.empty-card { padding:38px; color:var(--ink); text-align:center; background:#fff; border-radius:10px; }
.empty-card h3 { margin:0 0 8px; font-weight:500; }
.empty-card p { margin:0; color:#6b6b70; }
footer { min-height:80px; padding:24px clamp(22px,4vw,64px); display:flex; align-items:center; justify-content:space-between; gap:20px; background:#fff; border-top:1px solid rgba(0,0,0,.06); font-size:12px; color:#646469; }
footer a { text-decoration:none; }
@media (max-width:900px) {
  .login-shell { grid-template-columns:1fr; }
  .login-copy { min-height:420px; }
  .login-card { margin:55px auto; }
  .licence-grid { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .site-header { min-height:76px; padding:18px 20px; }
  nav a:first-child { display:none; }
  .login-copy { min-height:340px; padding:54px 24px; }
  .login-copy h1 { font-size:46px; }
  .login-card,.message-card { padding:28px 22px; }
  .account-shell { width:calc(100% - 32px); padding-top:52px; }
  .account-heading { align-items:start; flex-direction:column; }
  .summary-grid { grid-template-columns:1fr; margin-bottom:64px; }
  .summary-grid article { min-height:108px; }
  .licence-top,.licence-body { padding:23px; }
  .licence-meta { grid-template-columns:1fr; }
  .card-actions { flex-direction:column; }
  footer { align-items:start; flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; animation-duration:.01ms !important; } }
