:root{--navy:#123169;--blue:#168db8;--bg:#eef2f6;--line:#d7dfe7;--text:#173042;--green:#078b69}*{box-sizing:border-box}body{margin:0;font:14px Arial,sans-serif;color:var(--text);background:var(--bg)}button,input,select{font:inherit}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#102c63,#168db8)}.login-card{width:min(410px,92vw);padding:32px;background:#fff;border-radius:22px;box-shadow:0 24px 70px #001d3d66}.brand{font-weight:800;color:#17377e;font-size:20px}.brand span{color:#75bd1d}.login h1{margin:25px 0 5px}.login p{color:#647586;margin-bottom:25px}.login label{display:block;font-weight:700;margin:14px 0 5px}.login input{width:100%;padding:14px;border:1px solid var(--line);border-radius:10px}.login button,.primary{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}.login button{width:100%;padding:14px;margin-top:20px;border:0;border-radius:11px;font-weight:700}.error{color:#b42318;margin-top:12px}header{height:70px;padding:0 20px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between}header strong{font-size:21px;display:block}header small{opacity:.75}button{border:1px solid var(--line);background:#fff;color:var(--text);padding:9px 12px;border-radius:9px;cursor:pointer;font-weight:700}button:hover{filter:brightness(.97)}header nav{display:flex;gap:8px}.workspace{height:calc(100vh - 70px);display:grid;grid-template-columns:220px minmax(480px,1fr) 230px;gap:10px;padding:10px}.left,.right{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}.left section,.right section{border-bottom:1px solid #edf0f3;padding-bottom:14px;margin-bottom:14px}h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#657587}.categories,.stack{display:grid;gap:7px}.categories{grid-template-columns:1fr 1fr}.categories button{padding:11px 5px;font-size:11px}.stack{grid-template-columns:1fr 1fr}.stack button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.left section>button{width:100%;margin:4px 0}.stage{min-width:0;display:flex;flex-direction:column}.stage-help{height:35px;display:flex;justify-content:space-between;align-items:center;color:#657587;padding:0 8px}.stage-help #status{font-weight:700;color:#1d516d}#canvasWrap{flex:1;overflow:hidden;background:#dde4e8;border:1px solid #c9d3dd;border-radius:14px;box-shadow:0 4px 16px #1d33431c;position:relative}canvas{display:block;width:100%;height:100%;touch-action:none;background:#eef2ed}#bottomActions{display:flex;gap:7px;padding:9px 0 0;overflow:auto}#bottomActions button{min-width:85px}.layer-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:5px;padding:7px 0}.layer-row span{font-weight:700}.layer-row label{font-size:11px;color:#667}.muted{color:#71808e;line-height:1.5}.legend{line-height:2}.legend i{display:inline-block;width:25px;height:5px;border-radius:4px;margin-right:7px}.legend .bus{background:#1468d2}.legend .third{background:#dc3737}dialog{border:0;border-radius:17px;padding:0;width:min(680px,92vw);max-height:88vh;box-shadow:0 25px 80px #001c3e77}dialog::backdrop{background:#07182a99}dialog form{padding:18px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0}.modal-head button{border:0;font-size:24px}.palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:9px;max-height:58vh;overflow:auto;margin:14px 0}.asset-card{height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:12px;background:#f8fafb;cursor:pointer}.asset-card:hover{border-color:var(--blue)}.asset-card img{width:90px;height:100px;object-fit:contain}.asset-card span{text-align:center;font-size:12px;font-weight:700}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.form-grid label{font-weight:700}.form-grid input,.form-grid select{display:block;width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;margin-top:5px}.checks{display:flex;gap:20px;flex-wrap:wrap;margin:12px 0}#modalActions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}@media(max-width:1000px){.workspace{grid-template-columns:190px 1fr}.right{display:none}}@media(max-width:720px){.workspace{grid-template-columns:1fr}.left{display:none}header nav button:not(.primary){display:none}}
