:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial;color:#25444a;background:#eaf0ec;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.app{min-height:100vh}.topbar{height:76px;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(16px,3vw,48px);border-bottom:1px solid #dce5df}.logo{display:flex;align-items:center;gap:13px}.logo>span{font-size:35px;color:#4f867e}.logo b{font-size:14px;letter-spacing:2px}.logo small{display:block;font-size:9px;letter-spacing:2.1px;margin-top:5px;color:#75908d}.top-actions{display:flex;align-items:center;gap:16px}.tiny-pill{background:#e5f6ea;border-radius:99px;padding:9px 14px;font-size:12px;font-weight:600}.tiny-pill i,.legend i{display:inline-block;width:9px;height:9px;border-radius:100%;background:#56a877;margin-right:6px}.user-name{font-size:13px;color:#59716e}.ghost{border:1px solid #d1ded8;background:#fff;color:#49645f;border-radius:9px;padding:9px 13px;font-size:12px}.layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,.75fr);gap:22px;max-width:1550px;padding:26px 32px;margin:auto}.center-col{min-width:0}.office-panel,.records,.sidebar{background:#fff;border:1px solid #dae4dd;border-radius:17px;box-shadow:0 7px 28px #1e4b3710;overflow:hidden}.office-panel{margin-bottom:22px}.section-title{padding:23px 26px 13px;display:flex;justify-content:space-between;align-items:center}.section-title small,.side-section>small{font-size:10px;letter-spacing:2px;color:#78a09a;font-weight:700}.section-title h2,.side-section h2{font-size:22px;letter-spacing:-.6px;margin:5px 0 0}.section-title>span{color:#869e9b;font-size:12px}.section-title .live{font-size:10px;color:#4c9a76;letter-spacing:1.5px}.phaser-canvas{width:100%;height:auto;aspect-ratio:880 / 560;background:#f7faf6}.phaser-canvas canvas{max-width:100%;height:auto;display:block!important}.legend{display:flex;flex-wrap:wrap;gap:19px;border-top:1px solid #eef2ef;color:#809490;font-size:11px;padding:15px 26px}.legend i.amber{background:#e4a649}.records .section-title{padding-bottom:20px}.task-list{padding:0 18px 18px}.task-row{width:100%;border:1px solid transparent;background:#fff;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:14px;border-radius:10px;gap:10px}.task-row+.task-row{border-top-color:#f1f4f2}.task-row:hover,.task-row.active{background:#f2f8f4}.task-row strong,.task-row small{display:block}.task-row strong{font-size:13px}.task-row small{color:#819490;font-size:11px;margin-top:5px}.badge{font-size:10px;font-style:normal;background:#ecf0f0;color:#657b78;border-radius:90px;padding:5px 9px;white-space:nowrap}.badge.completed{background:#e2f5e9;color:#34815e}.badge.running{background:#fff4de;color:#a17124}.badge.failed,.badge.cancelled{background:#fae7e6;color:#b05f5d}.empty{font-size:13px;color:#819490;padding:8px 26px 30px}.sidebar{align-self:start;position:sticky;top:16px;max-height:calc(100vh - 30px);overflow-y:auto}.tabs{display:flex;background:#f4f7f5;padding:7px;gap:6px;margin:14px 18px;border-radius:11px}.tabs button{border:0;flex:1;padding:11px;background:transparent;border-radius:8px;font-size:12px;color:#78918b}.tabs button.on{background:#fff;box-shadow:0 2px 7px #27463d12;color:#27483c;font-weight:700}.side-section{padding:12px 24px 28px}.side-section h2{margin:8px 0}.side-section p{font-size:13px;color:#7a8e88;line-height:1.6}.side-section label,.login-card label{display:block;font-size:12px;font-weight:700;color:#45615a;margin:18px 0 7px}.side-section input,.side-section textarea,.side-section select,.login-card input{width:100%;border:1px solid #d5e2dc;border-radius:10px;background:#fbfdfb;padding:12px 13px;color:#31534d;outline:0;font-size:13px}.side-section textarea{resize:vertical}.side-section input:focus,.side-section textarea:focus,.login-card input:focus{border-color:#559a84;box-shadow:0 0 0 3px #77bda427}.primary,.login-card button{border:0;border-radius:10px;padding:13px;width:100%;margin-top:18px;color:#fff;background:#306e5e;font-weight:700;font-size:13px}.primary:hover{background:#245c4b}.detail{margin-top:25px;border-top:1px solid #e9efeb;padding-top:18px}.detail-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.detail h3{font-size:14px;margin:0}.step{border-left:2px solid #b9d7c5;margin:14px 0;padding:5px 0 5px 12px}.step strong{display:block;font-size:12px}.step strong span{font-weight:400;font-size:11px;color:#78948a;float:right}.step small{font-size:10px;color:#8da29b;display:block;margin-top:5px}.output{font-size:11px;margin-top:10px;background:#f5f8f6;padding:9px;border-radius:6px;white-space:pre-wrap;max-height:190px;overflow:auto;overflow-wrap:anywhere}.detail-actions{display:flex;flex-wrap:wrap;gap:12px}.download{font-size:12px;text-decoration:none;color:#fff;background:#36745f;padding:11px;border-radius:8px}.danger{color:#a75f5f}.avatar{height:75px;width:75px;border-radius:20px;display:grid;place-items:center;font-size:38px;color:#fff;margin:18px 0}.role{font-weight:700}.side-section code{display:block;background:#f1f5f3;padding:12px;border-radius:8px;font-size:11px;overflow-wrap:anywhere}.muted{display:block;color:#93a39e;margin-top:15px}footer{color:#9eaea7;font-size:10px;letter-spacing:1.3px;text-align:center;padding:20px}.error{padding:10px;color:#a34d48!important;font-size:12px;background:#ffefed;border-radius:8px}.login-back{min-height:100vh;background:radial-gradient(circle at 25% 25%,#d3e8d7,#f2f6f2 65%);display:grid;place-items:center;padding:20px}.login-card{background:#fff;border:1px solid #d8e7de;border-radius:18px;padding:38px;width:min(420px,100%);box-shadow:0 15px 65px #2948381c}.brand-mark{font-size:42px;color:#407967}.login-card h1{margin:12px 0 5px;font-size:25px}.login-card p{font-size:13px;color:#80918a;line-height:1.6}.login-card small{display:block;text-align:center;margin-top:19px;color:#a1afa9;font-size:11px}.loading{padding:40px;text-align:center}@media(max-width:1030px){.layout{grid-template-columns:1fr;padding:16px}.sidebar{position:static;max-height:none}.user-name{display:none}}@media(max-width:600px){.topbar{padding:0 14px}.top-actions{gap:5px}.tiny-pill{font-size:9px;padding:8px}.logo b{font-size:11px;letter-spacing:1px}.logo small{font-size:8px;letter-spacing:1px}.section-title{padding:18px}.legend{padding:14px}.side-section{padding:18px}.section-title h2{font-size:18px}}
