:root{color-scheme:light;--bg: #f5ead7;--surface: #fffaf0;--surface-strong: #ffffff;--ink: #261c14;--muted: #675b4b;--line: #dfcbb1;--soft: #f0ddbd;--green: #176755;--green-soft: #d8ede5;--copper: #b64f2c;--copper-soft: #f6d8c9;--blue: #36538c;--blue-soft: #dfe6f6;--danger: #9d2f2f;--danger-soft: #f3d3cf;--shadow: 0 16px 34px rgba(72, 48, 22, .12);--radius: 8px;--font: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);background:linear-gradient(90deg,rgba(38,28,20,.045) 1px,transparent 1px),linear-gradient(rgba(38,28,20,.04) 1px,transparent 1px),var(--bg);background-size:28px 28px;font-family:var(--font);line-height:1.45}button,input,textarea,select{font:inherit}button,.compact-file,.file-drop{border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);min-height:40px;padding:9px 12px;font-weight:750;cursor:pointer}button:hover,.compact-file:hover,.file-drop:hover{border-color:color-mix(in srgb,var(--green) 50%,var(--line));transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.46;transform:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 58%,transparent);outline-offset:2px}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:var(--radius);background:#fffdf8;color:var(--ink);padding:10px 12px}textarea{resize:vertical}label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:750}a{color:var(--green);font-weight:750}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px clamp(16px,4vw,34px);background:color-mix(in srgb,var(--surface) 90%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.brand-link{display:inline-flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.brand-link strong,.brand-link small{display:block}.brand-link small{color:var(--muted);font-size:12px;margin-top:2px}.brand-mark{display:grid;width:48px;height:48px;place-items:center;border:2px solid var(--ink);border-radius:var(--radius);background:var(--green-soft);box-shadow:4px 4px 0 var(--copper);font-size:13px;font-weight:900;letter-spacing:0}.surface-nav{display:flex;flex-wrap:wrap;gap:8px}.surface-nav a{display:inline-flex;align-items:center;min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);text-decoration:none;font-size:13px}.dashboard-shell,.shared-shell,.instructions-shell{width:min(1480px,100%);margin:0 auto;padding:clamp(18px,3vw,34px)}.start-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.8fr);gap:18px;align-items:start}.start-panel,.start-tools,.panel,.instruction-block{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 94%,white);box-shadow:var(--shadow)}.start-panel{padding:clamp(20px,4vw,34px)}.start-panel h1,.control-strip h1,.instructions-title h1{margin:4px 0 22px;font-size:clamp(32px,5vw,58px);line-height:1;letter-spacing:0}.start-tools{padding:20px}.start-tools h2,.panel h2,.section-heading h2,.instruction-block h2{margin:0;font-size:clamp(20px,2vw,28px);line-height:1.08}.setup-form{display:grid;gap:16px}.exercise-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.button-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.primary-button{background:var(--green);color:#fffaf0;border-color:var(--green)}.danger-button{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,var(--line));color:var(--danger)}.compact-file,.file-drop{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.compact-file input,.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.status-line{min-height:1.5em;color:var(--muted)}.control-strip,.shared-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.eyebrow{margin:0;color:var(--copper);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.metric-strip{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;margin-bottom:18px}.metric{min-height:98px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.metric strong{display:block;margin-top:8px;font-size:clamp(26px,4vw,42px);line-height:.95}.metric span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.work-grid{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(300px,1.15fr);gap:14px;margin-bottom:14px}.panel{padding:18px}.panel-heading,.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.timer-readout{min-width:150px;text-align:right;font-size:clamp(40px,6vw,70px);font-weight:900;line-height:.9;color:var(--green);font-variant-numeric:tabular-nums}.segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:10px;padding:4px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft)}.segmented button{min-height:36px;border-color:transparent;background:transparent}.segmented button[aria-pressed=true]{background:var(--surface-strong);border-color:var(--line)}.round-controls{display:grid;gap:10px}.round-state{display:flex;flex-wrap:wrap;gap:8px}.pill,.tool-chip,.role-chip,.action-chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:5px 8px;border-radius:999px;background:var(--green-soft);color:color-mix(in srgb,var(--green) 75%,black);font-size:12px;font-weight:800}.pill.copper{background:var(--copper-soft);color:color-mix(in srgb,var(--copper) 78%,black)}.pill.blue{background:var(--blue-soft);color:var(--blue)}.pill.danger{background:var(--danger-soft);color:var(--danger)}.exercise-editor{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.exercise-editor .editor-actions{grid-column:1 / -1}.split-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr);gap:16px;align-items:start;margin-top:16px}.teams-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.team-card[data-tone="0"],.shared-team-card[data-tone="0"]{--team-accent: oklch(49% .115 159);--team-accent-soft: oklch(92% .035 159)}.team-card[data-tone="1"],.shared-team-card[data-tone="1"]{--team-accent: oklch(48% .12 252);--team-accent-soft: oklch(92% .035 252)}.team-card[data-tone="2"],.shared-team-card[data-tone="2"]{--team-accent: oklch(55% .14 43);--team-accent-soft: oklch(93% .045 43)}.team-card[data-tone="3"],.shared-team-card[data-tone="3"]{--team-accent: oklch(48% .13 318);--team-accent-soft: oklch(93% .038 318)}.team-card[data-tone="4"],.shared-team-card[data-tone="4"]{--team-accent: oklch(55% .105 204);--team-accent-soft: oklch(92% .035 204)}.team-card[data-tone="5"],.shared-team-card[data-tone="5"]{--team-accent: oklch(54% .12 96);--team-accent-soft: oklch(93% .04 96)}.team-card,.review-item,.closed-round,.shared-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.team-card,.shared-team-card{position:relative;overflow:hidden;--team-accent: var(--green);--team-accent-soft: var(--green-soft);border-color:color-mix(in srgb,var(--team-accent) 34%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--team-accent-soft) 48%,var(--surface-strong)) 0,var(--surface-strong) 120px),var(--surface-strong);box-shadow:0 12px 24px color-mix(in srgb,var(--team-accent) 10%,transparent)}.team-card{display:grid;gap:12px;padding:14px}.team-card:before,.shared-team-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--team-accent)}.team-card header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.team-identity{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:end}.team-avatar{display:grid;width:42px;height:42px;place-items:center;border:1px solid color-mix(in srgb,var(--team-accent) 70%,var(--ink));border-radius:var(--radius);background:var(--team-accent);color:var(--surface-strong);font-size:18px;font-weight:950}.team-name-input{font-size:20px;font-weight:900}.team-stats,.roles-row,.tool-row,.action-row,.shared-tools{display:flex;flex-wrap:wrap;gap:7px}.stat-pill,.role-chip,.tool-chip{border:1px solid color-mix(in srgb,currentColor 18%,transparent)}.stat-pill{min-height:32px;padding-inline:9px}.stat-action{background:color-mix(in srgb,var(--team-accent-soft) 74%,var(--surface-strong));color:color-mix(in srgb,var(--team-accent) 72%,var(--ink))}.stat-credit{background:var(--copper-soft);color:color-mix(in srgb,var(--copper) 78%,black)}.stat-students{background:var(--blue-soft);color:var(--blue)}.stat-tools{background:color-mix(in srgb,var(--soft) 76%,var(--surface-strong));color:color-mix(in srgb,var(--ink) 74%,var(--muted))}.stat-danger{background:var(--danger-soft);color:var(--danger)}.role-chip{min-height:34px;border-radius:var(--radius);background:color-mix(in srgb,var(--surface-strong) 78%,var(--team-accent-soft));color:var(--muted)}.role-chip strong{color:var(--ink)}.role-chip[data-role=captain]{background:color-mix(in srgb,var(--team-accent-soft) 64%,var(--surface-strong));color:color-mix(in srgb,var(--team-accent) 72%,var(--ink))}.role-chip[data-role=researcher]{background:color-mix(in srgb,var(--blue-soft) 58%,var(--surface-strong));color:var(--blue)}.role-chip[data-role=developer]{background:color-mix(in srgb,var(--copper-soft) 58%,var(--surface-strong));color:color-mix(in srgb,var(--copper) 78%,black)}.role-chip[data-role=support]{background:color-mix(in srgb,var(--soft) 74%,var(--surface-strong))}.chip-icon{display:inline-grid;flex:0 0 auto;width:20px;height:20px;place-items:center;border-radius:6px;background:color-mix(in srgb,currentColor 13%,var(--surface-strong));font-size:13px;line-height:1}.manual-edit{border:1px solid color-mix(in srgb,var(--blue) 18%,var(--line));border-radius:var(--radius);background:color-mix(in srgb,var(--blue-soft) 34%,var(--surface-strong))}.manual-edit summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;padding:8px 10px;cursor:pointer;font-size:13px;font-weight:900;list-style:none}.manual-edit summary::-webkit-details-marker{display:none}.summary-hint{border-radius:999px;background:var(--surface-strong);color:var(--blue);padding:4px 8px;font-size:11px;font-weight:900}.manual-team-form{display:grid;gap:10px;padding:0 10px 10px}.manual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.manual-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;margin:0;padding:10px;border:1px solid var(--line);border-radius:var(--radius)}.manual-checks legend{padding:0 4px;color:var(--muted);font-size:12px;font-weight:900}.manual-tool-row{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px;align-items:center;color:var(--ink)}.manual-tool-row input{text-align:center}.manual-hint{margin:-2px 0 0;color:var(--muted);font-size:12px;font-weight:800}.action-buttons,.tool-shop{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.action-buttons button,.tool-shop button{display:grid;gap:3px;justify-content:flex-start;text-align:left;min-height:48px;border-color:color-mix(in srgb,var(--team-accent) 22%,var(--line));background:color-mix(in srgb,var(--team-accent-soft) 34%,var(--surface-strong))}.action-buttons button[data-action=preview]{border-color:color-mix(in srgb,var(--blue) 26%,var(--line));background:color-mix(in srgb,var(--blue-soft) 48%,var(--surface-strong))}.action-buttons button[data-action=shop],.tool-shop button{border-color:color-mix(in srgb,var(--copper) 24%,var(--line));background:color-mix(in srgb,var(--copper-soft) 42%,var(--surface-strong))}.action-buttons button[data-action=debug]{border-color:color-mix(in srgb,var(--danger) 18%,var(--line));background:color-mix(in srgb,var(--danger-soft) 32%,var(--surface-strong))}.action-buttons button[data-action=build]{border-color:color-mix(in srgb,var(--team-accent) 36%,var(--line));background:color-mix(in srgb,var(--team-accent-soft) 62%,var(--surface-strong))}.action-buttons button:disabled,.tool-shop button:disabled{background:color-mix(in srgb,var(--surface-strong) 76%,var(--soft));border-color:var(--line)}.button-line{display:flex;min-width:0;align-items:center;gap:8px;line-height:1.1}.button-line span[aria-hidden=true]{flex:0 0 auto;width:20px;text-align:center}.team-section-title{margin:0;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.review-board{display:grid;gap:10px}.review-item{padding:12px}.review-item h3{margin:0 0 8px;font-size:18px}.review-form{display:grid;gap:9px}.check-row{display:flex;align-items:center;gap:8px;color:var(--ink)}.check-row input{width:auto}.review-result{display:grid;gap:5px;color:var(--muted);font-size:14px}.closed-rounds{display:grid;gap:10px}.closed-round{padding:12px}.closed-round summary{cursor:pointer;font-weight:900}.closed-round ul{margin:10px 0 0;padding-left:20px}.empty-state{border:1px dashed color-mix(in srgb,var(--muted) 50%,transparent);border-radius:var(--radius);padding:18px;color:var(--muted);background:color-mix(in srgb,var(--surface) 75%,transparent)}.shared-shell{display:grid;gap:18px}.shared-metrics{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px}.shared-section{display:grid;gap:10px}.shared-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shared-card{padding:14px}.shared-card h3{margin:0 0 10px;font-size:20px}.shared-team-card{display:grid;gap:12px;padding:14px}.shared-team-header{display:grid;grid-template-columns:46px minmax(0,1fr);gap:10px;align-items:center}.shared-team-header h3{margin:2px 0 0;font-size:24px;line-height:1}.shared-actions{display:grid;gap:6px}.shared-actions .action-chip{justify-content:flex-start;min-height:34px;border-radius:var(--radius);border:1px solid color-mix(in srgb,currentColor 18%,transparent);background:color-mix(in srgb,var(--team-accent-soft) 46%,var(--surface-strong));color:color-mix(in srgb,var(--team-accent) 72%,var(--ink))}.shared-actions .action-chip span[aria-hidden=true]{width:20px;text-align:center}.shared-actions .action-chip strong{color:var(--ink)}.shared-actions .action-chip[data-status=ready]{background:color-mix(in srgb,var(--blue-soft) 58%,var(--surface-strong));color:var(--blue)}.shared-actions .action-chip[data-status=full]{background:var(--green-soft);color:color-mix(in srgb,var(--green) 75%,black)}.shared-actions .action-chip[data-status=partial]{background:color-mix(in srgb,var(--copper-soft) 64%,var(--surface-strong));color:color-mix(in srgb,var(--copper) 78%,black)}.shared-actions .action-chip[data-status=failure],.shared-actions .action-chip[data-status=critical]{background:var(--danger-soft);color:var(--danger)}.instructions-title{margin-bottom:18px}.instruction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.instruction-block{padding:18px}.instruction-wide{grid-column:1 / -1}.instruction-block table{width:100%;margin-top:12px;border-collapse:collapse;font-size:14px}.instruction-block th,.instruction-block td{border:1px solid var(--line);padding:8px 9px;text-align:left;vertical-align:top}.instruction-block th{background:var(--green-soft)}.compact-list{margin:12px 0 0;padding-left:22px}.compact-list li+li{margin-top:6px}@media(max-width:1100px){.metric-strip,.shared-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.split-layout,.work-grid,.start-layout{grid-template-columns:1fr}.teams-grid,.shared-grid,.exercise-editor{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.app-header,.control-strip,.shared-hero{align-items:stretch;flex-direction:column}.surface-nav,.button-row{width:100%}.surface-nav a,.button-row button,.compact-file{flex:1 1 auto}.metric-strip,.shared-metrics,.teams-grid,.shared-grid,.exercise-grid,.exercise-editor,.instruction-grid,.manual-grid,.manual-checks,.manual-tool-row{grid-template-columns:1fr}.timer-readout{text-align:left}.team-card header{grid-template-columns:1fr}}
