:root{--ev-c-white: #ffffff;--ev-c-white-soft: #f8f8f8;--ev-c-white-mute: #f2f2f2;--ev-c-black: #1b1b1f;--ev-c-black-soft: #222222;--ev-c-black-mute: #282828;--ev-c-gray-1: #515c67;--ev-c-gray-2: #414853;--ev-c-gray-3: #32363f;--ev-c-text-1: rgba(255, 255, 245, .86);--ev-c-text-2: rgba(235, 235, 245, .6);--ev-c-text-3: rgba(235, 235, 245, .38);--ev-button-alt-border: transparent;--ev-button-alt-text: var(--ev-c-text-1);--ev-button-alt-bg: var(--ev-c-gray-3);--ev-button-alt-hover-border: transparent;--ev-button-alt-hover-text: var(--ev-c-text-1);--ev-button-alt-hover-bg: var(--ev-c-gray-2)}:root{--color-background: var(--ev-c-black);--color-background-soft: var(--ev-c-black-soft);--color-background-mute: var(--ev-c-black-mute);--color-text: var(--ev-c-text-1)}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}ul{list-style:none}body{min-height:100vh;color:var(--color-text);background:var(--color-background);line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-width:960px;overflow:auto;background:#f5f7fb;-webkit-user-select:none;user-select:none}button{font:inherit}#root{min-height:100vh}.app-shell{width:min(1280px,calc(100vw - 48px));margin:0 auto;padding:32px 0 40px}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.app-header h1,.device-summary h2{margin:0;color:#111827;font-weight:700;letter-spacing:-.03em}.app-header h1{font-size:36px;line-height:1.1}.header-description{max-width:720px;margin-top:12px;color:#5b6473;font-size:14px;line-height:1.7}.eyebrow{margin-bottom:8px;color:#64748b;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.network-pill,.pending-badge,.status-pill{display:inline-flex;align-items:center;width:fit-content;border-radius:999px;font-size:12px;font-weight:700}.network-pill{gap:8px;padding:8px 12px;border:1px solid #bbf7d0;color:#166534;background:#f0fdf4}.network-dot{width:8px;height:8px;border-radius:999px;background:#22c55e}.device-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.device-card{display:flex;min-height:184px;cursor:pointer;flex-direction:column;gap:12px;padding:18px;border:1px solid #e2e8f0;border-radius:18px;color:#1f2937;background:#fff;text-align:left;transition:border-color .16s ease,background-color .16s ease,transform .16s ease}.device-card:hover{border-color:#93c5fd;transform:translateY(-1px)}.device-card.is-selected{border-color:#2563eb;background:#eff6ff}.device-card-header,.device-stats,.tabs{display:flex;align-items:center}.device-card-header{justify-content:space-between;gap:10px}.device-name{color:#111827;font-size:17px;font-weight:700}.pending-badge{flex-shrink:0;padding:4px 8px;color:#92400e;background:#fef3c7}.device-description{color:#4b5563;font-size:13px;line-height:1.5}.device-method{color:#64748b;font-size:12px}.device-stats{gap:12px;margin-top:auto}.device-stats span{display:flex;flex-direction:column;min-width:70px;color:#64748b;font-size:12px}.device-stats strong{color:#111827;font-size:22px;font-weight:700;line-height:1.2}.workspace-card{padding:20px;border:1px solid #e2e8f0;border-radius:24px;background:#fff}.task-panel{min-width:0}.tabs{width:fit-content;gap:4px;padding:4px;border-radius:14px;background:#eef2f7}.tabs button{cursor:pointer;border:0;border-radius:11px;padding:9px 14px;color:#64748b;background:transparent;font-size:13px;font-weight:700}.tabs button.is-active{color:#111827;background:#fff}.task-table{margin-top:16px;overflow:hidden;border:1px solid #e5e7eb;border-radius:18px}.table-header,.table-row{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(120px,.8fr) minmax(170px,1fr) minmax(120px,.7fr) 110px;align-items:center;gap:16px}.table-header{padding:12px 16px;color:#64748b;background:#f8fafc;font-size:12px;font-weight:700}.table-row{min-height:78px;padding:14px 16px;border-top:1px solid #eef2f7;color:#334155;font-size:13px}.package-cell{display:flex;min-width:0;flex-direction:column;gap:4px}.package-cell strong{overflow:hidden;color:#111827;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.package-cell span{color:#64748b;font-size:12px}.signer-progress{display:flex;gap:6px}.signer-progress span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:26px;border:1px solid #e5e7eb;border-radius:999px;color:#94a3b8;background:#f8fafc;font-size:11px;font-weight:700}.signer-progress span.is-signed{border-color:#86efac;color:#166534;background:#dcfce7}.status-pill{justify-content:center;padding:6px 10px}.status-waiting{color:#92400e;background:#fef3c7}.status-signing{color:#1d4ed8;background:#dbeafe}.status-ready{color:#166534;background:#dcfce7}.row-action{height:34px;cursor:pointer;border:0;border-radius:10px;padding:0 12px;color:#fff;background:#2563eb;font-size:12px;font-weight:700}.row-action:disabled{cursor:not-allowed;color:#94a3b8;background:#e2e8f0}.empty-state{padding:40px 16px;color:#64748b;text-align:center}.modal-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:32px;background:#0f172a73}.signer-modal{width:min(920px,100%);max-height:calc(100vh - 64px);overflow:auto;border:1px solid #dbe3ef;border-radius:22px;background:#fff}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 16px;border-bottom:1px solid #eef2f7}.modal-header h2{margin:0;color:#111827;font-size:22px;font-weight:700}.modal-close{cursor:pointer;border:0;border-radius:10px;padding:8px 12px;color:#334155;background:#eef2f7;font-size:13px;font-weight:700}.modal-description{padding:16px 24px 0;color:#5b6473;font-size:13px;line-height:1.7}.modal-description code{border-radius:6px;padding:2px 6px;color:#1e40af;background:#dbeafe;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.modal-loading{margin:16px 24px 24px;border-radius:14px;padding:14px;color:#1d4ed8;background:#dbeafe;font-size:13px;font-weight:700}.signing-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 24px 0}.signing-step{display:flex;gap:12px;border:1px solid #e5e7eb;border-radius:14px;padding:14px;background:#fff}.signing-step>span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:999px;color:#64748b;background:#eef2f7;font-size:13px;font-weight:800}.signing-step strong{display:block;color:#111827;font-size:14px;font-weight:800}.signing-step p{margin-top:4px;color:#64748b;font-size:12px;line-height:1.5}.signing-step.is-active{border-color:#93c5fd;background:#eff6ff}.signing-step.is-active>span{color:#fff;background:#2563eb}.signing-step.is-success{border-color:#86efac;background:#f0fdf4}.signing-step.is-success>span{color:#166534;background:#dcfce7}.diagnostics-result{display:grid;gap:14px;padding:16px 24px 24px}.runtime-paths{display:grid;gap:6px;border-radius:14px;padding:12px;color:#475569;background:#f8fafc;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.signature-summary{display:grid;gap:10px;border:1px solid #bbf7d0;border-radius:16px;padding:16px;background:#f0fdf4}.signature-summary h3{margin:0;color:#14532d;font-size:15px;font-weight:800}.signature-summary div{display:grid;gap:4px}.signature-summary span{color:#166534;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.signature-summary strong{overflow-wrap:anywhere;color:#111827;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:700;line-height:1.6}.command-block{overflow:hidden;border:1px solid #e5e7eb;border-radius:14px}.command-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;color:#111827;background:#f8fafc;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.command-title strong{overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.exit-ok,.exit-error{flex-shrink:0;border-radius:999px;padding:4px 8px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;font-weight:700}.exit-ok{color:#166534;background:#dcfce7}.exit-error{color:#991b1b;background:#fee2e2}.command-output{max-height:220px;overflow:auto;margin:0;padding:14px;color:#1f2937;background:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;white-space:pre-wrap}.command-output+.command-output{border-top:1px solid #eef2f7}.command-output.is-error{color:#991b1b;background:#fff7f7}.pin-modal{width:min(420px,100%);padding:24px;border:1px solid #dbe3ef;border-radius:22px;background:#fff;box-shadow:0 24px 60px #0f172a2e}.pin-modal-header h2{margin:6px 0 0;color:#111827;font-size:20px;font-weight:700}.pin-hint{margin:14px 0 0;color:#5b6473;font-size:13px;line-height:1.7}.pin-hint strong{color:#1d4ed8}.pin-warning{display:flex;flex-direction:column;gap:6px;margin:14px 0 0;border:1px solid #fcd34d;border-radius:12px;padding:12px 14px;background:#fffbeb}.pin-warning strong{color:#b45309;font-size:13px}.pin-warning span{color:#92400e;font-size:12px;line-height:1.7}.pin-warning span strong{font-size:inherit}.reboot-hint{margin:16px 24px 0;border:1px solid #fca5a5;border-radius:14px;padding:14px 16px;background:#fef2f2}.reboot-hint strong{display:block;color:#b91c1c;font-size:14px;font-weight:800}.reboot-hint p{margin:6px 0 0;color:#991b1b;font-size:13px;line-height:1.7}.pin-display{display:flex;align-items:center;justify-content:center;gap:8px;min-height:28px;margin:18px 0 0;border:1px solid #e5e7eb;border-radius:12px;padding:12px;background:#f8fafc}.pin-display-placeholder{color:#94a3b8;font-size:13px}.pin-dot{width:10px;height:10px;border-radius:999px;background:#1f2937}.pin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 0}.pin-key{display:flex;align-items:center;justify-content:center;aspect-ratio:1 / 1;cursor:pointer;border:1px solid #d8e0ee;border-radius:16px;background:#fff;transition:border-color .14s ease,background-color .14s ease,transform .14s ease}.pin-key:hover{border-color:#93c5fd;background:#eff6ff}.pin-key:active{transform:scale(.96);background:#dbeafe}.pin-key-dot{width:14px;height:14px;border-radius:999px;background:#cbd5e1}.pin-key:hover .pin-key-dot{background:#2563eb}.pin-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0 0}.pin-action{height:42px;cursor:pointer;border:0;border-radius:12px;font-size:14px;font-weight:700}.pin-action:disabled{cursor:not-allowed;opacity:.5}.pin-action-ghost{color:#334155;background:#eef2f7}.pin-action-primary{color:#fff;background:#2563eb}@media(max-width:1100px){.device-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-card{grid-template-columns:1fr}}.shell-gate{display:grid;place-items:center;min-height:100vh;padding:32px 24px}.shell-gate-card{width:min(560px,100%);padding:40px 36px;border:1px solid #e5e7eb;border-radius:24px;background:#fff;box-shadow:0 24px 60px #0f172a14}.shell-gate-card h1{margin:8px 0 0;color:#111827;font-size:32px;font-weight:700;letter-spacing:-.03em}.shell-gate-description{margin:16px 0 0;color:#5b6473;font-size:15px;line-height:1.7}.shell-gate-list{margin:24px 0 0;padding-left:20px;color:#374151;font-size:14px;line-height:1.8}
