@import "https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&display=swap";:root{--bg:#f6f4ee;--paper:#fffdf8;--ink:#221e16;--muted:#6f6758;--line:#e7e2d4;--gold:#96690e;--gold-soft:#f4ead2;--bar:#24201a;--danger:#b03d2a;--ok:#2e7a4c;--radius:14px;--shadow:0 1px 2px #221e160d, 0 6px 24px #221e160f;--focus:0 0 0 3px #96690e47;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:DM Sans,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{-webkit-text-size-adjust:100%;min-width:320px;margin:0}h1,h2,h3{letter-spacing:-.01em;margin:0;font-family:Fraunces,DM Sans,serif}h2{font-size:1.25rem;font-weight:600}::selection{background:var(--gold-soft);color:var(--ink)}.center{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.column{text-align:center;flex-direction:column;gap:12px}.muted{color:var(--muted)}.small{margin:0;font-size:.85rem}.brand{letter-spacing:.01em;font-family:Fraunces,serif;font-weight:600}.signin-hero{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.signin-hero h1{font-size:2rem;font-weight:700}.signin-hero .eyebrow{color:var(--gold)}.eyebrow{letter-spacing:.22em;text-transform:uppercase;font-family:DM Sans,sans-serif;font-size:.68rem;font-weight:700}.app{min-height:100dvh}.topbar{background:var(--bar);color:#f3efe4;border-bottom:2px solid var(--gold);z-index:20;align-items:center;gap:14px;height:58px;padding:0 18px;display:flex;position:sticky;top:0}.brand-mark{background:var(--gold);color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-family:Fraunces,serif;font-size:.95rem;font-weight:700;display:grid}.topbar .brand{white-space:nowrap;text-overflow:ellipsis;margin-right:auto;font-size:1.02rem;overflow:hidden}.who{color:#cdc7b8;align-items:center;gap:8px;min-width:0;font-size:.85rem;display:flex}.who .name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.content{max-width:1080px;margin:0 auto;padding:22px 18px 80px}.tabs{scrollbar-width:none;background:#ebe7db;border-radius:999px;gap:4px;max-width:100%;margin-bottom:20px;padding:4px;display:inline-flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:9px 18px;font-size:.9rem;font-weight:600}.tabs button.active{background:var(--ink);color:var(--paper)}.tabs button:not(.active):hover{color:var(--ink)}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card.error{border-color:#eccfc8;border-left:3px solid var(--danger);color:var(--danger);white-space:pre-line;box-shadow:none}.card.success{border-color:#cfe5d7;border-left:3px solid var(--ok);color:var(--ok);box-shadow:none}.card.muted{box-shadow:none;text-align:center;border-style:dashed;padding:34px 18px}.stack{flex-direction:column;gap:14px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row>input,.row>select{flex:1;min-width:0}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px;display:grid}.spacer{margin-left:auto}.checklist{border:1px solid var(--line);border-radius:10px;max-height:380px;overflow-y:auto}.checklist label{color:var(--ink);border-bottom:1px solid var(--line);cursor:pointer;flex-direction:row;align-items:center;gap:10px;padding:11px 13px;font-size:.9rem}.checklist label:last-child{border-bottom:0}.checklist label:hover{background:#f8f6ee}.checklist input{width:18px;height:18px;accent-color:var(--gold);flex-shrink:0}.checklist span{overflow-wrap:anywhere;min-width:0}.grow{flex:1;min-width:200px}.picklist{flex-direction:column;gap:6px;max-height:60vh;display:flex;overflow-y:auto}.picklist button{text-align:left;background:var(--paper);width:100%;color:var(--ink);border:1px solid var(--line);white-space:normal;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;display:flex}.picklist button:not(:disabled):hover{border-color:var(--gold);background:#fbf8ef}.picklist button>span:first-child{overflow-wrap:anywhere;min-width:0}.total{font-variant-numeric:tabular-nums;color:var(--ink);font-family:Fraunces,serif;font-size:1.6rem;font-weight:700}.score-preview{background:var(--gold-soft);border:1px solid #e4d5ae;border-radius:10px;align-items:baseline;gap:6px;padding:8px 14px;display:inline-flex}.badge{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;background:#eeeade;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.68rem;font-weight:700;display:inline-flex}.badge:before{content:"";opacity:.7;background:currentColor;border-radius:50%;width:6px;height:6px}.badge.admin{color:#64428f;background:#efe6f7}.badge.judge,.badge.open{color:var(--ok);background:#ddeee2}.badge.closed{color:var(--danger);background:#f5dcd5}.badge.draft{color:#8a6210;background:#f4ead2}.badge.available{color:var(--ok);background:#ddeee2}.badge.judged-by-you{color:#3c5a99;background:#e2e8f6}.badge.judged{color:var(--muted);background:#eeeade}.topbar .badge{color:#f3efe4;background:#ffffff24}label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);flex-direction:column;gap:5px;font-size:.78rem;font-weight:600;display:flex}input,select,textarea{font:inherit;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:9px;width:100%;padding:10px 12px;font-size:.95rem}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--gold);box-shadow:var(--focus);outline:none}input[type=checkbox],input[type=file]{width:auto}input[type=file]{font-size:.85rem}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}textarea{resize:vertical;min-height:76px;line-height:1.5}select{cursor:pointer}code{background:#f0ede2;border-radius:5px;padding:1px 5px;font-family:SFMono-Regular,Consolas,monospace;font-size:.82rem}button{font:inherit;cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--paper);white-space:nowrap;-webkit-tap-highlight-color:transparent;border-radius:9px;padding:10px 18px;font-size:.9rem;font-weight:600;transition:transform 60ms,filter .15s,border-color .15s}button:not(:disabled):hover{filter:brightness(1.25)}button:not(:disabled):active{transform:translateY(1px)}button:focus-visible{box-shadow:var(--focus);outline:none}button.secondary{color:var(--ink);border-color:var(--line);background:0 0;font-weight:500}button.secondary:not(:disabled):hover{border-color:var(--muted);filter:none}button.danger{color:var(--danger);background:0 0;border-color:#ddaa9f;font-weight:500}button.danger:not(:disabled):hover{filter:none;border-color:var(--danger);background:#f9f0ed}button:disabled{opacity:.45;cursor:not-allowed}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 9px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:600}thead th{background:var(--paper);z-index:1;position:sticky;top:0}tbody tr:hover{background:#faf8f1}tbody tr:last-child td{border-bottom:0}td.actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td .marks-cell{align-items:center;gap:7px;display:flex}td .marks-cell input{text-align:right;max-width:110px}.rank{min-width:26px;height:26px;color:var(--muted);background:#eeeade;border-radius:999px;place-items:center;font-size:.82rem;font-weight:700;display:inline-grid}.rank.r1{background:var(--gold);color:#fff}.rank.r2{color:#fff;background:#b9b2a2}.rank.r3{color:#fff;background:#b0895a}.skeleton{background:linear-gradient(90deg,#ece8db 25%,#f6f3e9 50%,#ece8db 75%) 0 0/200% 100%;border-radius:6px;height:16px;animation:1.4s infinite shimmer;display:block}@keyframes shimmer{to{background-position:-200% 0}}.submit-bar{border-top:1px solid var(--line);padding-top:14px}@media (width<=640px){.topbar{gap:10px;height:54px;padding:0 12px}.topbar .brand{font-size:.95rem}.who .name{display:none}.content{padding:14px 12px 64px}.card{padding:14px}.tabs{width:100%;display:flex}.tabs button{flex:1 0 auto;padding:10px 14px}.row>button{flex-grow:1}th,td{padding:8px 6px;font-size:.85rem}.grid-2{gap:12px}.submit-bar{padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);margin:4px -14px -14px;position:sticky;bottom:0}.submit-bar button{flex:1;padding:13px}.score-preview{flex:1;justify-content:center}table.stack-sm,table.stack-sm tbody,table.stack-sm tr,table.stack-sm td{width:100%;display:block}table.stack-sm thead{display:none}table.stack-sm tr{border-bottom:1px solid var(--line);padding:10px 0}table.stack-sm td{border-bottom:0;padding:4px 0}table.stack-sm td[data-th]:before{content:attr(data-th);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:3px;font-size:.68rem;font-weight:700;display:block}td .marks-cell input{text-align:left;max-width:none}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}button{transition:none}}
