/* NetzLine v13.2.46 — responsive office premium layout.
   UI-only stylesheet: existing persisted quantities, pricing, roles, bookings and planeditor untouched. */

/* Readability and use of available space on a large desktop display. */
@media screen and (min-width: 1181px) {
  .office-shell .admin-main {
    max-width: none;
    width: 100%;
    margin: 0;
    padding: 23px clamp(22px, 1.85vw, 52px) 54px;
  }
  .office-shell { --office-sidebar-width: 276px; }
  .office-shell .sidebar .nav-btn { font-size: .88rem; min-height: 42px; }
  .office-shell .sidebar .nav-group-toggle { font-size: .68rem; height: 32px; }
}
.office-shell .admin-main { min-width: 0; }
.office-shell .admin-main .muted { line-height: 1.5; }
.office-shell .admin-main .detail-head { flex-wrap: wrap; gap: 16px; }
.office-shell .admin-main .detail-head h1 { line-height: 1.2; }
.office-shell .admin-main .detail-head .actions { flex-wrap: wrap; }
.office-shell .admin-main :is(.card, .table-card, .stat-card) { border-radius: 14px; }
.office-shell .admin-main .stat-card { padding: clamp(15px,1.1vw,23px); min-width:0; }
.office-shell .admin-main .stat-card .label { font-size: .85rem; }
.office-shell .admin-main .stat-card .value { font-size: clamp(1.45rem,1.6vw,2rem); overflow-wrap: anywhere; }
.office-shell .admin-main .table-card .table-head { padding: 16px 18px; gap: 10px; }
.office-shell .admin-main .table-card .table-head strong { font-size: 1rem; }
.office-shell .admin-main .table-scroll { max-width: 100%; overflow-x: auto; scrollbar-gutter: stable; }
.office-shell .admin-main table { font-size: .93rem; }
.office-shell .admin-main :is(th,td) { padding: 12px 14px; }
.office-shell .admin-main th { font-size: .76rem; letter-spacing: .055em; }
.office-shell .admin-main td { line-height: 1.42; }
.office-shell .admin-main td .muted { font-size: .82rem; }
.office-shell .admin-main .empty { padding: 28px 20px; line-height: 1.5; }
.office-shell .admin-main :is(.filters, .actions) { row-gap: 10px; }
.office-shell .admin-main :is(.field label,.bk-filters label) { font-size: .83rem; }
.office-shell .admin-main :is(.field input,.field select,.field textarea,.filters input,.filters select) { min-height: 43px; }
.office-shell .admin-main :is(.btn,.icon-btn) { min-height: 38px; }
.office-shell .admin-main :is(.btn,.icon-btn):focus-visible,
.office-shell .admin-main tr[tabindex]:focus-visible { outline: 3px solid #4ab9ff; outline-offset: 2px; }

/* Employee management: no adjacent form obscuring the action column. */
.nl46-employee-layout { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; }
.nl46-employee-list { min-width: 0; }
.nl46-employee-list .table-scroll { overflow-x:auto; }
.nl46-employee-list table { min-width: 980px; }
.nl46-employee-list td:last-child { min-width: 355px; }
.nl46-employee-list td:last-child .actions { display:flex; flex-wrap:nowrap; align-items:center; gap:6px; }
.nl46-employee-list td:last-child .btn { padding:8px 10px; font-size:.78rem; min-height:37px; white-space:nowrap; }
.nl46-employee-list tr[hidden] { display:none; }
.nl46-employee-search { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:12px 17px; border-bottom:1px solid var(--line); }
.nl46-employee-search label { font-size:.84rem; font-weight:750; color:var(--muted); }
.nl46-employee-search input { flex:1 1 260px; width:auto; max-width:460px; min-height:42px; padding:10px 12px; background:var(--surface); color:var(--text); border:1px solid var(--line); border-radius:10px; }
.nl46-employee-add { margin:0; max-width: 840px; padding:0 !important; overflow:hidden; }
.nl46-employee-add summary { display:flex; align-items:center; min-height:57px; padding:15px 20px; color:var(--text); cursor:pointer; font-size:1rem; font-weight:800; list-style:none; user-select:none; }
.nl46-employee-add summary::-webkit-details-marker {display:none}
.nl46-employee-add summary:after {content:'▾'; margin-left:auto; color:var(--muted); }
.nl46-employee-add[open] summary { border-bottom:1px solid var(--line); }
.nl46-employee-add[open] summary:after { content:'▴'; }
.nl46-employee-add form, .nl46-employee-add > .notice-box { margin: 18px 20px !important; }
.nl46-employee-add form { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 15px; }
.nl46-employee-add form .field { min-width:0; }
.nl46-employee-add form > button:last-of-type { grid-column: 1 / -1; justify-self:start; }
.nl46-employee-add summary:focus-visible { outline:3px solid #4ab9ff;outline-offset:-3px; }

/* Offer editor: stop forcing wide position tables into a 520px dialog. */
#globalModal .modal.nl46-offer-modal { width:min(1180px,calc(100vw - 42px)); max-width:none; max-height:calc(100dvh - 34px); overflow-y:auto; overscroll-behavior:contain; padding:clamp(18px,2vw,30px); }
.nl46-offer-modal .modal-body { min-width:0; }
.nl46-offer-modal .panel-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap: 0 18px; }
.nl46-offer-modal .offer-edit-table { min-width: 760px; table-layout:auto; }
.nl46-offer-modal .offer-edit-table th:nth-child(2) { min-width:290px; }
.nl46-offer-modal .offer-edit-table td,.nl46-offer-modal .offer-edit-table th { padding:9px 8px; }
.nl46-offer-modal .offer-edit-table :is(input,textarea) { min-height:42px; font-size:.94rem; }
.nl46-offer-modal .modal-actions { position:sticky; bottom:-1px; z-index:3; padding:15px 0 4px; background:var(--card); border-top:1px solid var(--line); }
.nl46-offer-modal :is(input,select,textarea) { min-width:0; }

/* Other office modal forms retain existing logic, but are easier to read. */
#globalModal .modal { max-height:calc(100dvh - 32px); overflow-y:auto; overscroll-behavior:contain; }
#globalModal .modal .field label { font-size:.9rem; }
#globalModal .modal :is(input,select,textarea) { min-height:43px; }
#globalModal .modal .modal-actions button { min-height:44px; }

/* Document center, project sections, maps, bookings. */
@media (min-width: 1280px) {
 .office-shell .doc-admin-layout {grid-template-columns: minmax(290px,370px) minmax(0,1fr); gap:18px; }
 .office-shell .live-map-layout {grid-template-columns:minmax(0, 2.15fr) minmax(310px,.8fr); }
 .office-shell .calendar-layout {grid-template-columns:minmax(0, 2fr) minmax(320px,.8fr); }
}
.office-shell .role-badge { display:inline-flex; margin:2px 3px 2px 0; }
.office-shell .archive-section {margin-top:12px;}
.office-shell .archive-section .section-title {margin-bottom:8px;}
.office-shell .archive-section .empty {padding:14px;}
.office-shell .live-map-canvas:has(.live-map-empty-state) {background:#132b42; }
.office-shell .live-map-empty-state {color:#e8f5ff;}
.office-shell .live-map-empty-state p {color:#a6c4d8;}
html[data-theme="light"] .office-shell .live-map-canvas:has(.live-map-empty-state) {background:#e9f1f7;}
html[data-theme="light"] .office-shell .live-map-empty-state {color:#23435b;}
html[data-theme="light"] .office-shell .live-map-empty-state p {color:#55718a;}
.office-shell .bk-app .bk-panel-head {padding:18px 20px;}
.office-shell .bk-app .bk-row {gap:18px; padding:17px 20px;}
.office-shell .bk-app .bk-row small {font-size:.84rem; line-height:1.4;}
.office-shell .bk-app .bk-row .bk-pill {font-size:.78rem;}
.office-shell .bk-app .bk-filters label {font-size:.83rem;}
/* Never render pale text on pale reminder/notice backgrounds in a dark modal. */
html[data-theme="dark"] .bk-info {background:#15334b; border:1px solid #315b77; color:#e4f5ff; line-height:1.5;}
html[data-theme="light"] .bk-info {background:#edf5fb; border:1px solid #bad5e7; color:#173d59; line-height:1.5;}
html[data-theme="dark"] .bk-info :is(strong,b,span) {color:inherit;}

/* Preserve the existing mobile dock and limit touch scrolling only to real tables. */
@media(max-width:1180px) {
 .office-shell .admin-main { max-width:100%; }
 .office-shell .stats {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px) {
 .office-shell .admin-main {padding:12px 12px calc(96px + env(safe-area-inset-bottom,0px));}
 .office-shell .admin-main .table-head {flex-wrap:wrap;}
 .office-shell .admin-main :is(.card,.table-card,.stat-card) {border-radius:13px;}
 .office-shell .admin-main .stats {gap:9px;}
 .office-shell .admin-main .stat-card {padding:13px;}
 .office-shell .admin-main :is(.btn,.icon-btn) {min-height:42px;}
 .office-shell .admin-main .table-scroll {-webkit-overflow-scrolling:touch;}
 .nl46-employee-list table {min-width:960px;}
 .nl46-employee-search {padding:11px;}
 .nl46-employee-add form {grid-template-columns:1fr;}
 .nl46-employee-add form > button:last-of-type {justify-self:stretch;}
 #globalModal .modal.nl46-offer-modal {width:calc(100vw - 18px);max-height:calc(100dvh - 18px);padding:15px;}
 .nl46-offer-modal .panel-grid {grid-template-columns:1fr;gap:0;}
 .nl46-offer-modal .offer-edit-table {min-width:680px;}
 .nl46-offer-modal .modal-actions {flex-wrap:wrap;}
 .office-shell .bk-app .bk-filters {grid-template-columns:repeat(2,minmax(0,1fr));}
 .office-shell .bk-app .bk-filters label:first-child {grid-column:1/-1;}
}
@media(max-width:420px) {
 .office-shell .admin-main .stats {grid-template-columns:1fr 1fr;}
 .office-shell .bk-app .bk-filters {grid-template-columns:1fr;}
}
@media print {
 .nl46-employee-search,.nl46-employee-add {display:none !important;}
 #globalModal .modal.nl46-offer-modal {max-height:none;overflow:visible;}
}

/* Document listing uses full width; uploader opens when needed. */
.nl46-doc-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;}
.nl46-doc-layout .table-card{min-width:0;}
.nl46-doc-add{max-width:900px;margin:0;padding:0!important;overflow:hidden;}
.nl46-doc-add summary{display:flex;min-height:55px;align-items:center;padding:15px 20px;list-style:none;cursor:pointer;font-size:1rem;font-weight:800;}
.nl46-doc-add summary::-webkit-details-marker{display:none}
.nl46-doc-add summary:after{content:'▾';margin-left:auto;color:var(--muted)}
.nl46-doc-add[open] summary{border-bottom:1px solid var(--line)}
.nl46-doc-add[open] summary:after{content:'▴'}
.nl46-doc-add form{padding:14px 20px 22px;}
.nl46-doc-add .role-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#globalModal .modal.nl46-delivery-modal{width:min(760px,calc(100vw - 34px));max-width:none;}
#globalModal .modal.nl46-booking-modal{width:min(740px,calc(100vw - 34px));max-width:none;}
@media(max-width:760px){
 .nl46-doc-add .role-check-grid{grid-template-columns:1fr}
 #globalModal .modal.nl46-delivery-modal,#globalModal .modal.nl46-booking-modal{width:calc(100vw - 18px)}
}
@media print {.nl46-doc-add{display:none!important}}

.nl46-offer-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0 16px}
.nl46-offer-summary>div{min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:13px 14px;display:grid;gap:6px}
.nl46-offer-summary small{color:var(--muted);font-size:.77rem}
.nl46-offer-summary strong{font-variant-numeric:tabular-nums;font-size:1.07rem;white-space:nowrap}
.nl46-offer-summary .nl46-offer-gross{border-color:color-mix(in srgb,var(--blue) 50%,var(--line));background:color-mix(in srgb,var(--blue) 9%,var(--surface));}
.nl46-offer-summary p{grid-column:1/-1;margin:0;font-size:.77rem;color:var(--muted)}
@media(max-width:920px){.nl46-offer-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
