:root{
  --bg:#09090b;--panel:#151518;--panel2:#1d1c21;--line:#353238;
  --text:#f7f2e8;--muted:#aaa49b;--gold:#d8b45e;--gold2:#f5df9c;
  --green:#3a9f65;--amber:#d4a13e;--red:#c9565d;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;min-height:100vh;color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif;
  background:
    radial-gradient(circle at 15% -5%,rgba(216,180,94,.2),transparent 26%),
    radial-gradient(circle at 87% 0%,rgba(114,25,38,.15),transparent 25%),var(--bg);
}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
.site-header{
  position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;
  gap:15px;padding:14px max(18px,calc((100vw - 1560px)/2));
  background:rgba(9,9,11,.93);border-bottom:1px solid rgba(216,180,94,.42);backdrop-filter:blur(14px)
}
.brand-wrap{display:flex;align-items:center;gap:13px}.crown{font-size:38px;color:var(--gold)}
.brand-wrap h1{margin:0;color:var(--gold2);font:700 clamp(20px,3vw,32px)/1.1 Georgia,serif;letter-spacing:1.7px}
.brand-wrap p{margin:4px 0 0;color:var(--muted);font-size:12px;letter-spacing:.5px}
.header-link{padding:8px 11px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px}
.landing,.app-shell{max-width:1560px;margin:auto;padding:24px}
.hero-card,.judge-banner,.score-card,.stat-card,.info-card{
  background:linear-gradient(180deg,rgba(27,27,31,.97),rgba(17,17,20,.97));
  border:1px solid var(--line);border-radius:15px;box-shadow:0 14px 34px rgba(0,0,0,.14)
}
.hero-card{padding:32px;text-align:center}.eyebrow{color:var(--gold);font-size:11px;font-weight:900;letter-spacing:1.8px}
.hero-card h2,.judge-banner h2,.round-title h2{margin:7px 0;color:var(--gold2);font-family:Georgia,serif}
.hero-card p,.judge-banner p,.round-title p{margin:0;color:var(--muted)}
.judge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:18px 0}
.judge-card{
  min-height:155px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#151518;
  display:flex;flex-direction:column;justify-content:center;align-items:center;transition:.18s ease
}
.judge-card:hover{transform:translateY(-3px);border-color:#7e6939;background:#1b1918}
.judge-number{
  display:grid;place-items:center;width:54px;height:54px;border:1px solid #806b39;border-radius:50%;
  color:#18130a;background:linear-gradient(135deg,#f0d273,#ba8d2f);font-size:24px;font-weight:900;margin-bottom:10px
}
.judge-card strong{font-size:18px}.judge-card small{margin-top:5px;color:var(--muted)}
.center-action{text-align:center;margin:20px}.info-card{padding:15px;text-align:center}.info-card strong{color:var(--gold2);margin-right:7px}
.button{
  display:inline-block;border:1px solid #514b3b;background:#242329;color:#fff;border-radius:9px;
  padding:10px 14px;font-weight:800;cursor:pointer
}
.button.primary{background:linear-gradient(135deg,#efd173,#b98d30);color:#17120a;border-color:#d8b45e}
.button.success{background:#1d5136;border-color:#377854}
.button.large{padding:13px 19px}
.button:disabled{opacity:.45;cursor:not-allowed}
.judge-banner{padding:18px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:14px}
.sync-badge{padding:8px 11px;border:1px solid #4d483c;border-radius:999px;color:var(--muted);font-size:12px;white-space:nowrap}
.sync-badge.online{border-color:#397351;color:#9be1b6;background:#173322}
.sync-badge.error{border-color:#753b3f;color:#f0a8ad;background:#30171a}
.tabs{display:flex;gap:8px;overflow:auto;margin-bottom:16px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#151518}
.tab{white-space:nowrap;border:1px solid var(--line);border-radius:8px;background:#0f0f12;color:var(--muted);padding:10px 15px;font-weight:800;cursor:pointer}
.tab.active{border-color:var(--gold);color:#17120a;background:linear-gradient(135deg,#efd173,#bd9132)}
.panel{display:none}.panel.active{display:block}.round-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:4px 0 14px}
.weight-badge{padding:10px 13px;border-radius:12px;border:1px solid #735f34;color:var(--gold2);background:#d8b45e12;font-size:19px;font-weight:900}
.score-card{padding:15px;margin-bottom:16px}.score-card h3{margin:0 0 11px;color:var(--gold2)}
.table-wrap{overflow:auto;border-radius:9px}
table{width:100%;border-collapse:collapse;min-width:760px}
th,td{padding:9px 8px;text-align:center;border-bottom:1px solid #302e32}
th{background:#0f0f12;color:var(--gold2);font-size:11px;letter-spacing:.3px}
th:first-child,td:first-child{text-align:left;min-width:140px}
.score-input{width:82px;padding:9px;text-align:center;border-radius:8px;background:#0b0b0e;color:#fff;border:1px solid #444047;font-weight:800}
.score-input:focus{outline:2px solid rgba(216,180,94,.48);border-color:var(--gold)}
.score-input.saving{border-color:var(--amber)}.score-input.saved{border-color:var(--green)}.score-input.error{border-color:var(--red);background:#31171a}
.weighted,.central-total,.judge-total{font-weight:900;color:var(--gold2)}
.rank-cell{font-weight:900}.top-five-row{background:rgba(216,180,94,.08)}
.top-pill{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;border:1px solid #776537;color:var(--gold2);font-size:10px}
.notice{padding:12px 14px;border-radius:10px;border:1px solid #46423a;background:#151416;color:var(--muted);margin-bottom:13px}
.notice.good{border-color:#37694b;background:#14291e;color:#a2dfb7}.notice.warn{border-color:#775b29;background:#2e2412;color:#efca77}.notice.danger{border-color:#743a3f;background:#30171a;color:#efadb2}
.progress-track{height:8px;border-radius:999px;background:#222127;overflow:hidden;border:1px solid #2f2c32}.progress-track>div{height:100%;width:0;background:linear-gradient(90deg,#aa7e25,#efd276);transition:width .2s}
.progress-label{color:var(--muted);font-size:12px;margin:6px 0 12px}
.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}.stat-card{padding:14px}.stat-card small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.stat-card strong{display:block;color:var(--gold2);font-size:20px;margin-top:5px}
.action-row{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 18px}
.winner-card{text-align:center;border:1px solid rgba(216,180,94,.78);background:linear-gradient(135deg,rgba(216,180,94,.18),rgba(216,180,94,.04));padding:25px;border-radius:15px;margin:14px 0}
.winner-card small{display:block;color:var(--gold);font-weight:900;letter-spacing:2px}.winner-card strong{display:block;color:var(--gold2);font:700 clamp(28px,5vw,46px)/1.1 Georgia,serif;margin:8px}
.print-heading{text-align:center;margin:5px 0 15px}.print-heading h2{margin:2px;color:var(--gold2);font-family:Georgia,serif;letter-spacing:2px}.print-heading p{margin:4px;color:var(--muted)}.print-crown{font-size:30px;color:var(--gold)}
.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;margin:72px 35px 20px}.signature-grid div{border-top:1px solid #aaa;text-align:center;padding-top:8px;color:var(--muted)}
@media(max-width:950px){.stats-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){
  .landing,.app-shell{padding:12px}.site-header{padding:12px}.header-link{display:none}.judge-banner,.round-title{align-items:flex-start}.judge-banner{flex-direction:column}
  .stats-grid{grid-template-columns:repeat(2,1fr)}.score-card{padding:10px}.signature-grid{grid-template-columns:1fr;gap:55px}
}
@media print{
  @page{size:A4 landscape;margin:10mm}
  body{background:#fff!important;color:#111!important;font-size:9pt}
  .no-print,.site-header{display:none!important}.results-shell{padding:0;max-width:none}
  .panel{display:none!important}#final.panel{display:block!important}
  .score-card,.winner-card{background:#fff!important;color:#111!important;box-shadow:none!important;border-color:#777!important;break-inside:avoid}
  .print-heading h2,.score-card h3,.winner-card strong,.winner-card small,th,.weighted,.central-total,.judge-total{color:#111!important}
  .print-heading p,.signature-grid div{color:#333!important}th{background:#eee!important}.top-five-row{background:#f2f2f2!important}
  td,th{padding:5px;border-color:#bbb!important}
}
