.qr-screen{width:min(720px,96vw)!important;max-height:94vh;overflow:auto}
.qr-screen video{width:100%;max-height:48vh;background:#000;border-radius:4px;object-fit:cover}
.qr-actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}
.qr-actions .btn{min-height:52px}
.qr-labels{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.qr-label{background:white;color:#111;border:1px solid #aaa;padding:14px;text-align:center;break-inside:avoid;border-radius:4px}
.qr-label strong{display:block;font:700 24px sans-serif;margin:8px 0}
.qr-label p{color:#222!important;font:14px sans-serif;overflow-wrap:anywhere}
.qr-label img{width:180px;height:180px;max-width:100%;image-rendering:pixelated}
.qr-stage{padding:18px;background:var(--panel2);border-radius:4px;font-size:24px;margin:16px 0}
@media print{
 body.qr-print{background:white!important;color:black!important;height:auto!important;overflow:visible!important}
 body.qr-print > :not(#modal){display:none!important}
 body.qr-print #modal{position:static!important;display:block!important;background:white!important;padding:0!important;overflow:visible!important}
 body.qr-print #modal .box{width:100%!important;max-width:none!important;max-height:none!important;height:auto!important;overflow:visible!important;padding:0!important;box-shadow:none!important;border:0!important;background:white!important;transform:none!important}
 body.qr-print .qr-no-print{display:none!important}
 body.qr-print .qr-labels{display:grid;grid-template-columns:repeat(2,1fr);gap:8mm}
 body.qr-print .qr-label{border-radius:0;page-break-inside:avoid}
 @page{size:A4;margin:12mm}
}

.qr-checklist{border:1px solid #55705b;border-radius:4px;padding:12px;margin:16px 0}.qr-checklist label{display:flex;align-items:center;gap:12px;padding:12px 4px;cursor:pointer}.qr-checklist input{width:24px;height:24px;flex-shrink:0}.qr-checklist p{font-size:14px}

.qr-wall-photo{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:4px}.qr-wall-photo label{display:block;margin-bottom:10px}.qr-wall-photo input{max-width:100%}#qrWallPreview,.transition-photo{display:block;max-width:100%;max-height:320px;object-fit:contain;border-radius:4px;margin-top:12px}#qrWallPreview[hidden]{display:none}

.wall-gallery-image{display:block;width:100%;max-height:65vh;object-fit:contain;margin:16px 0;border-radius:4px}.wall-gallery-image[hidden]{display:none}
.mes-board{margin:24px 0;padding:22px;border:1px solid #3c6650;border-radius:4px;background:var(--panel2)}.mes-board header{display:flex;justify-content:space-between;gap:16px;align-items:start}.mes-board h2{margin:0;font-size:30px}.mes-board p{color:var(--ink2);line-height:1.5}.mes-live{color:var(--ink2);white-space:nowrap}.mes-bottleneck{background:var(--panel2);border:1px solid #a88a3e;padding:16px;border-radius:4px;margin:16px 0}.mes-bottleneck h3{color:var(--ink2);margin:0}.mes-queue{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.mes-tables{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mes-table{border:1px solid #395544;border-radius:4px;padding:16px;background:var(--panel2);min-width:0}.mes-table h3{display:flex;justify-content:space-between;margin:0}.mes-table h3 span{background:var(--panel2);padding:2px 10px;border-radius:4px}.mes-wall{display:flex;flex-direction:column;align-items:stretch;gap:8px;background:var(--panel2);border-left:4px solid #39da77;border-radius:4px;padding:12px;margin:10px 0;overflow-wrap:anywhere}.mes-wall.waiting{border-color:#cdb07a}.mes-wall.blocked{border-color:#f78073}.mes-wall>span strong{font-size:20px}.mes-wall small{color:var(--ink2)}.mes-wall .btn{text-align:left}.mes-unpositioned{padding:12px;margin-top:16px;border:1px dashed #b2a678}.mes-metrics{margin-top:22px}.mes-metrics summary{font-size:22px;cursor:pointer}.mes-metrics table{width:100%;border-collapse:collapse}.mes-metrics th,.mes-metrics td{padding:12px;text-align:left;border-bottom:1px solid #365440}.mes-form label{display:block;margin:15px 0 6px}.mes-form select,.mes-form textarea{width:100%;padding:12px;color:inherit;background:var(--panel2);border:1px solid #50725b;border-radius:4px}.mes-form .mes-choice{display:flex;gap:12px;align-items:center}.mes-form .mes-choice input{width:24px;height:24px}.mes-status{padding:16px;background:var(--panel2);border-radius:4px;margin:16px 0;font-size:22px}.mes-secondary{border-top:1px solid #3b5542;margin-top:20px;padding-top:14px}.mes-secondary summary{cursor:pointer;padding:8px}@media(max-width:640px){.mes-board{padding:12px}.mes-tables{gap:8px}.mes-table{padding:10px}.mes-table h3{font-size:19px}.mes-table .mes-wall{padding:8px}.mes-board header{display:block}.mes-wall .btn{white-space:normal;padding:8px}.mes-wall>span strong{font-size:17px}.mes-queue{grid-template-columns:1fr}}
.main>.wrap{width:100%;min-width:0;box-sizing:border-box}.mes-board,.mes-metrics,.analytics-table-wrap{min-width:0;max-width:100%}.mes-tables{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.mes-table h3{flex-wrap:wrap;gap:6px}.mes-board .btn{white-space:normal}.mes-metrics table{min-width:660px}.mes-form .btn{min-height:48px}
/* Sliding application navigation, shared by desktop and mobile. */
.shell>.side{position:fixed;inset:0 auto 0 0;width:min(320px,88vw);height:100dvh;z-index:80;transform:translateX(-100%);visibility:hidden;transition:transform .22s ease,visibility .22s;background:var(--panel2);border-right:1px solid #3c6048;box-shadow:16px 0 50px #0007;overflow-y:auto;display:flex;flex-direction:column}.shell>.side.open{transform:translateX(0);visibility:visible}.side .side-list{display:flex}.menu-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 16px;border-bottom:1px solid #38533e}.menu-heading strong{font-size:26px;color:#39db79}.menu-links{padding:16px;display:grid;gap:8px}.menu-links button{border:1px solid transparent;border-radius:4px;background:transparent;text-align:left;color:inherit;padding:16px;font-size:20px;cursor:pointer}.menu-links button:hover{background:var(--panel2)}.menu-links button.on{background:var(--panel2);border-color:#38d977;color:var(--ink2)}.menu-context{padding:0 18px;margin:8px 0;color:var(--ink2)}.main .side-toggle{display:block;width:auto;flex:none;padding:12px 16px}.menu-backdrop{position:fixed;inset:0;z-index:79;background:#0009;border:0;cursor:pointer}.menu-backdrop[hidden]{display:none}.menu-open{overflow:hidden}.nav-projects{margin-top:20px}.client-choices{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.view-project{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.view-project select{padding:12px;background:var(--panel2);color:inherit;border:1px solid #45684e;border-radius:4px;max-width:100%}@media(prefers-reduced-motion:reduce){.shell>.side{transition:none}}
/* Compact screen layout. Printed QR labels retain their original dimensions. */
@media screen{
  body{font-size:14px;line-height:1.4}
  h1{font-size:24px}h2{font-size:20px}h3{font-size:16px}
  .btn{font-size:13px;padding:6px 10px;min-height:32px;border-radius:4px;line-height:1.3}
  .btn.small{font-size:12px;padding:4px 8px;min-height:28px}
  .top{gap:6px 8px;padding:10px 14px;align-items:center}.top .grow{flex:1 1 210px}.top .hint{font-size:12px;margin-top:2px}
  .main .side-toggle{padding:6px 10px;font-size:13px}.wrap{padding:12px 14px 40px}
  .connection{padding:6px 12px;gap:6px 10px;font-size:12px}.header-logo{width:130px}.connection .btn{padding:5px 9px}
  .shell>.side{width:min(270px,85vw)}.menu-heading{padding:12px}.menu-heading strong{font-size:21px}
  .menu-links{padding:10px;gap:4px}.menu-links button{font-size:15px;padding:9px 12px;min-height:38px;border-radius:4px}
  .menu-context{font-size:12px;margin:6px 0;padding:0 12px}.side-head2{padding:8px 10px;gap:6px}.side-item{padding:6px 8px;font-size:13px}.side-item .mt{font-size:11px}
  .project-dashboard{grid-template-columns:minmax(140px,1fr) 150px minmax(220px,1.3fr);gap:16px;padding:16px;margin-bottom:14px;border-radius:4px}
  .dashboard-intro h2{font-size:27px;margin:5px 0}.dashboard-intro p{margin:6px 0}.dashboard-eyebrow{font-size:11px}.project-pie{width:150px}
  .phase-legend{gap:2px}.phase-legend button{font-size:13px;padding:5px 6px;gap:6px;grid-template-columns:10px 1fr 24px 44px;border-radius:4px}.phase-dot{width:10px;height:10px}
  .mes-board{padding:14px;margin:14px 0;border-radius:4px}.mes-board h2{font-size:22px}.mes-board p{font-size:13px;margin:8px 0}
  .mes-bottleneck{padding:12px;margin:12px 0}.mes-bottleneck h3{font-size:17px}.mes-tables{gap:10px}.mes-table{padding:10px;border-radius:4px}.mes-table h3{font-size:16px}
  .mes-wall{padding:8px;margin:7px 0;gap:5px;font-size:13px}.mes-wall>span strong{font-size:15px}.mes-wall .btn{align-self:flex-start;max-width:100%;padding:5px 8px}.mes-wall small{font-size:12px}
  .mes-metrics summary{font-size:18px}.mes-metrics th,.mes-metrics td{padding:8px}
  .pending-walls{padding:12px;margin:10px 0 16px}.pending-walls h2{font-size:22px}.pending-walls header{gap:10px;margin-bottom:10px}.pending-walls header>strong{font-size:24px;padding:3px 10px}
  .pending-walls .grid{grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:8px}.tile .c{font-size:17px}.tile{min-height:52px;padding:7px 8px}
  .wall-responsible,.wall-card .wall-responsible{padding:7px 9px;margin:5px 0;gap:3px;border-radius:4px}.wall-responsible>strong,.wall-card .wall-responsible>strong{font-size:15px}.wall-responsible.unconfirmed>strong{font-size:12px}
  .station{padding:12px;border-radius:4px}.station h2{font-size:19px;padding-bottom:8px;margin-bottom:10px}.station-columns{gap:10px}.station-columns h3{font-size:15px;margin-bottom:8px}.station-wall .btn.small,.station-done .btn.small{align-self:flex-start}
  .production-day{gap:8px;margin:12px 0}.production-day input,.view-project select{padding:6px 9px}.client-choices{gap:7px;margin-bottom:16px}.ccard{padding:10px;border-radius:4px}.ccard .cn{font-size:18px}
  .daily-analytics{padding:14px;margin:14px 0;border-radius:4px}.analytics-kpis{gap:8px;margin:12px 0}.analytics-kpis>div{padding:11px;gap:5px;border-radius:4px}.analytics-kpis strong{font-size:23px}.daily-analytics th,.daily-analytics td{padding:8px}
  .modal .box{padding:18px;border-radius:4px}.qr-screen{width:min(600px,96vw)!important}.qr-screen h2{font-size:22px}.qr-actions{gap:8px;margin:12px 0}.qr-actions .btn,.mes-form .btn{min-height:36px}
  .qr-stage,.mes-status{font-size:18px;padding:12px;margin:10px 0}.qr-checklist{padding:9px;margin:10px 0}.qr-checklist label{gap:8px;padding:7px 2px}.qr-checklist input,.mes-form .mes-choice input{width:20px;height:20px}
  .mes-form label{margin:10px 0 5px}.mes-form select,.mes-form textarea{padding:8px}.qr-wall-photo{padding:10px;margin:12px 0}.mes-secondary{margin-top:12px;padding-top:8px}
}
@media screen and (max-width:900px){.project-dashboard{grid-template-columns:150px minmax(0,1fr)}.dashboard-intro{grid-column:1/-1}}
@media screen and (max-width:560px){
  h1{font-size:21px}.top{padding:8px 10px;gap:6px}.top .grow{flex:1 1 190px}.header-logo{width:105px}.connection{gap:5px 8px;padding:6px 10px}.connection span{font-size:11px}
  .wrap{padding:10px 10px 32px}.project-dashboard{padding:12px;gap:10px;grid-template-columns:100px minmax(0,1fr)}.project-pie{width:100px}.dashboard-intro h2{font-size:24px}.dashboard-intro small{max-width:none;font-size:12px}
  .phase-legend button{font-size:12px;grid-template-columns:8px minmax(0,1fr) 19px 35px;gap:4px;padding:5px 3px}.phase-dot{width:8px;height:8px}.phase-legend small{font-size:11px}
  .mes-board{padding:10px}.mes-table{padding:8px}.mes-table h3{font-size:15px}.mes-table p{font-size:12px}.mes-wall>span strong{font-size:14px}.mes-live{font-size:12px}
  .modal .box{padding:14px}.qr-screen h2{font-size:20px}
}
@media screen and (pointer:coarse){
  .btn,.btn.small,.main .side-toggle,.qr-actions .btn,.mes-form .btn,.menu-links button{min-height:40px}
  .qr-checklist label,.station-layers label{min-height:40px}
  .modal input:not([type=checkbox]),.modal select,.modal textarea,.view-project select,.production-day input{font-size:16px}
}
/* Workshop floor plan: physical table positions, independent of work queues. */
.workshop-layout{margin:14px 0}.workshop-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px}.workshop-legend span{display:flex;align-items:center;gap:6px}.workshop-legend span:before{content:'';width:9px;height:9px;border-radius:3px;background:var(--table-color)}.workshop-layout .running{--table-color:#8fae94}.workshop-layout .waiting{--table-color:#cdb07a}.workshop-layout .blocked{--table-color:#f78073}.workshop-layout .empty{--table-color:#71887a}.workshop-layout .workshop-help{font-size:12px;margin:8px 0}.workshop-plan{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,7vw,90px);max-width:560px;margin:12px auto 16px;padding:16px 20px;border:1px solid #3a443e;border-radius:4px;background-color:var(--panel2);background-image:linear-gradient(#7fa28a0d 1px,transparent 1px),linear-gradient(90deg,#7fa28a0d 1px,transparent 1px);background-size:12px 12px}.workshop-lane{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}.workshop-lane h3{font-size:14px;text-align:center;margin:0 0 2px}.workshop-lane h3 small{display:block;color:var(--ink2);font:12px var(--f);margin-top:4px}.workshop-table{position:relative;width:112px;height:108px;max-width:100%;flex:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;border:2px solid var(--table-color);border-radius:3px;background:repeating-linear-gradient(0deg,transparent,transparent 11px,#91b49c12 11px,#91b49c12 12px),#1d3425;color:var(--ink2);padding:6px;box-shadow:inset 6px 0 #09180c55,inset -6px 0 #09180c55;cursor:pointer}.workshop-table strong{font:600 24px var(--f)}.workshop-table span{font-size:12px}.workshop-table small{font-size:10px;line-height:1.2;color:var(--ink2);text-align:center}.workshop-table[aria-pressed=true]{outline:2px solid #fff;outline-offset:3px;background-color:var(--panel2)}.workshop-table:hover{background-color:var(--panel2)}.workshop-table:focus-visible{outline-color:var(--accent)}.workshop-cnc{position:relative;width:100%;max-width:190px;height:34px;flex:none;display:flex;align-items:flex-start;justify-content:center;background:linear-gradient(#a7b6ac,#667c6d) left bottom 9px/100% 7px no-repeat}.workshop-cnc:before,.workshop-cnc:after{content:'';position:absolute;bottom:0;width:8px;height:21px;border:1px solid #a7b6ac;background:var(--panel2)}.workshop-cnc:before{left:0}.workshop-cnc:after{right:0}.workshop-cnc span{font-size:11px;color:var(--ink2);white-space:nowrap}.workshop-cnc i{position:absolute;bottom:7px;left:30%;width:19px;height:10px;border:1px solid #cedbd2;background:var(--panel2)}.workshop-end{font-size:12px;color:var(--ink2);text-align:center}.workshop-details{border-top:1px solid #3c5845;padding-top:12px}.workshop-details h3{font-size:16px}.workshop-walls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:8px}@media(max-width:440px){.workshop-plan{padding:12px;gap:26px}.workshop-table{width:94px;height:100px}.workshop-cnc span{font-size:10px}.workshop-details h3{font-size:15px}}
.workshop-table{width:88px;height:108px}.workshop-cnc{max-width:160px}.workshop-plan{max-width:500px}@media(max-width:440px){.workshop-table{width:78px;height:100px}}

/* Supplied workshop drawing, with physical-position controls over each table. */
.workshop-image-scroll{overflow-x:auto;margin:12px 0;border-radius:4px;background:#fff}.workshop-image-plan{position:relative;max-width:1100px;min-width:610px;margin:auto}.workshop-image-plan img{display:block;width:100%;height:auto}.workshop-image-plan .workshop-table{position:absolute;width:6.2%;height:18%;max-width:none;padding:2px;background:color-mix(in srgb,var(--table-color) 30%,transparent);border:3px solid var(--table-color);box-shadow:none;color:#07160c;justify-content:flex-end}.workshop-image-plan .workshop-table strong{display:none}.workshop-image-plan .workshop-table small{display:none}.workshop-image-plan .workshop-table span{font:600 11px var(--f);background:#fffef2;padding:2px;border-radius:3px;white-space:nowrap}.workshop-image-plan .workshop-table[aria-pressed=true]{outline:3px solid #123cfa;outline-offset:2px}.workshop-image-plan .workshop-table:hover{background:#42dc7c55}
.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.chart-card{padding:16px;border:1px solid #3a443e;border-radius:4px;background:var(--panel2);min-width:0}.chart-card h3{margin:0;font-size:17px}.chart-card p,.chart-card small{font-size:12px;color:var(--ink2)}.chart-card p{margin:5px 0 20px}.chart-wide{grid-column:1/-1}.daily-columns{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;padding:20px 0 0}.day-column{text-align:center;font-size:11px}.column-track{position:relative;height:135px;border-bottom:1px solid #678370;display:flex;align-items:flex-end;justify-content:center;background:repeating-linear-gradient(to top,transparent 0,transparent 44px,#ffffff0a 44px,#ffffff0a 45px)}.column-fill{width:65%;max-width:36px;background:#8fae94;border-radius:4px 4px 0 0}.column-track strong{position:absolute;font-size:12px;margin-bottom:4px}.day-column>span{display:block;margin-top:7px}.chart-donut-layout{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.chart-donut{width:145px;height:145px;border-radius:50%;display:grid;place-items:center;flex:none}.chart-donut>span{width:100px;height:100px;background:var(--panel2);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px}.chart-donut strong{font-size:28px}.chart-legend{list-style:none;margin:0;padding:0;flex:1;min-width:130px}.chart-legend li{display:flex;align-items:center;gap:7px;margin:6px 0;font-size:12px}.chart-legend li span{flex:1}.chart-legend i,.time-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;flex:none}.time-row{display:grid;grid-template-columns:28px minmax(60px,1fr) 92px 65px;gap:10px;align-items:center;margin:14px 0;font-size:12px}.time-track{height:22px;display:flex;background:#ffffff08;border-radius:3px;overflow:hidden}.time-legend{display:flex;gap:18px;margin:18px 0 10px;font-size:12px}.time-legend span{display:flex;gap:6px;align-items:center}.analytics-details{margin:16px 0}.analytics-details summary{cursor:pointer}
@media(max-width:700px){.chart-grid{grid-template-columns:1fr}.chart-card{padding:12px}.time-row{grid-template-columns:24px minmax(40px,1fr) 78px;gap:6px}.time-row small{grid-column:2/-1;margin-top:-10px}.chart-donut-layout{gap:14px}.chart-donut{width:125px;height:125px}.chart-donut>span{width:86px;height:86px}}

/* White GreenHouse theme. */
body,.top,.connection,.shell>.side,.modal .box,.drawer,#loginGate{background:#fff;color:var(--ink)}
#loginGate{background-image:none}#loginForm{box-shadow:0 4px 14px #0000001f}
.connection .header-logo{margin-right:auto}.btn{background:#f2f3f2;color:#2f5b3f;border-color:#d5d8d5}.btn:hover:not(:disabled){background:#eceeec;border-color:#2f5b3f}.btn.primary,.btn.primary:hover:not(:disabled){background:#2f5b3f;color:white;border-color:#2f5b3f}
#logout{color:#a32922;background:#fff6f5;border-color:#edcfcb}
.menu-links button.on{background:#eef0ee;color:#2f5b3f;border-color:#d3d7d3}.menu-heading strong,.mes-live{color:#2f5b3f}
.mes-board,.chart-card,.daily-analytics,.project-dashboard{background:#fff;border-color:var(--line)}.mes-bottleneck{background:#fff9e9;border-color:#ebd99b}.mes-bottleneck h3{color:#735515}.mes-wall,.station-wall,.station-done{background:#f4f5f4}.mes-board p,.mes-wall small,.chart-card p,.chart-card small{color:var(--ink2)}
.chart-donut>span{background:#fff}.time-track{background:#eff0ef}.column-track{border-color:#cad9cf;background:repeating-linear-gradient(to top,transparent 0,transparent 44px,#eceeec 44px,#eceeec 45px)}
input::placeholder,textarea::placeholder{color:#657a6e}.modal .box,.drawer{box-shadow:0 4px 14px #0000001f}.tile.s5{color:var(--ink)}.workshop-legend{display:none}.workshop-image-scroll{background:white}.workshop-image-plan .workshop-table[aria-pressed=true]{outline-color:#2f5b3f}

.analytics-kpis strong{color:#2f5b3f}.workshop-legend{display:none}

/* Keep wall cards on the same side and row as their physical table. */
.workshop-with-walls{min-width:1000px;max-width:1400px}.workshop-side-details{position:absolute;width:24%;padding:7px;border:1px solid var(--line);border-radius:4px;background:#fff;max-height:20%;overflow:auto}.workshop-side-details.line-one{left:1%}.workshop-side-details.line-two{right:5%}.workshop-side-details[hidden]{display:none}.workshop-side-details.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.workshop-side-details h3{font:600 12px var(--f);margin:0 0 5px;color:var(--ink2)}.workshop-side-details>p{font-size:12px;margin:6px 0}.workshop-side-details .mes-wall{margin:0;padding:6px 8px;gap:3px;font-size:12px;border-radius:4px}.workshop-side-details .mes-wall .btn{font-size:12px;min-height:28px;padding:3px 6px}.workshop-side-details .mes-wall>span strong{font-size:12px}.workshop-side-details .mes-wall small{font-size:11px}.workshop-side-details .mes-wall+.mes-wall{margin-top:5px}

.compact-production{margin-top:18px;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:white}.compact-production header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px}.compact-production h2{font-size:17px;margin:0}.process-legend{display:flex;flex-wrap:wrap;gap:6px}.compact-production-scroll{overflow-x:auto}.compact-production table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}.compact-production th,.compact-production td{padding:9px 10px;text-align:left;border-bottom:1px solid #e5ece7}.compact-production thead th{background:#f5f6f5;color:#53685b;font-weight:600}.compact-production tbody tr:hover{background:#f6f7f6}.wall-row-open{border:0;background:transparent;color:#2f5b3f;font:600 12px var(--f);padding:4px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.process-status{display:inline-block;border-radius:4px;padding:4px 7px;font-size:11px;font-weight:600;border:1px solid transparent}.process-status.not-started{background:#eaf2ff;color:#174b95;border-color:#cbdcf6}.process-status.complete{background:#e5f5e9;color:#176b35;border-color:#bfe2c9}.process-status.paused{background:#fff0dc;color:#985100;border-color:#f1cb91}.process-status.running{background:#eef0f0;color:#3d5f5a;border-color:#b5deda}.process-status.waiting{background:#f1f3f4;color:#58616b;border-color:#dce1e4}

/* Centered wall details: progress is read-only here, validated through QR. */
body.wall-details-open{overflow:hidden}
.drawer-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#102d2455;z-index:19;width:100%;height:100%;padding:0}
.drawer-backdrop[hidden],.signed-out .drawer-backdrop{display:none}
.drawer{display:none;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:min(600px,calc(100% - 24px));max-height:calc(100dvh - 32px);border:1px solid var(--line);border-radius:4px;transition:none;overflow:hidden}
.drawer.open{display:flex;transform:translate(-50%,-50%)}
.drawer .head{padding:12px 14px 9px}.drawer .head h2{font-size:21px;margin:0}.drawer .head .sub{font-size:12px}
.drawer .body{padding:10px 14px;min-height:0;font-size:13px}.drawer .foot{padding:8px 14px;font-size:11px}
.drawer .wall-dimensions{margin-bottom:8px}.drawer .next-stage-panel{padding:8px 10px;margin:0 0 8px}.drawer .next-stage-panel h3{font-size:16px;margin:2px 0}.drawer .next-stage-panel p{font-size:12px;margin:3px 0}
.drawer .stages{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.drawer .stage-row{padding:4px 6px;font-size:11px;gap:5px}.drawer .stage-row .sw{width:7px;height:7px}
.drawer .workflow-links{gap:6px;margin:8px 0;flex-wrap:wrap}.drawer .btn{font-size:12px;padding:5px 8px;min-height:30px}
.drawer .layers h2{font-size:16px;margin:10px 0 3px}.drawer .layer-readonly-help{font-size:11px;color:var(--ink2);margin:0 0 5px}
.wall-layer-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.drawer .layers h3{font-size:13px;margin:6px 0}
.wall-layer-row{display:flex;align-items:center;gap:6px;padding:3px 0}.layer-name{flex:1;min-width:0;overflow-wrap:anywhere}.layer-state{color:#697b73;font-size:15px}.layer-state.complete{color:#158447}
.wall-layer-row .rm{border:0;background:none;color:var(--ink2);padding:3px;min-width:24px;min-height:26px}.drawer .layers .addbtn{font-size:10px;padding:2px 0;margin:0 0 3px}
.drawer .note{margin-top:10px}.drawer .note textarea{min-height:48px;font-size:12px;padding:6px}
@media(max-width:480px){.wall-layer-groups{grid-template-columns:1fr;gap:6px}.drawer .foot{flex-wrap:wrap}.drawer{max-height:calc(100dvh - 16px)}}

.clients .cgrid.portfolio-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.portfolio-card{padding:14px;gap:8px;min-width:0;text-align:left}.portfolio-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}.portfolio-heading .cn{font-size:17px;overflow-wrap:anywhere}.portfolio-heading .cs{flex:none;margin:0}.portfolio-client,.portfolio-caption{font-size:12px;color:var(--ink2)}
.portfolio-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin:8px 0}.portfolio-metrics div{display:flex;flex-direction:column;gap:3px}.portfolio-metrics strong{font-size:19px;color:var(--ink);overflow-wrap:anywhere}.portfolio-metrics span{font-size:11px;color:var(--ink2)}
.portfolio-progress{display:block;width:100%;height:7px;border:0;border-radius:4px;overflow:hidden;appearance:none;background:#eceeec;accent-color:#2f5b3f}.portfolio-progress::-webkit-progress-bar{background:#eceeec;border-radius:4px}.portfolio-progress::-webkit-progress-value{background:#2f5b3f;border-radius:4px}.portfolio-progress::-moz-progress-bar{background:#2f5b3f;border-radius:4px}
.portfolio-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.portfolio-toolbar>span{font-size:12px;color:var(--ink2)}.client-summary{padding:14px;border:1px solid var(--line);border-radius:4px;margin-bottom:12px;background:#f5f6f5}.client-summary h2{font-size:19px;margin:0}.client-summary .portfolio-heading>span,.client-summary small{font-size:12px;color:var(--ink2)}.client-summary small{display:block;margin-top:8px}.client-summary .portfolio-caption{display:block;margin-top:6px}
@media(max-width:480px){.client-summary .portfolio-heading{align-items:flex-start;flex-direction:column}.portfolio-metrics strong{font-size:17px}}

/* Align the client overview with the left edge of the page. */
.main>.wrap:has(#app>.client-choices){margin-left:0;margin-right:auto}

.gross-production{border:1px solid var(--line);border-radius:4px;padding:14px;margin:0 0 14px;background:#fff}.gross-production h2{font-size:18px;margin:0 0 5px}.gross-production>p,.gross-production>small{font-size:12px;color:var(--ink2);margin:5px 0}.gross-production-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.gross-production-grid>div{display:flex;flex-direction:column;gap:5px;border:1px solid #dce9df;border-radius:4px;padding:12px;background:#f5f6f5}.gross-production-grid span{font-size:12px;color:var(--ink2)}.gross-production-grid strong{font-size:25px;color:#14723e}.gross-production-grid strong small{font-size:14px;font-weight:500}@media(max-width:540px){.gross-production-grid{grid-template-columns:1fr}.gross-production-grid>div{padding:10px}}

.current-production-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.current-production-grid .current-running{border-top:3px solid #279a96}.current-production-grid .current-paused{border-top:3px solid #df9e39}.current-production-grid .current-waiting{border-top:3px solid #98a2ac}@media(max-width:760px){.current-production-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.current-production-grid{grid-template-columns:1fr}}

.workshop-machines-layout{display:flex;align-items:stretch;min-width:1280px}.workshop-machines-layout>.workshop-with-walls{flex:1;margin:0;align-self:flex-start}.preparation-modules{width:240px;flex:none;padding:8px;display:flex;flex-direction:column;gap:10px}.preparation-modules>h3{font-size:14px;margin:0}.prep-module{border:1px solid var(--line);border-radius:4px;padding:10px;background:#f6f7f6}.prep-module h3{font-size:17px;margin:0}.prep-module svg{width:100%;height:120px}.prep-module p,.prep-module summary,.preparation-modules>p{font-size:12px}.prep-wall{display:flex;flex-direction:column;gap:4px;padding:6px 0;font-size:12px}.prep-module details{margin-top:8px}.prep-module details .btn{margin:3px}.prep-qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.prep-qr-grid section{padding:12px;border:1px solid var(--line);border-radius:4px}.prep-qr-grid .btn{margin:8px 0}.prep-qr-grid label{display:block}.prep-qr-grid select{max-width:100%}@media(max-width:480px){.prep-qr-grid{grid-template-columns:1fr}}

.material-config{margin-top:12px}.material-config summary{cursor:pointer;font-weight:600;margin:10px 0}.material-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}.material-links label{display:flex;flex-direction:column;font-size:12px;gap:4px}.material-links select{width:100%;max-width:100%;font-size:12px}.material-analytics .gross-production-grid b{font-size:16px}.material-analytics small{line-height:1.5}

.material-config{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:4px;background:#fff}.material-config table{width:100%;border-collapse:collapse}.material-config th,.material-config td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}.material-config details{margin:16px 0}.material-config p{color:var(--muted);font-size:13px}

.active-analytics{padding:16px 0}.active-analytics p{font-size:12px;color:var(--muted)}.euro-dashboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.euro-card{padding:16px;border:1px solid #cce3d9;border-top:4px solid #12834b;border-radius:4px;background:#f5f6f5}.euro-current{border-top-color:#1687bd;background:#f0f8fc}.euro-week{border-top-color:#7460b4}.euro-month{border-top-color:#125b3e}.euro-card h3{margin:0 0 16px;font-size:15px}.euro-card>div{display:flex;flex-direction:column;gap:5px;margin:12px 0}.euro-card strong{font-size:22px;font-variant-numeric:tabular-nums}.euro-buy{color:#965009}.euro-sell{color:#08723b}.price-incomplete{color:#955500!important}.global-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px}.global-charts>section{padding:16px;border:1px solid var(--line);border-radius:4px}.global-bars{display:flex;gap:8px;height:210px;align-items:end}.global-bars>div{flex:1;min-width:0;text-align:center}.global-bars b{font-size:11px}.global-bars>div>div{height:150px;display:flex;align-items:end;justify-content:center}.global-bars i{display:block;background:#16864d;width:65%;min-height:2px;border-radius:4px 4px 0 0}.global-phase-chart{display:flex;align-items:center;gap:20px}.global-phase-chart .project-pie{width:150px;height:150px;min-width:150px}.global-phase-chart ul{list-style:none;padding:0;flex:1}.global-phase-chart li{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:12px}.global-phase-chart li i{width:10px;height:10px;border-radius:50%}.global-phase-chart li b{margin-left:auto}.active-analytics table{width:100%;border-collapse:collapse}.active-analytics td,.active-analytics th{padding:10px;border-bottom:1px solid var(--line);text-align:left}.active-analytics details{margin-top:20px}@media(max-width:1000px){.euro-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.global-charts{grid-template-columns:1fr}.euro-card{padding:10px}.euro-card strong{font-size:18px}}

/* Compact scan dialogs: action first, secondary controls folded. */
.qr-screen { max-width: 460px; }
.qr-screen h2 { font-size: 1.3rem; margin-bottom: 6px; }
.qr-screen p { font-size: .875rem; margin: 6px 0; }
.qr-screen p:empty { display: none; }
.qr-screen .mes-status { padding: 10px 12px; font-size: .95rem; border-left: 4px solid #8296a0; }
.qr-screen .qr-status-running { border-left-color: #138a79; }
.qr-screen .qr-status-blocked { border-left-color: #dc9420; }
.qr-screen .qr-status-waiting { border-left-color: #4885c8; }
.qr-screen .qr-checklist { padding: 8px 10px; margin: 10px 0; }
.qr-screen .qr-checklist label { padding: 6px 0; margin: 0; font-size: .95rem; }
.qr-screen #mesConfirm { width: 100%; min-height: 44px; margin-top: 8px; }
.qr-screen .mes-secondary { margin-top: 12px; padding-top: 8px; }
.qr-screen .mes-secondary summary { cursor: pointer; font-size: .9rem; }
.qr-screen .qr-actions { gap: 8px; flex-wrap: wrap; margin-top: 12px; }

.qr-screen .qr-material-details { margin: 10px 0; font-size: .9rem; }
.qr-screen .qr-material-details summary { cursor: pointer; color: #45635a; }

/* Dru i lameluar · Depo · Kamionët (16.10.2026) */
.glulam-line,.depot-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:10px 12px;margin:10px 0;border:1px solid var(--line);border-radius:4px;background:var(--panel2)}
.depot-line{justify-content:flex-start}
.depot-pick{display:flex;align-items:center;gap:8px;font-weight:500}
.depot-pick select,.depot-wall select,.load-add select{padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:inherit;font:inherit;min-height:40px}
.glulam-ok{color:var(--ok);font-weight:600;white-space:nowrap}
.glulam-warn{color:#985100;font-weight:600;white-space:nowrap}
.load-tag{display:inline-block;padding:3px 8px;border-radius:4px;background:#eef0f0;color:#3d5f5a;font-size:12px;font-weight:600;white-space:nowrap}
.modal .glulam-box{width:min(880px,100%)}
.glulam-box h3{margin:16px 0 6px;font-size:16px}.glulam-box h3 small{font-weight:400;color:var(--ink2)}
.gl-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px 12px;align-items:end}
.gl-fields label,.gl-op label{display:grid;gap:3px;margin:0;font-weight:500}
.gl-fields label span,.gl-op label span{font-size:12px;color:var(--ink2);font-weight:500}
.gl-fields input,.gl-op input{width:100%;min-width:0;padding:8px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);font:inherit;font-variant-numeric:tabular-nums}
.gl-fields input.bad{border-color:var(--warn)}
.modal .gl-check{display:flex;align-items:center;gap:8px;min-height:40px;margin:0}.gl-check input{width:18px;height:18px;accent-color:var(--ok)}
.gl-op{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(6,minmax(0,1fr)) 32px;gap:6px;align-items:end;margin-bottom:8px}
.gl-op .rm{border:0;background:transparent;font-size:20px;color:var(--ink2);cursor:pointer;min-height:40px}
.gl-empty{color:var(--ink2);font-size:14px;margin:6px 0}
.gl-result{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0 8px}
.gl-result div{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:8px 10px;display:grid}
.gl-result span{font-size:12px;color:var(--ink2)}.gl-result strong{font-size:20px;font-variant-numeric:tabular-nums}
.glulam-sketch{display:block;width:100%;height:auto;max-height:300px;margin:4px 0}
.glulam-box table,.load-card table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.glulam-box th,.glulam-box td,.load-card th,.load-card td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left}
.glulam-box tfoot td{font-weight:700}
@media(max-width:700px){.gl-op{grid-template-columns:repeat(3,minmax(0,1fr));padding-bottom:8px;border-bottom:1px dashed var(--line)}.gl-op .gl-op-name{grid-column:1/3}.gl-result{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ship-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:16px 0}
.ship-kpis div{border:1px solid var(--line);border-radius:4px;padding:12px;display:grid;gap:2px;background:var(--panel)}
.ship-kpis strong{font-size:28px;line-height:1}.ship-kpis span{color:var(--ink2);font-size:13px}.ship-kpis .warn strong{color:#985100}
.depot,.trucks{margin:22px 0}
.depot>header,.trucks>header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:10px}
.depot h2,.trucks h2{margin:0}.depot header p,.trucks header p{margin:2px 0 0;color:var(--ink2);font-size:14px}
.depot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.depot-zone{border:1px solid var(--line);border-radius:4px;padding:10px;background:var(--panel)}
.depot-zone.none{border-color:#f1cb91;background:#fff8ee}
.depot-zone h3{margin:0 0 8px;font-size:17px;display:flex;justify-content:space-between;gap:8px}.depot-zone h3 small{font-weight:400;color:var(--ink2);font-size:13px}
.depot-wall{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px 8px;padding:6px 0;border-top:1px solid var(--line)}
.depot-wall .wall-row-open{font-size:15px;text-align:left}.depot-wall .load-tag{grid-column:2}.depot-wall select{grid-column:3;grid-row:1}
.depot-kg{font-variant-numeric:tabular-nums;font-size:13px;white-space:nowrap}.depot-kg.unconfirmed{color:#985100}
.load-card{border:1px solid var(--line);border-radius:4px;padding:12px;margin-bottom:12px;background:var(--panel)}
.load-card.shipped{opacity:.8;background:var(--panel2)}
.load-card>header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-bottom:8px}
.load-card h3{margin:0;font-size:19px;display:flex;align-items:center;gap:8px}.load-card header p{margin:2px 0 0;color:var(--ink2);font-size:14px}
.load-weight{display:grid;justify-items:end;gap:2px;min-width:180px}.load-weight strong{font-size:24px;font-variant-numeric:tabular-nums}.load-weight span{font-size:13px;color:var(--ink2)}
.load-weight progress{width:180px;height:10px;accent-color:var(--ok)}.load-weight.over strong{color:var(--warn)}.load-weight.over progress{accent-color:var(--warn)}
.load-warn{margin:4px 0 8px;color:#985100;font-size:14px}
.load-actions{white-space:nowrap;text-align:right!important}
.load-card .rm{border:1px solid var(--line);background:var(--panel2);border-radius:4px;min-width:34px;min-height:34px;font-size:16px;cursor:pointer;color:inherit}.load-card .rm:disabled{opacity:.35;cursor:default}
.load-add{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.load-add select{flex:1 1 240px}
.load-card .load-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 8px}.load-card .load-buttons .btn{width:auto}
@media(max-width:560px){.load-weight{justify-items:start}.depot-grid{grid-template-columns:1fr}}
@media(max-width:560px){.load-card .hide-sm{display:none}.load-card th,.load-card td{padding:6px 4px}.load-card .rm{min-width:30px;min-height:32px}}
.qr-window-check{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 0;border-top:1px solid var(--line)}.qr-window-check:first-of-type{border-top:0}.qr-window-check>span{flex:1 1 100%;font-weight:600}.qr-window-check label{display:inline-flex!important;align-items:center;gap:8px;padding:6px 0!important}
.track-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--accent,#2f6b3a);text-decoration:underline}
/* plani 3D i ngarkimit */
.modal .box.t3-modal{width:min(1200px,100%);max-height:calc(100dvh - 20px);overflow:auto}
.t3-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.t3-status{font-size:13px;color:var(--ink2)}
.t3-sub{color:var(--ink2);font-size:14px;margin:0 0 8px}
.t3-tools{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.t3-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px}
@media(max-width:820px){.t3-layout{grid-template-columns:1fr}}
.t3-stage{position:relative;height:min(62vh,560px);min-height:320px;border:1px solid var(--line);border-radius:4px;background:linear-gradient(#eef3f6,#dfe6ea);overflow:hidden;perspective:1800px;perspective-origin:50% 40%;touch-action:none;cursor:grab;outline-offset:2px}
.t3-stage:active{cursor:grabbing}
.t3-world{position:absolute;left:50%;top:55%;transform-style:preserve-3d}
.t3-box,.t3-grp{position:absolute;left:0;top:0;transform-style:preserve-3d}
.t3-face{position:absolute;left:0;top:0;box-sizing:border-box;border:1px solid #0003;display:flex;align-items:center;justify-content:center;backface-visibility:visible}
.t3-trailer .t3-face{background:#ffffff14;border:1.5px solid #2c3e50aa;pointer-events:none}
.t3-deck .t3-face{background:#8d8f91;pointer-events:none}.t3-cab .t3-face{background:#d9dde0;border-color:#7f8c8d;pointer-events:none}
.t3-wheel .t3-face{background:#2b2b2b;pointer-events:none}.t3-open .t3-face{border-color:#0002;pointer-events:none}
.t3-wall{cursor:move}.t3-wall.t3-sel .t3-face{outline:3px solid #c9a94e;outline-offset:-3px}
.t3-label{color:#fff;font-weight:700;text-shadow:0 1px 2px #0008;pointer-events:none;white-space:nowrap}
.t3-side{display:flex;flex-direction:column;gap:8px;max-height:min(62vh,560px);overflow:auto}
.t3-side h3{margin:6px 0 0;font-size:15px}.t3-stats{font-size:14px}
.t3-selbox{border:1px solid var(--line);border-radius:4px;padding:8px;background:var(--panel2,#f6f6f2);font-size:14px}
.t3-pad{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0 4px}
.t3-add{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel,#fff);cursor:pointer;font:inherit;color:inherit}
.t3-add:hover:not([disabled]){border-color:#56705d}.t3-add[disabled]{opacity:.55;cursor:not-allowed}.t3-add span{font-weight:700;font-size:18px}
.t3-add i,.t3-legend i{display:inline-block;width:12px;height:12px;border-radius:3px}
.t3-legend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px;color:var(--ink2)}.t3-legend span{display:inline-flex;align-items:center;gap:5px}
.t3-title{all:unset;cursor:pointer;text-decoration:underline dotted;text-underline-offset:4px}.t3-title:focus-visible{outline:2px solid #56705d}
/* plani 3D · pamje më realiste + rrjetë */
.t3-stage{background:radial-gradient(120% 90% at 50% 0%,#f4f8fb 0,#dde6ec 55%,#c9d3da 100%)}
.t3-face.fx,.t3-face.fx2{filter:brightness(.8)}.t3-face.fz2{filter:brightness(.9)}.t3-face.fy{filter:brightness(1.08)}.t3-face.fy2{filter:brightness(.55)}
/* toka me rrjetë 1 m dhe hije */
.t3-ground .t3-face{pointer-events:none;border:0}.t3-ground .t3-face:not(.fy){display:none}
.t3-ground .fy{filter:none;background-color:#c3ccd2;background-image:radial-gradient(closest-side,#0004,#0000) ,linear-gradient(#0000 calc(100% - 1px),#ffffff40 0),linear-gradient(90deg,#0000 calc(100% - 1px),#ffffff40 0);background-size:70% 45%,var(--m) var(--m),var(--m) var(--m);background-position:center,0 0,0 0;background-repeat:no-repeat,repeat,repeat}
/* shasia, rrotat */
.t3-chassis .t3-face{background:#3b4248;pointer-events:none;border-color:#0005}
.t3-wheel .t3-face{pointer-events:none;border:0}.t3-wheel .t3-face:not(.fz):not(.fz2){display:none}
.t3-wheel .fz,.t3-wheel .fz2{filter:none;border-radius:50%;background:radial-gradient(circle,#b8bec3 0 17%,#5c6166 18% 24%,#1d1f21 25% 64%,#0e0f10 65%);box-shadow:0 0 0 1px #000}
/* dyshemeja e rimorkios: dërrasa + rrjetë 1 m / 50 cm + shkalla në metra */
.t3-deck .t3-face{pointer-events:none;background:#6d5a44;border-color:#0004}
.t3-deck .fy{position:relative;overflow:visible;filter:none;background-color:#a68461;background-image:repeating-linear-gradient(0deg,#0000 0 calc(var(--m)*.3 - 1px),#0000002a 0 calc(var(--m)*.3)),linear-gradient(90deg,#a58360,#b38f69 50%,#a07e5c)}
.t3-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(90deg,#fff9 1.5px,#0000 0),linear-gradient(#fff9 1.5px,#0000 0),linear-gradient(90deg,#ffffff45 1px,#0000 0),linear-gradient(#ffffff45 1px,#0000 0);background-size:var(--m) var(--m),var(--m) var(--m),calc(var(--m)/2) calc(var(--m)/2),calc(var(--m)/2) calc(var(--m)/2);background-position:right top}
.t3-tick{position:absolute;top:2px;transform:translateX(-50%);font:700 10px/1 Arial,sans-serif;color:#fff;text-shadow:0 1px 2px #000a;pointer-events:none}
/* rimorkioja: mushama e tejdukshme me rripa, korniza alumini, çatia e hapur */
.t3-trailer .t3-face{border:2px solid #8e99a3;background:#0000}
.t3-trailer .fz,.t3-trailer .fz2{filter:none;background-color:#2f5d8a1f;background-image:repeating-linear-gradient(90deg,#0000 0 calc(var(--m)*1.1 - 3px),#22476b66 0 calc(var(--m)*1.1));border-top-width:5px;border-bottom-width:4px}
.t3-trailer .fx{background:linear-gradient(#aab3bbdd,#8b959ed9);border-width:3px}
.t3-trailer .fx2{border:4px solid #7d8790;background:linear-gradient(90deg,#0000 calc(50% - 2px),#7d8790 0 calc(50% + 2px),#0000 0)}
.t3-trailer .fy{border:3px solid #8e99a3;background:#0000}.t3-trailer .fy2{display:none}
/* kabina */
.t3-cab .t3-face{background:#e9edf0;border-color:#9aa5ad}
.t3-cab .fx{background:linear-gradient(#e9edf0 0 8%,#24323f 8% 46%,#e9edf0 46% 60%,repeating-linear-gradient(0deg,#5d666e 0 4px,#8a939a 4px 8px) 60% 86%,#2b2f33 86%);background-size:100% 100%}
.t3-cab .fz,.t3-cab .fz2{background:linear-gradient(#e9edf0 0 10%,#2f3f4d 10% 42%,#e9edf0 42%)}
/* muret: pllaka me fuga çdo 1,25 m, prerja (pllakë / dru / pllakë) lart */
.t3-wall .t3-face{border-color:#0005;background-image:linear-gradient(#ffffff2e,#0000 40%,#00000014),repeating-linear-gradient(90deg,#0000 0 calc(var(--m)*1.25 - 1px),#00000026 0 calc(var(--m)*1.25))}
.t3-wall .fy,.t3-wall .fx,.t3-wall .fx2{background-image:linear-gradient(#efeae0 0 14%,#d6ad72 14% 86%,#efeae0 86%)!important}
.t3-wall .fx,.t3-wall .fx2{background-image:linear-gradient(90deg,#efeae0 0 14%,#d6ad72 14% 86%,#efeae0 86%)!important}
.t3-wall.t3-sel .t3-face{outline:3px solid #c9a94e;outline-offset:-3px;filter:brightness(1.12)}
.t3-window .fz,.t3-window .fz2{filter:none;background:linear-gradient(135deg,#d9f1ffe6,#9fd0eecc 60%,#c9e8fae6);border:3px solid #f7f7f7;box-shadow:inset 0 0 0 1px #0003}
.t3-door .fz,.t3-door .fz2{filter:none;background:linear-gradient(90deg,#6e4f33,#8a6544 50%,#6e4f33);border:3px solid #f2f2f2}
.t3-open .t3-face:not(.fz):not(.fz2){display:none}
.t3-opt{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px dashed #56705d;border-radius:4px;background:#4F8A5B0d}.t3-opt small{color:var(--ink2)}
.t3-tag{position:absolute;left:0;top:0;padding:2px 7px;border-radius:4px;background:#1f2a33e6;color:#fff;font:700 12px/1.2 Arial,sans-serif;white-space:nowrap;pointer-events:none;box-shadow:0 2px 6px #0004}.t3-sel .t3-tag{background:#c9a94e;color:#222}.t3-clash .t3-tag{background:#c0392b}
.t3-box .fy2{display:none}/* faqet e poshtme nuk shihen kurrë (pamja nuk zbret nën dysheme) */.t3-wall .fy{display:flex;align-items:center;justify-content:center;overflow:hidden}.t3-name{font:800 1em/1 Arial,sans-serif;color:#1f2a33;letter-spacing:.04em;white-space:nowrap;pointer-events:none;text-shadow:0 0 2px #fff,0 0 1px #fff}.t3-sel .t3-name{color:#7a5a00}.t3-clash .t3-name{color:#8b0000}
.depot-admin{margin:18px 0;padding:10px 12px;border:1px dashed #b9770e;border-radius:4px;background:#fdf6e9;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.depot-admin p{margin:0}
.t3-auto{padding:8px 10px;border-radius:4px;background:#e8f5ec;border:1px solid #56705d;font-size:14px}.t3-auto .btn{margin-left:6px}
/* plani 3D në gjithë dritaren */
.modal:has(.t3-modal){padding:0}
.modal .box.t3-modal{width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;border-radius:0;padding:10px 12px;display:flex;flex-direction:column;gap:8px;overflow:hidden}
.t3-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.t3-head h2{margin:0;font-size:19px;flex:1 1 auto}
.t3-head .t3-tools{margin:0}.t3-head #t3Close{margin-left:auto}
.t3-layout{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:10px}
.t3-stage{height:100%;min-height:0;max-height:none}
.t3-side{max-height:none;height:100%;overflow:auto;padding-right:2px}
.t3-hint{position:absolute;left:10px;bottom:8px;margin:0;padding:4px 8px;border-radius:4px;background:#ffffffcc;color:#33414d;font-size:12px;pointer-events:none}
.t3-optbtn{width:100%;font-size:16px;padding:12px}
.t3-depot summary{cursor:pointer;font-weight:600;padding:6px 0}.t3-depot .t3-add{margin-top:6px}
.t3-selbox .btn{margin-top:6px}
@media(max-width:820px){.t3-layout{grid-template-columns:1fr;grid-template-rows:minmax(300px,1fr) auto}.t3-side{height:auto;max-height:40vh}}
.t3-why{font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel2,#f6f6f2)}.t3-why p{margin:4px 0 0;color:var(--ink2)}
/* plani 3D me WebGL: kanavaca mbush skenën */
.t3-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none}
.t3-nogl{position:absolute;left:10%;right:10%;top:40%;text-align:center}
/* plani 3D i thjeshtë: ngjyra të plota, pa filtra / gradientë (më i shpejtë, pa gabime në rendin e faqeve) */
.t3-stage{background:#eef2f4}
.t3-face.fx,.t3-face.fx2,.t3-face.fz2,.t3-face.fy,.t3-face.fy2{filter:none}
.t3-deck .t3-face:not(.fy),.t3-cabmark .t3-face:not(.fy),.t3-trailer .fy{display:none}
.t3-deck .fy{background:#d8c9b2;background-image:none;border:1px solid #b5a184}
.t3-tick{color:#6b5a43;text-shadow:none}
.t3-trailer .t3-face,.t3-trailer .fz,.t3-trailer .fz2,.t3-trailer .fx,.t3-trailer .fx2{background:transparent;background-image:none;border:2px solid #9aa5ae}
.t3-cabmark .fy{background:#5b6670;border:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.t3-cabmark .fy span{transform:rotate(-90deg);color:#fff;font:700 13px/1 Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;pointer-events:none}
.t3-wall .t3-face{border:1px solid #0006;background-image:none!important}
.t3-wall .fy{background-image:linear-gradient(#ffffff8c,#ffffff8c)!important}
.t3-wall .fx,.t3-wall .fx2{background-image:linear-gradient(#00000026,#00000026)!important}
.t3-wall.t3-sel .t3-face{filter:none;outline:3px solid #c9a94e;outline-offset:-3px}
.t3-outside{color:#c0392b;font-weight:700}
/* versioni i telefonit: skanimi në plan të parë (phone.js) */
#phoneHome,#phoneBack{display:none}
body.phone-mode .shell,body.phone-mode header.connection{display:none!important}
body.phone-mode #phoneHome{display:flex;flex-direction:column;gap:18px;min-height:100vh;min-height:100dvh;padding:12px 16px 20px;box-sizing:border-box}
#phoneBack:not([hidden]){display:block;position:fixed;right:14px;bottom:14px;z-index:40;border-radius:4px;padding:10px 14px;border:0;background:#2f5b3f;color:#fff;font-family:inherit;font-weight:600;font-size:15px}
.ph-top{display:flex;align-items:center;gap:10px}.ph-logo{height:30px;width:auto}.ph-who{flex:1;font-weight:700;text-align:right;font-size:15px}
.ph-scan{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:34vh;min-height:34dvh;border:0;border-radius:4px;background:#2f5b3f;color:#fff;font-family:inherit;font-weight:700;font-size:26px;line-height:1.1;cursor:pointer;touch-action:manipulation}
.ph-scan:active{background:#18602d}.ph-scan-icon{font-size:68px;line-height:1}.ph-scan small{font-size:15px;font-weight:500;opacity:.9}
.ph-recent h2{font-size:15px;margin:0 0 8px;color:var(--ink2);font-weight:600}
.ph-wall{display:grid;grid-template-columns:1fr auto;gap:2px 10px;width:100%;text-align:left;padding:14px 16px;margin-bottom:8px;border:1px solid var(--line);border-radius:4px;background:var(--panel,#fff);font:inherit;color:inherit;cursor:pointer}
.ph-wall b{font-size:21px}.ph-wall small{color:var(--ink2);align-self:center}.ph-wall span{grid-column:1/-1;color:var(--ink2);font-size:14px}
.ph-empty{color:var(--ink2);margin:0}
.ph-full{margin-top:auto;border:0;background:none;color:var(--ink2);text-decoration:underline;font:inherit;padding:12px;cursor:pointer}
/* ekrani i murit në telefon: plot ekran, butona të mëdhenj, "Skano murin tjetër" poshtë */
body.phone-mode .modal:has(>.qr-screen){padding:0;align-items:stretch}
body.phone-mode .modal>.box.qr-screen{width:100%;max-width:none;margin:0;min-height:100vh;min-height:100dvh;border-radius:0;padding:22px 16px 112px;box-sizing:border-box}
body.phone-mode .qr-screen h2{font-size:30px}
body.phone-mode .qr-screen .btn{min-height:54px;font-size:18px}
body.phone-mode .qr-screen .btn.primary{width:100%}
body.phone-mode .prep-qr-grid section{display:flex;flex-direction:column;gap:10px}
.ph-next{position:fixed;left:0;right:0;bottom:0;z-index:5;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--sheet,#fff);box-shadow:0 -4px 16px #0002}
.ph-next .btn{width:100%;min-height:60px;font-size:19px}
