*{box-sizing:border-box}body{color:#1f2933;-webkit-font-smoothing:antialiased;background:#f4f6f9;min-height:100vh;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,sans-serif}#root{min-height:100vh}.app{max-width:720px;margin:0 auto;padding:40px 20px 60px}.app-header{text-align:center;margin-bottom:28px}.app-header h1{letter-spacing:-.02em;color:#111827;margin:0 0 8px;font-size:26px;font-weight:800}.app-header .subtitle{color:#6b7280;margin:0;font-size:15px}.app-main{flex-direction:column;gap:18px;display:flex}.panel{background:#fff;border:1px solid #e5e9f0;border-radius:16px;padding:24px;box-shadow:0 1px 3px #1018280a,0 1px 2px #1018280f}.panel h2{color:#111827;margin:0 0 16px;font-size:18px;font-weight:700}.btn{color:#344054;cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:10px;padding:11px 18px;font-size:14px;font-weight:600;transition:all .15s;display:inline-block}.btn:hover:not(:disabled){background:#f9fafb;border-color:#98a2b3}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background:#16a34a;border-color:#16a34a;box-shadow:0 1px 2px #16a34a33}.btn-primary:hover:not(:disabled){background:#15803d;border-color:#15803d}.btn-secondary{background:#fff}.btn-sm{padding:7px 13px;font-size:13px}.btn-large{border-radius:12px;width:100%;padding:16px 24px;font-size:17px;font-weight:700}.icon{vertical-align:middle;flex-shrink:0}.success{color:#16a34a;align-items:center;gap:6px;font-weight:600;display:inline-flex}.error{color:#b42318;background:#fef3f2;border:1px solid #fda29b;border-radius:10px;align-items:flex-start;gap:8px;margin-top:12px;padding:12px 14px;font-size:14px;display:flex}.error .icon{color:#f04438;margin-top:1px}.warning{color:#b54708;background:#fffaeb;border:1px solid #fedf89;border-radius:10px;align-items:center;gap:8px;margin-top:16px;padding:11px 14px;font-size:14px;display:flex}.warning .icon{color:#f79009}.hint{color:#6b7280;margin-top:10px;font-size:13px}.hint-center{text-align:center}.success-panel{color:#027a48;background:#ecfdf3;border:1px solid #a6f4c5;border-radius:10px;align-items:center;gap:10px;margin-top:16px;padding:16px;font-size:15px;font-weight:600;line-height:1.5;display:flex}.success-panel .icon{color:#16a34a}.bootfail{background:#fffaeb;border:1px solid #fedf89;border-radius:12px;margin-top:16px;padding:16px 18px}.bootfail-title{color:#b54708;align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.bootfail-title .icon{color:#f79009;flex-shrink:0}.bootfail-desc{color:#b54708;margin:10px 0 6px;font-size:14px}.bootfail-steps{color:#7a4a08;margin:0 0 10px;padding-left:22px;font-size:14px;line-height:1.75}.bootfail-steps li{margin:4px 0}.bootfail-steps b{color:#92400e;font-weight:700}.bootfail-hint{color:#8a6d3b;margin:8px 0 14px;font-size:13px;line-height:1.6}.bootfail-hint b{color:#92400e}.fw-status{background:#f8fafc;border:1px solid #e5e9f0;border-radius:10px;align-items:center;margin-bottom:16px;padding:12px 14px;font-size:14px;display:flex}.fw-status-ready{color:#027a48;align-items:center;gap:7px;font-weight:600;display:inline-flex}.fw-status-ready .icon{color:#16a34a}.fw-status-ready b{color:#027a48;font-weight:700}.fw-status-loading{color:#6b7280}.fw-status-error{color:#b42318;align-items:center;gap:7px;font-weight:600;display:inline-flex}.fw-status-error .icon{color:#f04438}.fw-safe-note{text-align:center;color:#667085;margin:14px 0 0;font-size:13px}.fw-manual-link{text-align:center;color:#98a2b3;cursor:pointer;margin-top:14px;font-size:12.5px;display:block}.fw-manual-link:hover span:first-child{color:#667085;text-decoration:underline}.fw-manual-current{color:#b0b7c3;margin-top:4px;font-family:ui-monospace,Consolas,monospace;font-size:11.5px;display:block}.connected-guide{color:#027a48;background:#ecfdf3;border:1px solid #a6f4c5;border-radius:10px;margin:12px 0 16px;padding:12px 14px;font-size:14px;line-height:1.6}.connected-guide b{font-weight:700}.progress-list{flex-direction:column;gap:14px;margin-top:20px;display:flex}.progress-item{font-size:13px}.progress-header{align-items:center;gap:10px;margin-bottom:6px;display:flex}.progress-label{color:#475467;flex:1;font-size:13px;font-weight:500}.progress-bar-wrapper{background:#eef1f5;border:1px solid #e5e9f0;border-radius:6px;height:10px;overflow:hidden}.progress-bar{background:linear-gradient(90deg,#16a34a,#22c55e);height:100%;transition:width .2s}.progress-text{color:#6b7280;margin-top:5px;font-family:ui-monospace,monospace;font-size:12px}.log-area{background:#f8fafc;border:1px solid #e5e9f0;border-radius:10px;margin-top:16px;overflow:hidden}.log-header{color:#667085;background:#f2f4f7;border-bottom:1px solid #e5e9f0;padding:8px 12px;font-size:12px;font-weight:600}.log-content{max-height:200px;padding:10px 12px;font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.5;overflow-y:auto}.log-line{color:#475467;word-break:break-all;gap:10px;padding:2px 0;display:flex}.log-time{color:#98a2b3;flex-shrink:0}.boot-guide{background:#f8fafc;border:1px solid #e5e9f0;border-radius:12px;margin-bottom:18px;padding:16px 18px}.boot-guide-title{color:#111827;margin-bottom:10px;font-size:15px;font-weight:700}.boot-steps{color:#344054;margin:0 0 14px;padding-left:22px;font-size:14px;line-height:1.75}.boot-steps li{margin:5px 0}.boot-steps b{color:#111827;font-weight:700}.boot-warning{color:#b54708;background:#fffaeb;border:1px solid #fedf89;border-radius:10px;align-items:flex-start;gap:8px;padding:11px 14px;font-size:13px;line-height:1.6;display:flex}.boot-warning .icon{color:#f79009;margin-top:2px}.boot-warning b{color:#b54708}.boot-video-link,.boot-video-placeholder{align-items:center;gap:6px;margin-top:12px;font-size:13px;display:inline-flex}.boot-video-link{color:#2563eb;font-weight:600;text-decoration:none}.boot-video-link:hover{text-decoration:underline}.boot-video-placeholder{color:#98a2b3}.device-tabs{background:#eceff3;border-radius:12px;gap:6px;margin-bottom:18px;padding:5px;display:flex}.device-tab{color:#667085;cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.device-tab:hover{color:#344054}.device-tab.active{color:#16a34a;background:#fff;box-shadow:0 1px 3px #1018281a}.modal-overlay{z-index:1000;background:#10182873;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{text-align:center;background:#fff;border-radius:18px;width:calc(100% - 40px);max-width:440px;padding:32px 28px;animation:.25s cubic-bezier(.34,1.56,.64,1) popIn;box-shadow:0 20px 60px #10182840}.modal-icon{justify-content:center;margin-bottom:12px;display:flex}.modal-icon-success{color:#16a34a}.modal-icon-warning{color:#f79009}.modal-title{color:#027a48;letter-spacing:-.01em;margin:0 0 12px;font-size:22px;font-weight:800}.modal-filename{color:#98a2b3;word-break:break-all;margin:0 0 16px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.modal-reboot{color:#b54708;background:#fffaeb;border:1px solid #fedf89;border-radius:10px;margin:0 0 14px;padding:14px 16px;font-size:15px;line-height:1.6}.modal-reboot b{color:#b54708;font-weight:800}.modal-desc{color:#475467;margin:0 0 24px;font-size:14px;line-height:1.6}.modal-content .btn{min-width:120px}.modal-confirm{max-width:480px}.modal-title-confirm{color:#b54708;letter-spacing:-.01em;margin:0 0 14px;font-size:20px;font-weight:800}.confirm-summary{text-align:left;background:#f8fafc;border:1px solid #e5e9f0;border-radius:10px;margin:18px 0;padding:14px 16px}.confirm-row{justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.confirm-row+.confirm-row{border-top:1px solid #e5e9f0}.confirm-label{color:#667085;font-size:13px}.confirm-value{color:#111827;font-size:14px;font-weight:700}.confirm-filename{text-align:right;word-break:break-all;font-family:ui-monospace,Consolas,monospace;font-size:12px}.confirm-mismatch{color:#b42318;background:#fef3f2;border:1px solid #fda29b;border-radius:10px;align-items:flex-start;gap:8px;margin-bottom:14px;padding:10px 12px;font-size:13px;line-height:1.5;display:flex}.confirm-mismatch .icon{color:#f04438;margin-top:1px}.confirm-mismatch b{color:#b42318}.modal-buttons{justify-content:center;gap:10px;margin-top:20px;display:flex}.btn-danger{color:#fff;background:#d92d20;border:0}.btn-danger:hover{background:#b42318}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.92)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}.app-footer{text-align:center;color:#98a2b3;margin-top:40px;font-size:12px}
