*{box-sizing:border-box}html,body{margin:0;height:100%}body{font:15px/1.5 -apple-system,BlinkMacSystemFont,"PingFang HK","Noto Sans HK","Microsoft JhengHei",sans-serif;background:#0b1220;color:#e6ecf7;display:flex;flex-direction:column}
.ubar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#0f1a2e;border-bottom:1px solid #22304d}.back{color:#93c5fd;text-decoration:none;font-weight:700;white-space:nowrap}
.ttl{flex:1;min-width:0}.ttl b{display:block}.ttl small{display:block;color:#93a1bd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
select,input{font:inherit;color:#e6ecf7;background:#0b1426;border:1px solid #22304d;border-radius:8px;padding:8px;min-height:40px;max-width:100%}input[type=color]{width:56px;padding:2px}
.ulay{flex:1;display:grid;grid-template-columns:1fr 340px;min-height:0}.view{position:relative;min-height:0;overflow:hidden}.view canvas{width:100%;height:100%;display:block;touch-action:none}
.labels{position:absolute;inset:0;pointer-events:none}.rlabel{position:absolute;left:0;top:0;pointer-events:auto;background:rgba(15,23,42,.78);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:2px 9px;font:12px/1.5 inherit;cursor:pointer;white-space:nowrap}.rlabel.on{background:#2563eb}
.vbtns{position:absolute;left:10px;top:10px;display:flex;gap:6px;flex-wrap:wrap}.vbtns button,.pad button,.sbtn{background:#16223b;color:#e6ecf7;border:1px solid #2b3b5e;border-radius:8px;padding:8px 12px;font:inherit;cursor:pointer;min-height:40px}.vbtns .on{background:#2563eb}
.pad{position:absolute;right:12px;bottom:12px;display:grid;grid-template-columns:repeat(3,52px);gap:6px;background:rgba(15,23,42,.6);padding:8px;border-radius:12px}.pad button{font-size:18px;touch-action:none;user-select:none}.pad small{grid-column:1/-1;color:#cbd5e1;font-size:11px;text-align:center}
.side{background:#0f1a2e;border-left:1px solid #22304d;padding:12px 14px;overflow:auto}.side h2{margin:4px 0 8px;font-size:18px}.side h3{margin:16px 0 6px;font-size:15px}.side label{display:block;color:#93a1bd;font-size:13px;margin:10px 0 4px}.side select,.side input:not([type=color]){width:100%}
.palette{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:6px}.palette button{height:30px;border-radius:6px;border:1px solid rgba(255,255,255,.3);cursor:pointer}
.row{display:flex;gap:8px;align-items:center}.wrapr{flex-wrap:wrap;margin-top:8px}.sbtn.pri{background:#2563eb;border-color:#2563eb}.sbtn:disabled{opacity:.5}
.linkb{background:none;border:0;color:#e6ecf7;font:inherit;font-weight:700;padding:0;cursor:pointer}
.qty table{width:100%;border-collapse:collapse;font-size:12.5px}.qty th,.qty td{border-bottom:1px solid #22304d;padding:5px 4px;text-align:left;vertical-align:top}.qty small{color:#93a1bd}
.note{color:#fbbf24;font-size:12.5px}.muted{color:#93a1bd}.hide{display:none!important}
.sess{font-size:12px}.sess a{color:#93c5fd;margin-left:6px}
@media (max-width:820px){.ulay{grid-template-columns:1fr;grid-template-rows:58vh auto}.side{border-left:0;border-top:1px solid #22304d}#unitSel{max-width:120px}.ttl small{font-size:11px}.sess{display:none}}
