*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--nav-bg: #0d0d0d;--surface: #161616;--surface2: #1f1f1f;--lift: #282828;--border: #252525;--border2: #303030;--text: #e0e0e0;--text-2: #848484;--text-3: #4e4e4e;--text-4: #2e2e2e;--text-dim: #4e4e4e;--text-dimmer: #404040;--blue: #4c7ef7;--blue-dim: #0e1d38;--blue-glow: #142850;--blue-text: #8eb4ff;--green: #22c55e;--green-dim: #0d1c12;--green-text: #5edb8a;--red: #e63939;--red-dim: #1c0c0c;--red-text: #f07070;--amber: #e5920a;--amber-dim: #1c1208;--amber-text: #f5bc4a;--purple: #9d4edd;--purple-dim: #160d26;--purple-text: #bc8ef5;--nav-text: var(--text-3);--nav-text-hover: var(--text-2);--nav-text-active: var(--blue-text);--nav-hover-bg: var(--surface);--nav-active-bg: var(--blue-dim);--mono: ui-monospace, "SF Mono", Consolas, monospace;--r: 6px;--r-lg: 12px;--r-xl: 16px;--shadow: 0 2px 8px rgba(0,0,0,.35);--sidebar-w: 240px}body.is-paused:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:#a014140f;z-index:9998}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:13px;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--nav-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform .25s ease}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:22px 18px 18px;border-bottom:1px solid var(--border);font-size:14px;font-weight:700;color:var(--nav-text-hover);letter-spacing:-.02em;flex-shrink:0}.sidebar-nav{flex:1;padding:10px 8px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:none;border-radius:var(--r);background:transparent;color:var(--nav-text);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;width:100%;transition:background .1s,color .1s;position:relative}.nav-item:hover{background:var(--nav-hover-bg);color:var(--nav-text-hover)}.nav-item.active{background:var(--nav-active-bg);color:var(--nav-text-active);font-weight:600}.nav-item.active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;background:var(--blue-text);border-radius:0 2px 2px 0}.nav-item svg{flex-shrink:0}.nav-badge{margin-left:auto;background:var(--red-dim);color:var(--red-text);font-size:10px;font-weight:700;padding:1px 6px;border-radius:20px;font-family:var(--mono);min-width:18px;text-align:center}.nav-badge.queue{background:var(--blue-dim);color:var(--blue-text)}.sidebar-processing{padding:12px 8px;border-top:1px solid var(--border);flex-shrink:0}.sidebar-status{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:11px;font-weight:600;color:var(--nav-text);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.sidebar-signout{padding:8px 8px 14px;border-top:1px solid var(--border);flex-shrink:0}.top-bar{display:none;align-items:center;gap:12px;padding:0 16px;height:52px;background:var(--nav-bg);border-bottom:1px solid var(--border);position:fixed;top:0;left:0;right:0;z-index:99;flex-shrink:0}.top-bar-logo{flex:1;font-size:14px;font-weight:700;color:var(--nav-text-hover);letter-spacing:-.02em}.top-bar-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--r);background:transparent;color:var(--nav-text);cursor:pointer;transition:background .1s}.top-bar-btn:hover{background:var(--nav-hover-bg);color:var(--nav-text-hover)}.drawer-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.main{flex:1;margin-left:var(--sidebar-w);min-height:100vh;background:var(--bg)}.page{padding:32px 36px 60px;max-width:1400px}.loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-3)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-box{width:360px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:40px 36px;box-shadow:var(--shadow)}.login-logo{font-size:16px;font-weight:700;color:var(--text);margin-bottom:4px;letter-spacing:-.02em}.login-sub{font-size:13px;color:var(--text-3);margin-bottom:32px}.login-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:6px}.login-input{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color .12s}.login-input:focus{border-color:var(--blue)}.login-error{margin-top:12px;padding:10px 12px;background:var(--red-dim);border:1px solid #3a1010;border-radius:var(--r);color:var(--red-text);font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow)}.stat-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:10px}.stat-value{font-size:28px;font-weight:700;color:var(--text);line-height:1}.stat-sub{font-size:12px;color:var(--text-3);margin-top:6px}.stat-indicator{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;margin-top:6px;color:var(--text-2)}.dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0}.dot.paused{background:var(--red);animation:blink 2s ease-in-out infinite}.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0}.pulse-dot.paused{background:var(--red);animation:blink 2s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;margin-bottom:14px;box-shadow:var(--shadow)}.card:last-child{margin-bottom:0}.card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--surface2)}.card-title{font-size:11px;font-weight:700;color:var(--text-2);letter-spacing:.07em;text-transform:uppercase}.card-body{padding:18px}.badge{background:var(--surface);border:1px solid var(--border2);color:var(--text-3);font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;font-family:var(--mono)}.field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:6px}select{width:100%;padding:9px 32px 9px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-size:13px;font-family:inherit;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234e4e4e' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .12s}select:focus{border-color:var(--blue)}input[type=text],input[type=date],textarea{width:100%;padding:9px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color .12s;resize:vertical}input[type=text]:focus,input[type=date]:focus,textarea:focus{border-color:var(--blue)}.project-info{margin-top:14px;padding:10px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);display:flex;gap:6px;flex-wrap:wrap;align-items:center}.action-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}table{width:100%;border-collapse:collapse}th{padding:9px 16px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);text-align:left;background:var(--surface2);border-bottom:1px solid var(--border);white-space:nowrap}td{padding:10px 16px;font-size:13px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text)}tr:last-child td{border-bottom:none}tbody tr{transition:background .08s}tbody tr:hover td{background:var(--surface2)}.mono{font-family:var(--mono);font-size:11px;color:var(--text-2)}.muted{color:var(--text-3);font-size:12px}.empty-row{text-align:center;color:var(--text-3);padding:32px 16px!important;font-size:13px}.tag{display:inline-block;padding:2px 8px;background:var(--surface2);color:var(--text-2);border:1px solid var(--border2);border-radius:4px;font-size:11px;font-weight:600;font-family:var(--mono)}.tag-red{background:var(--red-dim);color:var(--red-text);border-color:#3a1414}.tag-green{background:var(--green-dim);color:var(--green-text);border-color:#183020}.tag-amber{background:var(--amber-dim);color:var(--amber-text);border-color:#3a2810}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}.chip-blue{background:var(--blue-dim);color:var(--blue-text)}.chip-red{background:var(--red-dim);color:var(--red-text)}.chip-green{background:var(--green-dim);color:var(--green-text)}.chip-amber{background:var(--amber-dim);color:var(--amber-text)}.chip-purple{background:var(--purple-dim);color:var(--purple-text)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:none;border-radius:var(--r);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:filter .1s,opacity .1s;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(1.15)}.btn:active:not(:disabled){filter:brightness(.88)}.btn:disabled{opacity:.28;cursor:not-allowed}.btn-blue{background:var(--blue);color:#fff}.btn-red{background:var(--red);color:#fff}.btn-amber{background:var(--amber);color:#0a0a0a;font-weight:600}.btn-green{background:var(--green);color:#fff}.btn-slate{background:var(--surface2);color:var(--text-2);border:1px solid var(--border2)}.btn-slate:hover:not(:disabled){filter:none;background:var(--lift);color:var(--text)}.btn-outline{background:transparent;border:1px solid var(--border2);color:var(--text-2)}.btn-outline:hover:not(:disabled){filter:none;background:var(--surface2);color:var(--text)}.btn-sm{padding:5px 10px;font-size:11px}.btn-xs{padding:2px 7px;font-size:10px}.btn-sidebar{width:100%;justify-content:center;background:#ffffff0f;color:var(--nav-text);border:1px solid rgba(255,255,255,.08);font-size:12px;padding:8px 12px;border-radius:var(--r)}.btn-sidebar:hover:not(:disabled){filter:none;background:#ffffff1f;color:var(--nav-text-hover)}.btn-sidebar-danger{width:100%;justify-content:center;background:transparent;color:var(--text-3);border:1px solid transparent;font-size:12px;padding:8px 12px;border-radius:var(--r)}.btn-sidebar-danger:hover:not(:disabled){filter:none;background:var(--red-dim);color:var(--red-text);border-color:#3a1010}.job-list{display:flex;flex-direction:column;gap:12px}.job-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}.job-card-head{display:flex;align-items:center;gap:10px;padding:11px 18px;border-bottom:1px solid var(--border);background:var(--surface2);flex-wrap:wrap}.job-id{font-family:var(--mono);font-size:10px;color:var(--text-3);letter-spacing:.03em}.job-meta{font-size:12px;color:var(--text-2)}.job-time{font-size:11px;color:var(--text-3);margin-left:auto}.step-row{display:grid;grid-template-columns:repeat(4,1fr)}.step-panel{padding:16px 18px;border-right:1px solid var(--border);min-height:90px}.step-panel:last-child{border-right:none}.step-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.step-icon{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}.step-icon.done{background:var(--green-dim);color:var(--green-text)}.step-icon.active{background:var(--blue-glow);color:var(--blue-text);animation:stepglow 1.5s ease-in-out infinite}.step-icon.pending{background:var(--surface2);color:var(--text-4);border:1px solid var(--border)}.step-icon.failed{background:var(--red-dim);color:var(--red-text)}@keyframes stepglow{0%,to{box-shadow:0 0 #4c7ef759}50%{box-shadow:0 0 0 5px #4c7ef700}}.step-name{font-size:11px;font-weight:600;color:var(--text-2)}.step-name.done{color:var(--green-text)}.step-name.active{color:var(--blue-text)}.step-name.failed{color:var(--red-text)}.step-body{font-size:12px;color:var(--text-3);line-height:1.6}.step-body .field-row{margin-bottom:3px}.step-body .field-row strong{color:var(--text-2);font-weight:500}.step-body .field-row span{color:var(--text-2)}.step-pending{font-size:12px;color:var(--text-4);font-style:italic}.email-block{margin-top:6px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:4px;font-family:var(--mono);font-size:11px;color:var(--text-2);white-space:pre-wrap;word-break:break-word;max-height:120px;overflow-y:auto;line-height:1.5}.monitor-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--text-3);font-size:13px;text-align:center;gap:12px}.toast{position:fixed;bottom:24px;right:24px;padding:11px 18px;border-radius:var(--r);font-size:13px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .15s,transform .2s;transform:translateY(8px);z-index:9999;background:var(--surface2);border:1px solid var(--border2);color:var(--text);box-shadow:0 4px 16px #00000080}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:var(--red-dim);border-color:#3a1010;color:var(--red-text)}a{color:inherit;text-decoration:none}a:hover{color:var(--blue-text)}@media(max-width:768px){.top-bar{display:flex}.sidebar{transform:translate(-100%);top:52px}.sidebar.drawer-open{transform:translate(0);box-shadow:4px 0 24px #00000080}.drawer-overlay{display:block;opacity:0;pointer-events:none;transition:opacity .25s}.drawer-overlay.visible{opacity:1;pointer-events:auto}.main{margin-left:0;padding-top:52px}.page{padding:20px 16px 48px}.two-col{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.step-row{grid-template-columns:repeat(2,1fr)}.toast{bottom:16px;right:16px;left:16px;text-align:center}}@media(max-width:480px){.stats{grid-template-columns:1fr}}
