:root{--ink:#eef1e9;--muted:#8c9188;--panel:#171a18;--panel2:#1d211e;--line:#343a34;--acid:#d9ff43;--cyan:#52e6d5;--red:#ff6b5e;--amber:#ffb84d;--bg:#0d0f0e;--shadow:0 24px 80px #0008}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);font-family:"Noto Sans SC",sans-serif}body{margin:0;min-height:100vh;background:radial-gradient(circle at 82% 8%,#23423a55,transparent 28%),linear-gradient(115deg,#0b0d0c,#111512 55%,#0b0d0c)}button,input,select,textarea{font:inherit}.grain{position:fixed;inset:0;pointer-events:none;opacity:.05;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.eyebrow{font:600 11px/1.2 "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--acid);margin:0 0 12px}.muted{color:var(--muted);line-height:1.8}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;padding:7vw;position:relative}.login-mark{position:absolute;top:34px;left:42px;font:600 18px "IBM Plex Mono"}.login-mark span,.brand span{color:var(--acid)}.login-card{grid-column:2;max-width:560px;border:1px solid var(--line);background:#161a17dd;padding:clamp(32px,5vw,72px);box-shadow:var(--shadow);position:relative}.login-card:before{content:"";position:absolute;width:94px;height:6px;background:var(--acid);top:-3px;left:48px}.login-card h1{font-size:clamp(42px,5.3vw,76px);line-height:1.08;letter-spacing:-.07em;margin:0 0 24px;font-weight:900}.stack{display:grid;gap:18px;margin-top:32px}label{display:grid;gap:8px;font-size:13px;color:#c5cac1}input,select,textarea{width:100%;color:var(--ink);background:#0f1210;border:1px solid var(--line);border-radius:0;padding:12px 13px;outline:none;transition:.2s}textarea{min-height:118px;resize:vertical;font:13px/1.6 "IBM Plex Mono",monospace}input:focus,select:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 2px #52e6d522}.button{border:1px solid var(--line);padding:11px 16px;background:transparent;color:var(--ink);cursor:pointer;font-weight:700;transition:.18s}.button:hover{transform:translateY(-1px);border-color:#778077}.button.primary{background:var(--acid);color:#11140c;border-color:var(--acid);display:flex;justify-content:space-between}.button.danger{color:var(--red);border-color:#ff6b5e66}.button.quiet{background:#202420}.form-error{min-height:18px;color:var(--red);font-size:12px;margin:0}.console{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:#101310e8;border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column;z-index:5}.brand{font:600 18px "IBM Plex Mono";padding:0 12px 34px}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.18em;margin-top:5px}.sidebar nav{display:grid;gap:4px}.sidebar nav button{border:0;background:transparent;color:#999f96;padding:13px 12px;text-align:left;cursor:pointer;display:flex;gap:14px;align-items:center;border-left:2px solid transparent}.sidebar nav button b{font:500 10px "IBM Plex Mono";color:#5f665e}.sidebar nav button:hover{color:var(--ink);background:#ffffff08}.sidebar nav button.active{color:var(--ink);border-left-color:var(--acid);background:linear-gradient(90deg,#d9ff4312,transparent)}.sidebar nav button.active b{color:var(--acid)}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding:18px 10px 0;display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;font-size:11px;color:var(--muted)}.text-button{border:0;background:none;color:var(--muted);padding:8px 0;text-align:left;cursor:pointer;grid-column:2}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px currentColor}.status-dot.ok{background:var(--cyan)}main{grid-column:2;min-width:0}.topbar{min-height:126px;border-bottom:1px solid var(--line);padding:28px clamp(24px,4vw,58px);display:flex;align-items:end;justify-content:space-between;background:#0d100ec9;position:sticky;top:0;backdrop-filter:blur(16px);z-index:4}.topbar h2{margin:0;font-size:31px;letter-spacing:-.045em}.top-actions{display:flex;align-items:center;gap:12px;color:var(--muted);font:11px "IBM Plex Mono"}.icon-button{width:38px;height:38px;border:1px solid var(--line);background:#171a18;color:var(--ink);cursor:pointer;font-size:20px}.icon-button:hover{border-color:var(--acid);color:var(--acid)}.content{padding:clamp(24px,4vw,58px);max-width:1600px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin-bottom:30px}.metric{min-height:158px;border:1px solid var(--line);background:linear-gradient(145deg,#1b1f1c,#121512);padding:22px;position:relative;overflow:hidden}.metric:after{content:"";position:absolute;width:70px;height:70px;border:1px solid #ffffff0c;transform:rotate(45deg);right:-30px;bottom:-30px}.metric span{font:11px "IBM Plex Mono";color:var(--muted);letter-spacing:.08em}.metric strong{display:block;font:600 48px "IBM Plex Mono";margin-top:24px;letter-spacing:-.06em}.metric.accent strong{color:var(--acid)}.panel{border:1px solid var(--line);background:#151815;margin-bottom:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.panel-head h3{font-size:15px;margin:0}.panel-actions{display:flex;gap:8px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:11px 16px;color:var(--muted);font:500 10px "IBM Plex Mono";letter-spacing:.1em;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:14px 16px;border-bottom:1px solid #292e29;vertical-align:top}tr:last-child td{border-bottom:0}tbody tr:hover{background:#ffffff05}.mono{font-family:"IBM Plex Mono";font-size:11px}.badge{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid var(--line);font:500 10px "IBM Plex Mono";text-transform:uppercase;color:#c7ccc3}.badge.active,.badge.delivered,.badge.enabled{border-color:#52e6d566;color:var(--cyan)}.badge.failed,.badge.stopped{border-color:#ff6b5e66;color:var(--red)}.badge.pending,.badge.queued,.badge.retry_wait,.badge.starting{border-color:#ffb84d66;color:var(--amber)}.badge.ended{color:#939990}.row-actions{display:flex;gap:7px;white-space:nowrap}.row-actions button{border:0;background:none;color:var(--cyan);cursor:pointer;padding:0;font-size:12px}.row-actions button.danger-link{color:var(--red)}.empty{padding:54px 20px;text-align:center;color:var(--muted)}.filterbar{display:flex;gap:10px;flex-wrap:wrap}.filterbar input,.filterbar select{width:auto;min-width:150px;padding:8px 10px}.split{display:grid;grid-template-columns:1.25fr .75fr;gap:22px}.signal-list{list-style:none;margin:0;padding:0}.signal-list li{display:grid;grid-template-columns:80px 1fr auto;gap:16px;padding:15px 20px;border-bottom:1px solid #292e29}.signal-list time{font:11px "IBM Plex Mono";color:var(--muted)}dialog{border:0;padding:0;background:transparent;color:var(--ink);width:min(700px,calc(100vw - 32px));max-height:90vh}dialog::backdrop{background:#060706cc;backdrop-filter:blur(5px)}.modal-card{background:#171a18;border:1px solid #4a514a;box-shadow:var(--shadow)}.modal-card header,.modal-card footer{padding:20px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.modal-card footer{border-bottom:0;border-top:1px solid var(--line);justify-content:flex-end;gap:10px}.modal-card h3{margin:0;font-size:22px}.modal-body{padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:16px;max-height:60vh;overflow:auto}.modal-body .wide{grid-column:1/-1}.modal-card>.form-error{padding:0 24px}.toast{position:fixed;right:24px;bottom:24px;background:var(--acid);color:#111;padding:14px 18px;font-weight:700;transform:translateY(120px);transition:.25s;z-index:30;box-shadow:var(--shadow)}.toast.show{transform:translateY(0)}.code{white-space:pre-wrap;word-break:break-word;font:11px/1.6 "IBM Plex Mono";color:#b9c0b6}.loading{height:240px;display:grid;place-items:center;color:var(--muted)}.loading:before{content:"";width:30px;height:30px;border:2px solid var(--line);border-top-color:var(--acid);border-radius:50%;animation:spin .8s linear infinite;margin-right:12px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.console{grid-template-columns:76px 1fr}.sidebar{width:76px;padding:24px 10px}.brand{font-size:0;padding:0 5px 28px}.brand:before{content:"L//S";font:600 15px "IBM Plex Mono"}.brand small,.sidebar nav button:not(.active){font-size:0}.sidebar nav button{justify-content:center;padding:14px 8px}.sidebar nav button b{font-size:10px}.sidebar-foot{display:none}main{grid-column:2}.metric-grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media(max-width:640px){.login-shell{display:block;padding:90px 18px 30px}.login-card{padding:32px 24px}.console{display:block}.sidebar{position:fixed;inset:auto 0 0 0;width:auto;height:66px;flex-direction:row;padding:7px;background:#101310;z-index:10}.brand,.sidebar-foot{display:none}.sidebar nav{display:flex;overflow:auto;width:100%}.sidebar nav button{min-width:58px;border-left:0;border-bottom:2px solid transparent}.sidebar nav button.active{border-bottom-color:var(--acid)}main{padding-bottom:70px}.topbar{min-height:100px;padding:20px;align-items:center}.content{padding:18px}.metric-grid{grid-template-columns:1fr 1fr}.metric{min-height:120px;padding:16px}.metric strong{font-size:36px}.modal-body{grid-template-columns:1fr}.modal-body .wide{grid-column:auto}}
