:root{font-family:Tahoma,"Vazirmatn","IRANSans",system-ui,sans-serif;color:#ebf3fb;background:#08111d;font-size:13px;--bg:#08111d;--panel:#101c2c;--panel2:#142236;--panel3:#0c1828;--line:#24344b;--muted:#91a5b9;--accent:#23b5ed;--green:#34c3a2;--orange:#ecae54;--red:#f07186}
*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}input,select,textarea{color:#eff8ff;background:#0a1829;border:1px solid #2c4158;border-radius:9px;padding:10px;outline:none;min-width:0;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px #20b4ef1e}input[type=checkbox]{width:auto;accent-color:var(--accent)}select{cursor:pointer}option{color:#fff;background:#122039}h1,h2,p{margin:0}h1{font-size:22px;font-weight:700}h2{font-size:15px}.muted,.small,.hint{color:var(--muted)}.small{font-size:11px}.cyan{color:var(--accent)}.section-kicker,.eyebrow{font-size:10px;letter-spacing:1.2px;color:#6fc3e7;font-weight:bold}.btn{border:1px solid #334a62;border-radius:9px;background:#192b41;color:#eaf6ff;padding:9px 13px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:5px;transition:.15s}.btn:hover{background:#27405b;border-color:#51728e}.btn.primary{background:#0879a9;border-color:#159ac9;color:#fff;font-weight:700}.btn.primary:hover{background:#1492bf}.btn.tiny{padding:7px 10px;font-size:11px}.btn.ghost{background:transparent}.btn.icon-btn{width:34px;height:35px;padding:0;font-size:20px;flex:none}.btn.full{width:100%}.btn.danger-outline{color:#fd9baf;border-color:#754252;background:#38202b}.btn.danger-text{color:#ff9ab0;border:none;background:transparent}.btn:disabled{cursor:not-allowed;opacity:.4}.app-shell{display:flex;flex-direction:column;min-height:100vh}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:#0e1a29;border-bottom:1px solid var(--line);gap:16px}.brand{display:flex;align-items:center;gap:13px}.brand-icon,.brand-mark{border:1px solid #2277a7;background:#102b43;color:#f2fcff;border-radius:12px;display:grid;place-items:center;font-size:26px;font-weight:bold;width:43px;height:43px;direction:ltr}.brand-icon span,.brand-mark span{color:#21b6f4}.brand strong{letter-spacing:.7px;font-size:15px}.brand small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.topbar-right{display:flex;gap:12px;align-items:center}.user-pill{color:#b4cce2;background:#13283b;border:1px solid var(--line);border-radius:30px;padding:8px 13px;font-size:11px}.inline-form{margin:0}.workspace{display:grid;grid-template-columns:260px minmax(420px,1fr) 288px;flex:1;min-height:calc(100vh - 72px)}.sidebar,.details-panel{background:#0d1929;overflow-y:auto;max-height:calc(100vh - 72px)}.sidebar{border-left:1px solid var(--line);display:flex;flex-direction:column}.aside-section{padding:20px 17px;border-bottom:1px solid var(--line)}.aside-section:first-child{display:grid;gap:9px}.field-label{font-size:11px;color:var(--muted);margin-top:3px}.inline-controls{display:flex;gap:6px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.aside-section:has(.booth-list){display:flex;flex-direction:column;gap:10px;flex:1;min-height:300px}.booth-list{display:flex;flex-direction:column;gap:7px;max-height:calc(100vh - 420px);min-height:150px;overflow:auto;padding-left:4px}.booth-item{border:1px solid #263a50;border-radius:10px;text-align:right;padding:12px;background:#142238;display:flex;align-items:center;justify-content:space-between;gap:10px;color:inherit;width:100%}.booth-item:hover,.booth-item.active{border-color:var(--accent);background:#183450}.booth-item .code{font-size:13px;font-weight:700;direction:ltr;text-align:right}.booth-item .company{color:var(--muted);font-size:10px;display:block;margin-top:5px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{border-radius:16px;padding:4px 7px;font-size:10px}.pill.available{background:#153e37;color:#79e6cc}.pill.reserved{background:#4b3a1d;color:#ffd188}.pill.occupied{background:#183e65;color:#92c8ff}.pill.blocked{background:#472b35;color:#fdafbe}.aside-bottom{padding:15px 17px;font-size:10px;color:var(--muted);margin-top:auto}.live-dot{width:6px;height:6px;border-radius:50%;background:#3bd0a8;display:inline-block;margin-left:4px}.main-panel{padding:23px 25px;min-width:0;background:radial-gradient(circle at 40% -30%,#132d41 0%,transparent 50%),#081320}.overview-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.overview-title h1{margin:6px 0 8px}.overview-title p{font-size:12px}.view-tag{color:#7ac4ea;border:1px solid #295375;background:#11283c;border-radius:6px;padding:8px;font-size:10px;direction:ltr}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:19px}.stat{background:#112235;border:1px solid #26364c;border-radius:12px;padding:14px 17px;min-height:88px}.stat-label{font-size:11px;color:#9cbbd1}.stat strong{display:inline-block;font-size:23px;margin-top:8px;direction:ltr}.stat small{margin-right:8px;font-size:10px;color:var(--muted)}.plan-card{background:#0e1c2b;border:1px solid #28415a;border-radius:15px;overflow:hidden}.plan-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;gap:9px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.toolbar-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.zoom-controls{justify-content:flex-end}.snap-label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;white-space:nowrap}.plan-surface{height:min(60vh,610px);min-height:350px;position:relative;background:#091625;overflow:hidden}.plan-surface svg{width:100%;height:100%;display:block;touch-action:none;user-select:none;cursor:crosshair}.plan-surface svg .booth-group{cursor:grab}.plan-surface svg .booth-group:active{cursor:grabbing}.booth-group .shape{stroke-width:.07;stroke:#b2d4f4;vector-effect:non-scaling-stroke}.booth-group.selected .shape{stroke:#53e6ff;stroke-width:3px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px #62d7fb)}.booth-group .handle{fill:#fff;stroke:#1c80aa;stroke-width:.04;cursor:nwse-resize}.booth-group .booth-text{fill:#fff;font-weight:bold;font-family:Tahoma,Arial,sans-serif;pointer-events:none;text-anchor:middle;dominant-baseline:central}.booth-group .booth-sub{fill:#d3e6f2;font-family:Tahoma,Arial,sans-serif;pointer-events:none;text-anchor:middle}.empty-canvas{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--muted)}.plan-footer{display:flex;justify-content:space-between;gap:10px;padding:12px 15px;color:var(--muted);font-size:10px;border-top:1px solid var(--line)}.legend-section{display:flex;gap:15px;align-items:center;flex-wrap:wrap;padding-top:18px}.legend{display:flex;gap:7px;align-items:center;color:#b9c9da;font-size:11px}.legend .dot{height:8px;width:8px;display:block;border-radius:2px}.dot.available{background:#39b69c}.dot.reserved{background:#e9b550}.dot.occupied{background:#449def}.dot.blocked{background:#e77b90}.legend-section .btn{margin-right:auto}.details-panel{border-right:1px solid var(--line)}.details-head{display:flex;align-items:center;justify-content:space-between;padding:22px 20px 18px;border-bottom:1px solid var(--line)}.details-head h2{font-size:17px;margin-top:5px}.details-icon{font-size:30px;color:#4d96bf}.detail-empty{padding:65px 30px;text-align:center;color:var(--muted);line-height:2}.outline-icon{border:2px solid #3b607a;border-radius:10px;padding:11px;font-size:26px;display:inline-block;margin-bottom:20px}.detail-form{padding:18px;display:grid;gap:13px}.detail-form[hidden]{display:none}.detail-form label,.login-form label{display:grid;gap:7px;color:#a5c0d1;font-size:11px}.detail-form textarea{resize:vertical}.detail-highlight{background:linear-gradient(140deg,#12344a,#112239);border:1px solid #255b78;border-radius:11px;padding:16px;display:grid;gap:7px}.detail-highlight strong{font-size:25px;direction:ltr;text-align:right}.detail-highlight span:last-child{color:#7bcbea;font-size:11px}.field-divider{font-size:11px;color:#6cbbdb;margin-top:7px;border-top:1px solid var(--line);padding-top:15px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.modal{width:min(520px,95vw);max-height:90vh;border:1px solid #3f5973;background:#101e30;color:#f2f8ff;border-radius:15px;padding:23px;box-shadow:0 30px 70px #0009}.modal::backdrop{background:#020710b5;backdrop-filter:blur(4px)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal form{display:grid;gap:14px}.modal label{display:grid;gap:8px;font-size:12px;color:var(--muted)}.history-list{max-height:400px;overflow:auto;display:grid;gap:8px}.history-row{padding:10px;border:1px solid var(--line);border-radius:8px;background:#122338;display:flex;justify-content:space-between;gap:15px}.history-row small{color:var(--muted)}.toast{position:fixed;bottom:24px;left:24px;max-width:min(430px,calc(100% - 48px));padding:14px 18px;background:#163e50;border:1px solid #398ba9;color:#fff;border-radius:11px;box-shadow:0 14px 35px #0009;opacity:0;pointer-events:none;transition:opacity .25s;z-index:999}.toast.show{opacity:1}.toast.error{background:#512b37;border-color:#9e5866}.login-body{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at center,#132c42,#08121f 65%)}.login-card{width:min(410px,92vw);padding:34px;background:#101e30;border:1px solid #29435d;border-radius:20px}.login-card .brand-mark{margin-bottom:26px;width:55px;height:55px}.login-card h1{margin:12px 0}.login-card .muted{line-height:2;font-size:12px}.login-form{display:grid;gap:18px;margin-top:25px}.login-card .hint{font-size:10px;margin-top:24px;line-height:1.8}.alert{background:#4b2734;color:#ffc0cb;border:1px solid #8c4357;border-radius:9px;padding:11px;margin-top:18px}
@media(max-width:1350px){.workspace{grid-template-columns:230px minmax(360px,1fr) 265px}.main-panel{padding:18px}.stats{gap:7px}.plan-toolbar .btn{font-size:11px;padding:8px}}
@media(max-width:1050px){.workspace{grid-template-columns:220px minmax(0,1fr)}.details-panel{grid-column:1 / -1;max-height:none;border-top:1px solid var(--line)}.detail-form{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-highlight{grid-column:1/-1}.detail-form .full{grid-column:1/-1}.detail-empty{padding:30px}.plan-surface{height:55vh}}
@media(max-width:730px){.topbar{padding:0 12px}.brand small{display:none}.brand strong{font-size:12px}.user-pill{display:none}.workspace{display:flex;flex-direction:column}.sidebar,.details-panel{max-height:none;overflow:visible}.booth-list{max-height:220px}.main-panel{padding:12px}.stats{grid-template-columns:repeat(2,1fr)}.plan-surface{min-height:350px;height:50vh}.plan-toolbar{align-items:start}.detail-form{grid-template-columns:1fr}.overview-title h1{font-size:17px}.view-tag{font-size:8px}.plan-footer{flex-direction:column}.legend-section{padding-bottom:16px}}

/* HERMES BRAND SYSTEM / v2.1 — light-first and reversible dark mode */
@font-face{font-family:'IRANSansLocal';src:url('/static/fonts/IRANSans.woff2') format('woff2');font-display:swap}
:root{
  font-family:'IRANSansLocal','IRANSans','Vazirmatn',Tahoma,sans-serif;
  --bg:#f7f6f8;--panel:#fff;--panel2:#faf8fb;--panel3:#f5eff5;
  --line:#e9e4eb;--muted:#817987;--accent:#8b3d82;
  --green:#2a9772;--orange:#b88a30;--red:#c64b64;--text:#29222c;--map-bg:#f5f3f6;
  color:var(--text);background:var(--bg);font-size:13px
}
:root[data-theme=dark]{
  --bg:#121116;--panel:#1c1921;--panel2:#27212b;--panel3:#302534;
  --line:#39323c;--muted:#aea1b0;--accent:#c280b8;
  --green:#60b89a;--orange:#e1b86f;--red:#eb8499;--text:#f5edf5;--map-bg:#18141d;
  color:var(--text);background:var(--bg)
}
body{background:var(--bg);color:var(--text);font-family:inherit}
input,select,textarea{background:var(--panel);color:var(--text);border-color:var(--line);font:inherit}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8b3d8222}
option{background:var(--panel);color:var(--text)}
.topbar,.sidebar,.details-panel,.login-card{background:var(--panel);border-color:var(--line)}
.topbar{height:76px}.workspace{min-height:calc(100vh - 76px)}
.sidebar,.details-panel{max-height:calc(100vh - 76px)}
.main-panel{background:var(--bg)}.plan-card,.stat{background:var(--panel);border-color:var(--line)}
.plan-surface{background:var(--map-bg)}
.section-kicker,.eyebrow,.cyan,.field-divider,.detail-highlight span:last-child{color:var(--accent)}
.view-tag{background:var(--panel3);color:var(--accent);border-color:var(--line)}
.btn{background:var(--panel);color:var(--text);border-color:var(--line)}
.btn:hover{background:var(--panel3);border-color:var(--accent);color:var(--accent)}
.btn.primary{background:#8b3d82;border-color:#8b3d82;color:#fff}
.btn.primary:hover{background:#752e6d;border-color:#752e6d;color:#fff}
.btn.danger-outline{border-color:var(--red);background:transparent;color:var(--red)}
.btn.danger-text{background:transparent;color:var(--red)}
.brand-icon,.brand-mark{background:#8b3d82;border-color:#8b3d82;color:#fff;overflow:hidden}
.brand-icon span,.brand-mark span{color:#fff}.brand-icon img{width:100%;height:100%;object-fit:contain}
.brand strong{letter-spacing:0}.brand small,.muted,.small,.hint,.aside-bottom,.field-label,.stat-label,
.detail-form label,.login-form label,.plan-footer,.legend,.booth-item .company{color:var(--muted)}
.user-pill,.account-top{background:var(--panel2);border:1px solid var(--line);color:var(--text)}
.account-top{display:flex;align-items:center;gap:8px;padding:3px 12px 3px 4px;border-radius:40px;cursor:pointer;font:inherit}
.profile-letter{height:30px;width:30px;border-radius:50%;display:grid;place-items:center;background:#8b3d8222;color:var(--accent);overflow:hidden;font-weight:bold}
.profile-letter img{height:100%;width:100%;object-fit:cover}
.booth-item,.history-row{background:var(--panel2);border-color:var(--line);color:var(--text)}
.booth-item:hover,.booth-item.active{border-color:var(--accent);background:var(--panel3)}
.stat strong{color:var(--text)}.detail-highlight{background:var(--panel3);border-color:var(--line)}
.details-head,.plan-toolbar,.plan-footer,.aside-section{border-color:var(--line)}
.modal{background:var(--panel);color:var(--text);border-color:var(--line);width:min(650px,95vw)}
.modal label{color:var(--text)}.modal::backdrop{background:#110b18aa}
.login-body{background:var(--bg)}.login-card{border:1px solid var(--line)}
.login-card .muted{color:var(--muted)}.alert{background:#f5e0e4;color:#7a2e45;border-color:#dfb9c4}
.nav-menu{padding:20px 12px 14px;border-bottom:1px solid var(--line)}
.nav-menu .section-kicker{margin:0 9px 12px}
.nav-link{display:flex;align-items:center;gap:11px;width:100%;border:0;text-align:right;background:transparent;color:var(--muted);padding:11px 12px;font:inherit;cursor:pointer;border-radius:9px}
.nav-link:hover,.nav-link.active{color:var(--accent);background:var(--panel3);font-weight:700}
.nav-link[hidden]{display:none}
.aside-menu-note{color:var(--muted);font-size:10px;padding:12px 9px 0}
.ownership-info{font-size:11px;line-height:2;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}
.collab-form{display:grid;gap:13px;margin-top:14px}
.collab-form label{display:grid;gap:7px}
.form-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.perm-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border:1px solid var(--line);border-radius:10px;padding:12px}
.modal .check-compact{display:flex;flex-direction:row;align-items:center;gap:7px;font-size:11px;cursor:pointer}
.check-compact input{width:auto;accent-color:#8b3d82}
.collab-list{max-height:53vh;overflow:auto;display:grid;gap:8px;margin-top:17px}
.collab-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.collab-row strong{display:block;font-size:12px;margin-bottom:4px}
.collab-row .small{line-height:1.9}.temporary-password{direction:ltr;display:block;text-align:center;font:700 18px monospace;padding:16px;background:var(--panel3);border-radius:8px;word-break:break-word;margin:18px 0}
.modal hr{border:0;border-top:1px solid var(--line);margin:17px 0}
.plan-surface svg .booth-group.selected .shape{stroke:var(--accent);filter:none}
.toast{background:#302234;border-color:#8b3d82}
@media(max-width:730px){.nav-menu{padding:12px}.nav-link{padding:9px;font-size:12px}.form-fields,.perm-picker{grid-template-columns:1fr}.brand strong{font-size:11px}.account-top{font-size:10px}}

/* V2.2 BRAND POLISH */
.brand-icon{width:50px;height:50px;border-radius:12px;background:transparent;border:0;flex-shrink:0;display:grid;place-items:center}
.brand-icon img{width:100%;height:100%;object-fit:contain}
.brand strong{font-weight:800}
.login-card .brand-mark{display:grid;place-items:center;width:66px;height:66px;border:0;background:transparent;margin-bottom:20px}
.login-card .brand-mark img{width:100%;height:100%;object-fit:contain}
.login-aux a{text-decoration:none;font-weight:600}
.login-aux a:hover{text-decoration:underline}

/* v2.3 shape tools */
.shape-select{min-width:170px;max-width:230px;border:1px solid var(--border, #e5dde6);border-radius:10px;padding:9px;background:var(--surface,#fff);color:var(--text,#242028);font:inherit}#arcLabel{white-space:nowrap}.shape-hint{font-size:12px;color:var(--muted,#807888);line-height:1.9}.edge-editor{border:1px solid #e5dce6;border-radius:12px;padding:12px;background:var(--surface,#fff);margin:9px 0;max-height:350px;overflow-y:auto}.edge-row{display:grid;grid-template-columns:65px 1fr 65px;align-items:center;gap:6px;margin-bottom:8px}.edge-row input{width:100%;min-width:0}.shape-preview{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.shape-preview .btn{font-size:12px}.draft-outline{fill:rgba(139,61,130,.12);stroke:#8b3d82;stroke-width:.12;stroke-dasharray:.25 .15;pointer-events:none}.draft-point{fill:#8b3d82;pointer-events:none}.booth-group .shape{stroke:#8b3d82;stroke-width:.07;stroke-linejoin:round}.shape-select:focus-visible{outline:2px solid #8b3d82}@media(max-width:760px){.shape-select{max-width:180px}}

/* Official uploaded HERMES white mark on purple backdrop; brand settings can override it. */
.brand-icon,.login-card .brand-mark{background:#8b3d82!important;border-radius:12px!important;border:1px solid #8b3d82!important; padding:5px}.brand-icon img,.login-card .brand-mark img{object-fit:contain}.booth-group.selected .shape{stroke:#8b3d82!important;filter:drop-shadow(0 0 2px #c88ebe)}


/* v2.4 FIX: Full-height three-column workbench, only one scroll per column.
   Previous document scrollbar + nested list scroller clipped both inspector and booth list. */
@media (min-width:1151px) {
  html,body{height:100%;overflow:hidden}
  .app-shell{height:100dvh;min-height:0;overflow:hidden}
  .topbar{flex:0 0 76px;position:relative;z-index:10}
  .workspace{flex:1 1 auto;min-height:0;height:auto;overflow:hidden;grid-template-columns:minmax(235px,260px) minmax(360px,1fr) minmax(265px,295px)}
  .sidebar,.main-panel,.details-panel{height:100%;min-height:0;max-height:none!important;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
  .sidebar{display:block;padding-bottom:22px}
  .booth-list{max-height:none!important;min-height:0;overflow:visible!important}
  .aside-bottom{position:static;padding:14px 16px;margin-top:12px}
  .details-panel{padding-bottom:28px}
  .main-panel{padding-bottom:44px}
}
@media (max-width:1150px){
  html,body{height:auto;overflow:auto}
  .app-shell{height:auto;min-height:100vh;overflow:visible}
  .workspace{height:auto;min-height:0;overflow:visible}
  .sidebar,.main-panel,.details-panel{max-height:none!important;height:auto;overflow:visible}
  .booth-list{max-height:260px;overflow-y:auto}
}
@media (max-width:730px){
  .workspace{display:flex;flex-direction:column}
  .booth-list{max-height:240px;overflow:auto}
}
/* v2.4 corridor tooling */
.corridor-button{background:var(--panel3);border-color:#8b3d82;color:var(--accent);font-weight:700}
.corridor-select{max-width:175px;min-width:145px}
.corridor-shape{stroke-opacity:.85;fill:none;pointer-events:stroke;cursor:pointer}
.corridor-axis{stroke-opacity:.78;stroke-dasharray:.35 .27;fill:none;pointer-events:none}
.corridor-group.selected .corridor-shape{stroke-opacity:1;filter:drop-shadow(0 0 2px #8b3d82)}
.corridor-group .corridor-label{font-size:.48px;font-weight:700;text-anchor:middle;dominant-baseline:middle;fill:#512148;pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:.12px}
.corridor-form{padding:18px 16px;display:grid;gap:15px}
.corridor-vertices{display:grid;gap:8px}
.corridor-vertices .corridor-row{display:grid;grid-template-columns:42px 1fr 1fr;align-items:center;gap:7px}
.corridor-vertices input{width:100%;min-width:0}
.corridor-form[hidden],.detail-form[hidden]{display:none!important}
.corridor-draft{stroke-opacity:.4;stroke-linejoin:round;stroke-linecap:round;fill:none;pointer-events:none}
.corridor-draft-axis{stroke:#8b3d82;stroke-width:.09;stroke-dasharray:.25 .18;fill:none;pointer-events:none}
@media(max-width:730px){.corridor-select{max-width:160px}.corridor-form{padding:15px}}

.corridor-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.corridor-item{border-right:3px solid var(--accent);text-align:right;width:100%}
.corridor-dot{background:#c8a7c4!important;border:1px dashed #8b3d82!important;width:12px;height:12px}
.corridor-section{padding-bottom:25px}

/* v2.5 floorplan editing */
.tool-option{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:4px 7px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);font-size:11px;color:var(--muted)}
.tool-option input[type=color]{width:35px;height:30px;padding:2px;border:0;background:transparent;cursor:pointer}
.tool-option input[type=number]{width:62px;padding:5px;text-align:center;direction:ltr}
.pen-tool.active,#noteTool.active{background:var(--accent);border-color:var(--accent);color:#fff}
.pen-stroke,.pen-draft{fill:none;pointer-events:none;stroke-linecap:round;stroke-linejoin:round}
.pen-draft{stroke-dasharray:.3 .12;opacity:.7}
.note-pin{fill:#fff9e9;stroke:#8b3d82;stroke-width:.07}
.note-symbol{fill:#8b3d82;font-size:.55px;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-weight:bold}
.stroke-entry{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:9px;font-size:11px}
.stroke-entry .swatch{width:12px;height:12px;border-radius:50%;display:inline-block;vertical-align:middle;margin:0 4px}
.stroke-entry button{width:auto;font-size:11px}
.detail-form input[type=color]{width:100%;height:42px;cursor:pointer}
.details-panel .field-divider{margin-top:10px}
@media (max-width:1300px){.tool-option input[type=number]{width:55px}}

.quick-links{display:flex;flex-wrap:wrap;gap:7px}.quick-links:empty{display:none}.quick-links a{font-size:11px;color:var(--accent);background:var(--panel3);border:1px solid var(--line);padding:7px 10px;border-radius:8px;text-decoration:none}.quick-links a:hover{border-color:var(--accent)}

/* v2.5 independent contact inspector in the right sidebar */
.contact-sidebar{padding-top:13px;padding-bottom:13px}
.contact-sidebar[hidden]{display:none!important}
.contact-accordion{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--panel2)}
.contact-accordion summary{cursor:pointer;list-style:none;user-select:none;display:flex;gap:6px;align-items:center;justify-content:space-between;padding:11px 12px;font-weight:700;font-size:12px;color:var(--text)}
.contact-accordion summary::-webkit-details-marker{display:none}
.contact-fields{display:grid;gap:10px;padding:12px;border-top:1px solid var(--line)}
.contact-fields label{display:grid;gap:5px;font-size:11px;color:var(--muted)}
.contact-fields textarea{min-height:54px}
.contact-fields .field-divider{font-size:11px;color:var(--accent);font-weight:700}
.contact-fields input,.contact-fields textarea{font-size:12px;padding:8px}
.contact-fields .quick-links{margin:4px 0}

/* v2.6 exact angular positioning */
.angle-actions{display:grid;grid-template-columns:2fr 1fr 1fr;gap:7px}
.angle-actions .btn{min-width:0;padding:9px 5px}
.angle-options{display:grid;gap:10px;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--panel2)}
.angle-options label{font-size:11px}
.angle-options .snap-label{display:flex;align-items:center;justify-content:flex-start;gap:7px}
.angle-options #angleStep{min-height:34px}
.booth-group .rotate-handle{fill:#8b3d82;stroke:#ffffff;stroke-width:.09;cursor:grab;vector-effect:non-scaling-stroke;pointer-events:all;filter:drop-shadow(0 1px 1px #3336)}
.booth-group .rotate-handle:active{cursor:grabbing}
.booth-group .rotate-mark{fill:#fff;font-family:sans-serif;font-size:.49px;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.booth-group .rotate-guide{stroke:#8b3d82;stroke-width:.08;stroke-dasharray:.17 .12;pointer-events:none}
.booth-group .shape.rotate-invalid{stroke:#e04a61!important;stroke-width:3px!important;filter:drop-shadow(0 0 2px #e04a61)}
.angle-options #angleSnap{width:auto}

.edge-measure{text-anchor:middle;dominant-baseline:central;fill:#502046;stroke:var(--map-bg,#fff);stroke-width:.12;paint-order:stroke;pointer-events:none;font-weight:800;letter-spacing:0;vector-effect:non-scaling-stroke}
[data-theme=dark] .edge-measure{fill:#edc9ea;stroke:#18121c}

/* v2.7 status palette + drawing helpers */
.pill.proforma{background:#5a4706;color:#ffe082}
.pill.paid{background:#10391f;color:#8ff0b0}
.pill.cancelled{background:#4b1f25;color:#ffb4bc}
.pill.blocked{background:#374151;color:#d1d5db}
.pill.available{background:#12355b;color:#93c5fd}
.pill.reserved{background:#35215f;color:#d8b4fe}
.pill.occupied{background:#0f3f41;color:#99f6e4}
.legend .dot.proforma{background:#f4b400}
.legend .dot.paid{background:#16a34a}
.legend .dot.cancelled{background:#ef4444}
.legend .dot.blocked{background:#6b7280}
.legend .dot.available{background:#3b82f6}
.legend .dot.reserved{background:#8b5cf6}
.legend .dot.occupied{background:#0ea5a8}
#undoDrawing,#redoDrawing{min-width:92px}

/* ========================================================
   HERMES FloorPlan Studio v3: executable planning workspace
   ======================================================== */
.studio-hall-card{margin-top:16px;padding:14px 11px;border-radius:13px;background:var(--panel3);border:1px solid var(--line);display:grid;gap:11px}
.studio-hall-card .section-header{margin:0;align-items:center;font-size:11px}
.studio-hall-card .muted{line-height:1.7}
.studio-region-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.studio-region-actions .btn{white-space:normal;font-size:10px;min-height:37px}
.studio-region-list{display:grid;gap:6px;max-height:210px;overflow-y:auto}
.studio-region-row{padding:8px 9px;background:var(--panel);border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;gap:7px;justify-content:space-between;font-size:11px;min-width:0}
.studio-region-row>div{min-width:0;overflow-wrap:anywhere}
.studio-region-row small{display:block;font-size:10px;margin-top:5px}
.studio-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:19px}
.studio-kpi{display:flex;flex-direction:column;gap:7px;padding:15px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.studio-kpi span{font-size:11px;color:var(--muted)}
.studio-kpi b{font-size:19px;color:var(--text);direction:ltr;align-self:flex-end}
.studio-kpi small{font-size:10px;color:var(--muted)}
.studio-kpi:first-child{border-top:3px solid #8b3d82}.studio-kpi:nth-child(2){border-top:3px solid #f4b400}.studio-kpi:nth-child(3){border-top:3px solid #16a34a}.studio-kpi:nth-child(4){border-top:3px solid #ef4444}
.finance-fields{display:grid;gap:12px}
.studio-info{border:1px dashed var(--line);border-radius:9px;padding:10px 12px;line-height:1.9}
.booth-internal{background:repeating-linear-gradient(45deg,#8b3d82,#8b3d82 5px,#c998c3 5px,#c998c3 9px)!important;width:14px!important;height:12px!important;border:1px solid #8b3d82}
#waiverReasonWrap[hidden],#boothContactPanel[hidden]{display:none!important}
.plan-surface{background:var(--panel2)}
@media(max-width:1400px){.studio-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.studio-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-kpi{padding:12px}.studio-region-actions{grid-template-columns:1fr 1fr}}

/* v3.1 — persistent pencil eraser and history */
.eraser-tool.active{background:#dc3545;color:#fff;border-color:#f87171}
.plan-surface svg.eraser-cursor{cursor:crosshair}
.pen-stroke.eraser-highlight{filter:drop-shadow(0 0 3px #ef4444);stroke:#ff3b30!important;opacity:1;}
#undoDrawing:disabled,#redoDrawing:disabled{opacity:.43}

/* v3.2: mouse booth drafting and controls */
.booth-draft-fill{fill:#8B3D82;fill-opacity:.21;stroke:none;pointer-events:none}
#repeatBoothsLabel{background:var(--panel2, #192b41);border:1px solid var(--line,#334a62);padding:7px 9px;border-radius:8px}
#selectLastBooth{border-color:#8B3D82;color:#dca6dc}
#finishDrawing:not([hidden]){background:#8B3D82;color:white;border-color:#8B3D82;font-weight:700}

/* v3.3: narrow floor-plan line hit targets */
.corridor-hit{fill:none;stroke-opacity:0;cursor:pointer}


/* v3.4: contrast-correct controls in BOTH themes. Earlier .shape-select used an undefined --surface variable. */
:root .shape-select,:root .corridor-select,:root #shapeSelect,:root #corridorMode,
:root #shapeSelect option,:root #corridorMode option{background:var(--panel)!important;color:var(--text)!important;border-color:var(--line)!important;color-scheme:light}
:root[data-theme="dark"] .shape-select,:root[data-theme="dark"] .corridor-select,
:root[data-theme="dark"] #shapeSelect,:root[data-theme="dark"] #corridorMode,
:root[data-theme="dark"] #shapeSelect option,:root[data-theme="dark"] #corridorMode option{
 background:#27212b!important;color:#f5edf5!important;border-color:#514557!important;color-scheme:dark
}
:root[data-theme="light"] #shapeSelect,:root[data-theme="light"] #corridorMode{background:#fff!important;color:#2a2130!important}
.export-menu{display:inline-block;position:relative;z-index:45}
.export-menu .export-trigger{display:flex;align-items:center;gap:12px;list-style:none;user-select:none;font-weight:750;color:var(--accent);border-color:var(--accent);min-height:40px}
.export-menu summary::-webkit-details-marker{display:none}
.export-menu[open] .export-trigger{background:var(--panel3)}
.export-items{position:absolute;right:0;top:calc(100% + 7px);min-width:208px;max-width:calc(100vw - 25px);display:grid;gap:3px;padding:7px;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:0 14px 35px #0005;z-index:60}
.export-items button{display:block;text-align:right;direction:rtl;background:transparent;color:var(--text);border:0;border-radius:8px;padding:11px 12px;cursor:pointer;white-space:nowrap;font:inherit}
.export-items button:hover,.export-items button:focus-visible{background:var(--panel3);color:var(--accent);outline:0}
.export-items button:disabled{opacity:.45;cursor:not-allowed}
.plan-toolbar{overflow:visible}
.nearest-booths{border:1px solid var(--line);border-radius:10px;background:var(--panel3);padding:12px;font-size:11px;display:grid;gap:9px;line-height:1.75}
.nearest-booths[hidden]{display:none!important}
.nearest-booths strong{font-size:12px;color:var(--text)}
.nearest-row{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding-bottom:5px}
.nearest-row:last-child{border-bottom:0;padding-bottom:0}
.plan-distance-line{fill:none;stroke:#eab308;stroke-width:.085;stroke-dasharray:.25 .14;pointer-events:none}
.plan-distance-dot{fill:#facc15;stroke:#7c2d12;stroke-width:.035;pointer-events:none}
.plan-distance-label{fill:#fef08a;stroke:#1a1820;stroke-width:.12;paint-order:stroke;font-size:.40px;font-weight:900;text-anchor:middle;dominant-baseline:middle;pointer-events:none}
[data-theme="light"] .plan-distance-label{fill:#92400e;stroke:#fff7ed}
.corridor-inner-boundary{pointer-events:none;fill:none;stroke:var(--map-bg);stroke-linecap:round;stroke-linejoin:round}
.corridor-parallel-hit{fill:none;stroke:transparent;pointer-events:stroke;cursor:pointer}
@media(max-width:730px){.export-items{right:auto;left:0}}

/* Allow the export dropdown to overflow the toolbar and float above the plan. */
.plan-card{overflow:visible}
.plan-toolbar{position:relative;z-index:22}
.plan-surface{border-radius:0}
.plan-footer{border-bottom-left-radius:15px;border-bottom-right-radius:15px}

/* v3.5 large-hall navigation and operations */
#panTool.active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}
.plan-surface svg.pan-mode,.plan-surface svg.space-pan{cursor:grab!important}
.plan-surface svg.pan-mode .booth-group,.plan-surface svg.space-pan .booth-group{cursor:grab!important}
.plan-surface svg.panning,.plan-surface svg.panning .booth-group{cursor:grabbing!important}
.plan-card.fullscreen-plan{position:fixed;inset:10px;z-index:75;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 0 9999px #090914e8}
.plan-card.fullscreen-plan .plan-toolbar{flex-shrink:0;max-height:35vh;overflow:auto}
.plan-card.fullscreen-plan .plan-surface{flex:1 1 0;height:auto;min-height:120px}
.plan-card.fullscreen-plan .plan-footer{flex-shrink:0}
.cancel-reason-wrap{padding:13px;border:1px solid #e2485b77;border-radius:10px;background:#ef444412;display:grid;gap:9px}
.cancel-reason-wrap[hidden]{display:none!important}
.cancel-reason-wrap textarea:focus{border-color:#ef4444}
.booth-cancel-info{display:block;margin-top:6px;font-size:10px;line-height:1.6;color:#ef8c92;white-space:normal;max-width:100%;overflow-wrap:anywhere}
.plan-size-preview{padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);font-size:12px}
.plan-size-preview strong{font-size:16px;color:var(--accent)}
.fullscreen-plan #togglePlanFullscreen{background:var(--accent)!important;color:white!important}

/* v3.5.2 – explicit coordinates, readable form in light/dark modes */
.corridor-create-form{min-width:0}
.corridor-coordinate-panel{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:10px;background:var(--panel2)}
.corridor-coordinate-panel strong{font-size:12px;color:var(--text)}
.corridor-coordinate-group{display:grid;gap:6px}
.corridor-coordinate-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;direction:ltr}
.corridor-coordinate-row label{display:grid;gap:5px;min-width:0;direction:ltr;text-align:left;color:var(--text)}
.corridor-coordinate-row input{width:100%;min-width:0;direction:ltr;text-align:left;background:var(--input-bg,var(--panel));color:var(--text)}
.corridor-coordinate-panel button{white-space:normal}
/* Keep coordinate forms usable on small laptop screens. */
.modal{overflow-y:auto;overscroll-behavior:contain}
