.play-shell{display:flex;flex-direction:column;gap:16px}
.play-head{display:grid;grid-template-columns:1.2fr auto auto;gap:16px;align-items:center}
.play-id{display:flex;gap:14px;align-items:center}
.role-badge{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;color:#fff;font-size:28px;box-shadow:0 6px 16px rgba(31,56,100,.18)}
.play-id h1{margin:1px 0 2px;font-size:30px}
.play-score{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.play-score .kpi{min-width:130px;background:#fff}
.play-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.45fr);gap:16px;align-items:start}
.play-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.play-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.play-side .card{padding:15px}
.play-side h3{font-size:17px}
.role-card h2{font-size:25px}
.kpi-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.team-seats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
.mini-seat{position:relative;border:1px solid var(--line);border-radius:11px;padding:9px 11px;background:#fff;display:flex;flex-direction:column;gap:2px;font-size:13px}
.mini-seat.empty{background:#fafbfd;border-style:dashed;color:var(--muted)}
.mini-seat b{color:var(--navy);font-size:13px}
.mini-seat .dot{position:absolute;right:9px;top:10px}
.choice-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.choice{border:1px solid var(--line);border-radius:12px;padding:11px;display:flex;gap:9px;align-items:flex-start;background:#fff;cursor:pointer}
.choice:has(input:checked){border-color:var(--amber);background:var(--amber-soft);box-shadow:0 0 0 2px rgba(232,156,44,.15)}
.choice input{margin-top:3px}
.choice span{display:flex;flex-direction:column;gap:2px}
.choice small{color:var(--muted);font-size:11px}
.checkline{display:flex;gap:8px;align-items:center;font-weight:600;color:var(--ink);font-size:14px;margin:5px 0}
.checkline input{width:18px;height:18px;accent-color:var(--amber)}
.chart-box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;margin:10px 0;min-height:110px}
.chart-svg{display:block;width:100%;height:auto;max-height:190px}
.util-list{display:flex;flex-direction:column;gap:8px}
.util-row{display:grid;grid-template-columns:105px 1fr 48px;gap:9px;align-items:center;font-size:13px}
.util-row .progress{height:10px}
.util-row .progress>i.good{background:var(--green)}.util-row .progress>i.warn{background:var(--amber)}.util-row .progress>i.bad{background:var(--red)}
.util-row b{text-align:right}
.util-row b.good{color:var(--green)}.util-row b.warn{color:#8a4b00}.util-row b.bad{color:var(--red)}
.mps-editor td{padding:4px 5px}
.mps-editor input{width:64px;border:1px solid var(--line);border-radius:7px;padding:7px 5px;text-align:center;font-weight:700;color:var(--navy);background:#fff}
.mps-editor td.locked,.mps-editor th.locked{background:#eef1f5;opacity:.7}
.mps-editor input:disabled{background:#eef1f5;color:var(--muted)}
.mini-record{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:9px 0;font-size:13px}
.mini-record span{color:var(--muted)}
.mini-record b{text-align:right;color:var(--navy)}
.cap-editor{display:flex;flex-direction:column;gap:8px}
.cap-row{display:grid;grid-template-columns:1.2fr .8fr .8fr .8fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:9px 11px;background:#fff}
.cap-row .field.inline{font-size:12px;gap:3px}
.cap-row select,.cap-row input[type=number]{min-height:34px;padding:5px 7px;border-radius:8px;border:1px solid var(--line);background:#fff}
.cap-row input[type=number]{width:70px;text-align:center}
.cap-row .checkline{font-size:12px;margin:0}
.role-card-modal .card{padding:12px}
.role-card-modal h4{margin-bottom:3px}
.factory-mini{min-height:150px;border:1px solid var(--line);border-radius:12px;background:#f7f9fc;overflow:hidden}
@media(max-width:1100px){.play-grid{grid-template-columns:1fr}.play-head{grid-template-columns:1fr}.play-score{grid-template-columns:1fr 1fr}.play-side{display:grid;grid-template-columns:1fr 1fr}.play-side .card:last-child{grid-column:1/-1}}
@media(max-width:700px){.choice-row{grid-template-columns:1fr}.play-score{grid-template-columns:1fr}.play-side{grid-template-columns:1fr}.team-seats{grid-template-columns:1fr!important}.cap-row{grid-template-columns:1fr 1fr}.cap-row>div:first-child{grid-column:1/-1}.cap-row>small{grid-column:1/-1}}
.mrp-table td,.mrp-table th{font-size:12px;padding:5px 6px}
.mrp-table td.dim{color:#aab2bf}
