*{box-sizing:border-box}html,body{height:100%;min-height:0;margin:0}body{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}.app{overscroll-behavior:none;background:#ecfccb;gap:12px;height:100vh;min-height:0;padding:12px;display:flex;overflow:hidden}.app.tacticApp{gap:0;padding:12px}.panel{-webkit-backdrop-filter:saturate(1.08)blur(4px);backdrop-filter:saturate(1.08)blur(4px);-webkit-overflow-scrolling:touch;color:#0f172a;background:#ecf4e4f5;border:1px solid #d6e2cc;border-radius:18px;flex-direction:column;align-self:stretch;gap:8px;width:320px;max-width:48vw;height:100%;min-height:0;padding:8px;display:flex;overflow:hidden auto;box-shadow:inset 0 1px #ffffff6b}.panel>*{flex:none}.row{align-items:center;gap:8px;min-width:0;display:flex}.col{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.wrapRow{flex-wrap:wrap}.pushRight{margin-left:auto}.gap6{gap:6px}.btn{color:#0f172a;cursor:pointer;touch-action:manipulation;font:inherit;-webkit-text-fill-color:#0f172a;background:#fff;border:1px solid #d6dde7;border-radius:8px;padding:5px 9px;font-size:14px;line-height:1.2}.btn:disabled{opacity:.6;cursor:not-allowed;color:#64748b;-webkit-text-fill-color:#64748b}.input,select,textarea{color:#0f172a;-webkit-text-fill-color:#0f172a;font:inherit;background:#fff;border:1px solid #d6dde7;border-radius:6px;min-width:0;padding:5px 7px;font-size:14px}input::placeholder,textarea::placeholder{color:#64748b;opacity:1}select option{color:#0f172a;background:#fff}textarea{resize:vertical;max-width:100%}.label{color:#475569;min-width:0;font-size:10px;line-height:1.2}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.plannerHeading{color:#0f172a;font-size:16px;font-weight:700;line-height:1.1}.plannerModeLine{color:#0f172a;margin-bottom:6px;font-weight:700}.plannerSection{color:#0f172a;background:#e0ead6f0;border:1px solid #cfdcc5;border-radius:14px;padding:7px;box-shadow:inset 0 1px #ffffff54}.plannerClockSection,.plannerMatchSection{gap:7px}.plannerPanelNavRow{align-items:center;padding:1px 2px 0;display:flex}.plannerHomeLink{color:#0f172a;align-items:center;gap:6px;width:fit-content;margin-left:2px;font-weight:700;text-decoration:none;display:inline-flex}.plannerClockHeaderRow{align-items:baseline}.plannerClockMetaRow{justify-content:space-between;gap:10px}.plannerClockControlsRow{align-items:center;gap:8px}.plannerMinutesInput{width:78px}.plannerHomeToggle{cursor:pointer;color:#0f172a;align-items:center;gap:6px;margin-left:auto}.plannerPlanSection,.plannerModeCard{gap:7px}.plannerModeTopRow{align-items:center}.plannerQuarterSelect{min-width:96px}.plannerPlanActionsRow{align-items:center}.plannerControlRow{align-items:center;gap:8px}.plannerWideSelect{flex:auto;min-width:0}.sectionTitle{color:#0f172a;font-weight:700}.strongLabel{color:#0f172a;font-weight:600}.alertLabel,.alertLabelInline{color:#b91c1c;font-weight:700}.successLabel{color:#0f766e;font-weight:700}.fixedLabel{width:90px}.clockReadout{color:#0f172a;margin-left:auto;font-size:24px;font-weight:800}.primaryBtn{color:#fff;-webkit-text-fill-color:#fff;background:#64748b;border-color:#0000}.strongBtn{font-weight:800}.dangerBtn{color:#be123c;-webkit-text-fill-color:#be123c;background:#fff1f2;border-color:#fecdd3;font-weight:700}.confirmBtn{color:#fff;-webkit-text-fill-color:#fff;background:#be123c;border-color:#0000;font-weight:800}.codeArea{-webkit-overflow-scrolling:touch;width:100%;min-height:74px;max-height:180px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;overflow-y:auto}.dashedPanel{color:#0f172a;background:#e9eff3f5;border:1px dashed #b6c6d8;border-radius:12px;padding:8px}.table{-webkit-overflow-scrolling:touch;color:#0f172a;background:#ecf1e7fa;border:1px solid #d0dbc8;border-radius:12px;min-height:0;max-height:320px;padding:8px;overflow:hidden auto}.viewerRosterTable{min-height:420px;max-height:min(68vh,100vh - 220px)}.bench{color:#0f172a;background:#eaf0ebf5;border:1px dashed #be26be;border-radius:12px;min-height:64px;padding:8px}.rosterRow{grid-template-columns:48px minmax(0,1fr) 52px;align-items:center;gap:12px;padding:4px 2px;display:grid}.rosterCheck{color:#0f172a;align-items:center;gap:4px;min-width:0;display:flex}.rosterCheck .label{white-space:nowrap;font-size:10px;line-height:1}.rosterPlayerTag{color:#fff;background:#64748b;border-radius:999px;align-items:center;gap:6px;min-width:0;max-width:100%;padding:4px 10px;font-size:12px;font-weight:700;line-height:1.1;display:inline-flex}.rosterPlayerTag .mono{flex:none}.rosterPlayerTag .playerNameWide{white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:100%;overflow:hidden}.rosterTime{text-align:right;white-space:nowrap;color:#334155;font-size:11px;line-height:1}.statCard{color:#0f172a;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:6px}.field{background:linear-gradient(#96d69fd9,#a6daa9c9);border-radius:16px;flex:auto;min-width:0;min-height:0;position:relative;overflow:hidden}.plannerFieldWrap{flex-direction:column;flex:auto;min-width:0;height:100%;min-height:0;display:flex}.fieldStage{flex:auto;min-width:0;height:100%;min-height:0;position:relative}.field .outline,.planPrintField .outline{border:2px solid #ffffffe6;border-radius:12px;position:absolute;inset:12px}.field .line,.planPrintField .line{background:#fffc;width:2px;position:absolute;top:12px;bottom:12px}.field .third,.planPrintField .third{background:#fff9;width:2px;position:absolute;top:12px;bottom:12px}.fieldLayer{z-index:2;min-width:0;min-height:0;position:absolute;inset:70px 34px 28px}.tacticLayer{z-index:3;touch-action:none;position:absolute;inset:18px 24px 22px}.slot{z-index:2;flex-direction:column;align-items:center;gap:4px;width:122px;min-width:0;display:flex;position:absolute;transform:translate(-50%,-50%)}.circle{background:#93c5fd33;border:2px solid #2563eb;border-radius:999px;flex:none;justify-content:center;align-items:center;width:100px;height:100px;display:flex;box-shadow:0 4px 10px #00000026}.player{color:#fff;-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:999px;align-items:center;gap:5px;min-width:0;max-width:100%;padding:3px 8px;font-size:12px;font-weight:700;line-height:1.1;display:inline-flex;box-shadow:0 1px 2px #0000001a}.playerName,.playerNameWide{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.playerName{max-width:100px}.playerNameWide{max-width:140px}.slotRoleLabel{text-align:center;white-space:nowrap;pointer-events:none;color:#0f172a}.rotateOverlay{color:#fff;text-align:center;z-index:999;background:#0009;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.rotateTitle{margin-bottom:6px;font-size:18px;font-weight:700}.pill{color:#0f172a;white-space:nowrap;background:#0f172a0f;border:1px solid #0f172a14;border-radius:999px;padding:2px 7px;font-size:10px}.fieldModeBadge{z-index:6;letter-spacing:.08em;color:#0f172a8c;text-align:center;pointer-events:none;background:#ffffffe0;border-radius:999px;width:fit-content;margin:4px auto 2px;padding:4px 10px;font-size:11px;font-weight:900;line-height:1;display:block;position:relative}.tacticLaunchBtn{z-index:6;border-radius:999px;font-weight:800;position:absolute;top:12px;right:12px}.scoreOverlay{z-index:5;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto;background:#ffffff52;border-radius:999px;align-items:center;gap:8px;padding:6px 8px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.scorePill{color:#fff;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-weight:900;display:inline-flex;box-shadow:0 4px 12px #0000001f}.scorePillLabel{opacity:.95;font-size:12px}.scorePillValue{font-size:18px}.scoreActionBtn{border-radius:999px;font-weight:800}.goalsOverlay{opacity:.22;pointer-events:none;z-index:1;width:min(42%,560px);height:46px;position:absolute;top:14%;left:50%;transform:translate(-50%)}.goalsSvg{width:100%;height:100%;display:block}.tacticToolbar{z-index:8;-webkit-backdrop-filter:saturate(1.15)blur(6px);backdrop-filter:saturate(1.15)blur(6px);color:#0f172a;background:#ffffffe0;border:1px solid #e5e7ebe6;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.toolActive{color:#fff;-webkit-text-fill-color:#fff;background:#0f172a;border-color:#0f172a}.tacticSvg{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.tacticLine{fill:none;stroke:#0f172abf;stroke-width:.65px;stroke-linecap:round;stroke-linejoin:round}.tacticLineDraft{fill:none;stroke:#dc2626bf;stroke-width:.65px;stroke-linecap:round;stroke-linejoin:round}.tacticCoin{z-index:4;touch-action:none;-webkit-user-select:none;user-select:none;width:84px}.tacticCoin .circle{cursor:grab;width:84px;height:84px}.tacticCoin .circle:active{cursor:grabbing}.tacticRoleChip{letter-spacing:.02em;padding:6px 10px;font-size:13px;font-weight:800}.tacticRoleLabel{display:none}.quickStatsBar{color:#0f172a;z-index:5;background:#fff;border-top:1px solid #e5e7eb;flex:none;padding:10px;position:relative}.quickStatsRow{align-items:stretch;gap:6px}.quickStatsLabel{margin-bottom:2px}.resizeRail{touch-action:none;cursor:col-resize;background:0 0;border-left:2px solid #00000014;width:16px}.plannerPrintSheet{display:none}.planPrintSheet{color:#111827;background:#fff}.planPrintPage{background:#fff;width:100%;min-height:100%;padding:0}.planPrintHeader{flex-direction:column;gap:2px;margin-bottom:6px;display:flex}.planPrintTitle{font-size:15px;font-weight:800;line-height:1.05}.planPrintSubtitle{color:#475569;font-size:10px}.planPrintFormations{font-size:10px;line-height:1.2}.planPrintGrid{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:6px;height:calc(100vh - 44px);display:grid}.planPrintQuarterCard{break-inside:avoid;background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex-direction:column;min-height:0;padding:5px;display:flex;overflow:hidden}.planPrintQuarterHeader{flex:none;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:4px;display:flex}.planPrintQuarterTitle{font-size:11px;font-weight:800}.planPrintQuarterFormation{color:#334155;text-align:right;font-size:9px}.planPrintFieldWrap{flex:auto;width:100%;min-height:0;display:flex}.planPrintField{background:linear-gradient(#d9f0d7,#cfeccf);border-radius:10px;width:100%;height:100%;min-height:0;position:relative;overflow:hidden}.printSlot{z-index:2;gap:0;width:78px}.printCoin{text-align:center;width:78px;min-height:78px;box-shadow:none;background:#fffffff0;border:1.5px solid #475569;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;padding:6px 5px;display:flex}.printRole{color:#0f172a;letter-spacing:.01em;margin-bottom:3px;font-size:9px;font-weight:800;line-height:1.05}.printQuarterPlayer{color:#334155;word-break:break-word;max-width:100%;font-size:9px;font-weight:600;line-height:1.12}@media (max-width:640px){.app{gap:8px;padding:8px}.app.tacticApp{padding:8px}.panel{gap:7px;width:300px;max-width:50vw;padding:7px}.plannerSection,.dashedPanel,.table,.bench{padding:6px}.table{max-height:280px}.viewerRosterTable{min-height:340px;max-height:min(62vh,100vh - 210px)}.plannerClockMetaRow,.plannerClockControlsRow,.plannerModeTopRow,.plannerPlanActionsRow,.plannerControlRow,.quickStatsRow,.scoreOverlay{gap:6px}.fieldLayer{inset:64px 22px 22px}.tacticLayer{inset:16px 18px 18px}.slot{gap:3px;width:94px}.circle{width:76px;height:76px}.player{gap:4px;padding:2px 7px;font-size:11px}.playerName{max-width:76px}.playerNameWide{max-width:96px}.slotRoleLabel{font-size:10px;line-height:1.05}.tacticCoin{width:76px}.tacticCoin .circle{width:76px;height:76px}.tacticRoleChip{padding:5px 8px;font-size:12px}.fieldModeBadge{padding:4px 9px;font-size:10px}.scoreOverlay{max-width:calc(100% - 16px);padding:5px 7px;top:10px}.scorePill{gap:6px;padding:7px 10px}.scorePillLabel{font-size:11px}.scorePillValue{font-size:16px}.scoreActionBtn{padding:5px 8px}.goalsOverlay{width:min(48%,420px);height:40px;top:15%}.tacticToolbar{gap:6px;padding:6px;top:10px;left:10px;right:10px}.quickStatsBar{padding:8px}}@media (max-width:480px){.app{gap:6px;padding:6px}.app.tacticApp{padding:6px}.panel{border-radius:16px;gap:6px;width:280px;max-width:52vw;padding:6px}.plannerHeading{font-size:15px}.btn,.input,select,textarea{font-size:13px}.clockReadout{font-size:22px}.fieldLayer{inset:60px 16px 18px}.tacticLayer{inset:14px 14px 16px}.slot{gap:2px;width:82px}.circle{width:64px;height:64px}.player{gap:3px;padding:2px 6px;font-size:10px}.playerName{max-width:62px}.playerNameWide{max-width:80px}.slotRoleLabel{font-size:9px}.tacticCoin{width:64px}.tacticCoin .circle{width:64px;height:64px}.tacticRoleChip{padding:4px 7px;font-size:11px}.scoreOverlay{gap:5px;max-width:calc(100% - 12px);padding:4px 6px;top:8px}.scorePill{gap:5px;padding:6px 9px}.scorePillLabel{font-size:10px}.scorePillValue{font-size:15px}.scoreActionBtn{padding:4px 7px}.goalsOverlay{width:min(54%,320px);height:34px;top:16%}.fieldModeBadge{margin-top:3px;padding:3px 8px;font-size:9px}.tacticLaunchBtn{top:10px;right:10px}.tacticToolbar{border-radius:10px;gap:5px;padding:5px;top:8px;left:8px;right:8px}.quickStatsBar{padding:7px}}@media print{html,body{background:#fff;height:auto;overflow:visible}body.printing-plan{background:#fff}body.printing-plan .plannerHideOnPrint{display:none!important}body.printing-plan .plannerPrintSheet{display:block!important}body.printing-plan .app{background:#fff!important;gap:0!important;height:auto!important;padding:0!important;display:block!important;overflow:visible!important}body.printing-plan .planPrintSheet{width:100%;height:auto;margin:0;padding:0;position:static;inset:auto;display:block!important}body.printing-plan .planPrintPage{flex-direction:column;height:7.95in;padding:.12in;display:flex}body.printing-plan .planPrintHeader{flex:none}body.printing-plan .planPrintGrid{flex:auto;height:auto}body.printing-plan .app,body.printing-plan .field,body.printing-plan .plannerFieldWrap{background:#fff!important;height:auto!important;min-height:0!important;overflow:visible!important}@page{size:landscape;margin:.12in}}.liveTopPanel{gap:8px;padding:12px 14px}.liveClockGrid{grid-template-columns:72px 1fr 112px;align-items:center;gap:12px;display:grid}.liveQuarter{color:#202325;font-size:20px;font-weight:800;line-height:1}.liveTotalLabel{color:#202325;margin-top:4px;font-size:16px;font-weight:300;line-height:1}.liveTimeBlock{text-align:center}.liveQuarterTime{color:#202325;font-size:20px;font-weight:400;line-height:1}.liveTotalTime{color:#202325;margin-top:4px;font-size:16px;font-weight:300;line-height:1}.liveToggleBlock{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.liveToggle{color:#202325;white-space:nowrap;align-items:center;gap:3px;font-size:10px;font-weight:300;line-height:1;display:inline-flex}.liveToggle input{margin:0}.liveControlRow{grid-template-columns:100px 1fr 140px;align-items:center;gap:12px;display:grid}.liveStartBtn,.liveNextBtn{min-height:36px;padding:7px 12px;font-size:16px;font-weight:800;line-height:1}.liveStartBtn{justify-self:start}.liveNextBtn{justify-self:end}.liveQuarterLength{color:#202325;white-space:nowrap;justify-self:center;align-items:center;gap:5px;font-size:15px;font-weight:500;display:inline-flex}.liveMinutesInput{text-align:center;width:56px;min-height:36px;padding:4px 6px;font-size:16px}.liveClockAlert{padding:4px 8px;font-size:12px;line-height:1.15}.liveMatchHint{color:#64748b;font-size:12px;line-height:1.2}.liveFormationRow{grid-template-columns:auto auto 1fr;align-items:center;gap:12px;display:grid}.liveFormationRow .btn,.liveFormationSelect{min-height:36px;font-size:16px}.liveFormationRow .btn{padding:7px 14px}.liveFormationSelect{width:100%;font-weight:700}.plannerPanelNavRowWithTeam{justify-content:space-between;align-items:center;width:100%;display:flex}.plannerPanelTeamName{text-align:right;white-space:nowrap;color:#334155;margin-left:auto;font-size:18px;font-weight:400}@media (max-width:900px),(max-height:520px){.plannerCompact.app{gap:6px;padding:6px;overflow:hidden}.plannerCompact .panel{border-radius:14px;gap:6px;width:280px;max-width:42vw;padding:6px}.plannerCompact .resizeRail{display:none}.plannerCompact .plannerSection,.plannerCompact .dashedPanel,.plannerCompact .table,.plannerCompact .bench{padding:6px}.plannerCompact .liveTopPanel{gap:6px;padding:8px}.plannerCompact .liveClockGrid{grid-template-columns:54px 1fr 84px;gap:8px}.plannerCompact .liveQuarter{font-size:16px}.plannerCompact .liveTotalLabel,.plannerCompact .liveTotalTime{font-size:12px}.plannerCompact .liveQuarterTime{font-size:16px}.plannerCompact .liveControlRow{grid-template-columns:76px 1fr 96px;gap:8px}.plannerCompact .liveStartBtn,.plannerCompact .liveNextBtn,.plannerCompact .liveFormationRow .btn,.plannerCompact .liveFormationSelect{min-height:30px;padding:5px 8px;font-size:13px}.plannerCompact .liveQuarterLength{font-size:12px}.plannerCompact .liveMinutesInput{width:44px;min-height:30px;font-size:13px}.plannerCompact .fieldLayer{inset:54px 14px 16px}.plannerCompact .slot{gap:2px;width:76px}.plannerCompact .circle{width:58px;height:58px}.plannerCompact .player{gap:3px;padding:2px 5px;font-size:9px}.plannerCompact .playerName{max-width:54px}.plannerCompact .playerNameWide{max-width:70px}.plannerCompact .slotRoleLabel{font-size:9px;line-height:1}.plannerCompact .scoreOverlay{gap:5px;max-width:calc(100% - 12px);padding:4px 6px;top:7px}.plannerCompact .scorePill{gap:5px;padding:5px 8px}.plannerCompact .scorePillLabel{font-size:9px}.plannerCompact .scorePillValue{font-size:14px}.plannerCompact .scoreActionBtn{padding:4px 7px;font-size:12px}.plannerCompact .fieldModeBadge{margin-top:3px;padding:3px 8px;font-size:9px}.plannerCompact .tacticLaunchBtn{padding:4px 8px;font-size:12px;top:8px;right:8px}.plannerCompact .quickStatsBar{padding:6px}.plannerCompact .quickStatsRow{gap:5px}.plannerCompact .quickStatsRow .btn{padding:4px 7px;font-size:12px}}@media (max-width:740px),(max-height:430px){.plannerCompact .panel{width:250px;max-width:40vw}.plannerCompact .fieldLayer{inset:50px 10px 14px}.plannerCompact .slot{width:68px}.plannerCompact .circle{width:50px;height:50px}.plannerCompact .player{padding:1px 4px;font-size:8px}.plannerCompact .playerName{max-width:48px}.plannerCompact .playerNameWide{max-width:62px}.plannerCompact .plannerPanelTeamName{font-size:14px}}
