*{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.2)blur(4px);backdrop-filter:saturate(1.2)blur(4px);-webkit-overflow-scrolling:touch;background:#fffc;border:1px solid #e5e7eb;border-radius:16px;flex-direction:column;align-self:stretch;gap:8px;width:320px;max-width:48vw;height:100%;min-height:0;padding:10px;display:flex;overflow:hidden auto}.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{cursor:pointer;touch-action:manipulation;font:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:5px 9px;font-size:14px;line-height:1.2}.btn:disabled{opacity:.6;cursor:not-allowed}.input,select,textarea{font:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:6px;min-width:0;padding:5px 7px;font-size:14px}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{font-size:16px;font-weight:700}.plannerModeLine{margin-bottom:6px;font-weight:700}.plannerSection{border:1px solid #e5e7eb;border-radius:12px;padding:8px}.sectionTitle{font-weight:700}.strongLabel{font-weight:600}.alertLabel,.alertLabelInline{color:#b91c1c;font-weight:700}.successLabel{color:#0f766e;font-weight:700}.fixedLabel{width:90px}.clockReadout{margin-left:auto;font-size:24px;font-weight:800}.primaryBtn{color:#fff;border-color:#0000}.strongBtn{font-weight:800}.dangerBtn{color:#be123c;background:#fff1f2;border-color:#fecdd3;font-weight:700}.confirmBtn{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{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;padding:8px}.bench{background:#eaf0eb;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{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;font-size:11px;line-height:1}.table{-webkit-overflow-scrolling:touch;border:1px solid #e5e7eb;border-radius:12px;min-height:0;max-height:320px;padding:8px;overflow:hidden auto}.statCard{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}.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);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;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{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 dashed #00000014;width:16px;margin:0 4px 0 0}.planPrintSheet{display:none}.printSlot{z-index:20;position:absolute;transform:translate(-50%,-50%)}.printCoin{box-shadow:none;background:#fff;border:1.25px solid #111;border-radius:10px;padding:4px 6px}.printRole{text-align:center;margin-bottom:2px;font-size:12px;font-weight:800;line-height:1.05}.printQuarterPlayer{text-align:center;white-space:nowrap;font-size:11px;line-height:1.1}.planPrintHeader{margin-bottom:6px}.planPrintTitle{font-size:18px;font-weight:800;line-height:1.05}.planPrintSubtitle{color:#334155;margin-top:2px;font-size:11px;line-height:1.15}.planPrintFormations{color:#0f172a;margin-top:4px;font-size:11px;line-height:1.2}.planPrintGrid{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:8px;display:grid}.planPrintQuarterCard{break-inside:avoid;border:1.25px solid #111;border-radius:8px;min-height:0;padding:4px}.planPrintQuarterHeader{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.planPrintQuarterTitle{font-size:12px;font-weight:800;line-height:1.1}.planPrintQuarterFormation{color:#334155;text-align:right;font-size:10px;font-weight:700;line-height:1.1}.planPrintFieldWrap{width:100%}.planPrintField{background:#fff;width:100%;position:relative;overflow:hidden}.planPrintField--quarter{aspect-ratio:1.82;border:1.25px solid #111;border-radius:8px}.printCoin--quarter{min-width:58px;max-width:86px}@media (max-width:1100px){.panel{max-width:56vw}.circle{width:76px;height:76px}.fieldLayer{inset:68px 24px 24px}.tacticLayer{inset:16px 18px 18px}.slot{width:100px}.goalsOverlay{width:min(48%,500px);height:42px}}@media (max-width:800px){.app{gap:8px;padding:8px}.panel{max-width:62vw;padding:8px}.circle{width:76px;height:76px}.fieldLayer{inset:66px 18px 22px}.tacticLayer{inset:14px 14px 18px}.slot{width:94px}.player{padding:3px 7px;font-size:12px}.btn,.input,select,textarea{font-size:12px}.label{font-size:10px}.tacticToolbar{gap:6px;padding:6px}.goalsOverlay{width:min(52%,420px);height:36px}}@media print{@page{size:letter landscape;margin:.12in}html,body{background:#fff!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important}body.printing-plan .plannerAppRoot{background:#fff!important;gap:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}body.printing-plan .plannerHideOnPrint{display:none!important}body.printing-plan .planPrintSheet{background:#fff!important;width:100%!important;margin:0!important;padding:0!important;display:block!important}body.printing-plan .planPrintPage{grid-template-rows:auto 1fr!important;gap:.05in!important;width:100%!important;height:8.26in!important;display:grid!important;overflow:hidden!important}body.printing-plan .planPrintHeader{margin:0!important;padding:0 0 .02in!important;line-height:1.1!important}body.printing-plan .planPrintTitle{margin:0!important;font-size:14px!important}body.printing-plan .planPrintSubtitle{display:none!important}body.printing-plan .planPrintFormations{margin:0!important;font-size:8px!important;line-height:1.15!important}body.printing-plan .planPrintGrid{grid-template-rows:1fr 1fr!important;grid-template-columns:1fr 1fr!important;gap:.06in!important;height:100%!important;min-height:0!important;display:grid!important}body.printing-plan .planPrintQuarterCard{break-inside:avoid!important;page-break-inside:avoid!important;border:1.25px solid #111!important;border-radius:6px!important;grid-template-rows:auto 1fr!important;min-height:0!important;padding:.045in!important;display:grid!important}body.printing-plan .planPrintQuarterHeader{gap:.08in!important;margin:0 0 .03in!important;line-height:1.05!important}body.printing-plan .planPrintQuarterTitle{margin:0!important;font-size:10px!important}body.printing-plan .planPrintQuarterFormation{margin:0!important;font-size:8px!important}body.printing-plan .planPrintFieldWrap{width:100%!important;height:100%!important;min-height:0!important;display:block!important}body.printing-plan .planPrintField,body.printing-plan .planPrintFieldWrap{overflow:hidden!important}body.printing-plan .planPrintField--quarter{aspect-ratio:auto!important;border:1.1px solid #111!important;border-radius:6px!important;width:100%!important;height:100%!important;min-height:0!important}body.printing-plan .planPrintField--quarter .outline{border-width:1.2px!important;border-radius:7px!important;inset:8px!important}body.printing-plan .planPrintField--quarter .line,body.printing-plan .planPrintField--quarter .third{width:1.1px!important;top:8px!important;bottom:8px!important}body.printing-plan .printSlot{width:auto!important}body.printing-plan .printCoin{border-width:1px!important;border-radius:7px!important;padding:2px 4px!important}body.printing-plan .printCoin--quarter{min-width:52px!important;max-width:74px!important}body.printing-plan .printRole{margin-bottom:2px!important;font-size:10px!important;line-height:1!important}body.printing-plan .printQuarterPlayer{font-size:9px!important;line-height:1.05!important}}
