*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.flex{display:flex}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border{border-width:1px}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}*{box-sizing:border-box}body{margin:0;font-family:DM Sans,sans-serif;min-height:100dvh;background:var(--bg);background-image:var(--bg-gradient);color:var(--ink)}.display{font-family:Space Grotesk,sans-serif;letter-spacing:-.03em}.mono{font-family:JetBrains Mono,Menlo,monospace}:root{--bg: #0d1b2f;--bg-gradient: linear-gradient(180deg, #0d1b2f 0%, #0d1b2f 58%, #122d45 100%);--surface: rgba(255, 255, 255, .07);--surface-strong: rgba(255, 255, 255, .11);--surface-muted: #1f2f44;--ink: #f9faf3;--ink-2: #e3ecf9;--muted: #cbd5e1;--subtle: #94a3b8;--border: rgba(255, 255, 255, .12);--border-strong: rgba(203, 219, 242, .55);--accent: #acc6e9;--accent-hover: #cbdbf2;--success: #8dd89f;--danger: #e86d7a}.app-root{min-height:100dvh;display:flex;flex-direction:column}.app-header{border-bottom:1px solid var(--border);background:#0d1b2fd1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.header-inner{max-width:860px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;gap:14px}.header-mark{width:6px;height:42px;border-radius:3px;background:var(--accent);flex-shrink:0}.app-title{font-size:1.35rem;font-weight:700;color:var(--ink);margin:0}.app-subtitle{margin:2px 0 0;font-size:.8rem;color:var(--subtle)}.main-content{max-width:860px;margin:0 auto;padding:32px 24px 64px;display:flex;flex-direction:column;gap:24px;width:100%}.status-card,.tests-card,.log-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.card-title{font-family:Space Grotesk,sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);margin:0 0 18px}.info-grid{display:flex;flex-direction:column;gap:0}.info-row{display:grid;grid-template-columns:220px 1fr;gap:12px;align-items:start;padding:10px 0;border-bottom:1px solid var(--border)}.info-row:last-child{border-bottom:none;padding-bottom:0}.info-label{font-size:.72rem;font-family:JetBrains Mono,Menlo,monospace;color:var(--subtle);padding-top:2px}.info-value{font-size:.82rem;color:var(--muted);word-break:break-all;line-height:1.5}.info-value.mono{font-size:.75rem;color:var(--accent)}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:.72rem;font-weight:600}.tag-warn{background:#e86d7a26;color:var(--danger);border:1px solid rgba(232,109,122,.25)}.tag-ok{background:#8dd89f1f;color:var(--success);border:1px solid rgba(141,216,159,.22)}.tests-list{display:flex;flex-direction:column;gap:0}.test-row{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--border);transition:background .15s}.test-row:last-child{border-bottom:none;padding-bottom:0}.test-row--ran{background:#ffffff08;border-radius:10px;padding-left:10px;padding-right:6px;margin:0 -10px}.test-icon{width:32px;height:32px;border-radius:8px;background:var(--surface-strong);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0;margin-top:2px}.test-body{flex:1;min-width:0}.test-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:3px}.test-name{font-size:.88rem;font-weight:600;color:var(--ink-2)}.test-desc{font-size:.76rem;color:var(--subtle);margin:0;font-family:JetBrains Mono,Menlo,monospace}.test-detail{font-size:.73rem;margin:6px 0 0;color:var(--muted);word-break:break-word;line-height:1.5;background:#00000040;padding:6px 10px;border-radius:6px;border-left:2px solid var(--border-strong)}.run-btn{min-width:36px;min-height:36px;border-radius:8px;border:1px solid var(--border);background:var(--surface-strong);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;transition:background .15s,border-color .15s}.run-btn:hover:not(:disabled){background:#acc6e926;border-color:var(--accent)}.run-btn:disabled{opacity:.4;cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:6px;font-size:.67rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-family:JetBrains Mono,Menlo,monospace}.badge-idle{background:#94a3b81f;color:var(--subtle);border:1px solid rgba(148,163,184,.18)}.badge-running{background:#acc6e91f;color:var(--accent);border:1px solid rgba(172,198,233,.22)}.badge-allowed{background:#8dd89f21;color:var(--success);border:1px solid rgba(141,216,159,.25)}.badge-blocked{background:#e86d7a21;color:var(--danger);border:1px solid rgba(232,109,122,.25)}.log-empty{font-size:.8rem;color:var(--subtle);margin:0;padding:8px 0}.log-entries{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto}.log-entry{display:flex;align-items:baseline;gap:8px;padding:7px 10px;border-radius:8px;font-size:.75rem;background:#0003}.log-entry--ok{border-left:2px solid var(--success)}.log-entry--err{border-left:2px solid var(--danger)}.log-ts{color:var(--subtle);flex-shrink:0;font-size:.7rem}.log-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;position:relative;top:-1px}.dot-ok{background:var(--success)}.dot-err{background:var(--danger)}.log-name{color:var(--ink-2);font-weight:600;flex-shrink:0}.log-sep{color:var(--border-strong);flex-shrink:0}.log-msg{color:var(--muted);word-break:break-all;line-height:1.4}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.log-entries::-webkit-scrollbar{width:4px}.log-entries::-webkit-scrollbar-track{background:transparent}.log-entries::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}
