:root{--ink:#14243a;--muted:#627287;--line:#d9e6f1;--blue:#1769e0;--sky:#eaf4ff;--bad:#e64040;--good:#138a5b;--gold:#ffb000;--card:#fff;--shadow:0 12px 34px rgba(23,57,88,.09)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Noto Sans KR",sans-serif;background:#f5f9fd;color:var(--ink)}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:10px 14px;cursor:pointer;font-weight:700}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.ghost{background:transparent}.danger{color:var(--bad)}.wide{width:100%}.topbar{position:sticky;top:0;z-index:20;background:rgba(245,249,253,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;padding:16px max(20px,calc((100vw - 1180px)/2))}.topbar h1{margin:2px 0;font-size:24px}.subtitle,.muted{color:var(--muted)}.subtitle{margin:0;font-size:14px}.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--blue);font-weight:900;margin:0 0 6px}.profile{min-width:230px;text-align:right}.profile>span,.profile>strong{display:block}.xp{height:8px;background:#e4edf6;border-radius:99px;overflow:hidden;margin:6px 0}.xp i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue),#6d8cff);transition:.3s}main{max-width:1180px;margin:auto;padding:24px 18px 64px}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px}.hero{padding:28px;display:flex;justify-content:space-between;gap:24px;align-items:center}.hero h2{font-size:clamp(26px,4vw,44px);margin:8px 0}.pill{display:inline-block;background:var(--sky);color:var(--blue);padding:7px 11px;border-radius:99px;font-weight:800;font-size:12px}.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.section{margin-top:22px}.section.card,.panel{padding:22px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.section h2{margin:0 0 8px}.tools,.student-tools,.rank-tools,.tournament-create,.video-tools{display:flex;gap:8px;flex-wrap:wrap}.tools input,.tools select,.student-tools input,.tournament-create input,.tournament-create select,label input,label textarea,label select{border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff;width:100%}.student-tools input{flex:1 1 180px}.student-list{display:flex;gap:9px;overflow:auto;padding-top:14px}.student-card{min-width:150px;text-align:left}.student-card b,.student-card small{display:block}.student-card small{color:var(--muted);margin-top:4px}.student-card.active{border:2px solid var(--blue);background:var(--sky)}.plane-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:16px;max-height:440px;overflow:auto}.plane{padding:14px;border:1px solid var(--line);border-radius:16px;background:#fbfdff;cursor:pointer}.plane.active{border:2px solid var(--blue);background:var(--sky)}.plane strong,.plane small,.plane em{display:block}.plane small{color:var(--muted);margin-top:5px}.plane em{font-size:11px;color:#7d8ba0;margin-top:7px;font-style:normal}.two-col{display:grid;grid-template-columns:1.55fr .85fr;gap:20px}.fold-stage{height:370px;border-radius:20px;background:radial-gradient(circle at 50% 20%,#fff,#edf5fc);border:1px solid var(--line);position:relative;overflow:hidden;display:grid;place-items:center;perspective:900px;touch-action:none}.paper{width:210px;height:298px;background:#fff;border:2px solid #8fb1d0;box-shadow:0 16px 26px rgba(47,82,112,.15);display:grid;place-items:center;position:relative;transform-style:preserve-3d;transition:transform .25s,filter .2s;border-radius:4px;user-select:none;touch-action:none}.paper span{font-size:42px;opacity:.22}.paper.glow{filter:drop-shadow(0 0 11px rgba(23,105,224,.42))}.paper.bad{border-color:var(--bad);filter:drop-shadow(0 0 12px rgba(230,64,64,.35))}.crease{position:absolute;width:250px;border-top:3px dashed var(--blue);opacity:.55;animation:dash 1s linear infinite}.guide-arrow{position:absolute;font-size:44px;color:var(--blue);font-weight:900;animation:guide 1s ease-in-out infinite;z-index:3;pointer-events:none}@keyframes guide{50%{translate:24px 0}}@keyframes dash{50%{opacity:.95}}.step-progress,.gesture-meter{height:9px;background:#e8eef5;border-radius:99px;overflow:hidden;margin:12px 0}.step-progress i,.gesture-meter i{display:block;height:100%;width:0;background:var(--blue);transition:.2s}.gesture-meter i{background:linear-gradient(90deg,#37a1ff,var(--good))}.hint{text-align:center;color:var(--muted);font-weight:700}.instruction{background:#f7fbff;border:1px solid var(--line);padding:12px;border-radius:14px;line-height:1.6}.step-controls{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.score-box{margin-top:16px;padding:16px;background:#f7fbff;border:1px solid var(--line);border-radius:16px}.score-main{display:flex;justify-content:space-between;align-items:center}.score-main strong{font-size:40px}.stars{font-size:30px;color:var(--gold);letter-spacing:4px}.metric{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.metric span{padding:10px;background:#fff;border-radius:12px;border:1px solid var(--line);text-align:center}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;background:#15263b;color:#fff;padding:12px 18px;border-radius:14px;z-index:50;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.bad{background:var(--bad)}.big-score{text-align:center;padding:18px;border-radius:18px;background:var(--sky);margin:12px 0}.big-score strong{font-size:52px;color:var(--blue);display:block}.badges{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.badge-item{border:1px solid var(--line);border-radius:14px;padding:10px;text-align:center;opacity:.35}.badge-item.unlocked{opacity:1;background:#fff8df;border-color:#ffd66f}.badge-item b{display:block;font-size:28px}.mini-list{display:grid;gap:7px}.mini-row{display:grid;grid-template-columns:90px 1fr 42px;gap:8px;align-items:center}.mini-row i{height:8px;background:#e5edf5;border-radius:99px;overflow:hidden}.mini-row i em{display:block;height:100%;background:var(--blue)}canvas{width:100%;height:auto;border:1px solid var(--line);border-radius:16px;background:#fff}.report-box{margin-top:12px;padding:14px;border-radius:15px;background:#f8fbfe;border:1px solid var(--line)}.history{display:grid;gap:9px;max-height:320px;overflow:auto}.history-item{border:1px solid var(--line);border-radius:13px;padding:11px}.history-item strong{display:block}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}label{display:block;font-weight:700;margin:10px 0}label input,label textarea,label select{margin-top:6px}.checkline{display:flex;gap:8px;align-items:center}.checkline input{width:auto;margin:0}.target-note{margin-top:10px;color:var(--muted);font-size:14px}.result-panel{text-align:center}.total-ring{width:170px;height:170px;border-radius:50%;margin:12px auto;display:grid;place-items:center;align-content:center;background:conic-gradient(var(--blue) 0deg,#e7eef5 0deg);border:10px solid #f2f6fa}.total-ring strong{font-size:52px;line-height:1}.formula{display:grid;grid-template-columns:1fr 1fr;gap:10px}.formula div{border:1px solid var(--line);padding:12px;border-radius:14px}.formula span,.formula small,.formula b{display:block}.formula b{font-size:28px}#flightVideo{width:100%;max-height:330px;background:#0f1825;border-radius:16px;margin-top:12px}.video-tools{align-items:flex-end}.video-tools label{flex:1 1 190px}.trajectory-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.trajectory-metrics div{border:1px solid var(--line);border-radius:13px;padding:10px;text-align:center}.trajectory-metrics span,.trajectory-metrics b{display:block}.trajectory-metrics b{font-size:22px;color:var(--blue);margin-top:4px}.rank-tools{justify-content:space-between;align-items:end}.rank-row{display:grid;grid-template-columns:60px 1fr 1fr 90px;gap:8px;padding:10px 8px;border-bottom:1px solid var(--line);align-items:center}.rank-row.head{font-size:12px;color:var(--muted);font-weight:800}.ranking-table{margin-top:12px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.template-sec{padding:22px}.template-wrap{display:grid;grid-template-columns:minmax(280px,440px) 1fr;gap:20px;align-items:start}#templateSvg{width:100%;background:white;border:1px solid var(--line);box-shadow:var(--shadow)}.template-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.fold-sequence{padding-left:22px;max-height:520px;overflow:auto}.fold-sequence li{margin:0 0 10px;padding:8px 10px;background:#f8fbfe;border:1px solid var(--line);border-radius:12px}.fold-sequence b,.fold-sequence span{display:block}.fold-sequence span{margin-top:4px;color:var(--muted);line-height:1.45}footer{text-align:center;color:var(--muted);padding:26px}.level-up{animation:pop .55s ease}@keyframes pop{50%{transform:scale(1.05)}}@media(max-width:900px){.topbar{position:relative;display:block}.profile{text-align:left;margin-top:12px;min-width:0}.hero,.section-head{display:block}.hero-actions,.tools{margin-top:12px}.plane-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.fold-stage{height:330px}.paper{width:180px;height:255px}.template-wrap{grid-template-columns:1fr}.badges{grid-template-columns:repeat(2,1fr)}.trajectory-metrics{grid-template-columns:1fr 1fr}}@media(max-width:520px){main{padding:14px 10px 50px}.section.card,.panel,.hero{padding:16px}.plane-grid{grid-template-columns:1fr 1fr}.tools,.student-tools,.video-tools,.tournament-create{display:grid}.form-grid{grid-template-columns:1fr}.metric{grid-template-columns:1fr}.hero h2{font-size:30px}.fold-stage{height:310px}.rank-row{grid-template-columns:42px 1fr .8fr 66px;font-size:13px}}

/* 2.6 target tracking, bracket tournament, professional blueprint */
.verify-dot{display:inline-block;font-size:9px;line-height:1;background:#138a5b;color:#fff;border-radius:999px;padding:4px 6px;vertical-align:2px;margin-left:4px;letter-spacing:.05em}.tracker-actions,.bracket-actions,.blueprint-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}.target-canvas-wrap{position:relative}.target-canvas-wrap canvas{cursor:crosshair;touch-action:manipulation;background:#0f1825}.target-badge{position:absolute;top:10px;left:10px;background:rgba(20,36,58,.82);color:#fff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;pointer-events:none}.target-badge.active{background:#1769e0}.target-badge.locked{background:#e64040}.qualify{background:#f2fbf6}.pad{padding:12px}.bracket-board{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.round{border:1px solid var(--line);border-radius:16px;padding:12px;background:#fbfdff}.round h3{margin:0 0 10px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.match{border:1px solid var(--line);border-radius:13px;padding:10px;margin:9px 0;background:#fff;display:grid;gap:7px}.match>b{font-size:12px;color:var(--muted)}.match-player{width:100%;text-align:left;padding:9px 10px}.match-player.winner{background:#e9f8ef;border-color:#77c79e;color:#0f6d47}.match.pending{color:var(--muted)}.bracket-empty{grid-column:1/-1;border:1px dashed var(--line);border-radius:14px;padding:16px;color:var(--muted);text-align:center}.podium{display:flex;justify-content:center;align-items:end;gap:8px;margin-top:18px;min-height:120px}.podium-empty{width:100%;border:1px dashed var(--line);padding:14px;border-radius:14px;text-align:center;color:var(--muted)}.podium-place{width:30%;max-width:150px;text-align:center;border:1px solid var(--line);border-radius:15px 15px 6px 6px;background:#f8fbfe;padding:12px 6px}.podium-place span,.podium-place b,.podium-place small{display:block}.podium-place span{font-size:32px}.podium-place.first{min-height:118px;background:#fff8df;border-color:#ffd66f}.podium-place.second{min-height:94px}.podium-place.third{min-height:76px}.verified-notice{display:flex;gap:10px;align-items:center;margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#f8fbfe}.verified-notice b{white-space:nowrap}.verified-notice span{color:var(--muted)}.verified-notice.verified{background:#eefaf3;border-color:#9bd4b7}.verified-notice.verified b{color:#0f6d47}.legend-card{display:grid;gap:6px;margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fbfe}.legend-card span{font-size:13px;color:var(--muted)}
@media(max-width:700px){.bracket-board{grid-template-columns:1fr}.blueprint-actions{margin-top:12px}.verified-notice{display:block}.verified-notice span{display:block;margin-top:5px}.podium-place{width:32%}}

/* 2.7 PDF center + digital QC */
.pdf-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.pdf-status{display:flex;gap:12px;align-items:center;margin-top:14px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:#f8fbfe}.pdf-status b{color:var(--blue);white-space:nowrap}.pdf-status span{color:var(--muted)}.pdf-sec{overflow:hidden}.verified-notice.verified{box-shadow:inset 4px 0 0 #138a5b}@media(max-width:600px){.pdf-actions{display:grid;grid-template-columns:1fr}.pdf-actions button{width:100%}.pdf-status{display:block}.pdf-status span{display:block;margin-top:5px}}

/* 2.8 physical QC + award editor + deployment checklist */
.award-grid,.qc-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;margin-top:16px}.award-form,.qc-form,.qc-status-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:#fbfdff}.award-actions{display:flex;gap:8px;flex-wrap:wrap}.small-note{font-size:12px;line-height:1.5}.award-preview{display:grid;place-items:center}.award-preview-paper{width:min(100%,360px);aspect-ratio:210/297;background:#fff;border:6px double #1769e0;border-radius:8px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;gap:10px}.award-preview-paper img{width:68px;height:68px;object-fit:contain;display:none}.award-preview-paper img.show{display:block}.award-preview-paper small{font-weight:800;color:var(--muted)}.award-preview-paper strong{font-size:42px;letter-spacing:.28em;margin-left:.28em}.award-preview-paper span{font-size:18px;font-weight:800;color:var(--blue)}.award-preview-paper p{color:var(--muted);line-height:1.6}.award-preview-paper em{font-style:normal;font-weight:900;border-top:1px solid var(--line);padding-top:12px;width:75%}.qc-progress{background:var(--sky);color:var(--blue);font-weight:900;border-radius:999px;padding:9px 13px;white-space:nowrap}.physical-badge{border-radius:16px;padding:16px;text-align:center;font-size:22px;font-weight:900;border:2px solid #ccd9e5;background:#f3f6f9;color:#738397}.physical-badge.done{background:#e9f8ef;border-color:#79c69e;color:#0f6d47}.physical-badge.review{background:#fff7e6;border-color:#f0c05a;color:#8a5a00}.qc-checks{display:grid;gap:8px;margin:15px 0}.qc-check{display:flex;gap:8px;align-items:flex-start;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.qc-check i{font-style:normal;font-weight:900}.qc-check.pass{border-color:#9bd4b7;background:#f1fbf5}.qc-check.pass i{color:#138a5b}.qc-check.fail{border-color:#f1b1b1;background:#fff6f6}.qc-check.fail i{color:var(--bad)}.deploy-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.deploy-steps div{border:1px solid var(--line);border-radius:15px;padding:14px;background:#fbfdff;display:flex;gap:10px;align-items:flex-start}.deploy-steps b{width:28px;height:28px;display:grid;place-items:center;background:var(--blue);color:#fff;border-radius:50%;flex:0 0 auto}.deploy-steps span{line-height:1.45}.deploy-checklist{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.deploy-checklist label{border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff;margin:0;display:flex;gap:9px;align-items:flex-start}.deploy-checklist input{width:auto;margin:3px 0 0}.deploy-note{margin-top:15px;padding:13px 15px;border-radius:14px;background:#fff7e6;border:1px solid #f0c05a;display:flex;gap:10px}.deploy-note b{color:#8a5a00;white-space:nowrap}.deploy-note span{color:#6c5b34;line-height:1.5}.plane .verify-dot.physical{background:#8b5cf6}.qc-disabled{opacity:.48;pointer-events:none}
@media(max-width:800px){.award-grid,.qc-grid{grid-template-columns:1fr}.deploy-steps{grid-template-columns:1fr 1fr}.deploy-checklist{grid-template-columns:1fr}}
@media(max-width:520px){.deploy-steps{grid-template-columns:1fr}.award-preview-paper strong{font-size:34px}.qc-progress{margin-top:10px;display:inline-block}}

/* 2.10 professional blueprint book + event print center */
.book-status-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:14px 0}.book-status{border:1px solid var(--line);border-radius:14px;padding:11px;background:#fbfdff}.book-status b,.book-status span,.book-status small{display:block}.book-status span{margin-top:4px;color:var(--muted);font-size:12px}.book-status small{margin-top:6px;font-weight:800}.book-status.done{border-color:#8ed0ac;background:#f0fbf5}.book-status.done small{color:#0f6d47}.book-status.review{border-color:#f0c05a;background:#fff9eb}.book-status.review small{color:#8a5a00}.event-doc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.event-doc-grid article{border:1px solid var(--line);border-radius:16px;padding:15px;background:#fbfdff;display:flex;flex-direction:column;gap:9px}.event-doc-grid article>b{font-size:18px}.event-doc-grid article>span{color:var(--muted);font-size:13px;line-height:1.45;min-height:38px}.event-doc-grid article button{margin-top:auto}.deploy-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-weight:800;color:var(--ink);background:#fff}.button-link.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.deploy-steps{grid-template-columns:repeat(5,1fr)}@media(max-width:900px){.book-status-grid{grid-template-columns:repeat(2,1fr)}.event-doc-grid{grid-template-columns:1fr 1fr}.deploy-steps{grid-template-columns:1fr 1fr}}@media(max-width:520px){.book-status-grid,.event-doc-grid,.deploy-steps{grid-template-columns:1fr}.deploy-actions{display:grid}.button-link{width:100%}}

/* 2.10 first physical validation */
.first-qc-card{margin:16px 0 18px;padding:17px;border:2px solid #7bb6ff;border-radius:20px;background:linear-gradient(135deg,#f6fbff,#fff)}.first-qc-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.first-qc-kicker{display:inline-block;font-size:12px;font-weight:900;color:#1769e0;background:#eaf4ff;border-radius:999px;padding:5px 9px}.first-qc-head h3{margin:8px 0 4px;font-size:23px}.first-qc-head p{margin:0;color:var(--muted);line-height:1.5}.first-qc-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:14px 0}.first-qc-step{border:1px solid var(--line);border-radius:13px;background:#fff;padding:11px;min-height:98px}.first-qc-step i{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#edf2f7;color:#607187;font-style:normal;font-weight:900;margin-bottom:7px}.first-qc-step.pass{border-color:#84c9a5;background:#f1fbf5}.first-qc-step.pass i{background:#138a5b;color:#fff}.first-qc-step b,.first-qc-step small{display:block}.first-qc-step small{margin-top:4px;color:var(--muted);line-height:1.35}.deploy-screen-hint{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:13px 15px;border:1px solid #9ec5f4;background:#f3f9ff;border-radius:14px;margin-bottom:14px}.deploy-screen-hint code{font-weight:900;color:#1769e0}.deploy-screen-hint span{color:#52677e}@media(max-width:900px){.first-qc-steps{grid-template-columns:1fr 1fr}}@media(max-width:520px){.first-qc-head{display:block}.first-qc-steps{grid-template-columns:1fr}}
