:root{--ink: #0b0b0b;--paper: #fdf6e3;--panel: #ffffff;--yellow: #ffd23f;--pink: #ff5c8a;--cyan: #4ecdc4;--lime: #b8f34a;--violet: #b09cff;--orange: #ff8c42;--red: #ff4d4d;--blue: #6ba8ff;--shadow: 5px 5px 0 var(--ink);--shadow-sm: 3px 3px 0 var(--ink);--shadow-lg: 8px 8px 0 var(--ink);--bord: 3px solid var(--ink)}*{box-sizing:border-box}body{margin:0;background-color:var(--paper);background-image:linear-gradient(rgba(11,11,11,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(11,11,11,.07) 1px,transparent 1px);background-size:26px 26px;color:var(--ink);font-family:DM Mono,JetBrains Mono,ui-monospace,Courier New,monospace,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji";font-size:15px;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:900;letter-spacing:-.5px;text-transform:uppercase}a{color:var(--ink)}.shell{max-width:1500px;margin:0 auto;padding:22px 22px 80px}.masthead{border:var(--bord);box-shadow:var(--shadow-lg);background:var(--yellow);padding:18px 22px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:26px}.masthead h1{font-size:30px;line-height:1}.masthead .sub{font-size:12px;font-weight:700;text-transform:uppercase;margin-top:6px;opacity:.75}.masthead .spacer{flex:1}.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:22px;align-items:start}@media (max-width: 1080px){.grid{grid-template-columns:minmax(0,1fr)}}.stack{display:flex;flex-direction:column;gap:22px;min-width:0}.card{border:var(--bord);box-shadow:var(--shadow);background:var(--panel)}.card>header{border-bottom:var(--bord);padding:12px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.card>header h2{font-size:17px}.card>header .spacer{flex:1}.card .body{padding:16px}.card.c-yellow>header{background:var(--yellow)}.card.c-pink>header{background:var(--pink)}.card.c-cyan>header{background:var(--cyan)}.card.c-lime>header{background:var(--lime)}.card.c-violet>header{background:var(--violet)}.card.c-orange>header{background:var(--orange)}.card.c-blue>header{background:var(--blue)}button{font-family:inherit;font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;cursor:pointer;border:var(--bord);box-shadow:var(--shadow-sm);background:var(--panel);color:var(--ink);padding:9px 15px;transition:transform 60ms linear,box-shadow 60ms linear}button:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}button:active:not(:disabled){transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}button:disabled{cursor:not-allowed;opacity:.45;box-shadow:var(--shadow-sm);transform:none}button.big{font-size:17px;padding:14px 20px;box-shadow:var(--shadow);width:100%}button.run{background:var(--lime)}button.danger{background:var(--red)}button.ghost{background:var(--panel)}button.alt{background:var(--cyan)}button.warn{background:var(--orange)}button.tiny{font-size:11px;padding:5px 9px;box-shadow:2px 2px 0 var(--ink);border-width:2px}.btn-row{display:flex;gap:10px;flex-wrap:wrap}label.field{display:block;margin-bottom:14px}label.field>.name{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px}label.field>.help{display:block;font-size:11px;line-height:1.45;margin-top:5px;opacity:.7}input[type=text],input[type=number],input[type=email],input[type=password],select,textarea{font-family:inherit;font-size:14px;width:100%;padding:9px 11px;border:var(--bord);background:var(--paper);color:var(--ink);box-shadow:inset 2px 2px #0b0b0b1f}input:focus,select:focus,textarea:focus{outline:none;background:#fff;box-shadow:var(--shadow-sm)}.check{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;cursor:pointer}.check input{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:0 0 22px;width:22px;height:22px;margin:0;border:var(--bord);background:var(--paper);box-shadow:2px 2px 0 var(--ink);cursor:pointer;position:relative}.check input:checked{background:var(--lime)}.check input:checked:after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:15px;font-weight:900;line-height:1}.check .text .name{display:block;font-size:13px;font-weight:800;text-transform:uppercase}.check .text .help{display:block;font-size:11px;line-height:1.4;margin-top:3px;opacity:.7}.tri{display:flex;gap:0;margin-top:4px}.tri button{flex:1;box-shadow:none;border-width:3px;border-right-width:0;font-size:11px;padding:7px 4px}.tri button:last-child{border-right-width:3px}.tri button.on{background:var(--violet)}.tri button:hover:not(:disabled){transform:none;box-shadow:none}.chip{display:inline-flex;align-items:center;gap:6px;border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);background:var(--panel);padding:3px 8px;font-size:11px;font-weight:800;text-transform:uppercase;white-space:nowrap}.chip.ok{background:var(--lime)}.chip.bad{background:var(--red)}.chip.warn{background:var(--orange)}.chip.info{background:var(--cyan)}.chip.neutral{background:#e6e6e6}.chip.live{background:var(--yellow)}.chip.live:before{content:"";width:8px;height:8px;background:var(--ink);animation:blink 1s steps(1,end) infinite}@keyframes blink{50%{opacity:0}}.chips{display:flex;flex-wrap:wrap;gap:8px}.statlist{display:flex;flex-direction:column}.statrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:2px dashed rgba(11,11,11,.2)}.statrow:last-child{border-bottom:0}.statrow .k{font-size:12px;font-weight:800;text-transform:uppercase;flex:0 0 118px}.statrow .v{font-size:12px;flex:1;min-width:0;word-break:break-word;opacity:.85}.banner{border:var(--bord);box-shadow:var(--shadow-sm);padding:11px 14px;font-size:13px;font-weight:700;margin-bottom:16px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;line-height:1.45}.banner.ok{background:var(--lime)}.banner.bad{background:var(--red)}.banner.warn{background:var(--orange)}.banner.info{background:var(--cyan)}.reportlist{display:flex;flex-direction:column;gap:12px}.reportbtn{text-align:left;text-transform:none;letter-spacing:0;font-weight:700;padding:12px 14px;background:var(--panel);display:block;width:100%}.reportbtn.sel{background:var(--yellow);box-shadow:var(--shadow)}.reportbtn .t{font-size:15px;font-weight:900;text-transform:uppercase;display:block;margin-bottom:4px}.reportbtn .d{font-size:11px;font-weight:500;line-height:1.45;display:block;opacity:.78}.reportbtn .m{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.logwrap{border-top:var(--bord);background:var(--ink)}.log{margin:0;padding:14px 16px;height:460px;overflow:auto;font-family:inherit;font-size:12.5px;line-height:1.55;color:#f2f2f2;white-space:pre-wrap;word-break:break-word}.log .l-err{color:#ff8f8f}.log .l-warn{color:#ffd23f}.log .l-ok{color:#b8f34a}.log .l-dim{color:#9a9a9a}.log .l-hd{color:#4ecdc4;font-weight:700}.log .empty{color:#7a7a7a}.log::-webkit-scrollbar{width:14px;height:14px}.log::-webkit-scrollbar-track{background:#1b1b1b}.log::-webkit-scrollbar-thumb{background:var(--yellow);border:3px solid var(--ink)}.jobs{display:flex;flex-direction:column;gap:10px;max-height:430px;overflow:auto;padding-right:4px}.job{border:var(--bord);box-shadow:var(--shadow-sm);background:var(--panel);padding:11px 13px;cursor:pointer}.job:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.job.sel{background:var(--violet)}.job .top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.job .name{font-size:13px;font-weight:900;text-transform:uppercase}.job .meta{font-size:11px;opacity:.72;margin-top:5px;word-break:break-all}.job .arts{margin-top:9px;display:flex;gap:8px;flex-wrap:wrap}.dl{display:inline-flex;align-items:center;gap:6px;border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);background:var(--pink);color:var(--ink);text-decoration:none;padding:5px 9px;font-size:11px;font-weight:800;text-transform:uppercase}.dl:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink)}.empty-note{font-size:12px;padding:18px;text-align:center;border:3px dashed rgba(11,11,11,.35);text-transform:uppercase;font-weight:700;opacity:.6}.mono-sm{font-size:11px;opacity:.7;word-break:break-all}.cmd{border:2px solid var(--ink);background:var(--paper);padding:8px 10px;font-size:11px;word-break:break-all;margin-top:10px}.toast-wrap{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:50;max-width:380px}.toast{border:var(--bord);box-shadow:var(--shadow);padding:12px 14px;font-size:13px;font-weight:800;background:var(--panel)}.toast.ok{background:var(--lime)}.toast.bad{background:var(--red)}.loginwrap{min-height:100svh;display:grid;place-items:center;padding:24px}.loginbox{width:100%;max-width:420px;box-shadow:var(--shadow-lg)}.loginlead{margin-bottom:20px}.loginlead strong{display:block;font-size:22px;font-weight:900;letter-spacing:-.5px;text-transform:uppercase;line-height:1.05}.loginlead span{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin-top:6px;opacity:.7}.loginbox code{background:var(--paper);border:2px solid var(--ink);padding:1px 5px;font-size:11px;word-break:break-all}button.signout{background:var(--panel)}.pairrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 560px){.pairrow{grid-template-columns:1fr;gap:0}}.subhead{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;margin:18px 0 10px;padding-bottom:5px;border-bottom:var(--bord)}.schedlist{display:flex;flex-direction:column;gap:12px;margin-top:14px}.schedrow{border:var(--bord);background:var(--panel);box-shadow:var(--shadow-sm);padding:11px 13px}.schedrow.off{background:var(--paper);opacity:.72}.schedrow .head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.schedrow .head strong{font-size:14px}.schedrow .meta{font-size:11px;line-height:1.5;opacity:.75}.schedrow .meta.err{opacity:1;font-weight:700;color:#a11}.schedrow .btn-row{margin-top:9px}.schedform{margin-top:18px;padding-top:16px;border-top:var(--bord)}.schedform h3{font-size:15px;text-transform:uppercase;letter-spacing:.5px;margin:0 0 14px}.daypick{display:flex;gap:0;margin-top:4px}.daypick button{flex:1;box-shadow:none;border:var(--bord);border-right-width:0;background:var(--panel);font-size:11px;font-weight:800;padding:8px 2px;cursor:pointer;font-family:inherit;color:var(--ink);text-transform:uppercase}.daypick button:last-child{border-right-width:3px}.daypick button.sel{background:var(--lime)}
