*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #4F6EF7;--primary-dark: #3A57E8;--primary-light: #EEF1FE;--secondary: #10B981;--warning: #F59E0B;--danger: #EF4444;--info: #3B82F6;--bg-page: #F5F7FB;--bg-card: #FFFFFF;--bg-sidebar: #1E2235;--text-primary: #111827;--text-secondary: #6B7280;--text-muted: #9CA3AF;--text-on-dark: #F3F4F6;--border: #E5E7EB;--border-focus: #4F6EF7;--sidebar-width: 240px;--header-height: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.1);--shadow-lg: 0 8px 32px rgba(0,0,0,.12);--transition: .18s ease}body{font-family:Pretendard,Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.6;color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font:inherit}input,textarea,select{font:inherit;outline:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;transition:border-color var(--transition)}input:focus,textarea:focus,select:focus{border-color:var(--border-focus)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;transition:all var(--transition)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{border:1.5px solid var(--border);color:var(--text-primary)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:5px 14px;font-size:13px}.btn-lg{padding:13px 28px;font-size:15px}.btn:disabled{opacity:.5;pointer-events:none}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:24px}.ap-radar .recharts-surface{overflow:visible}.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:500}.badge-blue{background:#dbeafe;color:#1d4ed8}.badge-green{background:#d1fae5;color:#065f46}.badge-amber{background:#fef3c7;color:#92400e}.badge-red{background:#fee2e2;color:#991b1b}.layout{display:flex;min-height:100vh}.layout__sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column;z-index:100}.layout__main{margin-left:var(--sidebar-width);flex:1;display:flex;flex-direction:column;min-height:100vh}.layout__header{height:var(--header-height);background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:50}.layout__content{flex:1;padding:28px}.layout__menu-btn,.layout__backdrop{display:none}@media (max-width: 900px){.layout__sidebar{transform:translate(-100%);transition:transform .2s ease;z-index:200;overflow-y:auto}.layout__sidebar.open{transform:none;box-shadow:var(--shadow-lg)}.layout__backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:150}.layout__main{margin-left:0;min-width:0}.layout__header{padding:0 16px;gap:10px;height:56px}.layout__menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:-8px;border-radius:var(--radius-md);font-size:20px;color:var(--text-primary)}.layout__menu-btn:hover{background:var(--bg-page)}.layout__content{padding:16px;min-width:0}}@media (max-width: 600px){.card{padding:16px}.grid-2,.grid-3{grid-template-columns:1fr!important;gap:14px!important}.r-grid-4{grid-template-columns:repeat(2,1fr)!important}.r-stack{grid-template-columns:1fr!important}.r-auto-h{height:auto!important}}@media (max-width: 1024px){.iv-topbar{padding:10px 12px!important;gap:8px}.iv-sub{display:none}.iv-stage{display:flex;flex-direction:column;gap:12px;padding:12px;overflow-y:auto!important;-webkit-overflow-scrolling:touch}.iv-stage>.iv-q,.iv-stage>.iv-fb,.iv-stage>.iv-timer,.iv-stage>.iv-cam,.iv-stage>.iv-actions,.iv-stage>.lv-panel{position:relative!important;inset:auto!important;transform:none!important;animation:none!important;width:100%!important;max-width:none!important;height:auto!important;z-index:1!important}.iv-ai{display:none!important}.iv-stage>.iv-timer{order:0;align-self:flex-end;width:auto!important}.iv-timer>div{padding:6px 12px!important;display:flex;gap:12px;align-items:baseline}.iv-timer-ring>div{flex-direction:row!important;gap:10px!important}.iv-timer-ring svg{width:56px;height:56px}.iv-result{padding:20px 16px!important}.iv-q{order:1}.iv-qtext{font-size:16px!important;padding:12px 14px!important}.iv-fb{order:2}.iv-fbcard{padding:18px!important}.iv-actions{order:3}.iv-cam{order:4;aspect-ratio:4 / 3;max-height:36vh}.iv-stage>.iv-cam{width:auto!important;align-self:center}.iv-stage>.lv-panel{order:5;margin-bottom:8px}.iv-actions button{max-width:100%}.iv-log.open{position:fixed;top:0;right:0;bottom:0;width:min(86vw,300px)!important;z-index:550;box-shadow:var(--shadow-lg)}.iv-log .pi-log-inner,.iv-log .ri-log-inner{width:100%!important}}.sidebar__logo{padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar__logo h1{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.2px}.sidebar__logo span{color:var(--primary)}.sidebar__nav{flex:1;padding:16px 12px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);color:#fff9;font-size:14px;margin-bottom:4px;transition:all var(--transition)}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:var(--primary);color:#fff}.nav-item .icon{font-size:16px;width:20px;text-align:center}.score-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.score-ring__value{position:absolute;font-size:24px;font-weight:700;color:var(--text-primary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.w-full{width:100%}.text-sm{font-size:13px}.text-muted{color:var(--text-secondary)}.text-center{text-align:center}.font-bold{font-weight:600}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}.page-loader{display:flex;align-items:center;justify-content:center;height:100vh}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
