:root{--bg:#f6f7f9;--surface:#fff;--border:#d9dde3;--text:#16191d;--muted:#626b76;--accent:#16507a;--accent-text:#fff;--warn-bg:#fdf3e0;--warn-border:#e0b063;--error-bg:#fdeceb;--error-border:#d2735f;--success-bg:#eaf5ec;--live-bg:#e9f1f8;--radius:8px}@media (prefers-color-scheme:dark){:root{--bg:#14171b;--surface:#1c2026;--border:#333a43;--text:#e8eaed;--muted:#9aa4b0;--accent:#4c9ad4;--accent-text:#0d1116;--warn-bg:#3a2f1c;--warn-border:#8a6a2e;--error-bg:#3a2220;--error-border:#a3564a;--success-bg:#1f3324;--live-bg:#1b2c3a}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}h1{margin:0 0 .25rem;font-size:1.5rem}h2{margin:0 0 .5rem;font-size:1.1rem}h3{margin:0;font-size:.95rem}h4{margin:0 0 .5rem;font-size:.8rem}a{color:var(--accent)}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:.45rem .55rem}textarea{resize:vertical}.app-header{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;display:flex}.brand{color:var(--text);font-weight:600;text-decoration:none}.team-nav{gap:1rem;display:flex}.team-nav a{color:var(--muted);padding-bottom:2px;text-decoration:none}.team-nav a.active{color:var(--text);border-bottom:2px solid var(--accent)}.app-header-right{align-items:center;gap:1rem;margin-left:auto;display:flex}.link-muted{color:var(--muted);text-decoration:none}.app-main{max-width:1200px;margin:0 auto;padding:1.5rem}.stack{flex-direction:column;gap:1rem;display:flex}.narrow{max-width:560px}.row{flex-wrap:wrap;gap:1rem;display:flex}.row>*{flex:1;min-width:160px}.row-end{justify-content:flex-end}.row-end>*{flex:none;min-width:0}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.section-head{justify-content:space-between;align-items:center;display:flex}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.crumb{margin:0 0 .25rem;font-size:.85rem}.page-loading{color:var(--muted);padding:2rem 0}.muted{color:var(--muted)}.small{font-size:.85rem}.empty{color:var(--muted);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);padding:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.card-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.card-link{padding:0}.card-link a{color:inherit;padding:1rem;text-decoration:none;display:block}.card-link a:hover{background:var(--bg)}.card-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.btn{font:inherit;border-radius:var(--radius);cursor:pointer;color:var(--text);background:0 0;border:1px solid #0000;padding:.45rem .8rem;text-decoration:none;display:inline-block}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-ghost{border-color:var(--border);color:var(--muted)}.btn-ghost:hover:not(:disabled){color:var(--text)}.btn-danger{color:var(--error-border)}.btn-add{border-style:dashed;width:100%}.btn-huge{width:100%;padding:1.25rem;font-size:1.25rem}.chip{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:.25rem .8rem}.chip-active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.filters,.tabs{flex-wrap:wrap;gap:.5rem;display:flex}.field{flex-direction:column;gap:.25rem;display:flex}.field-label{color:var(--muted);font-size:.85rem}.field-hint{color:var(--muted);font-size:.8rem}.field-error{color:var(--error-border);margin:0;font-size:.85rem}.checkbox{align-items:flex-start;gap:.5rem;font-size:.9rem;display:flex}.checkbox input{width:auto;margin-top:.2rem}.note{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);padding:.75rem 1rem;font-size:.9rem}.note-error{background:var(--error-bg);border-color:var(--error-border)}.note-warning{background:var(--warn-bg);border-color:var(--warn-border)}.note-success{background:var(--success-bg)}.note-live{background:var(--live-bg)}.note ul{margin:.5rem 0 0;padding-left:1.2rem}.note-hint{color:var(--muted)}.badge{text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.15rem .5rem;font-size:.7rem}.badge-published,.badge-pending{border-color:var(--accent);color:var(--accent)}.badge-live{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.badge-redeemed{border-color:var(--warn-border);color:var(--warn-border)}.warn-inline{color:var(--warn-border)}.tag{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:4px;margin-left:.4rem;padding:0 .3rem;font-size:.7rem}.builder{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:1.5rem;display:grid}@media (width<=900px){.builder{grid-template-columns:1fr}}.timeline{flex-direction:column;gap:.75rem;display:flex}.period{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem}.period-offense{border-left-color:#b8763a}.period-defense{border-left-color:#3a7ab8}.period-special_teams{border-left-color:#7a5aa8}.period-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.period-head p{margin:.15rem 0 0}.period-meta{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.period-duration{margin-right:.5rem;font-weight:600}.period-notes{color:var(--muted);margin:.5rem 0 0;font-size:.9rem}.tag-lock{border-color:var(--warn-border);color:var(--warn-border)}.parallel{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=700px){.parallel{grid-template-columns:1fr}}.parallel-column{border:1px dashed var(--border);border-radius:var(--radius);flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.parallel-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.sessions{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.session{border-top:1px solid var(--border);padding-top:.5rem}.session-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.session-name{font-weight:500}.session-actions{gap:.25rem;margin-left:auto;display:flex}.drill-line{color:var(--text);margin:.35rem 0 0;padding-left:1.2rem;font-size:.85rem}.optimizer{flex-direction:column;gap:.75rem;display:flex;position:sticky;top:1rem}.blocks{flex-direction:column;gap:.4rem;display:flex}.blocks-head{justify-content:space-between;align-items:baseline;display:flex}.block-row{grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) minmax(0,1.2fr) 64px 32px;gap:.3rem;display:grid}.block-row input,.block-row select{padding:.3rem;font-size:.85rem}.emphasis-row{text-transform:capitalize;grid-template-columns:90px 1fr 28px;align-items:center;gap:.5rem;font-size:.85rem;display:grid}.emphasis-value{text-align:right;color:var(--muted)}.rationale{color:var(--muted);font-size:.9rem;font-style:italic}.proposal{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;padding-top:.75rem;display:flex}.proposal-table,.table{border-collapse:collapse;width:100%;font-size:.85rem}.proposal-table th,.proposal-table td,.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.4rem .3rem}.table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.table th{color:var(--muted);font-weight:500}.delta-up{color:#2f7d4f}.delta-down{color:var(--error-border)}.drill-picker{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (width<=760px){.drill-picker{grid-template-columns:1fr}}.picked-list{flex-direction:column;gap:.35rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.picked-item{grid-template-columns:minmax(0,1fr) 64px auto auto auto auto;align-items:center;gap:.3rem;font-size:.9rem;display:grid}.picked-item input{padding:.25rem}.picked-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.catalog-list{flex-direction:column;gap:.25rem;max-height:340px;margin:.5rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.catalog-item{text-align:left;width:100%;font:inherit;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--text);background:0 0;flex-direction:column;gap:.15rem;padding:.5rem;display:flex}.catalog-item:hover{background:var(--bg)}.catalog-name{font-size:.9rem;font-weight:500}.catalog-desc{color:var(--muted);font-size:.8rem}.modal-backdrop{z-index:10;background:#00000073;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);width:100%;max-width:720px}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.modal-header h2{margin:0}.modal-body{padding:1rem}.invite-code{letter-spacing:.15em;text-align:center;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:1rem;font-family:ui-monospace,Menlo,monospace;font-size:1.6rem}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{flex-direction:column;gap:.85rem;width:100%;max-width:380px;display:flex}.auth-card h1{text-align:center}.subtitle{text-align:center;color:var(--muted);margin:0}.auth-alt{text-align:center;color:var(--muted);margin:0;font-size:.85rem}.run{flex-direction:column;gap:1.25rem;max-width:520px;margin:0 auto;padding:1.5rem 1rem;display:flex}.run-head h1{margin:.5rem 0 .25rem}.run-start,.run-live{flex-direction:column;gap:1rem;display:flex}.run-elapsed{margin:0;font-size:1rem}.run-elapsed strong{font-size:2rem}.run-current{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.run-current h2{margin:0;font-size:1.4rem}.run-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.run-item{border-bottom:1px solid var(--border);grid-template-columns:72px minmax(0,1fr) auto;gap:.5rem;padding:.6rem 0;display:grid}.run-item-now{font-weight:600}.run-time{color:var(--muted)}.run-actions{gap:.75rem;display:flex}.run-actions .btn{flex:1}
