:root{--bg: #040a14;--bg-soft: #081425;--panel: rgba(12, 25, 44, .78);--panel-strong: rgba(10, 20, 35, .9);--text: #e6edf8;--muted: #9bb0cc;--danger: #fecdd3;--ok: #86efac;--border: rgba(166, 189, 226, .26);--accent: #19a27a;--accent-2: #3b82f6;--shadow: 0 16px 40px rgba(2, 10, 20, .45);--radius: 14px}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,Avenir Next,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(950px 520px at 8% -5%,#2a52b23d,#0000 44%),radial-gradient(860px 470px at 96% -8%,#0e6d583d,#0000 42%),linear-gradient(180deg,var(--bg) 0%,var(--bg-soft) 100%);min-height:100vh}.app-shell{width:min(1020px,100%);max-width:1020px;margin:0 auto;padding:22px 16px 40px}.hero{margin-bottom:16px;border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);padding:16px 18px;text-align:center;background:linear-gradient(125deg,#182b4ebf,#0f37318c);box-shadow:var(--shadow)}h1,h2{margin:0 0 12px;letter-spacing:.01em}h1{margin-bottom:8px;font-size:clamp(1.65rem,4vw,2.4rem);display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:10px;line-height:1.15}.title-icon{width:1.05em;height:1.05em;flex:0 0 auto}.hero p{margin:0;color:#c5d6ef}.flash-counter-badge{display:inline-flex;align-items:stretch;overflow:hidden;max-width:100%;border-radius:8px;border:1px solid rgba(157,175,196,.38);box-shadow:0 4px 18px #02081159;font-size:.92rem;font-weight:700}.hero-badges{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.flash-counter-badge-label,.flash-counter-badge-value{padding:4px 10px;line-height:1.25}.flash-counter-badge-label{color:#e3ebf7;background:linear-gradient(180deg,#4a5565,#3c4655)}.flash-counter-badge-value{color:#f2fbff;background:linear-gradient(180deg,#21a3cc,#1d7db0);border-left:1px solid rgba(15,28,45,.35);min-width:44px;text-align:center}.info-badge{display:inline-flex;align-items:stretch;overflow:hidden;max-width:100%;border-radius:8px;border:1px solid rgba(157,175,196,.38);box-shadow:0 4px 18px #02081159;text-decoration:none;font-size:.92rem;font-weight:700}.info-badge-label,.info-badge-value{padding:4px 10px;line-height:1.25}.info-badge-label{color:#e3ebf7;background:linear-gradient(180deg,#4a5565,#3c4655)}.info-badge-value{color:#eff9ff;background:linear-gradient(180deg,#4080d9,#3367b8);border-left:1px solid rgba(15,28,45,.35);min-width:0;overflow-wrap:anywhere}.info-badge:hover{filter:brightness(1.05)}.panel{min-width:0;border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);padding:14px;margin-bottom:16px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.panel h2{font-size:1.04rem}.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}button,select,input[type=file],input[type=text]{width:100%;padding:10px;border-radius:10px;border:1px solid var(--border);color:var(--text);background:#091222cc;font-family:inherit;font-size:inherit}select,input[type=file],input[type=text]{transition:border-color .14s ease,box-shadow .14s ease}select:focus-visible,input[type=file]:focus-visible,input[type=text]:focus-visible,button:focus-visible{outline:none;border-color:#6aa9ffcc;box-shadow:0 0 0 3px #3b82f63d}button{cursor:pointer;background:linear-gradient(180deg,#1ba579,#167e60);color:#fff;border:1px solid rgba(118,242,198,.35);font-weight:700;transition:transform .12s ease,filter .12s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed}.preview{margin-top:12px;width:100%;image-rendering:pixelated;border-radius:10px;border:1px solid var(--border);background:#000}.file-info{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#19a27a26;border:1px solid rgba(25,162,122,.3);border-radius:8px;margin-bottom:12px;font-size:.9rem}.file-icon{flex-shrink:0;font-size:1.2rem}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ok);font-weight:600}.inline-check{display:flex;align-items:center;gap:10px;margin-bottom:12px}.inline-check input{width:auto}.operation-status{margin-bottom:8px;padding:8px 12px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:8px;color:#93c5fd;font-weight:600;font-size:.9rem;text-align:center}.error,.success{border-radius:10px;padding:10px;margin-bottom:10px}.error{border:1px solid rgba(251,113,133,.45);color:var(--danger);background:#7f1d1d3d}.success{border:1px solid rgba(74,222,128,.35);color:var(--ok);background:#14532d40}.simulation-success{background:#14532d40;border:1px solid rgba(74,222,128,.35);border-radius:10px;padding:16px;margin-bottom:12px}.simulation-success h3{margin:0 0 8px;color:var(--ok);font-size:1.1rem}.simulation-success p{margin:4px 0}.flash-complete{background:#14532d40;border:1px solid rgba(74,222,128,.35);border-radius:10px;padding:16px;margin-bottom:12px}.flash-complete h3{margin:0 0 12px;color:var(--ok);font-size:1.1rem}.flash-complete p{margin:8px 0}.flash-complete ol{margin:8px 0;padding-left:24px}.flash-complete li{margin:4px 0;line-height:1.5}.log-box{max-height:260px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:var(--panel-strong);border-radius:10px;border:1px solid var(--border);padding:10px}.log-entry{padding:4px 0;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.85rem;line-height:1.5}.log-timestamp{opacity:.6;margin-right:8px;font-size:.8rem}.log-message{word-wrap:break-word}.log-error{color:var(--danger);font-weight:600}.log-success{color:var(--ok);font-weight:600}.log-warn{color:#fbbf24;font-weight:600}.log-info{color:#c1ebde}.muted{color:var(--muted)}progress{width:100%;margin-bottom:10px;height:10px}progress::-webkit-progress-bar{background:#54698c59;border-radius:999px}progress::-webkit-progress-value{background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:999px}progress::-moz-progress-bar{background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:999px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--panel-strong);border:2px solid var(--border);border-radius:calc(var(--radius) + 4px);padding:28px;max-width:480px;width:100%;box-shadow:0 20px 60px #0009;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-content h2{margin-top:0;color:var(--danger)}.modal-content p{line-height:1.6;margin:8px 0}.modal-instruction{font-weight:700;margin-top:16px;margin-bottom:12px}.modal-instruction code{background:#ffffff1a;padding:2px 8px;border-radius:4px;font-family:monospace;color:var(--danger);font-weight:700}.modal-input{width:100%;padding:12px;margin-bottom:20px;font-size:1.1rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.1em}.modal-actions{display:flex;gap:12px}.modal-actions button{flex:1}.button-secondary{background:linear-gradient(180deg,#4a5565,#3c4655)!important;border-color:#9dafc461!important}.button-danger{background:linear-gradient(180deg,#dc2626,#b91c1c)!important;border-color:#fb718573!important}.device-blocker{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:20px;z-index:9999}.device-blocker-content{max-width:500px;text-align:center;padding:40px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.device-blocker-content h1{color:var(--danger);margin-bottom:20px;font-size:1.8rem}.device-blocker-content p{margin:12px 0;line-height:1.6}.device-blocker-content ul{text-align:left;margin:16px auto;display:inline-block;line-height:1.8}.device-blocker-content li{margin:8px 0}.download-button{display:inline-block;margin-top:20px;padding:12px 24px;background:linear-gradient(180deg,#1ba579,#167e60);color:#fff;text-decoration:none;border-radius:8px;font-weight:700;transition:filter .12s ease,transform .12s ease}.download-button:hover{filter:brightness(1.1);transform:translateY(-2px)}@media (max-width: 780px){.app-shell{padding-top:16px}.grid{grid-template-columns:1fr}.hero{padding:14px;text-align:left}.hero-badges,h1{justify-content:flex-start}.modal-content{padding:20px}.device-blocker-content{padding:30px 20px}}@media (max-width: 420px){.app-shell{padding:12px 10px 28px}.panel{padding:12px}.flash-counter-badge-label,.flash-counter-badge-value,.info-badge-label,.info-badge-value{padding:4px 8px;font-size:.86rem}.modal-content{padding:16px}.device-blocker-content{padding:24px 16px}.device-blocker-content h1{font-size:1.5rem}}
