:root{--bg:#ffffff;--surface:#f9fafb;--text:#1f2937;--text-muted:#6b7280;--border:#e5e7eb;--lavender:#a78bfa;--lavender-200:#c4b5fd;--coral:#fb7185;--coral-200:#fda4af;--mint:#34d399;--mint-200:#6ee7b7;--sun:#facc15;--sun-200:#fde68a;--success:#22c55e;--warning:#f59e0b;--error:#dc2626;--shadow-sm:0 1px 2px rgba(0,0,0,.06);--shadow-md:0 6px 20px rgba(17,24,39,.08);--radius:14px;--focus-ring:0 0 0 3px rgba(167,139,250,.35),0 0 0 6px rgba(253,164,175,.25)}body,html{height:100%}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji;line-height:1.45}:where(button,[role=button],a,input,select,textarea){outline:none}:where(button,[role=button],a,input,select,textarea):focus-visible{box-shadow:var(--focus-ring);border-radius:calc(var(--radius) - 6px)}*{scrollbar-width:thin;scrollbar-color:var(--lavender-200) transparent}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--lavender-200),var(--coral-200));border-radius:999px}::-webkit-scrollbar-track{background:transparent}.container{max-width:1200px;margin:0 auto;padding:24px}.accent-bar{height:6px;background:linear-gradient(90deg,var(--lavender),var(--coral))}a{color:var(--lavender);text-decoration:none}a:hover{color:var(--coral);text-decoration:underline}.page-pastel{max-width:none;padding:24px 24px 44px;background:radial-gradient(80rem 60rem at -10% -20%,rgba(167,139,250,.08),transparent 40%),radial-gradient(80rem 60rem at 110% -20%,rgba(253,164,175,.08),transparent 40%)}@media (min-width:1280px){.page-pastel{padding-left:40px;padding-right:40px}}.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-gap:18px;gap:18px}.span-12{grid-column:span 12}@media (min-width:960px){.md-span-3{grid-column:span 3}.md-span-4{grid-column:span 4}.md-span-5{grid-column:span 5}.md-span-12{grid-column:span 12}}@media (min-width:1320px){.lg-span-3{grid-column:span 3}.lg-span-4{grid-column:span 4}.lg-span-5{grid-column:span 5}.lg-span-12{grid-column:span 12}}.card{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm);overflow:hidden}.card-top{height:4px;background:linear-gradient(90deg,var(--lavender-200),var(--coral-200))}.card-hd{padding:16px 18px 6px}.card-hd h3{margin:0;font-size:18px}.card-sub{margin-top:4px;color:var(--text-muted);font-size:13px}.card-bd{padding:16px 18px}.card-ft{padding:12px 18px;border-top:1px dashed var(--border);display:flex;justify-content:flex-end}.list{list-style:none;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}.row{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fff}.row:hover{background:var(--surface)}.row-name{font-weight:600}.row-meta{color:var(--text-muted);font-size:12px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-block;padding:6px 10px;border-radius:999px;background:linear-gradient(90deg,var(--lavender-200),var(--coral-200));color:#111;font-weight:600;font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.stat{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px}.k{font-weight:800;font-size:20px}.l{color:var(--text-muted);font-size:12px;margin-top:2px}.events{list-style:none;padding:0;margin:0;display:grid;grid-gap:10px;gap:10px}.event{display:grid;grid-template-columns:10px 1fr;grid-gap:12px;gap:12px;align-items:center}.pill{width:10px;height:42px;border-radius:8px;background:var(--surface)}.pill.performance{background:linear-gradient(180deg,var(--mint-200),var(--mint))}.pill.rehearsal{background:linear-gradient(180deg,var(--lavender-200),var(--lavender))}.pill.tech{background:linear-gradient(180deg,var(--sun-200),var(--sun))}.pill.other{background:linear-gradient(180deg,var(--coral-200),var(--coral))}.hero{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px;margin:8px 0 16px}.hero h1{margin:0;font-size:36px;line-height:1.1;letter-spacing:.2px}.hero .dates{margin-top:6px;color:var(--text-muted);font-size:15px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.rail{position:-webkit-sticky;position:sticky;top:8px;z-index:5;display:flex;gap:8px;padding:6px 0 10px;background:transparent}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{left:12px;top:12px;width:auto;height:auto;padding:8px 12px;background:#fff;border:1px solid var(--lavender-200);border-radius:8px;z-index:1000}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);background:color-mix(in oklab,#ffffff 85%,transparent);border-bottom:1px solid var(--border);height:60px;padding:10px 20px}.site-header__inner{max-width:1200px;margin:0 auto;padding:10px 16px;justify-content:space-between}.brand,.site-header__inner{display:flex;align-items:center}.brand{gap:10px;text-decoration:none}.brand__mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,var(--lavender-200),var(--coral-200));box-shadow:var(--shadow-sm)}.brand__text{font-weight:900;letter-spacing:.2px;background:linear-gradient(90deg,var(--lavender),var(--coral));-webkit-background-clip:text;background-clip:text;color:transparent}.nav{display:none;gap:8px;align-items:center}@media (min-width:900px){.nav{display:flex}}.nav__link{padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--text)}.nav__link:hover{background:var(--surface)}.nav__link.is-active{background:linear-gradient(90deg,#fff,#fff) padding-box,linear-gradient(90deg,var(--lavender-200),var(--coral-200)) border-box;border:1px solid transparent}.menu-btn{display:inline-grid;gap:4px;border:none;background:transparent;padding:6px;border-radius:10px}.menu-btn:hover{background:var(--surface)}.menu-btn span{width:22px;height:2px;background:var(--text);display:block;border-radius:2px}@media (min-width:900px){.menu-btn{display:none}}.drawer{display:grid;grid-gap:6px;gap:6px;padding:0 16px 12px;border-bottom:1px solid var(--border);transform:translateY(-8px);opacity:0;pointer-events:none;transition:transform .18s ease,opacity .18s ease;background:#fff}.drawer.open{transform:translateY(0);opacity:1;pointer-events:auto}.drawer__link{padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--text)}.drawer__link.is-active{background:linear-gradient(90deg,#fff,#fff) padding-box,linear-gradient(90deg,var(--lavender-200),var(--coral-200)) border-box;border:1px solid transparent}.drawer__cta{justify-self:start;margin-top:6px}.nav__cta{margin-left:6px}.site-footer{margin-top:28px;border-top:1px solid var(--border);background:#fff}.site-footer__inner{max-width:1200px;margin:0 auto;padding:18px 16px;display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px;align-items:center}@media (min-width:900px){.site-footer__inner{grid-template-columns:auto 1fr auto}}.site-footer__brand{display:flex;align-items:center;gap:10px}.site-footer__nav{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.site-footer__nav a{color:var(--text-muted);text-decoration:none}.site-footer__nav a:hover{color:var(--text);text-decoration:underline}.site-footer__copy{justify-self:end;color:var(--text-muted)}.btn-sm{font-size:13px;padding:8px 12px}.btn-lg{font-size:15px;padding:12px 18px}.btn-primary{color:#fff;background:linear-gradient(90deg,var(--lavender),var(--coral));box-shadow:var(--shadow-md)}.btn-primary:hover{filter:brightness(1.03)}.btn-outline{color:var(--text);background:#fff;border-color:var(--lavender-200)}.btn-outline:hover{box-shadow:var(--shadow-sm);background:linear-gradient(90deg,#fff,#fff) padding-box,linear-gradient(90deg,var(--lavender-200),var(--coral-200)) border-box;border:1px solid transparent}.sectionbar .crumbs{max-width:1200px;margin:0 auto;padding:8px 16px;font-size:13px;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:4px}.sectionbar .crumb a{color:inherit;text-decoration:none}.sectionbar .crumb a:hover{text-decoration:underline}.sectionbar .sep{margin:0 6px;color:var(--text-muted)}.tabs__list{display:flex;gap:12px;overflow-x:auto;padding:4px 0}.tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;text-decoration:none;color:var(--text);border:1px solid var(--border);background:#fff;font-weight:500}.tab:hover{background:var(--surface)}.tab.is-active{border:1px solid transparent;font-weight:700;background:linear-gradient(90deg,#fff,#fff) padding-box,linear-gradient(90deg,var(--lavender-200),var(--coral-200)) border-box}.tab__badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;font-size:12px;font-weight:700;background:linear-gradient(90deg,var(--lavender-200),var(--coral-200));color:#111}.sectionbar .tabs{max-width:1200px;margin:0 auto;padding:6px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tabs__right{display:flex;gap:8px;flex-shrink:0}.casting-wrap{padding:12px 16px 20px}.casting-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.casting-grid{--left:300px;--right:320px;--gap:12px;grid-template-columns:var(--left) minmax(0,1fr) var(--right);grid-gap:var(--gap);gap:var(--gap);align-items:stretch;position:relative}.panel{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm);overflow:hidden;min-width:0}.panel .panel-hd{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px dashed var(--border)}.panel .panel-bd{padding:10px;overflow:auto;max-height:calc(100vh - 240px)}.panel.center{padding:0;border-radius:16px;min-height:60vh;overflow:auto}.casting-grid.left-collapsed .panel.left,.casting-grid.right-collapsed .panel.right{max-width:0!important}.edge-handle{position:fixed;top:50vh;transform:translateY(-50%);width:18px;height:56px;border-radius:0 12px 12px 0;border:1px solid var(--border);background:#fff;box-shadow:var(--shadow-sm);display:grid;place-items:center;cursor:pointer;z-index:60;color:var(--text-muted);font-weight:900}.edge-handle:hover{background:var(--surface)}.edge-handle.left{left:0;border-radius:0 12px 12px 0}.edge-handle.right{right:0;border-radius:12px 0 0 12px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid transparent;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .05s,box-shadow .2s,filter .15s}.btn:active{transform:translateY(1px)}.sm{font-size:13px;padding:8px 12px}.outline{color:var(--text);background:#fff;border-color:var(--lavender-200)}.outline:hover{box-shadow:var(--shadow-sm);background:linear-gradient(90deg,#fff,#fff) padding-box,linear-gradient(90deg,var(--lavender-200),var(--coral-200)) border-box;border:1px solid transparent}.casting-grid{display:grid;grid-template-columns:var(--left,280px) 1fr var(--right,320px);grid-template-areas:"left center right";grid-auto-rows:minmax(0,auto);align-items:start;grid-gap:12px;gap:12px}.casting-grid .panel{min-width:0}.casting-grid .panel.left{grid-area:left}.casting-grid .panel.center{grid-area:center}.casting-grid .panel.right{grid-area:right}.casting-grid.left-collapsed{--left:0px}.casting-grid.right-collapsed{--right:0px}.casting-grid.left-collapsed .panel.left,.casting-grid.right-collapsed .panel.right{visibility:hidden;pointer-events:none;overflow:hidden;padding:0!important;border:0!important}.center-card{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 0 rgba(16,24,40,.02);padding:12px}.center-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:8px}.seg{padding:2px}.seg-btn{border:none;padding:6px 12px;cursor:pointer;font-weight:600}.seg-btn.is-active{background:linear-gradient(90deg,#fff,#fff) padding-box,linear-gradient(90deg,var(--lavender-200),var(--coral-200)) border-box;border:1px solid transparent}.table-wrap{overflow:auto;max-width:100%;position:relative}.table{width:100%;border-collapse:separate;border-spacing:0;table-layout:auto}.table thead th{z-index:2}.table td,.table th{border-bottom:1px solid var(--border,#e5e7eb)}.row-conflict{outline:2px solid var(--coral-200,#f9b4a9)}.table thead th{position:-webkit-sticky;position:sticky;top:0;background:#fff;z-index:1}.table td,.table th{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.table tbody tr:nth-child(odd) td{background:#fcfcff}.table .muted{color:var(--muted,#667085)}.row-conflict{outline:2px solid var(--coral-200);outline-offset:-2px}.btn[disabled]{opacity:.45;cursor:not-allowed}.stage-wrap{display:grid;grid-gap:16px;gap:16px}.stage-card{padding:12px;box-shadow:0 1px 0 rgba(16,24,40,.02)}.stage-card__header{justify-content:space-between;margin-bottom:8px}.stage-chip{display:inline-block;font-weight:600;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,var(--lavender-200),var(--coral-200)) border-box;border:1px solid transparent}.proscenium{border-radius:14px;padding:10px;background:linear-gradient(180deg,#fafaff,#fdf7ff)}.stage-canvas{width:100%;aspect-ratio:16/9;border-radius:12px;background:radial-gradient(120% 80% at 50% 10%,rgba(255,255,255,.95),rgba(255,255,255,.65) 55%,rgba(255,255,255,.25) 70%,transparent 100%),linear-gradient(180deg,#f7f8ff,#fff);box-shadow:inset 0 -60px 120px rgba(135,92,255,.08)}.apron{left:50%;transform:translateX(-50%);bottom:-10%;width:120%;height:40%;background:radial-gradient(70% 80% at 50% 10%,rgba(255,255,255,.8),rgba(233,221,255,.55) 60%,rgba(255,210,210,.35) 85%,transparent 100%);filter:blur(6px)}.stage-spot{position:absolute;transform:translate(-50%,-50%);min-width:240px;max-width:300px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px;display:grid;grid-gap:8px;gap:8px;box-shadow:0 4px 16px rgba(16,24,40,.06)}.stage-spot.is-complete{box-shadow:0 0 0 2px rgba(168,85,247,.2),0 8px 20px rgba(48,16,78,.08)}.spot-badge{display:inline-flex;align-items:center;max-width:100%;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,var(--lavender-200),var(--coral-200)) border-box;border:1px solid transparent;border-radius:999px;padding:2px 10px}.spot-badge__label{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spot-pickers{display:grid;grid-gap:6px;gap:6px;grid-template-columns:1fr 1fr}@media (max-width:600px){.spot-pickers{grid-template-columns:1fr}}.spot-select{grid-gap:4px;gap:4px}.spot-names{font-size:12px;color:var(--muted,#667085)}.stage-footer{margin-top:8px;font-size:12px}.stage-card{border:1px solid var(--border);border-radius:16px;background:#fff}.stage-card+.stage-card{margin-top:14px}.stage-card__header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.stage-chip{padding:4px 10px;border-radius:999px;background:var(--bg-soft,#f6f7fb);border:1px solid var(--border)}.proscenium{padding:14px}.stage-canvas{position:relative;min-height:420px;border-radius:14px;border:1px solid var(--border);overflow:hidden;background:radial-gradient(120% 80% at 50% 10%,#ffffff,#fbfbff 55%,#f7f4ff 70%,#f7f4ff)}.proscenium.with-grid .stage-canvas{background-image:linear-gradient(90deg,rgba(140,119,255,.08) 1px,transparent 0),linear-gradient(180deg,rgba(140,119,255,.08) 1px,transparent 0),radial-gradient(120% 80% at 50% 10%,#ffffff,#fbfbff 55%,#f7f4ff 70%,#f7f4ff);background-size:var(--gridpx,16px) var(--gridpx,16px),var(--gridpx,16px) var(--gridpx,16px),auto;background-position:0 0,0 0,0 0}.apron{position:absolute;left:0;right:0;bottom:-60px;height:120px;background:radial-gradient(120% 60% at 50% 0,rgba(255,255,255,0) 30%,rgba(0,0,0,.06) 100%);pointer-events:none}.role-token{position:absolute;transform:translate(-50%,-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:-webkit-grab;cursor:grab;z-index:2}.role-token:active{cursor:-webkit-grabbing;cursor:grabbing}.token-circle{width:40px;height:40px;display:grid;place-items:center;border-radius:999px;background:#fff;border:1px solid var(--border);box-shadow:0 2px 10px rgba(97,72,255,.1);padding:6px 8px;white-space:nowrap;font-size:11px}.token-label{opacity:.85}.token-initials{font-weight:700;letter-spacing:.5px}.role-token.is-filled .token-circle{border-color:#b7aaff;box-shadow:0 2px 12px rgba(97,72,255,.16),inset 0 0 0 4px rgba(183,170,255,.18)}.role-token.is-expanded .token-card{position:absolute;top:46px;left:50%;transform:translateX(-50%);width:320px;max-width:calc(100vw - 80px);background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(36,24,96,.16);z-index:4}.token-card .card-head{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border)}.token-card .card-body{display:grid;grid-gap:10px;gap:10px;padding:10px 12px}.spot-select{display:grid;grid-template-columns:80px 1fr;grid-gap:10px;gap:10px;align-items:center}.seg{display:inline-flex;gap:6px;padding:4px;background:#fff;border:1px solid var(--border)}.seg,.seg-btn{border-radius:999px}.seg-btn{padding:6px 10px;border:0;background:transparent}.seg-btn.is-active{background:linear-gradient(180deg,#f7f3ff,#fff);box-shadow:inset 0 1px 3px rgba(0,0,0,.06)}.stage-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:10px;margin-bottom:12px;border:1px solid var(--border);border-radius:12px;background:#fff}.stage-toolbar .muted{font-size:12px;color:#60646c}.table thead tr{display:table-row!important}.table thead th{text-align:left!important}.table td:first-child,.table th:first-child{width:160px}.table td:last-child,.table th:last-child{width:200px}