:root{color:#17202a;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}.shell{min-height:100vh;padding:24px}.topbar{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.topbar h1{font-size:26px;line-height:1.2;margin:0}.topbar p{color:#667085;margin:4px 0 0}.identity,.panel,.metrics>div,.lane{background:#fff;border:1px solid #d9e0ea;border-radius:8px}.identity{align-items:center;display:flex;gap:8px;padding:10px 12px}.notice{background:#fff2f0;border:1px solid #ffccc7;border-radius:8px;color:#a8071a;margin-bottom:16px;padding:12px}.metrics{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:16px}.metrics>div{padding:14px}.metrics span,.device-row span,.job-card span,.job-card small,label span{color:#667085;font-size:13px}.metrics strong{display:block;font-size:24px;margin-top:4px}.workspace{display:grid;gap:16px;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);margin-bottom:16px}.panel{padding:16px}.panel-title{align-items:center;display:flex;gap:8px;margin-bottom:12px}.panel-title h2,.lane h2{font-size:15px;margin:0}.device-list{display:grid;gap:8px}.device-row{align-items:center;border-bottom:1px solid #edf1f7;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) 96px 80px auto;min-height:54px;padding:8px 0}.device-row strong,.device-row span{display:block}.badge{border-radius:999px;font-size:12px;padding:5px 8px;text-align:center}.badge.idle{background:#e9f8ef;color:#147a3b}.badge.busy{background:#fff7e6;color:#ad6800}.badge.offline{background:#f2f4f7;color:#667085}.device-actions{display:flex;gap:6px;justify-content:flex-end}.job-form{display:grid;gap:12px}label{display:grid;gap:6px}input,select,textarea{background:#fff;border:1px solid #cfd8e3;border-radius:6px;min-height:38px;padding:8px 10px;width:100%}textarea{line-height:1.45;resize:vertical}.payload-box{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;min-height:132px;white-space:pre-wrap}.session-box{min-height:220px}.payment-box{min-height:160px}.checkline{align-items:center;display:flex;gap:8px}.checkline input{min-height:auto;width:auto}button{align-items:center;background:#1769aa;border:0;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;gap:8px;justify-content:center;min-height:40px;padding:9px 14px;transition:background .14s ease,box-shadow .14s ease,transform 80ms ease,opacity .14s ease}button:hover:not(:disabled){background:#145b94;box-shadow:0 6px 16px #1769aa33}button:active:not(:disabled){transform:translateY(1px) scale(.99)}button:disabled{cursor:wait;opacity:.72}.icon-button{min-height:32px;min-width:32px;padding:6px}.danger-action{background:#b42318}.danger-action:hover:not(:disabled){background:#912018;box-shadow:0 6px 16px #b4231833}.dispatch-button{min-width:108px}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pipeline{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}.lane{min-height:220px;padding:12px}.lane-header{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:10px}.lane-count{color:#667085;font-size:12px;white-space:nowrap}.job-card{background:#f8fafc;border:1px solid #e3e8ef;border-radius:8px;display:grid;gap:6px;margin-bottom:8px;padding:10px}.job-head{align-items:center;display:flex;gap:8px;min-width:0}.job-head strong{overflow-wrap:anywhere}.job-result{background:#fff7e6;border:1px solid #ffe1a8;border-radius:6px;display:grid;gap:4px;padding:8px}.job-result code,.job-result span{color:#8a5600;font-size:12px;overflow-wrap:anywhere}.lane-pagination{display:flex;gap:8px;justify-content:flex-end;padding-top:4px}.lane-pagination button{min-height:32px;min-width:32px;padding:6px}.empty{color:#98a2b3;font-size:13px;padding:12px 0}@media(max-width:900px){.shell{padding:16px}.topbar,.workspace{align-items:stretch;grid-template-columns:1fr}.topbar{flex-direction:column}.metrics,.pipeline{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.metrics,.pipeline,.device-row{grid-template-columns:1fr}}
