@import "https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Fira+Sans:wght@300;400;500;600;700&display=swap";:root{--accent:#e8a838;--accent-strong:#d4920a;--accent-dim:#e8a83826;--accent-glow:#e8a83840;--bg:#0e1117;--bg-raised:#161b22;--border:#262d38;--border-strong:#3d4654;--heading:#eceff4;--input:#1c2129;--label:#b8872e;--muted:#7d8590;--panel:#131820;--panel-soft:#111820;--surface:#1c2129;--text:#c9d1d9;--success:#56d364;--success-dim:#56d36414;--warning:#e8a838;--warning-dim:#e8a8381f;--error:#f85149;--error-dim:#f8514914;--mono:"Fira Code", "SF Mono", "Cascadia Code", monospace;--sans:"Fira Sans", -apple-system, BlinkMacSystemFont, sans-serif;font-family:var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}*{box-sizing:border-box}::selection{background:var(--accent-dim);color:var(--heading)}body{min-width:320px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.shell{background:linear-gradient(135deg, #e8a83814, transparent 32%), linear-gradient(180deg, #11151c 0%, var(--bg) 34%, #080b0e 100%);height:100svh;color:var(--text);flex-direction:column;display:flex;overflow:hidden}.import-band{border-bottom:1px solid var(--border);background:linear-gradient(90deg, #e8a8381a, transparent 38%), repeating-linear-gradient(90deg, #e8a83809 0 1px, transparent 1px 36px), var(--panel);flex-shrink:0;align-items:center;gap:clamp(24px,7vw,128px);padding:18px clamp(16px,3vw,32px);display:flex;box-shadow:0 18px 48px #0000002e}.import-left{flex-shrink:0;align-items:center;gap:12px;min-width:190px;display:flex}.mark{width:42px;height:42px;color:var(--heading);font:700 12px/1 var(--mono);background:linear-gradient(135deg, #d4920aeb, #e8a838b8), var(--accent-dim);border:1px solid #e8a838b3;border-radius:8px;place-items:center;display:grid;box-shadow:0 0 0 4px #e8a83814,0 14px 28px #00000047}.pane-head h2,.pane-head p{margin:0}.pane-head p{color:var(--muted);font-size:12px}.brand-text h1{color:var(--heading);letter-spacing:0;margin:0;font-size:18px;font-weight:700;line-height:1.2}.brand-text p{color:var(--muted);margin:2px 0 0;font-size:12px}.import-right{flex:1}.import-grid{flex-direction:column;gap:8px;display:flex}.import-row{align-items:center;gap:14px;display:flex}.import-textarea{box-sizing:border-box;resize:none;min-width:0;height:66px;min-height:66px;color:var(--heading);background:var(--input);font:11px/1.5 var(--mono);border:1px solid #e8a8382e;border-radius:8px;flex:1;padding:10px 12px;transition:border-color .18s,box-shadow .18s,background .18s;box-shadow:inset 0 1px #ffffff08}.import-textarea::placeholder,input::placeholder{color:#8bb7c09e}.import-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim), 0 0 28px #e8a83814;outline:none}.import-btn{border-color:var(--accent);color:#1a1200;background:linear-gradient(135deg, var(--accent), #f0b84a);flex-shrink:0;height:40px;padding:0 18px;font-size:12px;font-weight:700;box-shadow:0 10px 24px #e8a8382e}.import-btn:hover{background:linear-gradient(135deg, #f0b84a, var(--accent));border-color:#f0b84a}.import-status-row{align-items:center;gap:10px;margin-top:8px;display:flex}.inline-progress{flex:1;max-width:180px}.inline-error{color:var(--error,#e25555);font-size:11px}.field{gap:4px;min-width:0;display:grid}.field span{color:var(--label);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}textarea,input{box-sizing:border-box;border:1px solid var(--border);width:100%;color:var(--heading);background:var(--input);font:14px/1.45 var(--sans);border-radius:8px;transition:border-color .18s,box-shadow .18s,background .18s}textarea{resize:vertical;min-height:72px;font-family:var(--mono);padding:8px 10px;font-size:12px}input{height:34px;padding:0 10px}textarea:focus,input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}textarea:disabled,input:disabled{opacity:.55}.control-stack{align-content:start;gap:8px;display:grid}.button-row{flex-wrap:wrap;gap:6px;display:flex}button{border:1px solid var(--border-strong);color:var(--heading);background:var(--bg-raised);font:600 13px/1 var(--sans);cursor:pointer;border-radius:8px;transition:background .18s,border-color .18s,color .18s,box-shadow .18s,transform .1s}button:hover{border-color:var(--accent);background:var(--surface)}button:active{transform:scale(.97)}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,input:focus-visible,textarea:focus-visible{box-shadow:0 0 0 3px var(--accent-dim), 0 0 0 1px var(--accent);outline:none}.button-row button{height:34px;padding:0 14px}.button-row .primary{border-color:var(--accent);color:#1a1200;background:var(--accent);font-weight:700}.button-row .primary:hover{background:#f0b84a}.file-input{display:none}.status{border:1px solid var(--border);background:var(--bg-raised);border-radius:8px;gap:4px;padding:6px 10px;transition:border-color .2s,background .2s;display:grid}.status[hidden]{display:none}.status p{color:var(--muted);margin:0;font-size:12px}.status.loading{border-color:var(--accent);background:var(--accent-dim)}.status.error{border-color:var(--error);background:var(--error-dim)}.status.ready{border-color:var(--success);background:var(--success-dim)}.progress{background:var(--border);border-radius:999px;height:20px;position:relative;overflow:hidden}.progress div{border-radius:inherit;background:linear-gradient(90deg, var(--accent-strong), var(--accent), #f0b84a);background-size:200% 100%;height:100%;transition:width .25s;animation:1.5s infinite shimmer}.progress small{color:var(--heading);font:700 11px/1 var(--mono);text-shadow:0 1px 2px #00000080;place-items:center;display:grid;position:absolute;inset:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.workspace{border-top:1px solid #ffffff05;flex:1;grid-template-columns:minmax(240px,292px) minmax(0,1fr);min-height:0;display:grid}.file-pane{border-right:1px solid var(--border);background:var(--panel-soft);flex-direction:column;min-width:0;min-height:0;display:flex}.pane-head,.detail-head{border-bottom:1px solid var(--border);background:linear-gradient(#e8a8380a,#0000),#0d1d229e;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:14px;padding:16px;display:flex}.pane-head h2,.detail-head h2{color:var(--heading);letter-spacing:0;font-size:16px;font-weight:700;line-height:1.25}.pane-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.pane-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.pane-import{border:1px solid var(--border-strong);height:32px;color:var(--muted);background:var(--bg-raised);font:500 12px/1 var(--sans);cursor:pointer;border-radius:6px;align-items:center;gap:5px;padding:0 10px;transition:all .12s;display:flex}.pane-import:hover{color:var(--heading);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.usb-import{min-width:44px;color:var(--accent);justify-content:center;padding:0 9px;font-weight:700}.compact-input{background:var(--input);max-width:220px;height:32px;font-size:12.5px}.file-filter{grid-column:1/-1;max-width:none;margin-top:2px}.file-table{flex:1;min-height:0;padding:8px;overflow:auto}.file-row{border:1px solid #0000;border-radius:8px;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:0;width:100%;min-height:42px;padding:0 6px 0 0;transition:background .16s,border-color .16s,box-shadow .16s;display:grid}.file-row:nth-child(2n){background:#ffffff05}.file-row:hover{border-color:var(--border);background:#e8a8380f}.file-row.selected{border-color:var(--accent);background:var(--accent-dim);box-shadow:inset 3px 0 0 var(--accent)}.file-select{text-align:left;width:100%;height:100%;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:0 10px;display:grid}.file-select:hover{background:0 0}.file-select:active{transform:none}.file-name{color:var(--heading);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.file-select span:not(.file-name){text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.file-download{color:#507783;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;width:28px;height:28px;padding:0;transition:color .12s,background .12s;display:grid}.file-download:hover{color:var(--accent);background:var(--accent-dim)}.file-download:active{transform:scale(.92)}.empty,.detail-empty{min-height:220px;color:var(--muted);text-align:center;place-content:center;padding:24px;display:grid}.file-empty{background:#e8a83806;border:1px dashed #e8a8383d;border-radius:8px;align-content:center;gap:8px;min-height:260px}.file-empty strong{color:var(--heading);font-size:13px}.file-empty span{max-width:210px;font-size:12px;line-height:1.55}.detail-pane{background:linear-gradient(180deg, #e8a83806, transparent 220px), var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex}.detail-head{align-items:center}.meta-strip{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.detail-meta{border-bottom:1px solid var(--border);flex-shrink:0;padding:6px 16px}.meta-strip span,.detail-meta span,.warn{border:1px solid var(--border);color:var(--muted);background:var(--bg-raised);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:500;line-height:1.3}.line-pill{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:500}.export-btn{border:1px solid var(--border);background:var(--surface);height:28px;color:var(--accent);font:600 11px/1 var(--sans);cursor:pointer;white-space:nowrap;border-radius:6px;padding:0 12px}.export-btn:hover{border-color:var(--accent);background:var(--accent-dim)}.detail-toolbar{border-bottom:1px solid var(--border);background:#08171cb8;flex-shrink:0;align-items:center;gap:10px;padding:10px 16px;display:flex}.warn{color:var(--accent);background:var(--warning-dim);border-color:#7a5a1a}.filter-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border-strong);height:28px;color:var(--muted);background:var(--bg-raised);font:500 12px/1 var(--sans);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 10px;transition:all .15s;display:flex}.chip:hover{border-color:var(--accent);color:var(--heading);background:var(--accent-dim)}.chip.active{border-color:var(--accent);color:#1a1200;background:linear-gradient(135deg, var(--accent), #f0b84a);font-weight:700}.chip-count{min-width:18px;height:18px;color:inherit;background:#0003;border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex}.log-container{border-top:1px solid #ffffff05;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.loading-overlay{z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#080b0edb;place-items:center;display:grid;position:absolute;inset:0}.loading-box{border:1px solid var(--border);background:var(--bg-raised);border-radius:8px;flex-direction:column;align-items:center;gap:12px;padding:28px 36px;display:flex;box-shadow:0 8px 32px #0006}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-box p{color:var(--heading);margin:0;font-size:14px;font-weight:600}.loading-box small{color:var(--muted);font:500 12px/1 var(--mono)}.loading-progress{background:var(--border);border-radius:999px;width:180px;height:6px;overflow:hidden}.loading-progress div{border-radius:inherit;background:linear-gradient(90deg, var(--accent-strong), var(--accent), #f0b84a);height:100%;transition:width .15s}.log-viewer{color:#c8d3cc;min-height:0;font:12.5px/1.7 var(--mono);background:linear-gradient(90deg,#e8a83809,#0000 120px),#080b0e;flex:1;margin:0;overflow:auto}.log-virtual-spacer{min-width:max-content;position:relative}.log-virtual-window{will-change:transform;min-width:100%;position:absolute;top:0;left:0}.log-viewer code{height:22px;color:inherit;white-space:pre;grid-template-columns:56px minmax(0,1fr);gap:14px;padding:0 16px 0 0;display:grid}.log-viewer code span{color:#4a5568;text-align:right;-webkit-user-select:none;user-select:none;background:#080b0e;border-right:1px solid #1a2030;padding-right:10px;display:inline-block;position:sticky;left:0}.log-viewer code.hit{color:#fef3c7;background:#e8a8382e}.history-table-wrap{background:#080b0e;flex:1;min-height:0;overflow:auto}.history-table{border-collapse:collapse;width:100%;font:11.5px/1.5 var(--mono);color:#c8d3cc}.history-table thead{z-index:2;position:sticky;top:0}.history-table th{text-align:left;white-space:nowrap;color:var(--accent);background:#0e1319;border-bottom:1px solid #1a2030;padding:6px 10px;font-size:10.5px;font-weight:600}.history-table td{white-space:nowrap;border-bottom:1px solid #0a0f14;padding:4px 10px}.history-table tbody tr:hover{background:#e8a8380d}.row-alarm-low{background:#e8a8381f!important}.row-alarm-high{background:#f8514926!important}.row-alarm-low:hover{background:#e8a83833!important}.row-alarm-high:hover{background:#f8514940!important}.row-not-uploaded{background:#7882961a!important}.row-not-uploaded:hover{background:#7882962e!important}.copy-btn{color:#4a5568;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;width:24px;height:24px;padding:0;display:grid}.copy-btn:hover{color:var(--accent);background:var(--accent-dim)}.network-list{background:#080b0e;flex:1;min-height:0;padding:8px;overflow:auto}.sub-chips{background:#0a0f14;border-bottom:1px solid #1a2030;flex-wrap:wrap;gap:4px;padding:6px 8px;display:flex}.sub-chips .chip{height:24px;color:var(--muted);background:0 0;border-color:#1a2030;border-radius:6px;padding:0 8px;font-size:11px}.sub-chips .chip:hover{border-color:var(--accent);color:var(--heading);background:var(--accent-dim)}.sub-chips .chip.active{border-color:var(--accent);color:#1a1200;background:linear-gradient(135deg, var(--accent), #f0b84a)}.sub-chips .chip-count{color:var(--muted);background:#ffffff1f;border-radius:999px;margin-left:4px;padding:0 5px;font-size:10px;font-weight:600}.sub-chips .chip.active .chip-count{color:#1a1200;background:#00000026}.sub-chips .chip-failed{color:#e25555;border-color:#f851494d}.sub-chips .chip-failed:hover{color:#e25555;background:var(--error-dim);border-color:#f8514999}.sub-chips .chip-failed.active{color:#fff;background:#c0392b;border-color:#e25555}.sub-chips .chip-failed .chip-count{color:#e25555;background:#f8514933}.sub-chips .chip-failed.active .chip-count{color:#fff;background:#0003}.net-card{background:#0c1117;border:1px solid #1a2030;border-radius:8px;margin-bottom:6px;overflow:hidden;box-shadow:0 1px #ffffff05}.net-card-error{background:linear-gradient(90deg,#f851491f,#0c1117 160px);border-color:#f8514961}.net-card-head{cursor:pointer;align-items:center;gap:10px;padding:8px 12px;transition:background .12s;display:flex}.net-card-head:hover{background:#e8a8380a}.net-method{font:700 11px/1 var(--mono);flex-shrink:0;min-width:36px}.net-url{text-overflow:ellipsis;white-space:nowrap;color:#a0aeb8;min-width:0;font:12px/1.4 var(--mono);flex:1;overflow:hidden}.net-copy{color:#5b7a8a;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;transition:opacity .12s,color .12s;display:inline-flex}.net-card-head:hover .net-copy{opacity:1}.net-copy:hover{color:#a0aeb8;background:#ffffff0f}.net-time{color:#7aa2c4;font:500 11px/1 var(--mono);flex-shrink:0}.net-duration{color:#5b7a8a;font:500 11px/1 var(--mono);flex-shrink:0}.net-code{font:600 10px/1 var(--mono);border-radius:3px;flex-shrink:0;padding:1px 5px}.net-expand{color:#4a5568;flex-shrink:0;font-size:12px}.net-card-body{border-top:1px solid #1a2030;padding:10px 12px}.net-section{margin-bottom:10px}.net-section:last-child{margin-bottom:0}.net-section-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.net-label{color:#b8872e;font:600 10px/1 var(--sans);text-transform:uppercase;letter-spacing:.04em;margin-bottom:0}.net-json-toggle{border:1px solid var(--border);height:22px;color:var(--muted);font:500 10px/1 var(--sans);cursor:pointer;background:0 0;border-radius:4px;padding:0 8px}.net-json-toggle:hover{color:var(--heading);border-color:var(--accent)}.net-value{color:#b0bec5;font:11.5px/1.55 var(--mono);white-space:pre-wrap;word-break:break-all;background:#060a0e;border-radius:6px;max-height:200px;margin:0;padding:8px 10px;overflow:auto}.net-response{max-height:400px}.time-modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000ad;place-items:center;display:grid;position:fixed;inset:0}.time-modal{border:1px solid var(--border);background:var(--bg-raised);border-radius:8px;width:380px;max-width:90vw;padding:28px 32px;box-shadow:0 16px 48px #00000080}.time-modal h3{color:var(--heading);margin:0 0 8px;font-size:16px;font-weight:700}.time-modal p{color:var(--muted);margin:0 0 20px;font-size:13px;line-height:1.5}.time-modal-actions{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.time-modal-actions button{border:1px solid var(--border-strong);height:40px;color:var(--heading);background:var(--input);font:600 13px/1 var(--sans);cursor:pointer;border-radius:8px;padding:0 16px;transition:background .15s,border-color .15s}.time-modal-actions button:hover{background:var(--border);border-color:var(--accent)}.time-modal-actions button:active{transform:scale(.98)}.time-modal-close{width:100%;height:34px;color:var(--muted);font:500 12px/1 var(--sans);cursor:pointer;background:0 0;border:none;border-radius:6px}.time-modal-close:hover{color:var(--heading);background:var(--border)}.detail-empty h2{color:var(--heading);margin:0 0 10px;font-size:clamp(24px,4vw,38px);line-height:1.08}.detail-empty p{max-width:560px;color:var(--muted);margin:0;font-size:15px;line-height:1.7}.detail-empty{background:linear-gradient(135deg,#e8a8381a,#0000 45%),linear-gradient(#e8a8380a,#0000),#0d1d228a;border:1px solid #e8a83824;border-radius:8px;flex:1;min-height:0;margin:18px}.detail-empty-kicker{color:var(--accent);font:700 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}.empty-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px;display:flex}.empty-actions .pane-import{height:40px;padding:0 16px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=940px){.shell{height:auto;overflow:visible}.import-grid{gap:8px}.import-band{flex-direction:column;align-items:stretch;gap:14px;padding:16px}.import-left{min-width:0}.import-row{flex-direction:column;align-items:stretch;gap:10px}.import-btn{width:100%}.workspace{grid-template-columns:1fr;min-height:auto}.file-pane{border-right:0;border-bottom:1px solid var(--border)}.file-table,.log-viewer{height:auto;max-height:520px}.detail-head,.pane-head{flex-direction:column}.detail-toolbar{flex-direction:column;align-items:stretch}.filter-chips{padding-bottom:2px;overflow-x:auto}.compact-input{max-width:none}.detail-empty{min-height:360px;margin:12px;padding:28px 18px}}
