:root{--bg:#f3f6fb;--panel:#ffffff;--panel-2:#f7f9fd;--text:#1e2530;--muted:#5f6b7b;--accent:#2563eb;--accent-soft:#3b82f6;--danger:#dc2626;--warn:#d97706;--ok:#059669}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Noto Sans KR,sans-serif;background:radial-gradient(900px 500px at 20% -20%,#dae7ff 0,transparent 65%),var(--bg);color:var(--text);line-height:1.5}.container{max-width:1200px;margin:0 auto;padding:24px}.title{margin:0;font-size:34px;font-weight:800;letter-spacing:.2px}.brand-logo{display:flex;align-items:center;gap:10px}.brand-mark{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center}.brand-mark svg{width:100%;height:100%;display:block}.brand-text{letter-spacing:.3px}.subtitle{color:var(--muted);margin-top:6px}.panel{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid #d6dfeb;border-radius:14px;padding:20px;box-shadow:0 6px 18px rgba(16,24,40,.06)}.grid{display:grid;grid-gap:14px;gap:14px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.flow-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px}.flow-step{border:1px solid #d4ddec;background:#ffffff;border-radius:12px;padding:10px 12px;text-align:left;display:grid;grid-gap:4px;gap:4px;cursor:pointer}.flow-step.active{border-color:var(--accent);background:#eef4ff;box-shadow:inset 0 0 0 2px rgba(37,99,235,.15)}.flow-step.done{border-color:#9dc2ff}.flow-icon{font-size:16px}.flow-title{font-size:13px;font-weight:700;color:#22324a}.flow-hint{font-size:12px;color:var(--muted)}.context-banner{border-radius:10px;border:1px solid #d8e4f5;background:#f8fbff;color:#33557d;padding:10px 12px;font-size:14px}.tab{border:1px solid #c9d5e6;background:#ffffff;color:#304056;border-radius:999px;padding:8px 12px;font-size:13px;cursor:pointer}.tab.active{border-color:var(--accent);box-shadow:inset 0 0 0 2px rgba(37,99,235,.2);background:#eff6ff;color:#1d4ed8;font-weight:700}.section-title{margin:0 0 12px;font-size:20px;letter-spacing:-.2px}.kpi-value{font-size:24px;font-weight:800}.muted{color:var(--muted);font-size:15px}.muted.compact{margin:4px 0 0;font-size:13px}.pill{display:inline-block;padding:4px 8px;border-radius:999px;border:1px solid #b7c7de;font-size:12px;background:#f8fbff}.issue-high{color:var(--danger)}.issue-mid{color:var(--warn)}.issue-low{color:var(--ok)}input,select{width:100%;border:1px solid #c2cede;background:#ffffff;color:var(--text);border-radius:10px;padding:10px 12px}input[type=checkbox]{width:auto;margin:0;accent-color:#ff8a3d}.form-row{display:grid;grid-template-columns:2fr 1fr 1fr;grid-gap:10px;gap:10px}.form-row.single{grid-template-columns:1fr}.info-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.info-card{min-height:88px;display:flex;align-items:center}.option-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.option-block{border:1px solid #d6dfeb;border-radius:12px;background:#ffffff;padding:10px;display:grid;grid-gap:8px;gap:8px}.option-label{font-size:13px;color:var(--muted);font-weight:700}.btn{border:1px solid #1d4ed8;background:#2563eb;color:#ffffff;padding:10px 12px;border-radius:10px;cursor:pointer;font-weight:600;min-height:42px}.btn-loading{display:inline-flex;align-items:center;gap:8px}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#ffffff;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.secondary{background:#ffffff;border-color:#c2cede;color:#334155}.button-row{display:flex;gap:10px;flex-wrap:wrap}.notice{border-radius:10px;padding:10px 12px;font-size:14px}.notice.ok{border:1px solid rgba(2,132,199,.35);background:rgba(2,132,199,.08)}.notice.error{border:1px solid rgba(220,38,38,.4);background:rgba(220,38,38,.08)}.notice.warn{border:1px solid rgba(217,119,6,.4);background:rgba(217,119,6,.08)}.inner-panel{border-style:dashed;background:#f8fbff}.kpi-value.mini{font-size:18px}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#eef3fb;border:1px solid #c6d2e5;border-radius:6px;padding:2px 6px}.field-card{display:grid;grid-gap:6px;gap:6px;background:#ffffff;border:1px solid #d6dfeb;border-radius:12px;padding:12px}.field-card label{color:var(--muted);font-size:14px}.action-block{border:1px solid #d8e1ee;background:#f8fbff;border-radius:12px;padding:12px;margin:10px 0}.action-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.coach-focus-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1.2fr 1fr 1fr;margin:10px 0}.coach-focus-grid.compact{grid-template-columns:1fr 1fr}.coach-focus-grid.compact .focus-card:last-child{grid-column:span 2}.focus-card{border:1px solid #d8e1ee;background:#f8fbff;border-radius:12px;padding:12px}.focus-card.primary{background:#f3f8ff;border-color:#bfd2f4}.focus-line{margin:0;font-size:18px;line-height:1.45;font-weight:700;color:#173f77}.action-title{margin:0 0 6px;font-size:14px;color:#1d4ed8;font-weight:700}.similar-item{border-top:1px dashed #c9d5e6;padding-top:8px;margin-top:8px}.player-chip-list{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.player-chip{border:1px solid #d7e2f3;background:#f8fbff;border-radius:10px;padding:10px 12px;display:grid;grid-gap:4px;gap:4px}.player-chip strong{font-size:15px}.player-chip-head{display:flex;align-items:center;gap:8px}.player-chip span{color:#425673;font-size:13px}.season-badge{width:26px;height:26px;border-radius:6px;object-fit:cover;border:1px solid #d0dbed;background:#fff}.season-badge.tiny{width:20px;height:20px;border-radius:4px}.season-badge.fallback{justify-content:center;font-size:10px;color:#64748b;font-weight:700}.season-badge.fallback,.season-cell{display:inline-flex;align-items:center}.season-cell{gap:6px}.enhance-badge{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:22px;padding:0 8px;border-radius:0;font-size:14px;font-weight:900;letter-spacing:0;color:#c5c8c9;font-family:FCOAllSans,Pretendard,sans-serif;background:linear-gradient(140deg,#51545a,#51545a 0,#42464d);border-color:#62676d #393a3c #393a3c #62676d;border-style:solid;border-width:1.5px}.enhance-badge.level-0,.enhance-badge.level-1{color:#c5c8c9;background:linear-gradient(140deg,#51545a,#42464d);border-color:#62676d #393a3c #393a3c #62676d}.enhance-badge.level-2,.enhance-badge.level-3,.enhance-badge.level-4{color:#7e3f27;background:linear-gradient(140deg,#de946b,#ad5f42);border-color:#e4b7a2 #864229 #864229 #e4b7a2}.enhance-badge.level-5,.enhance-badge.level-6,.enhance-badge.level-7{color:#4e545e;background:linear-gradient(140deg,#d8d9dc,#b8bdca);border-color:#d8dadc #a5a8ae #a5a8ae #d8dadc}.enhance-badge.level-10,.enhance-badge.level-8,.enhance-badge.level-9{color:#695100;background:linear-gradient(140deg,#f9dd62,#dca908);border-color:#e9d36c #cda000 #cda000 #e9d36c}.enhance-badge.level-11,.enhance-badge.level-12,.enhance-badge.level-13{color:#2d2b43;background:url(https://ssl.nexon.com/s2/game/fc/online/obt/datacenter/bg_plt.png) no-repeat 0 0/100% 100%;border-color:#bdc5e5 #5274c0 #5274c0 #607dc4}.player-table-wrap{overflow-x:auto}.player-table{width:100%;border-collapse:collapse;min-width:860px}.player-table td,.player-table th{border-bottom:1px solid #dce5f2;padding:8px 10px;text-align:right;white-space:nowrap}.player-table td:first-child,.player-table td:nth-child(2),.player-table td:nth-child(3),.player-table td:nth-child(4),.player-table th:first-child,.player-table th:nth-child(2),.player-table th:nth-child(3),.player-table th:nth-child(4){text-align:left}.player-table thead th{color:#294971;background:#f3f8ff;font-size:13px;font-weight:700}.visual-metric-list{display:grid;grid-gap:12px;gap:12px}.pitch-layout{display:grid;grid-template-columns:1.2fr 1fr;grid-gap:14px;gap:14px}.pitch-panel{display:grid;grid-gap:10px;gap:10px}.pitch-board{position:relative;height:430px;border-radius:12px;border:1px solid #c8d7ea;background:linear-gradient(180deg,#dff3df,#cdeacb);overflow:hidden}.pitch-board.half{height:560px}.pitch-lines{position:absolute;inset:8px;border:2px solid rgba(30,64,40,.35);border-radius:8px}.pitch-lines.half-pitch-lines{border-top:0}.half-midline{position:absolute;left:0;right:0;top:0;border-top:2px solid rgba(30,64,40,.35)}.half-center-circle{position:absolute;width:90px;height:90px;left:50%;top:-45px;transform:translateX(-50%);border:2px solid rgba(30,64,40,.35);border-radius:50%}.half-penalty-box{left:22%;width:56%;height:28%}.half-goal-box,.half-penalty-box{position:absolute;bottom:0;border:2px solid rgba(30,64,40,.35);border-bottom:0}.half-goal-box{left:36%;width:28%;height:11%}.half-goal-line{position:absolute;left:47%;bottom:0;width:6%;height:2.8%;border:2px solid rgba(30,64,40,.35);border-bottom:0}.pitch-half{position:absolute;left:0;right:0;top:50%;border-top:2px solid rgba(30,64,40,.35)}.pitch-center-circle{position:absolute;width:90px;height:90px;left:50%;top:50%;transform:translate(-50%,-50%);border:2px solid rgba(30,64,40,.35);border-radius:50%}.pitch-box{position:absolute;left:22%;width:56%;height:18%;border:2px solid rgba(30,64,40,.35)}.pitch-box.box-top{top:0;border-top:0}.pitch-box.box-bottom{bottom:0;border-bottom:0}.shot-dot{position:absolute;width:8px;height:8px;border-radius:50%;transform:translate(-50%,-50%)}.shot-dot.shot{background:rgba(59,130,246,.75)}.shot-dot.goal{background:rgba(239,68,68,.95)}.pitch-legend{display:flex;gap:14px;align-items:center;font-size:13px;color:#334155}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px}.dot.shot{background:rgba(59,130,246,.75)}.dot.goal{background:rgba(239,68,68,.95)}.pitch-insights{display:grid;grid-gap:10px;gap:10px}.formation-board{position:relative;height:650px;border-radius:12px;border:1px solid #c8d7ea;background:linear-gradient(180deg,#e4f6df,#d3eed0);overflow:hidden}.formation-scroll{width:100%;overflow-x:auto}.formation-lines{position:absolute;inset:10px;border:2px solid rgba(30,64,40,.35);border-radius:8px}.formation-midline{position:absolute;left:0;right:0;top:50%;border-top:2px solid rgba(30,64,40,.35)}.formation-center-circle{position:absolute;width:96px;height:96px;left:50%;top:50%;transform:translate(-50%,-50%);border:2px solid rgba(30,64,40,.35);border-radius:50%}.formation-box{position:absolute;left:20%;width:60%;height:16%;border:2px solid rgba(30,64,40,.35)}.formation-box.top{top:0;border-top:0}.formation-box.bottom{bottom:0;border-bottom:0}.formation-goal{position:absolute;left:43%;width:14%;height:4%;border:2px solid rgba(30,64,40,.35)}.formation-goal.top{top:0;border-top:0}.formation-goal.bottom{bottom:0;border-bottom:0}.formation-player{position:absolute;transform:translate(-50%,-50%);width:136px;border:1px solid #d4def0;background:rgba(255,255,255,.93);border-radius:12px;padding:7px 8px;display:grid;grid-gap:6px;gap:6px;box-shadow:0 4px 10px rgba(15,23,42,.12)}.formation-player-head{display:grid;grid-template-columns:34px 1fr;align-items:center;grid-gap:7px;gap:7px}.formation-player-meta{display:grid;grid-gap:2px;gap:2px;text-align:left}.formation-player-top{display:flex;justify-content:space-between;align-items:center;gap:4px}.formation-player-meta strong{font-size:14px;color:#1e3a5f;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.formation-player-meta span{font-size:12px;color:#4b6585;line-height:1.2}.player-face{object-fit:cover;border:1px solid #cfdaec;background:#fff}.player-face.formation{width:34px;height:34px;border-radius:999px}.player-face.table{width:24px;height:24px;border-radius:999px}.zone-card{border:1px solid #d8e1ee;background:#f8fbff;border-radius:12px;padding:12px}.timing-grid{display:grid;grid-gap:8px;gap:8px}.timing-row{display:grid;grid-template-columns:52px 1fr 64px;grid-gap:8px;gap:8px;align-items:center}.timing-label{font-size:12px;color:#475569}.timing-bars{display:flex;gap:6px;align-items:center}.timing-bar{height:8px;border-radius:999px}.timing-bar.for{background:linear-gradient(90deg,#2563eb,#60a5fa)}.timing-bar.against{background:linear-gradient(90deg,#f97316,#fbbf24)}.timing-value{font-size:12px;color:#475569;text-align:right}.visual-metric-item{display:grid;grid-gap:8px;gap:8px}.visual-metric-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px}.progress-track{position:relative;width:100%;height:10px;border-radius:999px;background:#e6edf7;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#2563eb)}.progress-fill.issue{background:linear-gradient(90deg,#fbbf24,#f97316)}.progress-track.reverse{background:#e8f6ef}.progress-fill.reverse{background:linear-gradient(90deg,#4ade80,#16a34a)}.benchmark-marker{position:absolute;top:-3px;width:2px;height:16px;background:#0f172a;opacity:.55;transform:translateX(-1px)}.issue-stack{display:grid;grid-gap:10px;gap:10px}.issue-row{border:1px solid #e0e8f3;background:#ffffff;border-radius:10px;padding:10px}.issue-row-head{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:6px}.guide-grid{display:grid;grid-gap:10px;gap:10px}.guide-grid+.guide-grid{margin-top:14px}.coach-summary-stack{display:grid;grid-gap:18px;gap:18px}.guide-card{border:1px solid #d7e2f3;background:#f8fbff;border-radius:10px;padding:10px 12px;color:#34465f;font-size:14px}.guide-card p{margin:8px 0 0}.guide-title{font-weight:700;color:#24436b}.guide-hero{display:grid;grid-gap:10px;gap:10px}.guide-tips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.app-footer{border-top:1px solid #d4deec;padding:14px 2px 8px;margin-top:4px;display:grid;grid-gap:8px;gap:8px}.footer-top{justify-content:space-between;gap:12px}.footer-links,.footer-top{display:flex;align-items:center;flex-wrap:wrap}.footer-links{gap:10px}.footer-links a,.link-like{border:0;background:none;padding:0;color:#33507a;font-size:13px;text-decoration:underline;cursor:pointer}.usage-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.usage-step{border:1px solid #d7e2f3;background:#f8fbff;border-radius:10px;padding:12px;display:grid;grid-gap:8px;gap:8px}.usage-step p{margin:0}.usage-index{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#dbeafe;color:#1d4ed8;font-weight:800;font-size:12px}.span-3{grid-column:span 3}.span-2{grid-column:span 2}.toggle-list{display:grid;grid-gap:8px;gap:8px}.toggle-item{display:flex;align-items:center;gap:8px;color:var(--text);font-size:14px}.list{margin:0;padding-left:16px}.list.compact{margin-top:8px;display:grid;grid-gap:4px;gap:4px}.detail-block{border:1px solid #d6dfeb;border-radius:10px;background:#fff;margin-top:10px}.detail-block summary{cursor:pointer;padding:10px 12px;font-weight:600;color:#1f3b6e}.detail-content{border-top:1px solid #e5edf7;padding:10px 12px}@media (max-width:1024px){.container{padding:18px}.title{font-size:30px}.flow-rail{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:900px){.action-grid,.coach-focus-grid,.form-row,.grid-2,.grid-3,.guide-tips,.option-strip,.pitch-layout,.player-chip-list,.usage-flow{grid-template-columns:1fr}.flow-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.formation-board{height:580px}.formation-player{width:118px;padding:6px}.formation-player-head{grid-template-columns:30px 1fr}.player-face.formation{width:30px;height:30px}.formation-player-meta strong{font-size:13px}.formation-player-meta span{font-size:11px}.info-row{grid-template-columns:1fr}.span-2,.span-3{grid-column:span 1}}@media (max-width:640px){.container{padding:12px}.panel{padding:14px;border-radius:12px}.title{font-size:24px}.section-title{font-size:18px;margin-bottom:10px}.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:2px}.tab{flex:0 0 auto}.flow-rail{display:flex;overflow-x:auto;gap:8px;padding-bottom:4px;scroll-snap-type:x mandatory}.flow-step{min-width:170px;flex:0 0 auto;scroll-snap-align:start}.button-row .btn,.button-row .btn.secondary{width:100%}.pitch-board{height:360px}.pitch-board.half{height:440px}.formation-board{min-width:760px;height:520px}}