:root{--color-page:#fafafa;--color-surface:#fff;--color-surface-muted:#f4f4f5;--color-surface-hover:#f8fafc;--color-text:#09090b;--color-muted:#71717a;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-accent:#2563eb;--color-accent-muted:#eff6ff;--color-success:#15803d;--color-success-muted:#f0fdf4;--color-warning:#a16207;--color-warning-muted:#fefce8;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--radius-sm:4px;--radius-md:6px;--font-body:"Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.45rem;--container:1120px;--placement-cell-size:24px;--placement-cell-gap:0px;--placement-section-border-size:2px;--color-placement-board:#17222b;--color-placement-cell:#1d2a33;--color-placement-grid:#ffffff14;--color-placement-section:#e5e7eb61;--color-placement-label:#e2e8f094;--color-placement-selected:#263a48;--color-placement-selected-strong:#8ec5ff;--color-placement-placed:#b87537;--color-placement-placed-text:#fff;color:var(--color-text);background:var(--color-page);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}body{background:var(--color-page);min-width:320px;margin:0}button,input,select{font:inherit}button,select,input[type=checkbox]{cursor:pointer}.shell{width:min(var(--container), calc(100% - var(--space-7)));padding:var(--space-5) 0 var(--space-7);margin:0 auto}.topBar{justify-content:space-between;align-items:flex-end;gap:var(--space-5);padding:var(--space-3) 0 var(--space-5);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4);display:flex}.topBar h1{margin:var(--space-1) 0 0;color:var(--color-text);font-size:var(--text-lg);letter-spacing:-.03em;word-break:keep-all;font-weight:700;line-height:1.25}.topBar>p{max-width:420px;color:var(--color-muted);font-size:var(--text-sm);text-align:right;margin:0;line-height:1.55}.eyebrow{letter-spacing:.04em;margin:0;font-weight:600;color:var(--color-muted)!important;font-size:var(--text-xs)!important}.panel{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);background:var(--color-surface)}.searchPanel{gap:var(--space-2);display:grid}.searchControls,.profileControl,.snapshot,.importedList,.tagList,.placementList{align-items:center;display:flex}.searchControls,.profileControl{gap:var(--space-2);flex-wrap:wrap}label{color:var(--color-text);font-size:var(--text-sm);white-space:nowrap;font-weight:600}input:not([type=checkbox]),select{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);min-height:40px;padding:0 var(--space-3);color:var(--color-text);background:var(--color-surface);outline:none}input:not([type=checkbox]){flex:280px;min-width:min(360px,100%)}select{min-width:180px}input:not([type=checkbox]):focus,select:focus,button:focus-visible,input[type=checkbox]:focus-visible{border-color:var(--color-accent);outline:2px solid var(--color-accent-muted);outline-offset:1px}input::placeholder{color:var(--color-muted)}button{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--color-accent);border-radius:var(--radius-sm);min-height:40px;padding:0 var(--space-4);color:var(--color-surface);background:var(--color-accent);font-weight:600;transition:background-color .12s,border-color .12s;display:inline-flex}button:hover{border-color:var(--color-text);background:var(--color-text)}button:disabled{border-color:var(--color-border-strong);color:var(--color-muted);background:var(--color-surface-muted);cursor:not-allowed}.searchPanel p[role=status]{color:var(--color-muted);font-size:var(--text-sm);margin:0;line-height:1.5}.controls,.snapshot{gap:var(--space-3);flex-wrap:wrap}.snapshot{padding:var(--space-3) var(--space-4)}.snapshot strong,.snapshot span,.placementList span,.tagBadge{border-radius:var(--radius-sm);width:fit-content;font-size:var(--text-xs);align-items:center;font-weight:600;line-height:1;display:inline-flex}.snapshot strong,.snapshot span{min-height:28px;padding:0 var(--space-2);border:1px solid var(--color-border);color:var(--color-muted);background:var(--color-page)}.snapshot strong{color:var(--color-success);background:var(--color-success-muted)}.importedPanel h2{margin:0 0 var(--space-2);color:var(--color-text);font-size:var(--text-md);letter-spacing:-.015em;font-weight:700}.importedList{gap:var(--space-1);flex-wrap:wrap}.tablePanel{padding:0;overflow-x:auto}table{border-spacing:0;border-collapse:separate;background:var(--color-surface);width:100%;min-width:820px}th,td{border-bottom:1px solid var(--color-border);height:40px;padding:var(--space-2) var(--space-3);text-align:left;vertical-align:middle;word-break:keep-all}th{color:var(--color-muted);background:var(--color-surface-muted);font-size:var(--text-xs);font-weight:600}td{color:var(--color-text);font-size:var(--text-sm);line-height:1.42}tbody tr:hover td{background:var(--color-surface-hover)}tbody tr:last-child td{border-bottom:0}td strong{color:var(--color-text);font-size:var(--text-sm);font-weight:600}input[type=checkbox]{appearance:none;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);place-content:center;width:18px;height:18px;margin:0;display:grid}input[type=checkbox]:before{background:var(--color-accent);content:"";border-radius:2px;width:10px;height:10px;transition:transform .1s ease-in-out;transform:scale(0)}input[type=checkbox]:checked{border-color:var(--color-accent);background:var(--color-accent-muted)}input[type=checkbox]:checked:before{transform:scale(1)}.targetInput{width:calc(var(--space-7) * 2);flex:initial!important;min-width:0!important}.tagList,.placementList{gap:var(--space-1);flex-wrap:wrap}.tagBadge{min-height:22px;padding:0 var(--space-2);border:1px solid var(--color-border);color:var(--color-warning);background:var(--color-warning-muted)}.placement h2{margin:0 0 var(--space-1);color:var(--color-text);font-size:var(--text-md);letter-spacing:-.015em;font-weight:700}.placement p{margin:0 0 var(--space-3);color:var(--color-muted);font-size:var(--text-sm);line-height:1.55}.placement .placementScore,.placement .placementBalance,.placement .placementSelectionCount{margin-bottom:var(--space-2);color:var(--color-text);font-weight:600}.placement .placementBalance{color:var(--color-muted)}.placement .placementBalanceExact{color:var(--color-success)}.placement .placementBalanceShort{color:var(--color-warning)}.placement .placementBalanceExtra{color:var(--color-accent)}.placement .placementBalanceMuted{color:var(--color-muted)}.placementToolbar{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.placementRegionToggle{align-items:center;gap:var(--space-2);margin-bottom:0;display:inline-flex}.placementResetButton{border-color:var(--color-border-strong);color:var(--color-text);background:var(--color-surface)}.placementResetButton:hover{border-color:var(--color-accent);color:var(--color-surface);background:var(--color-accent)}.placementMetrics{gap:var(--space-1);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.placementMetrics span{min-height:26px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-muted);background:var(--color-page);font-size:var(--text-xs);align-items:center;font-weight:600;line-height:1;display:inline-flex}.placementBoardViewport{width:fit-content;max-width:100%;margin-bottom:var(--space-3);overflow-x:auto}.placementBoardCanvas{width:fit-content;position:relative}.placementGrid{grid-template-columns:repeat(22, var(--placement-cell-size));grid-template-rows:repeat(20, var(--placement-cell-size));gap:var(--placement-cell-gap);width:fit-content;padding:var(--space-2);border-radius:var(--radius-md);background:var(--color-placement-board);border:1px solid #d6b46a;margin-bottom:0;display:grid;box-shadow:inset 0 0 28px #ffffff14,0 0 0 1px #0c121880}.placementBoardLabels{top:calc(var(--space-2) + 1px);left:calc(var(--space-2) + 1px);grid-template-columns:repeat(22, var(--placement-cell-size));grid-template-rows:repeat(20, var(--placement-cell-size));pointer-events:none;z-index:5;display:grid;position:absolute}.placementCell{width:var(--placement-cell-size);height:var(--placement-cell-size);min-height:var(--placement-cell-size);color:var(--color-muted);background:var(--color-placement-cell);box-shadow:inset 0 0 0 1px var(--color-placement-grid), inset 0 0 16px #ffffff06;font-size:var(--text-xs);text-align:center;touch-action:none;-webkit-user-select:none;user-select:none;border:0;border-radius:0;place-items:center;padding:0;font-weight:600;line-height:1.2;transition:background-color .12s,box-shadow .12s,color .12s;display:grid;position:relative;overflow:visible}.placementCell:hover{color:var(--color-text);box-shadow:inset 0 0 0 1px var(--color-border-strong);background:#263742}.placementCell:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.placementCellSelected{color:var(--color-placement-selected-strong);background:var(--color-placement-selected);box-shadow:inset 0 0 0 1px var(--color-placement-selected-strong)}.placementCellSelected:not(.placementCellPlaced):after{z-index:1;width:var(--space-2);height:var(--space-2);background:var(--color-placement-selected-strong);box-shadow:0 0 0 var(--space-1) var(--color-placement-selected);content:"";border-radius:50%;position:absolute}.placementCellPlaced{color:var(--color-placement-placed-text);background:var(--color-placement-placed);box-shadow:inset 0 0 0 1px #f6d28a,0 0 0 1px #78481c73}.placementCellDisabled{color:var(--color-muted);background:var(--color-page);cursor:not-allowed;opacity:.6}.placementCellDisabled:hover{color:var(--color-muted);background:var(--color-page)}.placementCellSectionEdgeTop{border-top:var(--placement-section-border-size) solid var(--color-placement-section)}.placementCellSectionEdgeRight{border-right:var(--placement-section-border-size) solid var(--color-placement-section)}.placementCellSectionEdgeBottom{border-bottom:var(--placement-section-border-size) solid var(--color-placement-section)}.placementCellSectionEdgeLeft{border-left:var(--placement-section-border-size) solid var(--color-placement-section)}.placementSectionLabel{z-index:2;width:max-content;padding:0 var(--space-1);border-radius:var(--radius-sm);color:#f1f5f9db;font-size:var(--text-xs);letter-spacing:0;opacity:.96;pointer-events:none;text-align:center;text-shadow:0 1px 4px #000000d9;white-space:nowrap;background:#0f171f80;border:1px solid #e2e8f033;place-self:center;font-weight:700;line-height:1.45;box-shadow:0 0 10px #ffffff1f}.placementBlockLabel{z-index:3;color:var(--color-placement-placed-text);font-weight:700;position:relative}.placementList span{min-height:26px;padding:0 var(--space-2);border:1px solid var(--color-border);color:var(--color-muted);background:var(--color-page)}.macroRouteLink,.macroPrimaryLink,.macroSecondaryLink,.macroDownloadButton{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);min-height:38px;padding:0 var(--space-3);font-size:var(--text-sm);white-space:nowrap;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.macroRouteLink{border:1px solid var(--color-border-strong);color:var(--color-text);background:var(--color-surface)}.macroRouteLink:hover,.macroSecondaryLink:hover{border-color:var(--color-accent);color:var(--color-surface);background:var(--color-accent)}.macroStage{--macro-stage:#111827;--macro-stage-muted:#334155;--macro-accent:#c2410c;--macro-accent-soft:#fff7ed;--macro-verify:#166534;--macro-verify-soft:#f0fdf4}.macroHero{gap:var(--space-7);padding:var(--space-6) 0;border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4);grid-template-columns:minmax(0,1.15fr) minmax(300px,420px);align-items:center;display:grid}.macroHeroCopy h1{max-width:720px;margin:var(--space-1) 0 var(--space-3);color:var(--macro-stage);letter-spacing:0;word-break:keep-all;font-size:2.25rem;font-weight:800;line-height:1.12}.macroHeroCopy>p{max-width:680px;color:var(--macro-stage-muted);font-size:var(--text-md);word-break:keep-all;margin:0;line-height:1.7}.macroHeroActions{gap:var(--space-2);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.macroPrimaryLink{border:1px solid var(--macro-accent);color:var(--color-surface);background:var(--macro-accent)}.macroPrimaryLink:hover{border-color:var(--color-text);background:var(--color-text)}.macroSecondaryLink{border:1px solid var(--color-border-strong);color:var(--color-text);background:var(--color-surface)}.macroDownloadButton{border:1px solid var(--macro-accent);min-height:46px;padding:0 var(--space-5);color:var(--color-surface);background:var(--macro-accent)}.macroDownloadButton:hover{border-color:var(--color-text);background:var(--color-text)}.macroSignal{border-radius:var(--radius-md);min-height:260px;padding:var(--space-5);color:#e5e7eb;background:#101820;border:1px solid #1f2937;box-shadow:inset 0 0 28px #ffffff0a}.macroSignalHeader{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);color:#f8fafc;font-weight:800;display:flex}.macroSignalTrack{background:#0f172ad1;border:1px solid #e2e8f038;border-radius:999px;height:14px;overflow:hidden}.macroSignalTrack span{background:#f97316;height:100%;display:block}.macroSignalRows{gap:var(--space-3) var(--space-4);margin-top:var(--space-6);color:#cbd5e1;font-size:var(--text-sm);grid-template-columns:1fr auto;display:grid}.macroSignalRows strong{color:#bbf7d0;font-size:var(--text-xs);text-transform:uppercase}.macroSummary{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.macroSummary div{border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:88px;padding:var(--space-4);background:var(--color-surface)}.macroSummary span,.scoreRows span,.macroTimeline span{color:var(--color-muted);font-size:var(--text-xs);font-weight:700}.macroSummary strong{margin-top:var(--space-2);color:var(--macro-stage);font-size:var(--text-md);word-break:keep-all;line-height:1.35;display:block}.macroGrid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.macroInfoPanel{gap:var(--space-3);flex-direction:column;margin-bottom:0;display:flex}.macroPanelTitle{align-items:center;gap:var(--space-2);color:var(--macro-accent);display:flex}.macroPanelTitle h2{color:var(--color-text);font-size:var(--text-md);letter-spacing:0;margin:0;font-weight:800}.macroInfoPanel p{color:var(--macro-stage-muted);font-size:var(--text-sm);word-break:keep-all;margin:0;line-height:1.65}.macroChecklist{gap:var(--space-2);padding-left:var(--space-5);color:var(--color-text);font-size:var(--text-sm);margin:0;line-height:1.55;display:grid}.scoreRows{gap:var(--space-2);display:grid}.scoreRows div{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--space-3);min-height:42px;display:flex}.scoreRows div:last-child{border-bottom:0}.scoreRows strong{color:var(--macro-accent);font-size:var(--text-md)}.macroTimeline{gap:var(--space-3);margin:0;padding-left:0;list-style:none;display:grid}.macroTimeline li{gap:var(--space-3);grid-template-columns:72px 1fr;align-items:start;display:grid}.macroTimeline strong{color:var(--macro-verify);font-size:var(--text-sm)}.macroNotice{border-left:3px solid var(--macro-verify);padding-left:var(--space-3);color:var(--macro-verify);font-size:var(--text-sm);font-weight:700;line-height:1.55}.macroInstallHero{justify-content:space-between;align-items:flex-end;gap:var(--space-5);padding:var(--space-6) 0;border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4);display:flex}.macroInstallHero h1{max-width:720px;margin:var(--space-1) 0 var(--space-3);color:var(--macro-stage);letter-spacing:0;word-break:keep-all;font-size:2rem;font-weight:800;line-height:1.15}.macroInstallHero p:last-child{max-width:720px;color:var(--macro-stage-muted);font-size:var(--text-md);word-break:keep-all;margin:0;line-height:1.7}.macroInstallLayout{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);display:grid}.macroInstallPanel{gap:var(--space-3);flex-direction:column;margin-bottom:0;display:flex}.macroInstallPanel p{color:var(--macro-stage-muted);font-size:var(--text-sm);word-break:keep-all;margin:0;line-height:1.65}.macroInstallWide{grid-column:1/-1}.macroFileCard{gap:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-surface-muted);display:grid}.macroFileCard strong{color:var(--macro-stage);font-size:var(--text-md);overflow-wrap:anywhere;line-height:1.35}.macroFileCard span{color:var(--color-muted);font-size:var(--text-sm)}.macroFileMeta{gap:var(--space-2);margin:0;display:grid}.macroFileMeta div{gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);grid-template-columns:96px minmax(0,1fr);align-items:start;display:grid}.macroFileMeta div:last-child{border-bottom:0;padding-bottom:0}.macroFileMeta dt{color:var(--color-muted);font-size:var(--text-xs);font-weight:700}.macroFileMeta dd{color:var(--color-text);font-size:var(--text-sm);overflow-wrap:anywhere;margin:0;line-height:1.45}.macroInstallSteps{gap:var(--space-3);margin:0;padding-left:0;list-style:none;display:grid}.macroInstallSteps li{gap:var(--space-3);grid-template-columns:72px 1fr;display:grid}.macroInstallSteps strong{color:var(--macro-accent);font-size:var(--text-sm)}.macroInstallSteps span{color:var(--macro-stage-muted);font-size:var(--text-sm);word-break:keep-all;line-height:1.55}.macroBackLink{width:fit-content}@media (width<=860px){.macroHero,.macroSummary,.macroGrid,.macroInstallLayout{grid-template-columns:1fr}.macroHero{gap:var(--space-4)}.macroHeroCopy h1{font-size:1.85rem}.macroInstallHero{align-items:stretch;gap:var(--space-4);flex-direction:column}.macroDownloadButton{width:fit-content}}@media (width<=720px){.shell{width:min(100% - var(--space-4), var(--container));padding:var(--space-3) 0 var(--space-6)}.topBar{display:block}.topBar>p{max-width:none;margin-top:var(--space-2);text-align:left}.macroRouteLink{width:fit-content;margin-top:var(--space-3)}.macroHeroActions a,.macroDownloadButton,.macroBackLink{width:100%}.searchControls,.profileControl,.snapshot{align-items:stretch}input:not([type=checkbox]),select,button{width:100%;min-width:0}}
