/* GIEBEL DISPO — Professional Workstation UI, V0.11
   A visual layer over the existing functional UI; no dependencies. */
:root{
 --ui-page:#e8edf2;--ui-panel:#ffffff;--ui-panel-2:#f4f7fa;--ui-head:#edf2f7;
 --ui-top:#e6edf4;--ui-stroke:#b7c7d5;--ui-faint:#d9e3ec;
 --ui-text:#142b40;--ui-muted:#526c81;--ui-accent:#0e7be9;
 --ui-blue-soft:#dfefff;--ui-input:#f6f9fc;--ui-hover:#e8f2ff;
 --ui-shadow:0 3px 16px rgba(20,47,75,.08);
}
:root[data-theme="dark"]{
 --ui-page:#0d1923;--ui-panel:#142735;--ui-panel-2:#172d3d;--ui-head:#223a4d;
 --ui-top:#101e2b;--ui-stroke:#415b6d;--ui-faint:#2f4758;
 --ui-text:#eff5fb;--ui-muted:#b5c8d5;--ui-accent:#1682ed;
 --ui-blue-soft:#1b4b75;--ui-input:#193244;--ui-hover:#25465e;
 --ui-shadow:0 4px 14px rgba(0,0,0,.16);
}
body{background:var(--ui-page)!important;color:var(--ui-text)!important;font-family:Inter,"Segoe UI",Arial,sans-serif;letter-spacing:0}
.rail{display:none!important}.app-shell{display:block;min-height:100vh}.main{width:100%;min-width:0}
.top{
 position:sticky;top:0;z-index:100;display:flex;gap:14px;align-items:center;
 min-height:54px;padding:5px 13px;background:var(--ui-top)!important;
 border:0;border-bottom:1px solid var(--ui-faint);flex-wrap:nowrap;
}
.brand{display:flex;align-items:center;gap:9px;min-width:168px;flex-shrink:0}
.brand-mark{font-size:32px;line-height:1;font-weight:950;letter-spacing:-4px;color:var(--ui-accent);width:35px}
.brand-wordmark{display:flex;flex-direction:column;font-size:14px;letter-spacing:.4px;line-height:1.03;color:var(--ui-text);font-weight:900}
.brand-wordmark b{font-weight:900;color:#4aa1fc;font-size:15px}
.version-pill{font-size:9px;padding:2px 4px;border:1px solid var(--ui-stroke);background:var(--ui-panel-2);color:var(--ui-muted);white-space:nowrap}
.subnav{padding:0;background:transparent!important;border:0;height:auto;min-width:0;flex:1;justify-content:flex-start}
.tabs{display:flex;height:auto;gap:5px;align-items:center;min-width:0}
.tab{
 border:1px solid transparent;border-radius:6px;background:var(--ui-panel-2);
 color:var(--ui-muted);padding:8px 12px;white-space:nowrap;font-weight:750;font-size:12px;
 display:flex;gap:7px;align-items:center;min-height:35px;line-height:1.1
}
.tab.active,.tab:hover{border-color:#3485d3;color:#fff;background:#126ee0;box-shadow:none}
.tab span:not(.nav-symbol){font-size:9px;border-radius:8px;color:#fff;background:#1676ed;padding:1px 5px}
.nav-symbol{font-size:16px;line-height:1;display:inline-block}
.top-actions{gap:7px;align-items:center;flex-shrink:0}
.header-date{border:1px solid var(--ui-stroke);border-radius:6px;background:var(--ui-panel);padding:7px 9px;display:flex;gap:7px;align-items:center;color:var(--ui-muted);font-size:11px;white-space:nowrap}
.header-date strong{font-size:11px;color:var(--ui-text)}
.header-icon-button{border:1px solid var(--ui-stroke);background:var(--ui-panel);border-radius:6px;padding:7px 9px;color:var(--ui-text);font-size:11px;font-weight:750;white-space:nowrap}
.header-icon-button:hover{border-color:var(--ui-accent);background:var(--ui-hover)}
.workspace-status{display:flex;gap:9px;align-items:center;padding:6px 13px;border-bottom:1px solid var(--ui-faint);background:var(--ui-top);min-height:37px}
.workspace-status-spacer{flex:1}
.workspace-status #sourceLabel{font-size:10px;color:var(--ui-muted);max-width:45%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.workspace-status .save-label{color:#67caa6;font-size:10px;white-space:nowrap}
.workspace-status .save-label i{margin-right:3px}
.workspace-status .button{min-height:29px}
.button{border:1px solid var(--ui-stroke);background:var(--ui-panel-2);color:var(--ui-text);font-size:11px;font-weight:750;padding:6px 10px;border-radius:6px;box-shadow:none;white-space:nowrap}
.button:hover,.button-quiet:hover{background:var(--ui-hover);color:var(--ui-text);border-color:var(--ui-accent)}
.button-primary{background:#0b75eb;border-color:#338fe9;color:#fff}
.button-primary:hover{background:#1764c3;color:#fff}
.button-quiet{background:var(--ui-panel-2);color:var(--ui-text)}
.view{padding:9px 13px 20px;color:var(--ui-text)}
#boardView .page-title-row,#boardView .board-footer,#boardView>.legend{display:none}
#boardView .stats{display:none}
.page-title-row{margin-bottom:12px}
.page-title-row h2{color:var(--ui-text);font-size:18px}
.page-title-row p{color:var(--ui-muted)}
.overline{color:#4b9ce3}
.board-toolbar{
 background:var(--ui-panel)!important;border:1px solid var(--ui-stroke);border-radius:7px 7px 0 0;
 padding:5px 8px;display:flex;min-height:40px;gap:8px;align-items:center
}
.toolbar-info strong{font-size:12px;color:var(--ui-text)}
.toolbar-info span{display:none}
.toolbar-actions{flex-wrap:nowrap;gap:5px}
.toolbar-actions .button{padding:6px 9px}
.search{border:1px solid var(--ui-stroke);background:var(--ui-input);border-radius:6px}
.search input{width:195px;height:27px;background:transparent!important;color:var(--ui-text);font-size:11px}
.search input::placeholder{color:var(--ui-muted)}
.search span{color:var(--ui-muted)}
.toolbar-more{position:relative;flex-shrink:0}
.toolbar-more summary{list-style:none;cursor:pointer;user-select:none;display:block}
.toolbar-more summary::-webkit-details-marker{display:none}
.toolbar-more-menu{
 position:absolute;right:0;top:calc(100% + 4px);background:var(--ui-panel);border:1px solid var(--ui-stroke);
 z-index:80;display:flex;flex-direction:column;padding:6px;gap:5px;min-width:175px;
 border-radius:7px;box-shadow:var(--ui-shadow)
}
.toolbar-more-menu .button{text-align:left}
.needs-panel{
 padding:5px 9px;border:1px solid var(--ui-stroke);border-top:0;border-radius:0;
 background:var(--ui-panel-2)
}
.needs-header{margin:0 0 4px;display:flex;gap:7px;align-items:center}
.needs-header strong{font-size:10px;color:var(--ui-text)}
.needs-header span{font-size:9px;color:var(--ui-muted)}
.needs-palette{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:5px;padding:2px 0 3px;scrollbar-width:thin}
.need-template{background:#ffe093;border:1px solid #dba943;border-radius:5px;color:#45340a;white-space:nowrap;font-size:10px;padding:4px 9px;min-height:24px;font-weight:800}
.need-template:hover,.need-template.selected{background:#ffd05c;border-color:#ac7b0a;color:#503a06}
[data-theme=dark] .need-template{background:#ecd189;border-color:#c59a40;color:#2f260f}
[data-theme=dark] .need-template:hover,[data-theme=dark] .need-template.selected{background:#ffe18a;color:#211b0c}
.board-scroll{
 border:1px solid var(--ui-stroke);border-top:0;border-radius:0 0 8px 8px;
 background:var(--ui-page);overflow:visible;padding:7px;max-height:none;min-height:300px
}
.board,.board-changes{display:flex;flex-direction:column;gap:12px;align-items:stretch;grid-template-columns:none!important}
.board-section{min-width:0}
.board-section-title{
 display:flex;align-items:center;gap:7px;font-size:12px;font-weight:850;color:var(--ui-text);
 padding:6px 6px;margin:0 0 5px;border-bottom:1px solid var(--ui-stroke);
 text-transform:none;letter-spacing:.1px
}
.board-section-title:before{content:"";width:3px;height:14px;background:#399ffa;border-radius:3px}
.board-section-elter .board-section-title:before{background:#5ca8f3}
.board-section-tk .board-section-title:before{background:#16b5bc}
.board-section-quarry .board-section-title:before{background:#d5a34a}
.board-section-rest .board-section-title:before{background:#9fb6cc}
.board-section-status .board-section-title:before{background:#d47490}
.board-section-grid{display:grid;align-items:stretch;gap:6px;min-width:0}
.board-section-grid>.site-card,.board-section-grid>.crew-group-card{min-width:0;height:100%}
.site-card{border:1px solid var(--ui-stroke);background:var(--ui-panel);border-radius:6px;box-shadow:none;min-width:0;min-height:32px}
.site-card.drop-target{border-color:#42a2fb;background:var(--ui-blue-soft);outline:2px solid #42a2fb}
.site-header,.site-card.is-status .site-header{
 min-height:29px;padding:4px 6px;background:var(--ui-head)!important;
 border-bottom:1px solid var(--ui-faint);color:var(--ui-text);gap:4px
}
.site-header:before{content:"";display:block;width:4px;border-radius:4px;align-self:stretch;min-height:18px;background:#32a2ff;margin-right:4px}
.site-card.is-status .site-header:before{background:#b89adb}
.site-name,.site-number{font-size:11px;color:var(--ui-text)!important;font-weight:840;line-height:1.15}
.site-number{font-variant-numeric:tabular-nums}
.site-card .site-title-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
.site-card .site-title{min-width:0;overflow:hidden}
.site-subtitle{font-size:9px;color:var(--ui-muted);white-space:nowrap}
.site-attention{background:#f6d76a;color:#60440a}
.collapse{background:transparent;color:var(--ui-muted);width:17px;height:17px;padding:0;border:1px solid var(--ui-stroke);font-size:10px;border-radius:4px}
.site-body{padding:4px;min-height:24px;flex:1}
.site-card.collapsed .site-body{display:none}
.person,.former-person{
 background:var(--ui-panel-2);color:var(--ui-text);border:1px solid var(--ui-stroke);
 border-left:2px solid var(--category);border-radius:4px;min-height:23px;
 padding:3px 5px;margin-bottom:3px;font-size:10px;display:flex;align-items:center;gap:4px
}
.person:hover{background:var(--ui-hover);border-color:#569bd4;border-left-color:var(--category)}
.person-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;font-size:10px;font-weight:740}
.person-main{min-width:0}
.person-detail{display:block;font-size:8px;color:var(--ui-muted)}
.drag-handle{opacity:.45;font-size:9px;width:9px}
.person.moved{background:#ffde83!important;color:#43300a!important;border:1px solid #e1ba50!important;border-left:3px solid #d09800!important}
.person.moved .person-name{color:#43300a!important}
.person.moved .person-detail{color:#745510!important}
.person.expired{background:#c1f0cf!important;border-color:#67c995!important;color:#14482b!important}
.person.expired .person-name{color:#14482b!important}
.person .person-tag{font-size:8px;font-weight:850}
.former-person.transfer-ghost{background:#ffecb0!important;color:#5e4a24!important;opacity:1;border-color:#dfc277;border-left-color:#d3a22e}
.former-person.transfer-ghost .former-name{text-decoration:line-through;color:#755d32}
.former-person.absence-ghost{background:#354453!important;color:#a9b9c9!important;border-color:#586f82;opacity:.87}
.former-person.absence-ghost .former-name{text-decoration:line-through;color:#adb9c5}
.site-fleet{border-top:1px dashed var(--ui-stroke);margin-top:3px;padding-top:3px;gap:3px}
.site-truck{background:#25483d!important;border:1px solid #3c8069;color:#e1fff1;padding:3px 5px;border-radius:4px;font-size:9px}
.site-truck strong{font-size:8px;background:#10352b;color:#bdf2d9}
.site-truck span{color:#e1fff1}
[data-theme=light] .site-truck{background:#d5eee2!important;color:#163d32}
[data-theme=light] .site-truck span{color:#163d32}
.site-need{background:#ffe08b;color:#46340c;border-color:#d4af4c;font-size:9px;padding:3px 5px}
.site-need-remove{color:#523e11}
.crew-group-card{
 grid-column:span 2;border:1px solid var(--ui-stroke);
 background:var(--ui-panel);border-radius:7px;overflow:hidden;min-width:0
}
.crew-group-header{background:var(--ui-head)!important;color:var(--ui-text)!important;border-bottom:1px solid var(--ui-stroke);padding:7px 10px;font-size:12px}
.crew-group-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:6px;min-width:0;align-items:stretch}
.crew-group-members .site-card{min-width:0}
.board-section-elter .board-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.board-section-elter .crew-group-card{grid-column:span 2}
.board-section-status .board-section-grid{grid-template-columns:repeat(auto-fill,minmax(185px,1fr))!important}
.board-section-status .site-card{min-height:0}
.board-section-status .site-card[data-status="krank"] .site-header:before{background:#ee7184}
.board-section-status .site-card[data-status="urlaub"] .site-header:before{background:#5ac39b}
.board-section-status .site-card[data-status="schule"] .site-header:before{background:#8db8f9}
.board-changes{gap:11px;margin:0 0 12px}
.changes-heading{margin:10px 0 6px;color:var(--ui-text);border-color:var(--ui-stroke)}
.changes-heading span{color:var(--ui-muted)}
.open-topic{background:var(--ui-panel);border-color:var(--ui-stroke);color:var(--ui-text);font-size:11px}
.open-topic>span{color:var(--ui-muted)}
.change-history{background:var(--ui-panel);border-color:var(--ui-stroke);color:var(--ui-text)}
.change-item{background:var(--ui-panel-2);border-color:var(--ui-stroke)}
.change-copy small,.change-time,.changes-summary{color:var(--ui-muted)}
.people-list{background:var(--ui-panel);border-color:var(--ui-stroke)}
.people-row{border-color:var(--ui-stroke);color:var(--ui-text)}
.people-name{color:var(--ui-text)}
.people-category,.people-location,.people-summary{color:var(--ui-muted)}
.person-home-hint{background:var(--ui-panel-2);border-left:3px solid #62b2f7;padding:7px 9px;border-radius:4px;margin-top:10px;color:var(--ui-text);font-size:11px}
.context-menu{background:var(--ui-panel)!important;border:1px solid var(--ui-stroke)!important;box-shadow:var(--ui-shadow)}
.menu-item{color:var(--ui-text)!important}
.menu-item:hover{background:var(--ui-hover)!important;color:var(--ui-text)!important}
.menu-divider{background:var(--ui-stroke)}
.dialog{background:var(--ui-panel);border-color:var(--ui-stroke);color:var(--ui-text)}
.dialog p,.field-hint{color:var(--ui-muted)!important}
.field,.dialog .field{background:var(--ui-input);color:var(--ui-text);border-color:var(--ui-stroke)}
.xbtn{background:var(--ui-panel-2);color:var(--ui-text)}
.truck-color-legend{
 border:1px solid var(--ui-stroke);border-radius:7px;padding:6px 10px;margin-bottom:8px;
 background:var(--ui-panel);color:var(--ui-muted);display:flex;align-items:center;flex-wrap:wrap;gap:6px
}
.truck-legend-note{color:var(--ui-muted)}
.truck-sheet-container{background:var(--ui-panel);border-color:var(--ui-stroke);border-radius:7px;max-height:calc(100vh - 218px);min-height:280px}
.truck-sheet-table{width:100%;min-width:980px;table-layout:fixed;border-collapse:separate;border-spacing:0}
.truck-sheet-table th{background:var(--ui-head)!important;border-bottom:1px solid var(--ui-stroke);color:var(--ui-text)!important;height:32px;font-size:10px;padding:5px 8px;text-align:left}
.truck-sheet-row{height:29px}
.truck-sheet-row td{height:28px}
.truck-cell-input{font-size:11px;height:28px;line-height:27px;padding:0 7px;font-weight:650}
.truck-sheet-row>td:first-child{overflow:visible;border-right:1px solid rgba(40,55,67,.25)}
.truck-table-colors{position:sticky}
.truck-row-swatches{position:relative;display:flex;justify-content:flex-start;padding:0 4px;height:26px;align-items:center;gap:4px}
.truck-swatch{width:17px;height:17px;min-width:17px;border:1px solid #647a8b}
.truck-swatch:not(.selected){display:none}
.truck-table-colors:hover .truck-row-swatches,
.truck-table-colors:focus-within .truck-row-swatches{position:absolute;top:0;left:0;z-index:70;background:var(--ui-panel);border:1px solid var(--ui-stroke);border-radius:5px;padding:4px;box-shadow:0 3px 11px #0004;height:29px;min-width:146px}
.truck-table-colors:hover .truck-swatch,.truck-table-colors:focus-within .truck-swatch{display:inline-block}
.truck-swatch.selected{outline:2px solid #36526c;outline-offset:1px}
.truck-type-input{border-left-width:4px!important;background:rgba(255,255,255,.15)!important}
.truck-cell-status{color:inherit;font-size:10px}
.truck-sheet-section td{background:var(--ui-head)!important;color:var(--ui-text)!important;height:24px}
.truck-top-actions{display:flex;gap:6px;align-items:center}
.truck-top-actions .button{font-size:11px}
#trucksView .page-title-row{margin-bottom:9px}
#trucksView .page-title-row p{font-size:10px}
#trucksView .page-title-row h2{margin:2px 0;font-size:18px}
[data-theme=dark] .truck-sheet-row>td{color:var(--truck-row-fg)}
[data-theme=dark] .truck-cell-input{color:var(--truck-row-fg)}
[data-theme=dark] .truck-cell-input:focus{background:#fff;color:#162b39}
[data-theme=dark] .truck-color-legend{background:var(--ui-panel)}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #55acff;outline-offset:2px}
@media(max-width:1350px){
 .top{flex-wrap:wrap;gap:7px}.subnav{order:3;flex-basis:100%;justify-content:flex-start;min-height:34px}
 .top-actions{margin-left:auto}.tab{padding:6px 9px}.view{padding:7px 8px 15px}
 .board-section-elter .board-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:800px){
 .top{position:static}.brand{min-width:auto}.brand-wordmark{display:none}.tabs{overflow-x:auto;max-width:100%;gap:3px}
 .tab{font-size:10px;padding:5px 7px}.nav-symbol{font-size:12px}
 .header-date{font-size:10px}.header-icon-button{font-size:10px}
 .workspace-status{flex-wrap:wrap}
 .board-toolbar{flex-wrap:wrap}.toolbar-actions{flex-wrap:wrap}.needs-header span{display:none}
 .search input{width:145px}.board-scroll{padding:4px}
 .crew-group-members{grid-template-columns:1fr}
 .board-section-elter .board-section-grid{grid-template-columns:minmax(0,1fr)!important}
 .board-section-elter .crew-group-card{grid-column:auto}
 .truck-sheet-container{max-height:none}
}
@media print{
 .top,.workspace-status,.toolbar-more,.needs-panel,.truck-top-actions{display:none!important}
 .view{padding:0}.board-scroll{overflow:visible;max-height:none;border:0;padding:0}
 .site-card,.crew-group-card{break-inside:avoid}
}

/* Group specialist crews in one horizontal band, matching the dispatch sheet. */
.board-special-row{display:grid;grid-template-columns:minmax(360px,2.25fr) minmax(185px,1fr) minmax(185px,1fr) minmax(185px,1fr);gap:8px;align-items:stretch}
.board-special-row .board-section{min-width:0;display:flex;flex-direction:column}
.board-special-row .board-section-title{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.board-special-row .board-section-grid{flex:1;display:flex!important;flex-direction:column;gap:5px;min-width:0}
.board-special-row .board-section-grid>.site-card,.board-special-row .board-section-grid>.crew-group-card{height:auto;flex:none;min-width:0}
.board-special-row .board-section-elter .board-section-grid>.crew-group-card{width:100%}
.board-special-row .crew-group-members{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1300px){.board-special-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}}
@media(max-width:700px){.board-special-row{grid-template-columns:1fr}.board-special-row .crew-group-members{grid-template-columns:repeat(2,minmax(0,1fr))}}
