:root{--bg:#f4f6f8;--panel:#fff;--text:#17202a;--muted:#68737d;--line:#dfe5ea;--accent:#146c5a;--accent2:#0f594b;--soft:#e8f4f0;--warn:#9a6511;--warnbg:#fff4d9;--danger:#a23b3b;--shadow:0 8px 24px rgba(20,34,45,.06);--radius:14px}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}body{margin:0}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:62px;background:#17202a;color:#fff;display:flex;align-items:center;gap:24px;padding:0 22px;position:sticky;top:0;z-index:30}.brand{font-weight:800;font-size:19px;color:#fff;white-space:nowrap}.brand span{font-size:10px;background:var(--accent);border-radius:20px;padding:3px 7px;margin-left:5px}.topsearch{display:flex;max-width:620px;flex:1}.topsearch input{width:100%;border:0;border-radius:9px 0 0 9px;padding:10px 12px;background:#26323d;color:#fff}.topsearch button{border:0;background:var(--accent);color:#fff;padding:0 16px;border-radius:0 9px 9px 0}.userbox{margin-left:auto;font-size:13px;color:#d8e0e5}.userbox a{color:#fff;margin-left:8px}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 62px)}.sidebar{background:#202b35;padding:16px 12px;display:flex;flex-direction:column;position:sticky;top:62px;height:calc(100vh - 62px)}.sidebar nav{display:grid;gap:5px}.sidebar a,.logout button{color:#dce4e9;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:9px;font-size:14px}.sidebar a:hover{background:#2b3944;color:#fff}.sidebar .primary-link{background:var(--accent);color:#fff;font-weight:700}.logout{margin-top:auto}.logout button{border:0;background:transparent;width:100%;cursor:pointer}.content{padding:26px 30px 60px;min-width:0;max-width:1800px;width:100%;margin:0 auto}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.page-head h1{font-size:28px;margin:0 0 5px}.page-head p{margin:0}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--accent);font-weight:800}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#fff;color:var(--text);padding:9px 13px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:650}.btn:hover{border-color:#b8c4cc}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent2)}.btn.ghost{background:transparent}.btn.danger{color:var(--danger)}.btn.small{padding:6px 9px;font-size:12px}.btn.wide{width:100%}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}.panel.flush{padding:0;overflow:hidden}.panel h2{font-size:17px;margin:0 0 14px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2{margin:0}.panel-head small{color:var(--muted)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column}.stat strong{font-size:25px}.stat span{font-size:12px;color:var(--muted);margin-top:2px}.stat.ok{background:var(--soft);border-color:#b9ddd3}.desktop-grid{display:grid;gap:18px}.desktop-grid.two-one{grid-template-columns:minmax(0,2fr) minmax(290px,1fr)}.stack>*{margin-bottom:18px}.work-row,.review-row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--line)}.work-row:first-of-type,.review-row:first-of-type{border-top:0}.work-row b{display:block}.work-row span,.work-row p{display:block;margin:3px 0;color:var(--muted);font-size:13px}.row-meta{text-align:right;min-width:100px;display:grid;justify-items:end;gap:6px;font-size:12px}.badge{display:inline-flex;width:max-content;background:#e9eef2;color:#44515b;padding:3px 7px;border-radius:999px;font-size:11px}.badge.warn{background:var(--warnbg);color:var(--warn)}.empty{padding:22px 8px;color:var(--muted);text-align:center}.task-mini{display:grid;grid-template-columns:12px 1fr auto;gap:9px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}.task-mini:first-of-type{border:0}.task-mini small{display:block;color:var(--muted);margin-top:2px}.task-mini>a{font-size:11px}.status-dot{height:9px;width:9px;border-radius:50%;background:#9ca8af;margin-top:5px}.status-dot.doing{background:#2f70c0}.status-dot.blocked{background:#d05e45}.status-dot.done{background:#278765}.status-dot.planned{background:#b78320}.note{border-left:3px solid #c8d3da;padding:5px 0 5px 10px;margin:10px 0}.note p{margin:0 0 4px}.note small{color:var(--muted)}.site-grid,.project-grid,.master-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.site-card,.project-card{border:1px solid var(--line);border-radius:11px;padding:14px;color:var(--text);background:#fff}.site-card div,.project-card div{display:flex;gap:12px;color:var(--muted);font-size:12px;margin-top:9px}.project-card:hover{border-color:#9fcabe;box-shadow:0 5px 15px rgba(20,108,90,.08)}.project-card h3{margin:0 0 5px;font-size:16px}.project-card p{color:var(--muted);font-size:13px;min-height:34px}.timeline>div{display:grid;grid-template-columns:105px 1fr 1fr;gap:12px;padding:9px 0;border-top:1px solid var(--line);align-items:baseline}.timeline>div:first-child{border:0}.timeline time{color:var(--accent);font-weight:700;font-size:12px}.timeline span{color:var(--muted);font-size:12px}.timeline.large>div{grid-template-columns:180px 260px 1fr}.timeline.large p{grid-column:2/4;margin:0;color:var(--muted)}.footnote{font-size:11px;color:var(--muted)}.form-control{width:100%;border:1px solid #cfd8de;border-radius:8px;padding:9px 10px;background:#fff;color:var(--text)}textarea.form-control{resize:vertical}.form-grid{display:grid;gap:13px;margin-bottom:14px}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid label,.form-panel>label{font-size:12px;font-weight:700}.form-grid label>span,.form-panel label>span{font-weight:400;color:var(--muted)}.form-grid label .form-control,.form-panel label .form-control{margin-top:5px}.span2{grid-column:span 2}.check{display:flex!important;align-items:center;gap:8px}.check input{width:auto}.link-btn{border:0;background:transparent;color:var(--accent);cursor:pointer}.collapsible:not(.open){display:none}.sticky-actions{position:sticky;bottom:12px;background:rgba(244,246,248,.94);backdrop-filter:blur(8px);padding:11px;border:1px solid var(--line);border-radius:12px;display:flex;gap:8px;width:max-content;max-width:100%;z-index:8}.errorbox,.blocked,.info-box{padding:12px;border-radius:9px;margin:10px 0}.errorbox{background:#fbe7e7;color:var(--danger)}.blocked{background:#fce9e3;color:#8b3b2d}.info-box{background:#edf4f7}.messages{margin-bottom:14px}.message{padding:10px 13px;border-radius:9px;background:#e8f4f0}.message.error{background:#fbe7e7}.review-summary{display:flex;gap:40px}.review-summary div{display:flex;flex-direction:column}.review-summary b{font-size:22px}.review-summary span{font-size:12px;color:var(--muted)}.review-main{min-width:0}.review-main h3{margin:7px 0}.review-main p{margin:0;white-space:pre-wrap}.chips{display:flex;gap:6px;flex-wrap:wrap}.chips span{font-size:11px;background:#eef2f5;padding:3px 7px;border-radius:999px;color:#52606a}.row-actions{display:flex;align-items:center;gap:7px}.day-close{display:flex;justify-content:flex-end}.filterbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filterbar .form-control{width:auto;min-width:150px}.filterbar.wide{display:grid;grid-template-columns:2fr repeat(5,1fr) auto}.task-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.task-card{background:#fff;border:1px solid var(--line);border-left:5px solid #9ca8af;border-radius:12px;padding:15px}.task-card.status-doing{border-left-color:#2f70c0}.task-card.status-blocked{border-left-color:#d05e45}.task-card.status-done{border-left-color:#278765}.task-card.status-planned{border-left-color:#b78320}.task-top,.task-actions{display:flex;justify-content:space-between;gap:8px;align-items:center}.task-card h3{margin:12px 0 5px}.task-card p{color:var(--muted);font-size:13px}.task-card small{display:block;margin-top:10px;color:var(--muted)}.task-actions{margin-top:13px}.compact{padding:6px 8px}.area-group{border-top:1px solid var(--line);padding:12px 0}.area-group:first-of-type{border:0}.area-group h3{font-size:14px;color:var(--accent)}.task-line{display:grid;grid-template-columns:12px 1fr;gap:8px;padding:6px}.task-line small{display:block;color:var(--muted)}.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px}.facts dt{color:var(--muted)}.facts dd{margin:0;text-align:right}.table-wrap{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:11px 12px;vertical-align:top}th{background:#f7f9fa;position:sticky;top:0;z-index:2;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#5e6972}td small{display:block;color:var(--muted);margin-top:3px}table.dense{font-size:12px}.pager{display:flex;justify-content:center;gap:18px;padding:12px}.big-search{display:flex;gap:8px;max-width:900px;margin-bottom:18px}.big-search input{font-size:17px;padding:12px}.search-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.search-hit{border-top:1px solid var(--line);padding:11px 0}.search-hit:first-of-type{border:0}.search-hit p{margin:4px 0;white-space:pre-wrap}.search-hit small{color:var(--muted)}.report-sheet{background:#fff;max-width:1200px;margin:auto;padding:28px;border:1px solid var(--line);box-shadow:var(--shadow)}.report-sheet header{border-bottom:2px solid #333;margin-bottom:20px}.report-sheet header h1{margin:0}.report-day h3{background:#eef2f4;padding:8px;margin-top:22px}.report-day h4{margin:15px 0 5px}.dropzone{border:2px dashed #b8c5cc;border-radius:12px;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;margin-bottom:15px;background:#fafcfd;cursor:pointer}.dropzone input{margin-bottom:9px}.master-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.master-row{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:8px 0;font-size:13px}.master-row:first-of-type{border:0}.master-row span{color:var(--muted);text-align:right}.generic-form{max-width:760px}.generic-form p{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:12px}.generic-form input,.generic-form select,.generic-form textarea{border:1px solid #cfd8de;border-radius:8px;padding:9px 10px;width:100%}.mobile-nav{display:none}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:#1c2730}.login-card{background:#fff;width:min(420px,100%);padding:30px;border-radius:16px;box-shadow:0 20px 50px #0004}.login-card h1{margin:0}.login-card>p{color:var(--muted);margin-top:4px}.login-card p:has(input){display:grid;gap:5px}.login-card input{width:100%;border:1px solid var(--line);padding:10px;border-radius:8px}@media(max-width:1100px){.app-shell{grid-template-columns:78px minmax(0,1fr)}.sidebar a span{display:none}.sidebar a{justify-content:center;font-size:19px}.filterbar.wide{grid-template-columns:repeat(3,1fr)}.site-grid,.project-grid{grid-template-columns:repeat(2,1fr)}.task-board{grid-template-columns:repeat(2,1fr)}.form-grid.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){body{padding-bottom:70px}.topbar{height:54px;padding:0 13px}.brand{font-size:17px}.topsearch,.userbox,.sidebar{display:none}.app-shell{display:block;min-height:auto}.content{padding:16px 12px 35px}.page-head{align-items:flex-start}.page-head h1{font-size:23px}.page-head .actions{width:100%}.page-head{flex-wrap:wrap}.page-head .actions .btn{flex:1}.stat-grid{grid-template-columns:repeat(2,1fr);gap:8px}.stat{padding:12px}.stat strong{font-size:21px}.desktop-grid.two-one,.search-columns{grid-template-columns:1fr}.desktop-only{display:none}.panel{padding:14px;border-radius:12px;margin-bottom:12px}.site-grid,.project-grid,.master-grid,.task-board{grid-template-columns:1fr}.timeline>div,.timeline.large>div{grid-template-columns:95px 1fr}.timeline span,.timeline.large span{grid-column:2}.timeline.large p{grid-column:2}.form-grid.four,.form-grid.three{grid-template-columns:1fr}.span2{grid-column:auto}.advanced-block .collapsible{display:none}.advanced-block .collapsible.open{display:grid}.sticky-actions{bottom:76px;width:100%;display:grid;grid-template-columns:1fr 1fr}.sticky-actions .primary{grid-column:span 2}.review-row,.work-row{display:block}.row-meta{display:flex;justify-content:flex-start;text-align:left;margin-top:7px}.row-actions{margin-top:10px}.review-summary{justify-content:space-around;gap:10px}.filterbar,.filterbar.wide{display:grid;grid-template-columns:1fr 1fr}.filterbar .form-control{width:100%;min-width:0}.filterbar button{grid-column:span 2}.table-wrap{margin:0 -14px}.table-wrap table{min-width:900px}.report-sheet{padding:12px;border:0;box-shadow:none}.report-sheet table{min-width:700px}.generic-form p{grid-template-columns:1fr;gap:4px}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:40;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;height:62px;color:#4e5b65;font-size:20px}.mobile-nav small{font-size:10px;margin-top:2px}.mobile-nav .mobile-add{color:#fff;background:var(--accent);height:52px;margin:5px;border-radius:13px}.big-search{display:grid;grid-template-columns:1fr auto}.desktop-grid .stack{display:contents}}@media print{.topbar,.sidebar,.mobile-nav,.no-print,.messages{display:none!important}.app-shell{display:block}.content{padding:0;max-width:none}.report-sheet{box-shadow:none;border:0;max-width:none;padding:0}body{background:#fff;padding:0}.report-day{break-inside:avoid}th{position:static}}

/* V0.2: searchable selects + inline master-data creation */
.smart-field{display:flex;align-items:stretch;gap:6px;width:100%;margin-top:5px;position:relative}.smart-select{position:relative;min-width:0;flex:1}.smart-native-select{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;pointer-events:none!important;left:0;bottom:0;padding:0!important;border:0!important}.smart-select-input{width:100%;border:1px solid #cfd8de;border-radius:8px;padding:9px 34px 9px 10px;background:#fff;color:var(--text);font:inherit}.smart-select:after{content:'⌄';position:absolute;right:11px;top:50%;transform:translateY(-54%);color:var(--muted);pointer-events:none;font-size:15px}.smart-select-input:focus{outline:2px solid rgba(20,108,90,.18);border-color:#7ab4a8}.smart-select-menu{display:none;position:absolute;z-index:75;left:0;right:0;top:calc(100% + 4px);max-height:270px;overflow:auto;background:#fff;border:1px solid #cfd8de;border-radius:10px;box-shadow:0 14px 34px rgba(20,34,45,.18);padding:5px}.smart-select-menu.open{display:block}.smart-select-option{display:block;width:100%;text-align:left;border:0;background:#fff;border-radius:7px;padding:9px 10px;cursor:pointer;color:var(--text)}.smart-select-option:hover,.smart-select-option:focus{outline:0;background:var(--soft)}.smart-select-option.selected{color:var(--accent);font-weight:750}.smart-select-option:disabled{opacity:.5;cursor:not-allowed}.smart-select-empty{padding:12px 10px;color:var(--muted);font-size:12px}.quick-add-btn{flex:0 0 40px;border:1px solid #b9d7cf;background:var(--soft);color:var(--accent);border-radius:8px;font-size:20px;font-weight:800;cursor:pointer}.quick-add-btn:hover{background:#d9eee8}.quick-add-btn:disabled{opacity:.45;cursor:not-allowed}.filterbar .smart-field{margin-top:0;min-width:160px;flex:1}.filterbar.wide .smart-field{margin-top:0;min-width:0}.generic-form .smart-field{margin-top:0}.generic-form p:has(.smart-field){overflow:visible}.generic-form p{position:relative}

.modal-shell{display:none;position:fixed;inset:0;z-index:100}.modal-shell.open{display:block}.modal-backdrop{position:absolute;inset:0;border:0;background:rgba(10,18,24,.55);width:100%;height:100%}.modal-card{position:relative;margin:7vh auto 0;width:min(680px,calc(100% - 28px));max-height:86vh;overflow:auto;background:#fff;border-radius:16px;padding:19px;box-shadow:0 24px 70px rgba(0,0,0,.3)}.modal-card .panel-head{position:sticky;top:-19px;background:#fff;padding:4px 0 10px;z-index:3}.modal-card h2{margin:0}.icon-btn{border:0;background:#edf1f3;color:var(--text);width:34px;height:34px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer}.quick-add-form p{display:grid;grid-template-columns:170px 1fr;gap:10px;align-items:center}.quick-add-form input,.quick-add-form select,.quick-add-form textarea{width:100%;border:1px solid #cfd8de;border-radius:8px;padding:9px 10px}.quick-add-form ul.errorlist{grid-column:2;margin:0;color:var(--danger);font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.modal-loading{padding:30px;text-align:center;color:var(--muted)}body.modal-open{overflow:hidden}

.mobile-menu-btn{display:none;margin-left:auto;border:0;background:#2a3742;color:#fff;border-radius:9px;width:40px;height:40px;font-size:20px}.mobile-more{display:none}.master-search-panel{max-width:780px}.master-search-panel label{display:block;margin-bottom:7px}.master-section.master-no-match{display:none}

@media(max-width:760px){
  .mobile-menu-btn{display:block}.brand{margin-right:auto}.modal-card{margin:0;width:100%;height:auto;max-height:92vh;position:absolute;bottom:0;border-radius:18px 18px 0 0;padding:16px}.modal-card .panel-head{top:-16px}.quick-add-form p{grid-template-columns:1fr;gap:4px}.quick-add-form ul.errorlist{grid-column:auto}.modal-actions{position:sticky;bottom:-16px;background:#fff;padding:12px 0 16px}.smart-select-menu{max-height:230px}.quick-add-btn{flex-basis:44px}.filterbar .smart-field,.filterbar.wide .smart-field{min-width:0;width:100%}
html[data-theme="dark"] .modal-actions{background:var(--panel)}
  .mobile-more{display:block;position:fixed;inset:0;z-index:90;pointer-events:none}.mobile-more.open{pointer-events:auto}.mobile-more-backdrop{position:absolute;inset:0;border:0;background:rgba(10,18,24,.52);opacity:0;transition:opacity .15s}.mobile-more.open .mobile-more-backdrop{opacity:1}.mobile-more-sheet{position:absolute;right:0;top:0;bottom:0;width:min(360px,88vw);background:#fff;padding:18px;transform:translateX(105%);transition:transform .18s ease;box-shadow:-16px 0 38px rgba(0,0,0,.18);overflow:auto}.mobile-more.open .mobile-more-sheet{transform:translateX(0)}.mobile-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:16px}.mobile-more-grid a{min-height:82px;border:1px solid var(--line);border-radius:12px;padding:12px;color:var(--text);display:flex;flex-direction:column;justify-content:center;gap:6px;font-size:22px}.mobile-more-grid span{font-size:12px;font-weight:700}.mobile-menu-open{overflow:hidden}
  .page-head .actions{display:grid;grid-template-columns:1fr 1fr}.page-head .actions .btn:first-child:last-child{grid-column:span 2}
}
input[type=checkbox].form-control{width:auto;padding:0;border:0}

/* V0.3: full master-data maintenance */
.master-row{align-items:center}.master-main{display:flex;justify-content:space-between;gap:12px;min-width:0;flex:1}.master-main b{min-width:0;overflow-wrap:anywhere}.master-main span{color:var(--muted);text-align:right}.master-actions{display:flex;gap:5px;flex:0 0 auto}.icon-action{display:inline-flex;align-items:center;justify-content:center;width:33px;height:33px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--text);font-size:15px}.icon-action:hover{background:var(--soft)}.icon-action.danger{color:#a33333;border-color:#ead0d0}.icon-action.danger:hover{background:#fff0f0}.master-row.is-inactive{opacity:.58}.danger-outline{color:#a33333!important;border-color:#e1bcbc!important;margin-left:auto}.danger-btn{background:#a93636!important;color:#fff!important;border-color:#a93636!important}.warn-btn{background:#a66c15!important;color:#fff!important;border-color:#a66c15!important}.delete-card{max-width:760px}.delete-state{display:grid;gap:5px;padding:14px 15px;border-radius:10px;margin-bottom:18px}.delete-state.ok{background:#edf8f3;border:1px solid #c8e6d7}.delete-state.warn{background:#fff5e6;border:1px solid #ecd5ad}.delete-state span{color:var(--muted);font-size:13px}.usage-list{list-style:none;padding:0;margin:0 0 20px}.usage-list li{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:10px 3px}.usage-list li:first-child{border-top:0}.usage-list b{font-variant-numeric:tabular-nums}
@media(max-width:760px){.master-main{display:grid;gap:3px}.master-main span{text-align:left}.master-actions{align-self:center}.icon-action{width:40px;height:40px}.generic-form .actions{display:grid;grid-template-columns:1fr 1fr}.generic-form .actions .danger-outline{grid-column:1/-1;margin-left:0}.delete-card .actions{display:grid;grid-template-columns:1fr}.delete-card .btn{width:100%;text-align:center}}

/* V0.4: flexible work-entry schema + compact reports */
.today-chip{font-size:12px;font-weight:750;background:var(--soft);color:var(--accent);border-radius:999px;padding:6px 10px}.date-override{margin:-4px 0 14px}.date-override details{display:inline-block}.date-override summary{cursor:pointer;color:var(--muted);font-size:12px}.date-override label{display:block;margin-top:8px}.quantity-unit{display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:6px;margin-top:5px}.quantity-unit .form-control{margin-top:0}.quantity-unit select.form-control{min-width:82px}.muted.compact{margin:2px 0 0;font-size:12px}.dynamic-empty{padding:9px 10px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:12px}.cable-batch[hidden]{display:none}.cable-batch-wrap{margin-top:10px}.batch-table{min-width:1120px}.batch-table input,.batch-table select{min-width:105px}.batch-table th:first-child,.batch-table td:first-child{width:100px}.entry-detail-grid{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;margin:6px 0}.entry-detail-grid span{background:#f5f7f8;border-radius:7px;padding:5px 7px}.entry-description{margin:7px 0 0}.field-checkboxes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px}.field-checkboxes li{list-style:none}.field-checkboxes label{display:flex;align-items:center;gap:7px;font-weight:500}.field-checkboxes input{width:auto!important;margin:0}.helptext{color:var(--muted);font-size:12px;line-height:1.35}.appointment-row{position:relative}.appointment-actions{grid-column:2/4;display:flex;gap:6px;margin-top:5px}.appointment-actions form{margin:0}.compact-panel{padding:12px 16px}.compact-panel p{margin:4px 0 0}.report-compact-head{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid #777;margin-bottom:11px}.report-compact-head>div{padding:5px 7px;border-right:1px solid #aaa}.report-compact-head>div:last-child{border-right:0}.report-compact-head span{display:block;font-size:8.5pt;color:#555;text-transform:uppercase;letter-spacing:.03em}.report-compact-head b{display:block;font-size:10pt;margin-top:1px}.report-date{font-size:12pt;margin:14px 0 7px;border-bottom:1px solid #777;padding-bottom:3px}.report-person{font-size:10.5pt;margin:9px 0 4px}.report-project{margin:10px 0 15px;break-inside:avoid}.report-project>h3{margin:0;padding:5px 7px;background:#eceff1;border-left:4px solid #5c6972;font-size:11pt}.report-project>h3 small{font-size:9pt;font-weight:500}.report-activity{margin:7px 0 10px}.report-activity h4{margin:0 0 2px;padding-left:4px;font-size:10pt}.report-table{width:100%;border-collapse:collapse;font-size:9.5pt}.report-table td{border-top:1px solid #d8d8d8;padding:4px 5px;vertical-align:top}.report-table tr:first-child td{border-top:0}.report-qty{width:95px;text-align:right;white-space:nowrap;font-weight:700}.report-details{font-size:8.8pt;margin-top:2px;line-height:1.35;color:#333}.report-sheet{max-width:210mm;margin:0 auto;background:#fff}.generic-form .field-checkboxes{grid-column:2}.generic-form p:has(.field-checkboxes){align-items:start}

@media(max-width:760px){.basic-entry-grid{grid-template-columns:1fr!important}.quantity-unit{grid-template-columns:1fr 80px}.field-checkboxes{grid-template-columns:1fr}.generic-form .field-checkboxes{grid-column:auto}.appointment-actions{grid-column:2}.report-compact-head{grid-template-columns:1fr 1fr}.report-compact-head>div:nth-child(2){border-right:0}.report-compact-head>div:nth-child(-n+2){border-bottom:1px solid #aaa}.report-sheet{overflow:visible}.report-table{min-width:0!important}.report-project>h3{font-size:10.5pt}.entry-detail-grid{display:grid;grid-template-columns:1fr}.cable-batch-wrap{margin-left:-14px;margin-right:-14px}}

@media print{
  @page{size:A4;margin:0}
  html,body{margin:0!important;padding:0!important;background:#fff!important}
  .content{padding:0!important;margin:0!important}
  .report-sheet{box-sizing:border-box;width:210mm;min-height:297mm;padding:9mm 11mm!important;margin:0!important;max-width:none!important;border:0!important;box-shadow:none!important;overflow:visible!important}
  .report-compact-head{margin-top:0}
  .report-project{break-inside:avoid-page}
  .report-activity{break-inside:avoid-page}
  a{color:#000!important;text-decoration:none!important}
}
.field-checkboxes>div{display:block}.field-checkboxes>div label{display:flex;align-items:center;gap:7px;font-weight:500}.field-checkboxes>div input{width:auto!important;margin:0}

/* V0.5+: configurable activity fields, archive and stronger print grouping */
.span3{grid-column:1/-1}.custom-work-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.custom-work-fields[hidden]{display:none}.custom-work-field{font-size:12px;font-weight:700}.custom-work-field .form-control{margin-top:5px}.custom-work-field small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.custom-field-editor{border-top:1px solid var(--line);margin:18px 0;padding-top:16px}.custom-field-editor h3{margin:0;font-size:16px}.custom-field-row{display:grid;grid-template-columns:1.1fr 1.1fr .55fr 1fr 1.3fr auto auto auto;gap:8px;align-items:end;padding:10px 0;border-top:1px solid var(--line)}.custom-field-row:first-child{border-top:0}.custom-field-row label{font-size:11px;font-weight:700}.custom-field-row .check{padding-bottom:8px}.custom-field-row .icon-action{margin-bottom:1px}.closure-grid{grid-template-columns:1.4fr 1fr}.closure-grid small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.report-filter .filter-field{display:grid;gap:3px}.report-filter .filter-field small{color:var(--muted);font-size:10px}.no-screen{display:none}
.report-project>h3{background:#d9dde0;border-left:5px solid #3f4850;border-top:1px solid #9ba3a9;border-bottom:1px solid #9ba3a9;color:#111;font-weight:800;-webkit-print-color-adjust:exact;print-color-adjust:exact}
@media(max-width:1100px){.custom-field-row{grid-template-columns:1fr 1fr 1fr}.custom-field-row .cf-options{grid-column:span 2}.custom-work-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.custom-work-fields{grid-template-columns:1fr}.custom-field-row{grid-template-columns:1fr 1fr}.custom-field-row .cf-options{grid-column:1/-1}.closure-grid{grid-template-columns:1fr!important}.historical-edit-row .form-grid.four{grid-template-columns:1fr!important}}
@media print{.report-project>h3{background:#d0d4d7!important;border-left:5px solid #222!important;border-top:1px solid #555!important;border-bottom:1px solid #555!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.no-screen{display:block}}
/* custom editor stays readable inside the 760px admin form */
.generic-form .custom-field-row,.quick-add-form .custom-field-row{grid-template-columns:1fr 1fr 1fr}.generic-form .custom-field-row .cf-options,.quick-add-form .custom-field-row .cf-options{grid-column:span 2}
@media(max-width:760px){.generic-form .custom-field-row,.quick-add-form .custom-field-row{grid-template-columns:1fr 1fr}.generic-form .custom-field-row .cf-options,.quick-add-form .custom-field-row .cf-options{grid-column:1/-1}}

/* V0.6: grouped multi-position entries and import-to-work-data sync */
.entry-items{margin:8px 0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fafbfb}.entry-items-head{display:flex;justify-content:space-between;gap:12px;padding:6px 9px;background:#f1f4f5;font-size:12px}.entry-items-table{width:100%;border-collapse:collapse;font-size:12px;min-width:0}.entry-items-table td{padding:5px 8px;border-top:1px solid var(--line);vertical-align:top}.entry-items-table td:last-child span{display:inline-block;margin-right:10px}.entry-item-qty{width:90px;white-space:nowrap;text-align:right;font-weight:700}.batch-unit{display:block;font-size:10px;color:var(--muted);margin-top:2px}.batch-table{min-width:900px}.batch-table th{white-space:nowrap}.import-map-summary{display:flex;flex-wrap:wrap;gap:7px 18px;margin:8px 0 12px;font-size:13px}.import-work-sync form{margin:8px 0}.custom-field-row .check{white-space:nowrap}
.cf-row-actions{display:flex;gap:4px;align-items:center;justify-content:flex-end;padding-bottom:1px}.cf-row-actions .icon-action{margin-bottom:0}.cf-row-actions .icon-action:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}
@media(max-width:760px){.cf-row-actions{grid-column:1/-1;justify-content:flex-end;border-top:1px dashed var(--line);padding-top:8px}}
@media(max-width:760px){.entry-items-head{align-items:flex-start;flex-direction:column;gap:2px}.entry-item-qty{text-align:left;width:72px}.entry-items-table{font-size:11px}.batch-table{min-width:760px}}


/* V0.6.1: print-flow hotfix, report text size and generic collectors */
/* V0.9.3.5 – Berichtsvorschau bewusst größer; diese Größen gelten nur am Bildschirm. */
.report-sheet{--report-head-label:9.5pt;--report-head-value:11.2pt;--report-date-size:13.4pt;--report-person-size:11.7pt;--report-project-size:12.3pt;--report-project-small:10pt;--report-activity-size:11.2pt;--report-table-size:10.6pt;--report-detail-size:9.8pt}
.report-size-small{--report-head-label:8.5pt;--report-head-value:10pt;--report-date-size:12pt;--report-person-size:10.5pt;--report-project-size:11pt;--report-project-small:9pt;--report-activity-size:10pt;--report-table-size:9.5pt;--report-detail-size:8.8pt}
.report-size-large{--report-head-label:10.5pt;--report-head-value:12.4pt;--report-date-size:14.8pt;--report-person-size:13pt;--report-project-size:13.7pt;--report-project-small:11pt;--report-activity-size:12.4pt;--report-table-size:11.7pt;--report-detail-size:10.8pt}
.report-size-xlarge{--report-head-label:11.5pt;--report-head-value:13.6pt;--report-date-size:16.2pt;--report-person-size:14.2pt;--report-project-size:15pt;--report-project-small:12pt;--report-activity-size:13.6pt;--report-table-size:12.8pt;--report-detail-size:11.8pt}
.report-sheet .report-compact-head span{font-size:var(--report-head-label)}.report-sheet .report-compact-head b{font-size:var(--report-head-value)}.report-sheet .report-date{font-size:var(--report-date-size)}.report-sheet .report-person{font-size:var(--report-person-size)}.report-sheet .report-project>h3{font-size:var(--report-project-size)}.report-sheet .report-project>h3 small{font-size:var(--report-project-small)}.report-sheet .report-activity h4{font-size:var(--report-activity-size)}.report-sheet .report-table{font-size:var(--report-table-size)}.report-sheet .report-details{font-size:var(--report-detail-size)}
.entry-item-description{display:block!important;margin-top:3px;color:var(--muted)}
@media print{
  .report-project,.report-activity{break-inside:auto!important;page-break-inside:auto!important}
  .report-project>h3,.report-activity>h4{break-after:avoid-page!important;page-break-after:avoid!important}
  .report-table tr{break-inside:avoid-page!important;page-break-inside:avoid!important}
  .report-compact-head{break-inside:avoid-page!important;page-break-inside:avoid!important}
}

/* V0.7: Arbeitsmodus, Projekt-Zentrale, Anhänge, Sammelwerkzeuge und Gerätedichte */
.density-select{background:#26323d;color:#dce4e9;border:1px solid #42515e;border-radius:7px;padding:4px 7px;font-size:11px;max-width:122px}.userbox{display:flex;align-items:center;gap:8px}.userbox a{margin-left:0}
.workmode-context{position:sticky;top:76px;z-index:7}.workmode-stats .stat strong{font-size:20px}.workmode-entry{display:flex;justify-content:space-between;gap:18px;padding:14px 0;border-top:1px solid var(--line)}.workmode-entry:first-of-type{border-top:0}.workmode-entry-main{min-width:0;flex:1}.workmode-entry-main h3{margin:8px 0 5px}.workmode-entry-main>p{color:var(--muted);margin:4px 0}.workmode-entry-actions{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap}.empty-state-large{text-align:center;padding:42px 20px}.empty-state-large p{color:var(--muted)}
.project-hub-head{align-items:center}.project-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.project-work-row .entry-items{max-width:900px}.project-work-main{min-width:0;flex:1}.project-entry-activity{margin:8px 0 7px;font-size:18px;line-height:1.2;font-weight:850;color:var(--text)}.project-entry-subgroup{margin-top:10px}.project-entry-details{margin-top:9px}.summary-line{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-top:1px solid var(--line);font-size:13px}.summary-line:first-of-type{border-top:0}.summary-line span{min-width:0}.summary-line b{white-space:nowrap}
.attachment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.attachment-card{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff;min-width:0}.attachment-preview{display:block;aspect-ratio:16/10;background:#eef2f4;overflow:hidden}.attachment-preview img{width:100%;height:100%;object-fit:cover;display:block}.attachment-file-icon{height:110px;display:grid;place-items:center;background:#eef2f4;font-size:42px;color:#74818b}.attachment-info{padding:11px}.attachment-info>b{display:block;margin:7px 0 4px;overflow-wrap:anywhere}.attachment-info p{font-size:12px;color:var(--muted);margin:4px 0}.attachment-info small{color:var(--muted);font-size:11px}.attachment-actions{display:flex;gap:10px;align-items:center;margin-top:8px;font-size:12px}.attachment-actions form{margin:0}.danger-text{color:var(--danger)!important}.span-all{grid-column:1/-1}.attachment-inline-list{display:flex;flex-wrap:wrap;gap:8px}.attachment-chip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;max-width:100%;border:1px solid var(--line);border-radius:9px;padding:7px 9px;color:var(--text);font-size:12px}.attachment-chip>span{color:var(--accent);font-weight:700}.attachment-chip>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip>small{color:var(--muted)}.file-drop{border:1px dashed #aab7bf;border-radius:10px;padding:13px}.file-drop small{display:block;margin-top:6px;color:var(--muted);font-weight:400}
.bulk-toolbar{position:sticky;top:70px;z-index:12;margin:0 0 10px;background:#e8f4f0;border:1px solid #afd4ca;border-radius:11px;padding:9px 11px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;box-shadow:var(--shadow)}.bulk-toolbar[hidden]{display:none}.bulk-toolbar b{margin-right:auto}.select-col{width:38px;text-align:center!important}.select-col input{width:17px;height:17px}.bulk-edit-grid{display:grid;gap:8px;margin-bottom:14px}.bulk-edit-row{display:grid;grid-template-columns:210px minmax(240px,520px);gap:14px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.bulk-edit-row:first-child{border-top:0}.bulk-edit-row .check{font-weight:700}.bulk-edit-row .form-control{margin:0}
.search-entity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.search-entity{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:10px;padding:11px;color:var(--text)}.search-entity:hover{border-color:#9fcabe}.search-entity .badge{margin-bottom:2px}.search-entity small{color:var(--muted)}.attachment-search-hit>div{min-width:0}.mini-thumb{float:left;width:58px;height:44px;margin:0 9px 5px 0;border-radius:6px;overflow:hidden;background:#eef2f4}.mini-thumb img{width:100%;height:100%;object-fit:cover}.work-data-table .entry-items{min-width:300px}

/* Die Dichte wird pro Browser/Gerät in localStorage gespeichert. */
html[data-density="compact"] .content{padding:20px 24px 54px}html[data-density="compact"] .panel{padding:14px;margin-bottom:14px}html[data-density="compact"] .panel.flush{padding:0}html[data-density="compact"] th,html[data-density="compact"] td{padding:8px 9px}html[data-density="compact"] .work-row,html[data-density="compact"] .review-row{padding:9px 0}html[data-density="compact"] .form-control{padding:7px 8px}html[data-density="compact"] .stat{padding:12px}html[data-density="compact"] .stat strong{font-size:22px}html[data-density="compact"] .page-head{margin-bottom:14px}html[data-density="compact"] .page-head h1{font-size:25px}
html[data-density="dense"] .content{padding:14px 18px 48px;max-width:2100px}html[data-density="dense"] .panel{padding:10px 12px;margin-bottom:10px;border-radius:10px}html[data-density="dense"] .panel.flush{padding:0}html[data-density="dense"] th,html[data-density="dense"] td{padding:5px 7px}html[data-density="dense"] table{font-size:11px}html[data-density="dense"] table.dense{font-size:10.5px}html[data-density="dense"] .work-row,html[data-density="dense"] .review-row{padding:6px 0}html[data-density="dense"] .form-control{padding:6px 7px}html[data-density="dense"] .stat{padding:9px 11px}html[data-density="dense"] .stat strong{font-size:19px}html[data-density="dense"] .stat-grid{gap:8px;margin-bottom:10px}html[data-density="dense"] .page-head{margin-bottom:10px}html[data-density="dense"] .page-head h1{font-size:22px}html[data-density="dense"] .btn{padding:6px 9px;font-size:12px}html[data-density="dense"] .sidebar a,html[data-density="dense"] .logout button{padding:7px 10px;font-size:12px}html[data-density="dense"] .app-shell{grid-template-columns:190px minmax(0,1fr)}html[data-density="dense"] .entry-items-table td{padding:3px 5px}

@media(max-width:1100px){.attachment-grid,.search-entity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workmode-context{position:static}.project-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.density-select{display:none}.workmode-entry{display:block}.workmode-entry-actions{margin-top:10px}.attachment-grid,.search-entity-grid{grid-template-columns:1fr}.bulk-edit-row{grid-template-columns:1fr;gap:5px}.bulk-toolbar{top:66px}.project-stats{grid-template-columns:1fr 1fr}.attachment-form .form-grid.three{grid-template-columns:1fr}.attachment-form .span2,.attachment-form .span3{grid-column:auto}html[data-density="compact"] .content,html[data-density="dense"] .content{padding:16px 14px 80px}html[data-density="dense"] .app-shell{grid-template-columns:1fr}}
@media print{.bulk-toolbar,.density-select{display:none!important}}


/* V0.7.1: mehrere Arbeitskontexte + deutlich sichtbarer Freitext im Bericht */
.work-context-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.work-context-card{position:relative;border:1px solid var(--line);border-radius:11px;background:#fff;min-width:0;overflow:hidden}.work-context-card.active{border-color:#62ab99;box-shadow:0 0 0 2px rgba(20,108,90,.10)}.work-context-open{margin:0}.work-context-main{display:flex;width:100%;min-height:105px;flex-direction:column;align-items:flex-start;gap:3px;border:0;background:transparent;padding:13px 42px 13px 13px;text-align:left;color:var(--text);cursor:pointer}.work-context-main:hover{background:#f5faf8}.work-context-site{font-size:12px;font-weight:800;color:var(--accent)}.work-context-main b{font-size:14px}.work-context-main small{color:var(--muted);line-height:1.35}.work-context-main em{font-style:normal;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:#e5f4ef;padding:3px 6px;border-radius:999px;margin-top:auto}.work-context-delete{position:absolute;right:8px;top:8px;margin:0}.report-description{margin-top:3px;white-space:pre-wrap;line-height:1.4;color:#222}.report-detail-list{display:grid;gap:4px}.report-detail-item{padding-top:2px}.report-detail-item+.report-detail-item{border-top:1px dotted #ccc;padding-top:4px}
@media(max-width:1100px){.work-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.work-context-grid{grid-template-columns:1fr}.work-context-main{min-height:86px}}

.effort-duration{align-self:end;margin-bottom:2px;padding:8px 10px;border-radius:8px;background:#eef7f4;color:var(--accent);font-size:12px;font-weight:750}.effort-duration[hidden]{display:none}


/* V0.7.2: Konten und Datenfreigaben */
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-grid .panel{margin:0}.account-username{display:flex;justify-content:space-between;gap:15px;padding:10px 0 14px;border-bottom:1px solid var(--line);margin-bottom:10px}.account-username span,.permission-summary span{color:var(--muted);font-size:12px}.compact-generic{box-shadow:none!important;border:0!important;padding:0!important;margin:0!important}.compact-generic p{grid-template-columns:160px minmax(0,1fr)}.permission-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.permission-summary>div{border:1px solid var(--line);border-radius:9px;padding:10px 12px}.permission-summary b{display:block;margin-top:3px}.visible-user-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.visible-user-chips span,.visibility-note{display:inline-flex;background:#e6f3ef;color:var(--accent);border-radius:999px;padding:3px 7px;font-size:11px;font-weight:750}.user-table td small{display:block;color:var(--muted);margin-top:3px}.user-admin-form select[multiple]{min-height:180px}.permission-help{grid-column:1/-1;background:#f4f8f7;border:1px solid #d2e5df;border-radius:9px;padding:10px 12px}.permission-help p{margin:4px 0 0;color:var(--muted);font-size:12px}.panel.subtle{background:#f8fafb;box-shadow:none}.badge.ok{background:#e6f4ec;color:#267245}
@media(max-width:760px){.settings-grid{grid-template-columns:1fr}.compact-generic p{grid-template-columns:1fr}.permission-summary{grid-template-columns:1fr}.user-admin-form select[multiple]{min-height:150px}}


/* V0.7.3: Aufwandbericht, mobile Bildansicht und Freitext im Arbeitsmodus */
.report-effort-block{padding:7px 0 8px;border-top:1px solid #cfd4d7;break-inside:avoid-page;page-break-inside:avoid}
.report-effort-block:first-child{border-top:0;padding-top:3px}
.report-effort-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.report-effort-head h4{margin:0;font-size:var(--report-activity-size)}
.report-effort-head span{font-weight:800;white-space:nowrap;font-size:var(--report-table-size)}
.report-effort-description{margin:5px 0 4px}
.report-effort-people{font-size:var(--report-detail-size);margin-top:4px;color:#333}
.report-effort-extra,.report-effort-quantity{font-size:var(--report-detail-size);margin-top:3px;color:#444}
.workmode-description{white-space:pre-wrap;color:var(--text)!important;background:#f5f7f8;border-left:3px solid #b9c6cc;padding:7px 9px;border-radius:4px}
.image-lightbox{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
.image-lightbox.open{display:flex}
.image-lightbox-backdrop{position:absolute;inset:0;border:0;background:rgba(7,12,16,.92);cursor:zoom-out}
.image-lightbox-card{position:relative;z-index:1;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:100%;max-height:100%;min-width:0}
.image-lightbox-card img{display:block;max-width:min(96vw,1600px);max-height:88vh;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 12px 45px rgba(0,0,0,.45);background:#111}
.image-lightbox-card figcaption{max-width:min(96vw,1100px);margin-top:8px;color:#fff;font-size:13px;text-align:center;overflow-wrap:anywhere}
.image-lightbox-close{position:absolute;right:-8px;top:-8px;z-index:2;width:38px;height:38px;border:0;border-radius:50%;background:rgba(0,0,0,.78);color:#fff;font-size:26px;line-height:1;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.35)}
body.image-lightbox-open{overflow:hidden}
.attachment-preview,.mini-thumb{cursor:zoom-in}
@media(max-width:760px){
  .attachment-preview{aspect-ratio:4/3;max-height:52vh}
  .attachment-preview img{max-width:100%;max-height:100%;object-fit:cover}
  .image-lightbox{padding:0}
  .image-lightbox-card{width:100vw;height:100dvh}
  .image-lightbox-card img{max-width:100vw;max-height:calc(100dvh - 54px);border-radius:0;box-shadow:none}
  .image-lightbox-card figcaption{margin:7px 14px 0;max-width:calc(100vw - 28px)}
  .image-lightbox-close{right:10px;top:10px;position:fixed}
  .report-effort-head{gap:8px;align-items:flex-start}
}
@media print{
  .image-lightbox{display:none!important}
  .report-effort-block{break-inside:avoid-page!important;page-break-inside:avoid!important}
}

/* V0.7.4: kompakte mobile Fotovorschau */
@media(max-width:760px){
  .attachment-card{width:100%;max-width:100%}
  .attachment-preview{height:180px;max-height:180px;aspect-ratio:auto!important;width:100%;overflow:hidden;background:#e9eef1}
  .attachment-preview img{width:100%!important;height:100%!important;max-width:100%!important;max-height:180px!important;object-fit:cover!important;display:block}
}

/* V0.7.5: mobile Anhangkarten wirklich auf Viewport begrenzen und Fotos komplett zeigen */
@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  .app-shell,.content,.panel,.attachment-grid,.attachment-card{min-width:0;max-width:100%;box-sizing:border-box}
  .attachment-grid{width:100%;grid-template-columns:minmax(0,1fr)!important;overflow:hidden}
  .attachment-card{width:100%!important;overflow:hidden}
  .attachment-preview{width:100%!important;height:190px!important;max-height:190px!important;display:flex!important;align-items:center;justify-content:center;overflow:hidden;background:#e9eef1}
  .attachment-preview img{display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;margin:auto}
  .attachment-info{min-width:0;max-width:100%;overflow:hidden}
  .attachment-info>b{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
}


/* V0.7.6: deterministische mobile Fotovorschau */
@media(max-width:760px){
  .attachment-grid{display:block!important;width:100%!important;max-width:100%!important;overflow:visible!important}
  .attachment-card{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;overflow:hidden!important}
  .attachment-preview{
    display:block!important;
    position:relative!important;
    width:100%!important;
    height:clamp(140px,42vw,190px)!important;
    max-height:190px!important;
    padding:0!important;
    margin:0!important;
    overflow:hidden!important;
    background:#e9eef1!important;
  }
  .attachment-preview img{
    display:block!important;
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    object-fit:contain!important;
    object-position:center center!important;
  }
}

/* V0.7.7: Projektseite mobil - kompakte Fotozeile statt breitem Vorschau-Banner. */
@media(max-width:760px){
  .project-attachments{overflow:hidden}
  .project-attachments .attachment-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  .project-attachments .attachment-card{
    display:grid!important;
    grid-template-columns:118px minmax(0,1fr)!important;
    align-items:stretch!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow:hidden!important;
  }
  .project-attachments .attachment-preview{
    display:flex!important;
    position:static!important;
    width:118px!important;
    height:104px!important;
    min-width:118px!important;
    min-height:104px!important;
    max-width:118px!important;
    max-height:104px!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    margin:0!important;
    overflow:hidden!important;
    background:#e9eef1!important;
  }
  .project-attachments .attachment-preview img{
    display:block!important;
    position:static!important;
    inset:auto!important;
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    margin:0!important;
    object-fit:contain!important;
    object-position:center!important;
  }
  .project-attachments .attachment-info{
    min-width:0!important;
    padding:9px 10px!important;
    overflow:hidden!important;
  }
  .project-attachments .attachment-info>b{display:block;overflow-wrap:anywhere}
  .project-attachments .attachment-actions{flex-wrap:wrap}
}

/* V0.7.9: mobile Positionslisten dürfen nicht die globale breite Tabellenregel erben. */
@media(max-width:760px){
  .entry-items .table-wrap{
    margin:0!important;
    max-width:100%!important;
    overflow-x:auto!important;
  }
  .entry-items .entry-items-table{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:auto!important;
  }
  .entry-items .entry-item-qty{
    width:72px!important;
    min-width:72px!important;
    max-width:72px!important;
    padding-left:8px!important;
    padding-right:8px!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-align:left!important;
  }
}

/* V0.8 import review */
.import-bulk-toolbar{position:sticky;top:64px;z-index:12;background:#f8fafb;border:1px solid var(--line);border-radius:11px;padding:10px;margin-bottom:12px;box-shadow:0 5px 14px rgba(20,34,45,.05)}
.import-bulk-select-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.import-bulk-fields{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr)) auto;gap:7px}.import-review-list{display:grid;gap:8px}.import-section-row{background:#e7ecef;border-left:4px solid #27343c;border-radius:8px;padding:10px 12px}.import-section-row>div{display:flex;flex-direction:column;gap:2px}.import-section-row small{color:var(--muted)}.import-section-row details{margin-top:7px}.import-work-row{display:grid;grid-template-columns:28px minmax(230px,.8fr) minmax(440px,1.4fr);gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;align-items:start}.import-work-row.is-reviewed{border-left:4px solid #66a58f}.import-work-row.is-ignored{opacity:.62;background:#f3f4f5}.import-row-check{padding-top:3px}.import-row-check input{width:18px;height:18px}.import-source{min-width:0}.import-source-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start}.import-source-main b{white-space:nowrap}.import-source-main span{white-space:pre-wrap}.import-source small{display:block;color:var(--muted);margin-top:5px;line-height:1.35}.import-row-fields{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:7px}.import-row-fields label,.import-advanced label{font-size:11px;color:var(--muted)}.import-row-fields .span2{grid-column:span 2}.import-row-fields textarea{min-height:56px}.import-advanced{grid-column:2/-1}.import-advanced summary,.import-section-row summary{cursor:pointer;color:var(--accent);font-size:12px}.import-advanced .form-grid{margin-top:7px}.checkline{display:flex!important;align-items:center;gap:6px;color:var(--text)!important}.checkline input{width:auto}
@media(max-width:1000px){.import-bulk-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.import-work-row{grid-template-columns:28px 1fr}.import-row-fields{grid-column:2;grid-template-columns:repeat(2,minmax(0,1fr))}.import-advanced{grid-column:2}.import-source{grid-column:2}}
@media(max-width:650px){.import-bulk-toolbar{top:0}.import-bulk-fields{grid-template-columns:1fr}.import-work-row{grid-template-columns:26px minmax(0,1fr);padding:8px}.import-row-fields{grid-template-columns:1fr}.import-row-fields .span2{grid-column:auto}.import-source-main{display:block}.import-source-main b{display:block;margin-bottom:3px}.import-advanced{grid-column:1/-1}.import-section-row{padding:9px}.import-bulk-select-actions .muted{width:100%}}
.warn-text{color:var(--warn)}

/* V0.8.4 – dependent report filters + accounting workflow */
.smart-select.disabled,
.smart-select:has(.smart-native-select:disabled) {
  opacity:.62;
}
.smart-select-input:disabled {
  cursor:not-allowed;
  background:var(--surface-soft, #f1f4f6);
}

.accounting-control {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  min-width:0;
}
.accounting-actions {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.accounting-action {
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--muted);
  border-radius:7px;
  padding:4px 7px;
  font:inherit;
  font-size:11px;
  line-height:1.2;
  cursor:pointer;
}
.accounting-action:hover { color:var(--text); border-color:var(--muted); }
.accounting-action.active { color:var(--text); font-weight:700; box-shadow:inset 0 0 0 1px currentColor; }
.accounting-action:disabled { opacity:.55; cursor:wait; }
.accounting-open { background:#eef1f3 !important; color:#5d6870 !important; }
.accounting-marked { background:#fff2c7 !important; color:#785a00 !important; }
.accounting-billed { background:#dff3e8 !important; color:#176640 !important; }
.project-accounting { align-items:flex-end; }

@media (max-width:760px) {
  .project-accounting { align-items:flex-start; width:100%; }
  .accounting-actions { width:100%; }
  .accounting-action { flex:1 1 auto; min-height:34px; }
}

/* V0.8.5 – einheitliche Arbeitsdaten-Filter + Bauleiter-Arbeitsbereich */
.work-filter-grid,.manager-filter{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 12px;align-items:end;margin-bottom:16px}.work-filter-field,.work-filter-action{display:grid;grid-template-rows:auto 44px;gap:5px;min-width:0;margin:0}.work-filter-field>span,.work-filter-action>span{color:var(--muted);font-size:11px;line-height:1.1;font-weight:700;white-space:nowrap}.work-filter-field .form-control,.work-filter-field .smart-field,.work-filter-field .smart-select,.work-filter-field .smart-select-input,.work-filter-action .btn{width:100%;min-width:0;height:44px;min-height:44px;margin:0}.work-filter-field .smart-field{display:flex}.work-filter-field .smart-select{flex:1 1 auto}.work-filter-action .btn{display:flex;align-items:center;justify-content:center}
.manager-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.manager-stat{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 15px;text-decoration:none;color:var(--text);box-shadow:var(--shadow)}.manager-stat span{font-size:12px;color:var(--muted);font-weight:700}.manager-stat strong{font-size:25px}.manager-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:16px;align-items:start}.manager-sidebar{position:sticky;top:72px}.billing-list-nav{display:grid;gap:5px;margin:8px 0 12px}.billing-list-nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:8px;text-decoration:none;color:var(--text)}.billing-list-nav a:hover,.billing-list-nav a.active{background:var(--soft);color:var(--accent)}.billing-list-nav b{min-width:25px;text-align:center;border-radius:999px;background:#edf2f4;padding:2px 6px;font-size:11px}.billing-list-create{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin:10px 0}.billing-list-create .form-control{margin:0}.manager-project-row{padding:8px 0;border-top:1px solid var(--line)}.manager-project-row:first-of-type{border-top:0}.manager-project-row b,.manager-project-row small{display:block}.manager-project-row small{margin-top:3px;color:var(--muted)}.manager-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.manager-list-head h2{margin:2px 0 0}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px;font-weight:800}.manager-report{padding:0;overflow:hidden}.manager-select-all{padding:10px 14px;border-bottom:1px solid var(--line);background:#fafbfb}.manager-select-all label{display:flex;align-items:center;gap:7px;font-weight:700}.manager-site-block>h2{margin:0;padding:12px 16px;background:#e9edef;font-size:17px}.manager-project-block>h3{margin:0;padding:10px 16px;background:#f4f6f7;border-top:1px solid var(--line);font-size:15px}.manager-activity-block>h4{margin:0;padding:10px 18px 8px;font-size:15px;font-weight:800;color:var(--text)}.manager-entry-activity{margin:0 0 8px;font-size:18px;line-height:1.2;font-weight:850;color:var(--text)}.manager-entry-subgroup{margin-top:12px}.manager-entry-subgroup:first-of-type{margin-top:8px}.manager-entry-details{margin-top:9px}.manager-entry{display:grid;grid-template-columns:42px minmax(0,1fr);border-top:1px solid var(--line);padding:0 14px}.manager-queue-block>h2{margin:0;padding:12px 16px;background:var(--soft);border-top:1px solid var(--line);font-size:17px}.manager-queue-block:first-of-type>h2{border-top:0}.manager-queue-billed{margin-top:12px;border-top:3px solid var(--line)}.manager-entry-context{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 7px;color:var(--muted);font-size:12px}.manager-entry-context b{color:var(--text)}.manager-entry-select{display:flex;align-items:flex-start;justify-content:center;padding-top:15px}.manager-entry-select input{width:18px;height:18px}.manager-entry-body{padding:12px 0}.manager-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.manager-entry-head small{display:block;color:var(--muted);margin-top:2px}.manager-entry-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:9px}.billing-list-chips{display:flex;gap:5px;flex-wrap:wrap}.billing-list-chips span{background:#eef2f5;border-radius:999px;padding:3px 7px;font-size:10px;color:#53616a}.manager-bulk-toolbar .form-control{width:auto;min-width:190px;margin:0;height:36px}.note-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.note-actions form{margin:0}.link-btn.danger{color:#a13a3a}
@media(max-width:1400px){.work-filter-grid,.manager-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.manager-layout{grid-template-columns:250px minmax(0,1fr)}}
@media(max-width:900px){.manager-layout{grid-template-columns:1fr}.manager-sidebar{position:static}.manager-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.work-filter-grid,.manager-filter{grid-template-columns:1fr}.manager-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.manager-stat{padding:10px 11px}.manager-stat strong{font-size:21px}.manager-entry{grid-template-columns:34px minmax(0,1fr);padding:0 8px}.manager-entry-head{display:block}.manager-entry-head strong{display:block;margin-top:4px}.manager-entry-foot{align-items:flex-start}.manager-bulk-toolbar .form-control{width:100%;min-width:0}.billing-list-create{grid-template-columns:1fr}.manager-project-summary{display:none}}

/* V0.8.6 collaboration / Bauleitung ------------------------------------- */
.manager-live-indicator{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:#e9f6ef;color:#217044;font-size:12px;font-weight:800;white-space:nowrap}.manager-live-indicator.offline{background:#fff3df;color:#8a5b12}
.billing-list-nav a span{min-width:0}.billing-list-nav a small{font-size:10px;color:var(--muted);font-weight:500}.billing-list-meta{font-size:11px;color:var(--muted);margin:8px 0}.billing-share-box{margin:10px 0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fafbfb}.billing-share-box summary{cursor:pointer;font-weight:800}.billing-share-box form{display:grid;gap:9px;margin-top:9px}.share-all,.share-user-list label{display:flex;align-items:center;gap:7px}.share-user-list{display:grid;gap:6px;max-height:190px;overflow:auto;padding:7px;border-radius:7px;background:#fff;border:1px solid var(--line)}
.accounting-meta{display:block;margin-top:5px;color:var(--muted);font-size:10px}.manager-note-box{margin-top:10px;padding:9px 10px;background:#f7f9fa;border:1px solid var(--line);border-radius:9px}.manager-note-box label{display:grid;gap:5px}.manager-note-box label>span{font-size:11px;font-weight:800;color:var(--muted)}.manager-note-box textarea{width:100%;min-height:58px;resize:vertical;margin:0}.manager-note-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px}.manager-note-actions small{color:var(--muted);font-size:10px;text-align:right}.manager-note-actions .btn{flex:0 0 auto}
.share-private{display:flex!important;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text)}.share-private input{margin-top:3px}.share-private>span{display:grid;gap:2px}.share-private small{display:block;color:var(--muted);font-weight:400}.share-picker{display:grid;gap:6px}.share-picker>small{color:var(--muted)}.share-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.share-picker-grid>label{display:grid;gap:4px;min-width:0}.share-picker-grid>label>span{color:var(--muted);font-size:11px;font-weight:700}.share-checkboxes{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;max-height:220px;overflow:auto;background:var(--panel);color:var(--text)}.share-checkboxes>div label,.share-checkboxes label{display:flex;align-items:center;gap:6px;margin:0}.share-checkboxes input{width:auto!important;height:auto!important;margin:0!important}
.task-actions form{margin:0}.task-actions{flex-wrap:wrap}
@media(max-width:900px){.share-checkboxes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.manager-live-indicator{padding:5px 8px}.manager-note-actions{align-items:flex-start;flex-direction:column}.manager-note-actions small{text-align:left}.share-checkboxes{grid-template-columns:1fr}.share-picker-grid{grid-template-columns:1fr}}
.share-private-checkbox{width:auto!important;height:auto!important;min-height:0!important;margin-top:3px!important}

/* V0.8.7 – Aufgaben mit mehreren Zuständigen + Terminkalender ---------------- */
.task-status-form{display:grid;grid-template-columns:150px minmax(220px,1fr) auto;gap:8px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.task-status-form .form-control{margin:0;min-width:0}
.task-delete-form{margin:8px 0 0}
.task-people{display:block;margin-top:9px;color:var(--muted)}
.task-assignees{max-height:260px;overflow:auto;padding:10px!important;border:1px solid var(--line);border-radius:9px;background:#fafcfd}

.calendar-panel{overflow:hidden}
.calendar-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:10px}
.calendar-toolbar>div{text-align:center}.calendar-toolbar h2{margin:0 0 3px}.calendar-toolbar>div>a{font-size:12px}
.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin:0 0 12px}
.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#73808a}
.calendar-dot.task{background:var(--warn)}.calendar-dot.project{background:var(--accent)}
.calendar-scroll{overflow-x:auto;padding-bottom:3px}
.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));min-width:770px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.calendar-weekday{padding:8px;text-align:center;font-size:11px;font-weight:800;color:var(--muted);background:#f7f9fa;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.calendar-day{min-height:126px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.calendar-day.outside{background:#f7f9fa;color:#9aa4ab}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--accent)}
.calendar-day-number{font-size:12px;font-weight:800;margin-bottom:6px}
.calendar-events{display:grid;gap:4px}.calendar-event{display:flex;gap:5px;align-items:flex-start;padding:5px 6px;border-radius:6px;background:#eef2f4;color:var(--text);font-size:10.5px;line-height:1.25;border-left:3px solid #71808a;overflow:hidden}
.calendar-event.task{border-left-color:var(--warn);background:var(--warnbg)}.calendar-event.project{border-left-color:var(--accent);background:var(--soft)}
.calendar-event time{font-weight:800;white-space:nowrap}.calendar-event span{overflow:hidden;text-overflow:ellipsis}
.calendar-type.task{background:var(--warnbg);color:var(--warn)}.calendar-type.project{background:var(--soft);color:var(--accent)}
.upcoming-timeline .calendar-list-row{grid-template-columns:150px minmax(240px,1fr) minmax(180px,1fr)}
.reminder-list{display:grid}.reminder-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);color:var(--text)}
.reminder-row:first-child{border-top:0}.reminder-row small{display:block;color:var(--muted);margin-top:2px}.reminder-row time{font-size:12px;font-weight:750;color:var(--muted);text-align:right}.reminder-row.overdue time{color:var(--danger)}

@media(max-width:760px){
  .task-status-form{grid-template-columns:1fr}.task-status-form button{width:100%}
  .calendar-panel{padding-left:10px;padding-right:10px}.month-calendar{min-width:720px;grid-template-columns:repeat(7,minmax(100px,1fr))}.calendar-day{min-height:112px}
  .upcoming-timeline .calendar-list-row{grid-template-columns:100px 1fr}.upcoming-timeline .calendar-list-row>span{grid-column:2}.upcoming-timeline .appointment-actions{grid-column:2}
  .reminder-row{grid-template-columns:auto minmax(0,1fr)}.reminder-row time{grid-column:2;text-align:left}
}


/* V0.8.7.3: Abmelden oben rechts neben Einstellungen */
.topbar-logout{margin:0;display:inline-flex}
.topbar-logout-btn{border:1px solid #42515e;background:#26323d;color:#fff;border-radius:7px;padding:5px 9px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap}
.topbar-logout-btn:hover{background:#33424e;border-color:#5a6a76}
.topbar-settings{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:7px}
.topbar-settings:hover{background:#26323d}

/* V0.8.7.4 – aufgeräumte Navigation */
.sidebar-nav{display:grid;gap:3px!important;align-content:start}
.sidebar-section-label{margin:10px 10px 2px;color:#82919c;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.11em;line-height:1.2}
.sidebar-section-label:first-of-type{margin-top:12px}
.sidebar-version{margin-top:auto;padding:14px 12px 6px;border-top:1px solid rgba(255,255,255,.08);color:#93a1ab;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px}
.sidebar-version b{color:#dce4e9;font-size:10px;white-space:nowrap}
.admin-shortcut-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:920px}
.admin-shortcut-panel h2{margin:3px 0 4px}.admin-shortcut-panel p{margin:0}
.mobile-menu-section{grid-column:1/-1;margin:7px 2px -1px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}
.mobile-menu-section:first-child{margin-top:0}
.mobile-version{margin:3px 0 12px;padding:9px 2px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;text-align:center}
.mobile-version b{color:var(--text)}
@media(max-width:1100px){
  .sidebar-section-label{height:1px;margin:7px 7px 4px;padding:0;overflow:hidden;background:rgba(255,255,255,.09);font-size:0}
  .sidebar-version{justify-content:center;padding-left:2px;padding-right:2px}.sidebar-version span{display:none}
}
@media(max-width:760px){
  .topbar-logout{display:none!important}
  .admin-shortcut-panel{display:grid;grid-template-columns:1fr}.admin-shortcut-panel .btn{width:100%}
}


/* V0.8.7.5 – Aufgaben: gleichmäßige Filter und kompakter Statusbereich */
.task-filterbar{display:grid;grid-template-columns:160px minmax(220px,1fr) minmax(220px,1fr) auto;gap:8px;align-items:stretch}
.task-filterbar .form-control,.task-filterbar .btn{height:44px;margin:0}
.task-filterbar .btn{min-width:92px}
.task-status-form{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:stretch;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.task-status-form .form-control{width:100%;min-width:0;height:42px;margin:0}
.task-status-form .task-status-note{height:42px}
.task-status-form [data-task-status-save]{justify-self:end;min-width:110px;height:38px}
.task-actions .btn{min-height:38px}
@media(max-width:1100px){
  .task-filterbar{grid-template-columns:160px minmax(0,1fr) minmax(0,1fr) auto}
}
@media(max-width:760px){
  .task-filterbar{grid-template-columns:1fr}
  .task-filterbar .btn{grid-column:auto;width:100%}
  .task-status-form [data-task-status-save]{justify-self:stretch;width:100%}
}
.task-status-form [hidden]{display:none!important}

/* V0.9 Offline + compact infrastructure status */
.offline-status{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid var(--line,#d8dee3);border-radius:999px;background:var(--panel,#fff);box-shadow:0 5px 22px rgba(0,0,0,.12);font-size:.82rem;text-decoration:none;color:inherit}
.offline-status .offline-dot{width:8px;height:8px;border-radius:50%;background:#2c9b72}
.offline-status.is-offline .offline-dot{background:#d79a2b}.offline-status.has-items{font-weight:700}.offline-status.is-offline{border-color:#d79a2b}
.sidebar-offline-link b,.mobile-more-grid a [data-offline-count]{margin-left:auto;min-width:20px;text-align:center;border-radius:999px;background:rgba(20,108,90,.12);font-size:.72rem;padding:1px 5px}
.offline-form-hint{margin:4px 0 10px;color:var(--muted,#667);font-size:.82rem}
.offline-toast{position:fixed;left:50%;bottom:76px;transform:translate(-50%,20px);z-index:200;max-width:min(620px,calc(100vw - 28px));padding:11px 15px;border-radius:10px;background:#173c34;color:#fff;opacity:0;pointer-events:none;transition:.2s;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.offline-toast.show{opacity:1;transform:translate(-50%,0)}.offline-toast.error{background:#8b3434}
.offline-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.offline-summary>div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;background:rgba(20,108,90,.06)}.offline-summary strong{font-size:1.3rem}
.offline-queue-item{display:flex;justify-content:space-between;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line,#ddd)}.offline-queue-item>div{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:center}.offline-queue-item small{grid-column:2}.offline-queue-item.error{background:rgba(170,50,50,.05)}.offline-error{margin:4px 0;color:#9a3434;font-size:.85rem}
@media(max-width:760px){.offline-status{right:12px;bottom:78px}.offline-summary{grid-template-columns:1fr}.offline-queue-item{display:block}}

/* V0.9.2: Aufgabenstreifen, Wochenkalender und optionaler Darkmode */
.task-mini{grid-template-columns:8px 1fr auto;gap:12px;align-items:center}
.status-strip{display:block;width:6px;height:42px;justify-self:center;align-self:center;border-radius:999px;background:#9ca8af;flex:0 0 6px}
.status-strip.doing{background:#2f70c0}.status-strip.blocked{background:#d05e45}.status-strip.done{background:#278765}.status-strip.planned{background:#b78320}
.task-mini>a{align-self:center}

.calendar-head-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.calendar-view-switch{display:flex;gap:8px;flex-wrap:wrap}
.week-calendar{display:grid;gap:12px}
.week-day{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}
.week-day.today{box-shadow:inset 0 0 0 2px var(--accent)}
.week-day-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);background:rgba(20,108,90,.04)}
.week-day-head>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.week-day-head time{font-size:12px;font-weight:700;color:var(--muted)}
.week-day-events{display:grid;gap:8px;padding:12px 14px}
.week-event{font-size:12px;padding:8px 10px}
.compact-empty{padding:10px;text-align:left;background:rgba(127,140,151,.06);border-radius:8px}
.theme-select{min-width:86px}
.mobile-theme-toggle{margin:10px 0 12px}

html[data-theme="dark"]{--bg:#11181f;--panel:#17212b;--text:#edf2f6;--muted:#98a8b6;--line:#2a3944;--accent:#2ba48a;--accent2:#208a74;--soft:#1b2e29;--warn:#f0be58;--warnbg:#3a2f12;--danger:#ef8d8d;--shadow:0 10px 28px rgba(0,0,0,.28)}
html[data-theme="dark"] body{background:var(--bg);color:var(--text)}
html[data-theme="dark"] .panel,
html[data-theme="dark"] .task-card,
html[data-theme="dark"] .site-card,
html[data-theme="dark"] .project-card,
html[data-theme="dark"] .report-sheet,
html[data-theme="dark"] .stat,
html[data-theme="dark"] .week-day,
html[data-theme="dark"] .login-card{background:var(--panel);color:var(--text);border-color:var(--line)}
html[data-theme="dark"] .btn,
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .generic-form input,
html[data-theme="dark"] .generic-form select,
html[data-theme="dark"] .generic-form textarea,
html[data-theme="dark"] .login-card input,
html[data-theme="dark"] .smart-select-input,
html[data-theme="dark"] .smart-select-menu,
html[data-theme="dark"] .smart-select-option,
html[data-theme="dark"] .dropzone,
html[data-theme="dark"] .file-drop{background:#101820;color:var(--text);border-color:#30414d}
html[data-theme="dark"] .btn:hover{border-color:#49606f}
html[data-theme="dark"] .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
html[data-theme="dark"] .mobile-nav,
html[data-theme="dark"] .table-wrap table,
html[data-theme="dark"] table,
html[data-theme="dark"] .month-calendar,
html[data-theme="dark"] .calendar-day,
html[data-theme="dark"] .calendar-weekday,
html[data-theme="dark"] .work-context-card,
html[data-theme="dark"] .modal-card,
html[data-theme="dark"] .mobile-more-sheet{background:var(--panel);color:var(--text);border-color:var(--line)}
html[data-theme="dark"] th,
html[data-theme="dark"] .calendar-weekday,
html[data-theme="dark"] .calendar-day.outside,
html[data-theme="dark"] .week-day-head{background:#1d2934;color:var(--text)}
html[data-theme="dark"] .badge{background:#25323d;color:#d7e1e8}
html[data-theme="dark"] .chips span,
html[data-theme="dark"] .visible-user-chips span,
html[data-theme="dark"] .visibility-note,
html[data-theme="dark"] .task-assignees,
html[data-theme="dark"] .compact-empty{background:#22313b;color:var(--muted)}
html[data-theme="dark"] .message{background:#1d3a33;color:#d9f2ea}
html[data-theme="dark"] .message.error,
html[data-theme="dark"] .errorbox{background:#3c2326;color:#ffd8d8}
html[data-theme="dark"] .blocked{background:#3b281f;color:#ffd7c6}
html[data-theme="dark"] .info-box{background:#1d2b35;color:var(--text)}
html[data-theme="dark"] .sticky-actions{background:rgba(17,24,31,.94)}
html[data-theme="dark"] .mobile-nav a{color:#d8e1e8}
html[data-theme="dark"] .mobile-nav .mobile-add{color:#fff}
html[data-theme="dark"] .task-mini small,
html[data-theme="dark"] .task-card p,
html[data-theme="dark"] .site-card div,
html[data-theme="dark"] .project-card p,
html[data-theme="dark"] .timeline span,
html[data-theme="dark"] .footnote,
html[data-theme="dark"] td small,
html[data-theme="dark"] .reminder-row time,
html[data-theme="dark"] .week-day-head time{color:var(--muted)}
html[data-theme="dark"] .calendar-event{background:#24313b;color:var(--text);border-left-color:#758592}
html[data-theme="dark"] .calendar-event.task{background:#392e13;border-left-color:var(--warn)}
html[data-theme="dark"] .calendar-event.project{background:#18312c;border-left-color:var(--accent)}
html[data-theme="dark"] .entry-items{background:#16212a;border-color:var(--line)}
html[data-theme="dark"] .entry-items-head{background:#26333f;color:var(--text)}
html[data-theme="dark"] .entry-items-table td{border-top-color:var(--line);color:var(--text)}
html[data-theme="dark"] .entry-item-qty,
html[data-theme="dark"] .entry-items-table b,
html[data-theme="dark"] .entry-items-table strong{color:var(--text)}
html[data-theme="dark"] .icon-action,
html[data-theme="dark"] .accounting-action{background:#18232c;color:var(--text);border-color:#3a4a56}
html[data-theme="dark"] .icon-action:hover,
html[data-theme="dark"] .accounting-action:hover{background:#22313c;border-color:#556775;color:var(--text)}
html[data-theme="dark"] .accounting-action.active{background:#24343f;border-color:var(--accent);color:#f2f7fa;box-shadow:inset 0 0 0 1px var(--accent)}
html[data-theme="dark"] .icon-action.danger{background:#2f2023;color:#ffbcbc;border-color:#6a4148}
html[data-theme="dark"] .icon-action.danger:hover{background:#3a262a}
html[data-theme="dark"] .topbar-settings:hover{background:#31414d}

@media(max-width:760px){
  .task-mini{grid-template-columns:8px 1fr;gap:10px;align-items:center}
  .status-strip{height:40px}
  .task-mini>a{grid-column:2;justify-self:start}
  .calendar-head-row{flex-direction:column;align-items:stretch}
  .calendar-toolbar{width:100%}
  .calendar-view-switch{width:100%}
  .calendar-view-switch .btn{flex:1}
  .week-day-head{align-items:flex-start;flex-direction:column}
  .week-day-events{padding:10px 12px}
}

/* V0.9.2.2: Bauleitung im Darkmode vollständig angleichen */
html[data-theme="dark"] .manager-stat{
  background:#18232c;
  color:var(--text);
  border-color:#31414d;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
html[data-theme="dark"] .manager-stat:hover{background:#1d2a34;border-color:#49606f}
html[data-theme="dark"] .manager-stat.accounting-open{background:#1d2831!important;color:#dce5eb!important}
html[data-theme="dark"] .manager-stat.accounting-marked{background:#3b3015!important;color:#f4cf72!important;border-color:#604f24}
html[data-theme="dark"] .manager-stat.accounting-billed{background:#17362d!important;color:#7fd5b5!important;border-color:#285846}
html[data-theme="dark"] .manager-stat span{color:#9fb0bd}
html[data-theme="dark"] .manager-stat strong{color:inherit}

html[data-theme="dark"] .manager-report{background:#17212b;border-color:#31414d}
html[data-theme="dark"] .manager-select-all{background:#1c2832;color:var(--text);border-bottom-color:#31414d}
html[data-theme="dark"] .manager-site-block>h2{background:#24313c;color:#edf2f6;border-color:#354652}
html[data-theme="dark"] .manager-project-block>h3{background:#1e2a34;color:#dfe7ec;border-top-color:#354652}
html[data-theme="dark"] .manager-activity-block>h4{background:#19242d;color:#e4ebef;border-top:1px solid #2e3e49;padding-top:10px;padding-bottom:8px}
html[data-theme="dark"] .manager-entry-activity{color:#f1f5f7}
html[data-theme="dark"] .manager-entry{border-top-color:#2e3e49}
html[data-theme="dark"] .manager-entry:hover{background:#1b2731}
html[data-theme="dark"] .manager-entry-head strong{color:#f0f4f7}
html[data-theme="dark"] .manager-entry-head small{color:#9bacb8}
html[data-theme="dark"] .manager-entry-foot{color:var(--text)}

html[data-theme="dark"] .manager-note-box{background:#1b2731;border-color:#344651}
html[data-theme="dark"] .manager-note-box label>span{color:#a9bac6}
html[data-theme="dark"] .manager-note-box textarea{background:#111a22;color:#edf2f6;border-color:#3a4d59}
html[data-theme="dark"] .manager-note-box textarea::placeholder{color:#71828f}
html[data-theme="dark"] .manager-note-actions .btn{background:#22313c;color:#edf2f6;border-color:#405461}
html[data-theme="dark"] .manager-note-actions .btn:hover{background:#293b47;border-color:#5a7180}

html[data-theme="dark"] .billing-list-nav a{color:#dbe4ea}
html[data-theme="dark"] .billing-list-nav a:hover,
html[data-theme="dark"] .billing-list-nav a.active{background:#1c3831;color:#68c8ad}
html[data-theme="dark"] .billing-list-nav b{background:#293844;color:#dbe4ea}
html[data-theme="dark"] .billing-list-chips span{background:#273641;color:#b9c8d2}
html[data-theme="dark"] .billing-share-box{background:#1a252e;border-color:#344651}
html[data-theme="dark"] .share-user-list{background:#121b22;border-color:#344651}
html[data-theme="dark"] .manager-project-row{border-top-color:#30404b}
html[data-theme="dark"] .manager-project-row b{color:#e8eef2}
html[data-theme="dark"] .manager-project-row small{color:#91a3b0}
html[data-theme="dark"] .manager-list-head{background:#17212b;border-color:#31414d}

html[data-theme="dark"] .manager-filter .form-control,
html[data-theme="dark"] .manager-filter .smart-select-input{background:#151f27;color:#e8eef2;border-color:#344651}
html[data-theme="dark"] .manager-filter .form-control:disabled,
html[data-theme="dark"] .manager-filter .smart-select.disabled .smart-select-input{background:#121a21;color:#71828f;border-color:#293842}
html[data-theme="dark"] .manager-filter .smart-select-input::placeholder,
html[data-theme="dark"] .manager-filter input::placeholder{color:#738591}
html[data-theme="dark"] .manager-filter .btn{background:#1d2a34;color:#edf2f6;border-color:#3d505d}
html[data-theme="dark"] .manager-filter .btn:hover{background:#263640;border-color:#5b7180}

html[data-theme="dark"] .manager-live-indicator{background:#18372c;color:#85dab9;border:1px solid #2b5947}
html[data-theme="dark"] .manager-live-indicator.offline{background:#3a2d17;color:#f2c775;border-color:#65502b}

html[data-theme="dark"] .manager-bulk-toolbar{background:#19362f;border-color:#316250;color:#e9f5f0}
html[data-theme="dark"] .manager-bulk-toolbar .form-control{background:#13221d;color:#e9f5f0;border-color:#3a6557}

html[data-theme="dark"] .accounting-open{background:#25313a!important;color:#d3dde4!important}
html[data-theme="dark"] .accounting-marked{background:#443616!important;color:#f1cb6a!important}
html[data-theme="dark"] .accounting-billed{background:#18392e!important;color:#7ed6b4!important}
html[data-theme="dark"] .accounting-action{background:#17222b;color:#9eafbb;border-color:#334651}
html[data-theme="dark"] .accounting-action:hover{background:#22313c;color:#eef3f6;border-color:#5a7180}
html[data-theme="dark"] .accounting-action.active{background:#263943;color:#fff;border-color:#74b8a7;box-shadow:inset 0 0 0 1px #74b8a7}
html[data-theme="dark"] .accounting-action:disabled{color:#667783;border-color:#293944;background:#151f27}

html[data-theme="dark"] .manager-report .entry-items{background:#151f27;border-color:#344651}
html[data-theme="dark"] .manager-report .entry-items-head{background:#273642;color:#eaf0f4;border-color:#344651}
html[data-theme="dark"] .manager-report .entry-items-head b,
html[data-theme="dark"] .manager-report .entry-items-head span{color:#eaf0f4}
html[data-theme="dark"] .manager-report .entry-items-table td{color:#d9e2e8;border-top-color:#30414c}
html[data-theme="dark"] .manager-report .entry-items-table b,
html[data-theme="dark"] .manager-report .entry-items-table strong{color:#f1f5f7}

html[data-theme="dark"] .manager-main .icon-action{background:#1b2730;color:#dce5ea;border-color:#394c58}
html[data-theme="dark"] .manager-main .icon-action:hover{background:#263640;color:#fff;border-color:#5b7180}

@media(max-width:760px){
  html[data-theme="dark"] .manager-entry{padding-left:6px;padding-right:6px}
  html[data-theme="dark"] .manager-note-box{padding:10px}
}

/* V0.9.2.4: Darkmode-Feinschliff fuer Nutzerverwaltung, Fotos, Tagesabschluss und mobiles Menue */
html[data-theme="dark"] .permission-help{
  background:#16232b;
  color:var(--text);
  border-color:#344651;
}
html[data-theme="dark"] .permission-help b{color:#f0f5f7}
html[data-theme="dark"] .permission-help p{color:#a4b3be}

html[data-theme="dark"] .attachment-card{
  background:var(--panel);
  color:var(--text);
  border-color:#344651;
}
html[data-theme="dark"] .attachment-info{
  background:var(--panel);
  color:var(--text);
}
html[data-theme="dark"] .attachment-info>b{color:#f0f4f7}
html[data-theme="dark"] .attachment-info p,
html[data-theme="dark"] .attachment-info small{color:var(--muted)}
html[data-theme="dark"] .attachment-preview,
html[data-theme="dark"] .attachment-file-icon{background:#101820}
html[data-theme="dark"] .attachment-file-icon{color:#a6b4bf}
html[data-theme="dark"] .attachment-actions a:not(.danger-text){color:#48bea2}

html[data-theme="dark"] .entry-detail-grid span{
  background:#101820;
  color:var(--text);
  border:1px solid #30414d;
}
html[data-theme="dark"] .entry-detail-grid span b{color:#f2f6f8}

html[data-theme="dark"] .icon-btn{
  background:#22313b;
  color:#edf2f6;
  border:1px solid #3a4a56;
}
html[data-theme="dark"] .icon-btn:hover{
  background:#2a3b47;
  border-color:#587080;
  color:#fff;
}

@media(max-width:760px){
  .mobile-more-sheet>.panel-head .icon-btn{
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
    display:inline-grid;
    place-items:center;
    padding:0;
    font-size:25px;
    line-height:1;
    flex:0 0 40px;
  }
  html[data-theme="dark"] .project-attachments .attachment-card,
  html[data-theme="dark"] .project-attachments .attachment-info{
    background:var(--panel)!important;
  }
  html[data-theme="dark"] .project-attachments .attachment-preview{
    background:#101820!important;
  }
}

/* V0.9.2.5: Bericht-Mehrfachpositionen im Darkmode besser lesbar */
html[data-theme="dark"] .report-sheet .report-details{
  color:#b9c6cf;
}
html[data-theme="dark"] .report-sheet .report-detail-item>span{
  color:#bdc9d1;
}
html[data-theme="dark"] .report-sheet .report-description{
  color:#c7d1d8;
}
html[data-theme="dark"] .report-sheet .report-detail-item+.report-detail-item{
  border-top-color:rgba(152,168,182,.16);
}

/* V0.9.3: Projektzuordnung, Grundangaben und temporäre Stammdaten */
.dynamic-fields-grid{display:contents}
.field-help{display:block;margin-top:5px;color:var(--muted);font-weight:400;font-size:11px;line-height:1.35}
.pending-master-list{display:grid;gap:9px}
.pending-master-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfb}
.pending-master-row>div:first-child{display:grid;gap:4px;min-width:0}
.pending-master-row small{color:var(--muted)}
.pending-master-row .actions form{margin:0}
.preset-project-card{padding-bottom:8px}
.preset-open-form{display:flex;gap:7px;padding:0 10px 10px;align-items:center}
.preset-open-form .form-control{min-width:0;flex:1}
@media(max-width:760px){.pending-master-row{align-items:flex-start;flex-direction:column}.pending-master-row .actions{width:100%}.pending-master-row .actions form,.pending-master-row .actions .btn{flex:1}.preset-open-form{align-items:stretch;flex-direction:column}}
html[data-theme="dark"] .pending-master-row{background:#202c35;border-color:#354652}
html[data-theme="dark"] .pending-master-row b{color:#edf2f5}
html[data-theme="dark"] .field-help{color:#91a3b0}

/* V0.9.3: zusaetzliche Grundangabe-Spalte im Feldeditor */
@media(min-width:1101px){.custom-field-row{grid-template-columns:1.1fr 1.1fr .55fr 1fr 1.3fr auto auto auto auto auto}}
html[data-theme="dark"] .quick-add-form .info-box{background:#17262d;border-color:#344954;color:var(--text)}
html[data-theme="dark"] .modal-card .panel-head{background:var(--panel);border-bottom:1px solid #30414d}
html[data-theme="dark"] .modal-card h2{color:var(--text)}
html[data-theme="dark"] .quick-add-form input,
html[data-theme="dark"] .quick-add-form select,
html[data-theme="dark"] .quick-add-form textarea{background:#101820;color:var(--text);border-color:#30414d}
html[data-theme="dark"] .quick-add-form input::placeholder,
html[data-theme="dark"] .quick-add-form textarea::placeholder,
html[data-theme="dark"] .quick-add-form .smart-select-input::placeholder{color:#738591}
html[data-theme="dark"] .quick-add-form .smart-select-input{background:#101820;color:var(--text);border-color:#30414d}
html[data-theme="dark"] .quick-add-form label{color:var(--text)}


/* V0.9.3.3: Projektschnellzugriff-Hover im Dark Mode */
html[data-theme="dark"] .work-context-main:hover{
  background:#202d36;
  color:var(--text);
}


/* V0.9.3.5 – echte Bildschirm-Skalierung der Ansichtsmodi.
   Auf großen Desktop-Monitoren ist Komfortabel bewusst deutlich größer.
   Druck/PDF werden serverseitig separat erzeugt und sind davon unabhängig. */
@media screen and (min-width:1200px) and (max-width:1599px){
  html[data-density="comfortable"] body{zoom:1.08}
  html[data-density="compact"] body{zoom:1}
  html[data-density="dense"] body{zoom:.92}
}
@media screen and (min-width:1600px){
  html[data-density="comfortable"] body{zoom:1.18}
  html[data-density="compact"] body{zoom:1}
  html[data-density="dense"] body{zoom:.88}
  html[data-density="comfortable"] .content{max-width:2200px}
}
@media print{html[data-density] body{zoom:1!important}}

/* V0.9.4: zentrale Kontakt-, Team-, Fachrollen- und Funktionsverwaltung */
.contact-filter-grid{display:grid;grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) minmax(180px,1fr) auto;gap:12px;align-items:end}
.contact-filter-grid label{display:grid;gap:6px}
.contact-layout{align-items:start}
.contact-list{display:grid;gap:8px}
.contact-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:12px;color:var(--text);text-decoration:none;background:var(--panel)}
.contact-row[hidden],.contact-row.contact-filtered-out{display:none!important}
a.contact-row:hover{border-color:var(--accent);background:#f4faf8}
.contact-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#e4efec;color:#31574d;font-weight:800;font-size:18px}
.contact-main{min-width:0;display:grid;gap:4px}.contact-main>div:first-child{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.contact-main small{color:var(--muted)}
.contact-meta{display:grid;gap:3px;text-align:right;color:var(--muted);font-size:12px;max-width:260px;overflow-wrap:anywhere}
.compact-chips{margin-top:1px}.compact-chips span{font-size:10px;padding:2px 6px}
.contact-index-list{display:grid;gap:6px}.contact-index-list>a,.contact-index-list .index-static{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--text)}
.contact-index-list>a:hover{border-color:var(--accent);background:#f4faf8}.contact-index-list span{display:grid;min-width:0;flex:1}.contact-index-list small{color:var(--muted)}.contact-index-list strong{min-width:28px;text-align:center}
.index-static>form{margin:0}.badge-link{text-decoration:none}
.assignment-list{display:grid;gap:8px}.assignment-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px 11px}.assignment-row>div:first-child{display:grid;gap:5px;min-width:0}.assignment-row .actions form{margin:0}
.person-line{display:grid;gap:2px;padding:9px 0;border-bottom:1px solid var(--line)}.person-line:last-child{border-bottom:0}.person-line small{color:var(--muted)}
.project-contact-list{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.project-contact-list h3{font-size:13px;margin:0 0 8px}.project-contact-row{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;padding:8px 0;border-top:1px solid var(--line)}.project-contact-row:first-of-type{border-top:0}.project-contact-row>div{display:grid;gap:4px}.legacy-contact-note{margin-top:10px;padding:9px 10px;border-radius:9px;background:#f6f7f8;color:var(--muted);font-size:12px}.legacy-contact-note p{margin:4px 0 0}

.chip-native-select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.chip-picker{position:relative;display:grid;gap:7px;margin-top:4px}.chip-picker-values{display:flex;gap:6px;flex-wrap:wrap;align-items:center;min-height:34px}.chip-picker-chip{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#e4efec;color:#264b41;padding:5px 7px 5px 10px;font-size:12px;font-weight:650}.chip-picker-chip button{border:0;background:transparent;color:inherit;padding:0;width:18px;height:18px;border-radius:50%;cursor:pointer;font-size:15px;line-height:17px}.chip-picker-chip button:hover{background:rgba(0,0,0,.08)}.chip-picker-empty{color:var(--muted);font-size:12px}.chip-picker-add{justify-self:start}
.chip-picker-menu{position:absolute;z-index:25;left:0;top:100%;margin-top:5px;width:min(420px,100%);padding:8px;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:0 12px 30px rgba(0,0,0,.18)}.chip-picker-options{display:grid;gap:4px;max-height:250px;overflow:auto;margin-top:7px}.chip-picker-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:0;border-radius:8px;padding:8px 9px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.chip-picker-option:hover,.chip-picker-option.selected{background:#edf6f3}.chip-picker-option b{color:var(--accent)}

html[data-theme="dark"] a.contact-row:hover,html[data-theme="dark"] .contact-index-list>a:hover{background:#202d36}
html[data-theme="dark"] .contact-avatar{background:#263943;color:#d9ece6}
html[data-theme="dark"] .legacy-contact-note{background:#18242d;color:var(--muted)}
html[data-theme="dark"] .chip-picker-chip{background:#263943;color:#d9ece6}
html[data-theme="dark"] .chip-picker-menu{background:#18232c;border-color:#3a4a56}
html[data-theme="dark"] .chip-picker-option:hover,html[data-theme="dark"] .chip-picker-option.selected{background:#24343f}

@media(max-width:900px){.contact-filter-grid{grid-template-columns:1fr 1fr}.contact-filter-grid .actions{grid-column:1/-1}.contact-meta{display:none}}
@media(max-width:600px){.contact-filter-grid{grid-template-columns:1fr}.contact-filter-grid .actions{grid-column:auto}.contact-row{grid-template-columns:42px minmax(0,1fr)}.contact-row>form{grid-column:2}.chip-picker-menu{width:100%}}

/* V0.9.4.1 – erweiterte Kontaktverwaltung und Echtzeitsuche */
.contact-filter-grid-extended{grid-template-columns:minmax(260px,2fr) repeat(5,minmax(150px,1fr)) auto}
.contact-live-hint{display:block;margin-top:8px}
.contact-edit-form{display:grid;gap:14px}
.contact-subform-panel{display:grid;gap:10px}
.contact-subform-list{display:grid;gap:9px}
.contact-subform-row{display:grid;gap:9px;align-items:end;border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--panel)}
.contact-subform-row.phone-row{grid-template-columns:minmax(140px,.7fr) minmax(220px,1.4fr) auto}
.contact-subform-row.person-row{grid-template-columns:minmax(230px,1.4fr) minmax(180px,1fr) minmax(160px,.8fr) minmax(220px,1.2fr) auto}
.contact-subform-row .field{display:grid;gap:5px;min-width:0}.contact-subform-row .field>small{color:var(--muted);font-size:11px}.contact-subform-row .field .errorlist{margin:2px 0 0;padding-left:18px;color:var(--danger)}
.formset-delete-field{display:none}.contact-save-actions{position:sticky;bottom:10px;z-index:5;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(8px)}
.contact-phone-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.contact-phone-line small{min-width:80px;color:var(--muted)}
.subsection-title{font-size:13px;margin:16px 0 7px}.related-person-list{display:grid;gap:7px}.related-person-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;border-top:1px solid var(--line);padding:9px 0}.related-person-row:first-child{border-top:0}.related-person-row>div{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;min-width:0}
.contact-facts dd .badge-link+.badge-link{margin-left:4px}
html[data-theme="dark"] .contact-save-actions{background:color-mix(in srgb,#18232c 94%,transparent)}
@media(max-width:1450px){.contact-filter-grid-extended{grid-template-columns:repeat(3,minmax(170px,1fr))}.contact-filter-grid-extended .actions{align-self:end}}
@media(max-width:1000px){.contact-subform-row.person-row{grid-template-columns:1fr 1fr}.contact-subform-row.person-row .wide{grid-column:1/-1}.contact-subform-row.person-row>.icon-action{justify-self:end}}
@media(max-width:700px){.contact-filter-grid-extended{grid-template-columns:1fr}.contact-subform-row.phone-row,.contact-subform-row.person-row{grid-template-columns:1fr}.contact-subform-row.person-row .wide{grid-column:auto}.contact-subform-row>.icon-action{justify-self:end}.contact-save-actions{position:static}}
.contact-index-list .index-main-link{display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:var(--text);text-decoration:none}
.contact-index-list .index-main-link>span{display:grid;min-width:0;flex:1}.contact-index-list .index-main-link:hover b{color:var(--accent)}

/* V0.9.4.4 – Kontakt-Split-View, saubere Formularausrichtung und feste Desktop-Navigation */
.contact-browser{display:grid;grid-template-columns:minmax(520px,1.15fr) minmax(320px,.85fr);gap:18px;align-items:start;min-width:0}
.contact-browser.has-selection{grid-template-columns:minmax(420px,.82fr) minmax(620px,1.58fr)}
.contact-list-panel,.contact-split-detail{min-width:0}
.contact-row.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent);background:#f2f8f6}
.contact-split-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.contact-split-head>div:first-child{min-width:0}.contact-split-head h2{font-size:22px;margin:2px 0 4px}.contact-split-head p{margin:0}.contact-split-close{font-size:20px;line-height:1}
.contact-split-detail .contact-detail-sections{grid-template-columns:minmax(0,1.35fr) minmax(260px,.75fr)}
.contact-split-detail .panel{box-shadow:none}
.contact-filter-grid-extended{grid-template-columns:minmax(250px,2fr) repeat(6,minmax(140px,1fr)) auto}

/* Formularzeilen: Labels und Eingabefelder beginnen auf exakt derselben Höhe. */
.contact-subform-row{align-items:start}
.contact-subform-row.person-row .field>label,.contact-subform-row.phone-row .field>label{min-height:18px;display:flex;align-items:flex-end}
.contact-subform-row.person-row>.icon-action,.contact-subform-row.phone-row>.icon-action{margin-top:27px;align-self:start}
.contact-subform-row.person-row .field>small{margin-top:1px;line-height:1.25}

html[data-theme="dark"] .contact-row.is-selected{background:#223139;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 24%,transparent)}

/* Die linke Navigation bleibt auf Desktop im Viewport. Nur sie selbst scrollt,
   falls die verfügbaren Menüpunkte höher als der Bildschirm sind. */
@media(min-width:761px){
  .sidebar{position:fixed;top:62px;bottom:0;left:0;width:220px;height:auto;max-height:none;overflow-y:auto;overscroll-behavior:contain;z-index:20}
  .content{grid-column:2}
  html[data-density="dense"] .sidebar{width:190px}
}
@media(min-width:761px) and (max-width:1100px){.sidebar,html[data-density="dense"] .sidebar{width:78px}}
@media(max-width:1250px){.contact-browser.has-selection{grid-template-columns:minmax(360px,.75fr) minmax(520px,1.45fr)}.contact-split-detail .contact-detail-sections{grid-template-columns:1fr}}
@media(max-width:900px){
  .contact-browser,.contact-browser.has-selection{grid-template-columns:1fr}
  .contact-browser.has-selection .contact-list-panel{display:none}
  .contact-filter-panel.has-contact-selection{display:none}
  .contact-split-detail .contact-detail-sections{grid-template-columns:1fr}
  .contact-split-head{position:sticky;top:8px;z-index:8}
}
@media(max-width:700px){.contact-subform-row.person-row>.icon-action,.contact-subform-row.phone-row>.icon-action{margin-top:0}}
@media(max-width:1450px){.contact-filter-grid-extended{grid-template-columns:repeat(4,minmax(150px,1fr))}.contact-filter-grid-extended .actions{align-self:end}}
@media(max-width:1050px){.contact-filter-grid-extended{grid-template-columns:repeat(2,minmax(170px,1fr))}}
@media(max-width:700px){.contact-filter-grid-extended{grid-template-columns:1fr}}
@media(min-width:761px) and (max-width:1100px){.app-shell,html[data-density="dense"] .app-shell{grid-template-columns:78px minmax(0,1fr)}}


/* V0.9.4.7 – kompakte Kontaktfilter und unabhängige Split-View-Scrollbereiche */
.contact-filter-panel{padding:10px 12px;margin-bottom:12px}
.contact-filter-bar{display:flex;align-items:center;gap:7px;min-width:0}
.contact-filter-bar .form-control{width:auto;min-width:108px;padding:7px 8px;height:36px}
.contact-filter-bar .contact-filter-search{flex:1 1 230px;min-width:180px}
.contact-filter-bar select{flex:0 1 150px;max-width:170px}
.contact-filter-reset{width:36px;height:36px;padding:0;flex:0 0 36px;font-size:19px;line-height:1}
.contact-page-head{margin-bottom:12px}

@media(min-width:901px){
  body:has(.contacts-page.has-selection){overflow:hidden}
  .content:has(> .contacts-page.has-selection){height:calc(100dvh - 62px);overflow:hidden;padding-bottom:18px}
  .contacts-page.has-selection{height:100%;min-height:0;display:flex;flex-direction:column}
  .contacts-page.has-selection .contact-page-head,.contacts-page.has-selection .contact-filter-panel{flex:0 0 auto}
  .contacts-page.has-selection .contact-browser{flex:1 1 auto;min-height:0;align-items:stretch}
  .contacts-page.has-selection .contact-list-panel{height:100%;min-height:0;margin-bottom:0;display:flex;flex-direction:column;overflow:hidden;padding:12px}
  .contacts-page.has-selection .contact-list-panel>.panel-head{flex:0 0 auto;margin-bottom:9px}
  .contacts-page.has-selection .contact-list{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-anchor:none;overscroll-behavior:contain;padding:10px 4px 0 0;scrollbar-gutter:auto}
  .contacts-page.has-selection .contact-split-detail{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-gutter:auto}
  /* V0.9.4.8: dezente Scrollleisten statt heller Systemleisten. */
  .contacts-page.has-selection .contact-list,.contacts-page.has-selection .contact-split-detail{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 62%,transparent) transparent}
  .contacts-page.has-selection .contact-list::-webkit-scrollbar,.contacts-page.has-selection .contact-split-detail::-webkit-scrollbar{width:7px}
  .contacts-page.has-selection .contact-list::-webkit-scrollbar-track,.contacts-page.has-selection .contact-split-detail::-webkit-scrollbar-track{background:transparent}
  .contacts-page.has-selection .contact-list::-webkit-scrollbar-thumb,.contacts-page.has-selection .contact-split-detail::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 55%,transparent);border-radius:999px}
  .contacts-page.has-selection .contact-list::-webkit-scrollbar-thumb:hover,.contacts-page.has-selection .contact-split-detail::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--muted) 78%,transparent)}
  .contacts-page.has-selection .contact-split-head{position:sticky;top:0;z-index:9}
}
@media(max-width:1350px) and (min-width:901px){
  .contact-filter-bar{flex-wrap:wrap}
  .contact-filter-bar .contact-filter-search{flex-basis:260px}
  .contact-filter-bar select{flex:1 1 125px;max-width:none}
}
@media(max-width:900px){
  .contact-filter-panel{padding:12px}
  .contact-filter-bar{display:grid;grid-template-columns:1fr 1fr}
  .contact-filter-bar .form-control,.contact-filter-bar select{width:100%;max-width:none;min-width:0}
  .contact-filter-bar .contact-filter-search{grid-column:1/-1}
  .contact-filter-reset{justify-self:end}
}
@media(max-width:600px){.contact-filter-bar{grid-template-columns:1fr}.contact-filter-bar .contact-filter-search{grid-column:auto}.contact-filter-reset{justify-self:stretch;width:100%}}

/* V0.9.5 – Benutzer/QoL/Projektarchiv ----------------------------------- */
.user-admin-layout{max-width:1100px;display:grid;gap:14px}.user-admin-layout>.panel{margin:0}.user-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.user-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.user-form-grid label{display:grid;gap:5px;font-size:12px;font-weight:700;min-width:0}.user-active-check{align-self:end;min-height:42px}.user-visibility-picker{min-width:0}.effective-rights-preview{display:flex;gap:10px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:12px}.effective-rights-preview span{color:var(--muted)}.user-form-actions{margin-top:0}
.compact-admin-filter{padding:9px 10px;margin-bottom:10px;max-width:620px}.compact-admin-filter .form-control{height:36px;padding:7px 9px}.compact-admin-table th,.compact-admin-table td{padding:7px 9px}.compact-admin-table td{vertical-align:middle}.compact-chip-line{display:flex;flex-wrap:wrap;gap:4px}.badge.soft{background:var(--soft);color:var(--accent)}.compact-bulk-toolbar{position:sticky;top:68px;z-index:10;margin-bottom:8px;padding:7px 9px}.row-icon-actions{gap:4px}
.report-visibility{display:block;color:var(--muted);font-size:11px;margin-top:2px}.visibility-note{background:transparent!important;color:var(--muted)!important;padding:0!important;font-weight:600!important}
.day-check-panel{padding:12px 14px}.day-check-panel .panel-head{margin-bottom:8px}.day-check-list{display:flex;gap:7px;flex-wrap:wrap}.day-check-item{padding:5px 8px;border-radius:8px;font-size:12px;background:var(--warnbg);color:var(--warn)}.day-check-item.info{background:var(--soft);color:var(--accent)}.compact-ok-line{font-size:12px;color:var(--muted)}
.compact-message{padding:8px 10px;margin-bottom:10px;font-size:12px}.draft-restored-toast{position:fixed;right:18px;bottom:86px;z-index:120;background:var(--text);color:var(--panel);padding:8px 11px;border-radius:9px;box-shadow:var(--shadow);font-size:12px}.mini-copy{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:2px 4px;border-radius:5px}.mini-copy:hover{background:var(--soft);color:var(--accent)}
.undo-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;margin-bottom:12px;border:1px solid #b9ddd3;border-radius:10px;background:var(--soft);font-size:13px}.undo-bar form{margin:0}.compact-project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card-manage{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;padding:11px}.project-card-manage .project-card-main{color:var(--text);min-width:0}.project-card-manage .project-card-main p{min-height:0;margin:4px 0}.project-card-manage .project-card-main>div{margin-top:6px;flex-wrap:wrap}.project-card-manage form{margin:0}.archived-projects>summary{cursor:pointer;display:flex;gap:8px;align-items:center;list-style:none}.archived-projects>summary::-webkit-details-marker{display:none}.archived-projects>summary:before{content:'›';font-size:20px;transition:transform .15s}.archived-projects[open]>summary:before{transform:rotate(90deg)}.archived-project-list{display:grid;gap:0;margin-top:10px}.archived-project-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;border-top:1px solid var(--line)}.archived-project-row>div{display:grid;gap:2px}.archived-project-row small{color:var(--muted)}
.release-version-button{border:0;background:transparent;cursor:pointer;width:100%}.release-notes-modal{display:none;position:fixed;inset:0;z-index:140}.release-notes-modal.open{display:block}.release-notes-card{position:relative;margin:7vh auto 0;width:min(720px,calc(100% - 28px));max-height:86vh;overflow:hidden;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.32);display:flex;flex-direction:column}.release-notes-card>.panel-head{flex:0 0 auto;margin-bottom:12px}.release-notes-card h2{margin:0}.release-notes-body{min-height:0;overflow-y:auto;padding-right:8px;scrollbar-gutter:stable}.release-current h3{margin:0 0 8px}.release-current ul{margin:0;padding-left:20px}.release-current li{margin:6px 0}.release-history{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.release-history summary{cursor:pointer;font-weight:700;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--text);list-style:none}.release-history summary::-webkit-details-marker{display:none}.release-history summary:after{content:'›';float:right;font-size:20px;line-height:16px;transition:transform .15s}.release-history[open] summary:after{transform:rotate(90deg)}.release-timeline{display:grid;margin-top:10px}.release-timeline>div{display:grid;grid-template-columns:72px 1fr;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.release-timeline>div:first-child{border-top:0}.release-timeline span{color:var(--muted);font-size:12px}.release-notes-actions{flex:0 0 auto;justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
html[data-theme="dark"] .release-notes-card{background:var(--panel)}

/* Die bereits vorhandene mobile Aktionsleiste bleibt bewusst sehr flach. */
@media(max-width:760px){
  .user-form-grid,.user-form-grid.two{grid-template-columns:1fr}.user-admin-layout{gap:10px}.compact-project-grid{grid-template-columns:1fr}.archived-project-row{align-items:flex-start}.release-notes-card{margin:0;position:absolute;bottom:0;width:100%;max-height:90dvh;border-radius:18px 18px 0 0;padding:16px}.release-timeline>div{grid-template-columns:60px 1fr}
  [data-work-entry-form] .sticky-actions,.user-form-actions{position:fixed;left:8px;right:8px;bottom:70px;width:auto;display:flex;gap:6px;padding:7px 8px;border-radius:10px;overflow-x:auto;white-space:nowrap}[data-work-entry-form] .sticky-actions .btn,.user-form-actions .btn{flex:0 0 auto;padding:8px 10px;font-size:12px}[data-work-entry-form] .sticky-actions .primary{grid-column:auto}[data-work-entry-form]{padding-bottom:68px}
}
@media(min-width:761px){
  .master-section{padding:13px 14px}.master-section .panel-head{margin-bottom:8px}.master-row{padding:6px 0}.master-main span{font-size:11px}.master-actions .icon-action{width:30px;height:30px}
}

/* V0.9.5.1 – tätigkeitsbezogene Fotos */
.work-photo-upload{padding:13px 15px}.work-photo-upload .panel-head{margin-bottom:8px}.compact-photo-drop{display:grid;grid-template-columns:auto minmax(220px,1fr);align-items:center;gap:12px;padding:10px 12px}.compact-photo-drop .form-control{margin:0}.work-photo-count{display:inline-flex;align-items:center;gap:5px;margin-top:7px;font-size:12px;font-weight:700;color:var(--accent)}
@media(max-width:760px){.compact-photo-drop{grid-template-columns:1fr;gap:6px}.work-photo-upload{padding:11px}}

/* V0.9.5.6: gemischte Montage-/Demontage-Sammelpositionen im Tagesabschluss klar trennen */
.review-activity-group{margin-top:12px}.review-activity-group:first-of-type{margin-top:6px}.review-activity-group>h3{margin:0 0 7px}.review-activity-group+.review-activity-group{padding-top:12px;border-top:1px solid var(--line)}

/* V0.9.6: interne Bugreports & Änderungswünsche */
.sidebar-feedback,.sidebar-admin-feedback{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 10px;border:1px solid rgba(255,255,255,.12);border-radius:9px;color:#dce4e9!important;font-size:11px;background:#26333d}
.sidebar-feedback:hover,.sidebar-admin-feedback:hover{background:#30404c!important;color:#fff!important;border-color:#49606f}
.sidebar-feedback+.sidebar-version,.sidebar-admin-feedback+.sidebar-version{margin-top:5px}
.mobile-feedback-button{margin-top:7px}
.feedback-compose{max-width:980px}.feedback-form{display:grid;gap:14px}.feedback-main-fields{display:grid;grid-template-columns:minmax(170px,.55fr) minmax(260px,1.45fr);gap:12px}.feedback-main-fields label,.feedback-description,.feedback-image-upload label,.feedback-admin-edit label{display:grid;gap:6px;font-size:12px;font-weight:700}.feedback-submit-actions{justify-content:flex-end}.feedback-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.feedback-preview:empty{display:none}.feedback-preview img{width:92px;height:68px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:var(--bg)}
.feedback-list,.feedback-admin-list{display:grid;gap:12px}.feedback-card,.feedback-admin-card{border:1px solid var(--line);border-radius:12px;padding:13px;background:var(--panel)}.feedback-admin-card{margin-bottom:0}.feedback-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.feedback-card-head>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.feedback-card-head h2{margin:0;font-size:17px}.feedback-card>p{margin:10px 0;line-height:1.5}.feedback-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin-top:7px}.feedback-images{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.feedback-images a{display:block}.feedback-images img{display:block;width:150px;height:105px;object-fit:cover;border:1px solid var(--line);border-radius:9px;background:var(--bg)}.feedback-admin-response{margin-top:10px;padding:9px 11px;border-radius:9px;background:var(--soft);color:var(--text);font-size:12px}.feedback-kind{font-weight:800}.feedback-kind-bug{background:#3b272a;color:#ffc8c8}.feedback-kind-change{background:#20344a;color:#c5ddff}.feedback-status-new{background:#3d321b;color:#f4cf78}.feedback-status-review{background:#21374b;color:#bcdcff}.feedback-status-planned{background:#2d2b4a;color:#d6d1ff}.feedback-status-done{background:#1e3b32;color:#9ee1c8}.feedback-status-rejected{background:#3b292b;color:#e9b6ba}.feedback-new-count{font-size:12px}.feedback-filterbar{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,.7fr) minmax(150px,.7fr) auto auto;gap:8px;align-items:center}.feedback-description-read{margin-top:12px;line-height:1.5;white-space:normal}.feedback-tech{margin-top:10px;color:var(--muted);font-size:11px}.feedback-tech summary{cursor:pointer}.feedback-tech div{padding-top:5px;overflow-wrap:anywhere}.feedback-admin-edit{display:grid;grid-template-columns:minmax(150px,.35fr) minmax(300px,1fr) auto;gap:10px;align-items:end;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:1100px){.sidebar-feedback,.sidebar-admin-feedback{padding:8px 4px}.sidebar-feedback b,.sidebar-admin-feedback b{display:none}.sidebar-feedback span,.sidebar-admin-feedback span{font-size:16px}}
@media(max-width:760px){.feedback-main-fields,.feedback-filterbar,.feedback-admin-edit{grid-template-columns:1fr}.feedback-submit-actions .btn{width:100%}.feedback-images img{width:110px;height:82px}.feedback-card-head{align-items:flex-start}.feedback-card-head>div{display:grid}.feedback-filterbar .btn{width:100%}}
.feedback-admin-alert{display:flex;align-items:center;gap:10px;margin:-6px 0 18px;padding:10px 13px;border:1px solid #5a4930;border-radius:10px;background:#332a19;color:#f2d18b;text-decoration:none}.feedback-admin-alert:hover{border-color:#806841}.feedback-admin-alert span{font-size:18px}.feedback-admin-alert small{margin-left:auto;color:#cfb77f}
@media(max-width:760px){.feedback-admin-alert{align-items:flex-start;flex-wrap:wrap}.feedback-admin-alert small{width:100%;margin-left:28px}}


/* V0.9.7 – globale Gerätetypen & Projekt-Checklisten ---------------------- */
.device-field-editor{margin:14px 0;padding-top:12px;border-top:1px solid var(--line)}.device-field-editor>[data-df-list]{display:grid;gap:9px}.device-field-row{display:grid;grid-template-columns:minmax(160px,1.3fr) minmax(120px,.9fr) minmax(190px,1.2fr) 90px minmax(150px,1fr) auto;gap:8px;align-items:end;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.device-field-row label{display:grid;gap:4px;font-size:11px;font-weight:700}.legacy-equipment>summary{cursor:pointer}.legacy-equipment-list{margin-top:10px}.checklist-item-editor{max-width:1080px}.checklist-item-base-grid{display:grid;grid-template-columns:110px 130px 160px minmax(180px,1fr) minmax(180px,1fr) minmax(190px,1fr);gap:10px}.checklist-item-base-grid>label{display:grid;gap:5px;font-size:12px;font-weight:700}.checklist-item-base-grid>.check{grid-column:1/-1;display:flex}.checklist-field-picker{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.checklist-picker-category{padding:10px 0;border-top:1px solid var(--line)}.checklist-picker-category:first-child{border-top:0}.checklist-picker-category h4{margin:0 0 7px}.checklist-picker-category>div{display:flex;flex-wrap:wrap;gap:6px 14px}.checklist-picker-field{font-weight:600;font-size:12px}
.project-checklists-panel{margin-bottom:16px}.project-checklist{border:1px solid var(--line);border-radius:12px;margin-top:10px;overflow:hidden}.project-checklist-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;background:var(--bg)}.project-checklist-summary::-webkit-details-marker{display:none}.project-checklist-summary>div:first-child{display:grid;gap:2px}.project-checklist-summary small{color:var(--muted);font-weight:400}.project-checklist-summary:before{content:'›';font-size:20px;margin-right:4px;transition:transform .15s}.project-checklist[open]>.project-checklist-summary:before{transform:rotate(90deg)}.project-checklist-summary>div:first-child{margin-right:auto}.checklist-summary-stats{display:flex;gap:6px;flex-wrap:wrap}.checklist-summary-stats span{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:3px 7px}.project-checklist-body{padding:11px}.checklist-toolbar{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(4,minmax(120px,.75fr)) auto auto;gap:7px;align-items:center}.checklist-toolbar .form-control{height:36px}.checklist-filter-result{font-size:11px;color:var(--muted);margin:7px 1px}.project-checklist-items{display:grid;gap:7px}.project-checklist-item{border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}.project-checklist-item[hidden]{display:none}.checklist-item-summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.55fr);gap:12px;align-items:center;padding:9px 11px}.checklist-item-summary::-webkit-details-marker{display:none}.checklist-item-ident{display:grid;gap:2px}.checklist-item-ident>b{font-size:15px}.checklist-item-ident>span{font-size:12px}.checklist-item-ident small{font-size:11px;color:var(--muted)}.checklist-item-progress{display:grid;grid-template-columns:minmax(100px,1fr) auto auto;gap:7px;align-items:center}.checklist-progress-bar{height:7px;border-radius:999px;background:var(--soft);overflow:hidden}.checklist-progress-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}.checklist-item-content{padding:11px;border-top:1px solid var(--line);background:var(--bg)}.checklist-values-form{display:grid;gap:10px}.checklist-category{border:1px solid var(--line);border-radius:9px;padding:9px;background:var(--panel)}.checklist-category h4{margin:0 0 8px;font-size:13px}.checklist-fields-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.checklist-field{display:grid;gap:5px;min-width:0}.checklist-field-label{font-size:11px;font-weight:800;display:grid;gap:2px}.checklist-field-label small{font-size:9px;font-weight:700}.documented-mark{color:var(--success)}.undocumented-mark{color:var(--warn)}.checklist-status-select{font-weight:700}.checklist-value-unit{display:flex;align-items:center;gap:6px}.checklist-value-unit>span{color:var(--muted);font-size:11px}.cable-meter-inputs{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:5px;align-items:center}.cable-meter-inputs>span{font-size:10px;color:var(--muted)}.calculated-length{font-weight:800;color:var(--accent)}.checklist-item-actions,.checklist-document-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.checklist-document-row{margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}.checklist-document-row form{margin:0}.checklist-document-row small{color:var(--muted);font-size:10px;margin-right:auto}.checklist-list-footer{display:flex;justify-content:flex-end;margin-top:8px}.checklist-list-footer form{margin:0}
html[data-theme="dark"] .project-checklist-summary,html[data-theme="dark"] .checklist-item-content,html[data-theme="dark"] .device-field-row{background:var(--bg)}
@media(max-width:1200px){.device-field-row{grid-template-columns:repeat(3,minmax(0,1fr))}.device-field-row .cf-row-actions{align-self:end}.checklist-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.checklist-item-base-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.device-field-row,.checklist-item-base-grid,.checklist-toolbar,.checklist-fields-grid{grid-template-columns:1fr}.checklist-item-summary{grid-template-columns:1fr}.checklist-item-progress{grid-template-columns:minmax(80px,1fr) auto}.checklist-item-progress .badge{grid-column:1/-1;justify-self:start}.cable-meter-inputs{grid-template-columns:1fr auto 1fr}.cable-meter-inputs>span:nth-of-type(2){display:none}.cable-meter-inputs input:last-child{grid-column:1/-1}.project-checklist-body{padding:8px}.checklist-item-content{padding:8px}.checklist-toolbar .btn{width:100%}.checklist-item-actions>.btn{flex:1}.checklist-document-row .btn{width:100%}}

/* V0.9.7.1 – Checklisten-UI: robuste Breiten, Checkboxen, Mengen & Meterwerte */
.checklist-item-editor{max-width:1400px}
.checklist-item-base-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:end}
.checklist-item-base-grid>label{min-width:0}
.checklist-item-base-grid .form-control,.device-field-row .form-control,.checklist-toolbar .form-control{min-width:0;width:100%;max-width:100%}
.checklist-item-base-grid .searchable-select,.device-field-row .searchable-select{min-width:0;width:100%}
.checklist-item-base-grid .check{align-self:center;min-height:40px}

.device-field-head-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.device-field-row{display:grid;grid-template-columns:minmax(210px,1.35fr) minmax(155px,.9fr) minmax(245px,1.25fr) minmax(95px,.5fr) minmax(135px,.65fr) auto;gap:9px;align-items:end}
.device-field-row>label{min-width:0}
.device-field-row .df-options-wrap{grid-column:1/-2}
.device-field-row .cf-row-actions{display:flex;gap:5px;justify-content:flex-end;align-self:end;white-space:nowrap}
.device-field-row [hidden]{display:none!important}
.device-field-row select{white-space:nowrap;text-overflow:ellipsis}

.checklist-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.checklist-toolbar>[data-checklist-search]{flex:2 1 260px}
.checklist-toolbar>select{flex:1 1 155px}
.checklist-toolbar>.btn{flex:0 0 auto;min-height:36px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.checklist-summary-stats{justify-content:flex-end}
.checklist-summary-stats span{white-space:nowrap}

.checklist-fields-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));align-items:start}
.checklist-field{min-width:0;align-content:start}
.checklist-field-label{overflow-wrap:anywhere}
.checklist-done-toggle{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-size:12px;font-weight:700;cursor:pointer;width:max-content;max-width:100%}
.checklist-done-toggle input{width:19px;height:19px;margin:0;accent-color:var(--accent)}
.checklist-check-quantity{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.checklist-check-quantity>.checklist-value-unit{flex:1 1 125px;min-width:120px}
.checklist-check-quantity .form-control{min-width:0}

.cable-meter-inputs{display:grid;grid-template-columns:repeat(3,minmax(95px,1fr));gap:7px;align-items:end}
.cable-meter-inputs>label{display:grid;gap:4px;min-width:0;font-size:10px;color:var(--muted);font-weight:700}
.cable-meter-inputs .form-control{min-width:0;width:100%}
.cable-meter-inputs .form-control.is-calculated,.cable-meter-inputs .form-control[readonly]{font-weight:800;background:var(--soft);cursor:default}
.calculated-length{display:none}

@media(max-width:1200px){
  .device-field-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .device-field-row .df-options-wrap{grid-column:1/-1}
  .device-field-row .cf-row-actions{grid-column:1/-1;justify-content:flex-start}
  .checklist-item-base-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
}
@media(max-width:760px){
  .device-field-head-actions{width:100%}.device-field-head-actions .btn{flex:1}
  .device-field-row{grid-template-columns:1fr}
  .device-field-row .df-options-wrap,.device-field-row .cf-row-actions{grid-column:auto}
  .checklist-item-base-grid{grid-template-columns:1fr}
  .checklist-toolbar{display:grid;grid-template-columns:1fr}
  .checklist-toolbar>*{width:100%;max-width:none}
  .checklist-fields-grid{grid-template-columns:1fr}
  .cable-meter-inputs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .checklist-check-quantity{align-items:stretch}.checklist-check-quantity>.checklist-value-unit{flex-basis:100%}
}
@media(max-width:480px){.cable-meter-inputs{grid-template-columns:1fr}.checklist-done-toggle{width:100%}}
@media(max-width:760px){.cable-meter-inputs input:last-child{grid-column:auto}}

/* V0.9.7.2 – Gerätetyp-Editor bleibt vollständig innerhalb seiner Karte */
.generic-form.device-type-form{max-width:1400px}
.device-type-form .device-field-editor{width:100%;min-width:0}
.device-type-form .device-field-editor>[data-df-list]{width:100%;min-width:0}
.device-type-form .device-field-row{
  width:100%;
  min-width:0;
  grid-template-columns:minmax(180px,1.2fr) minmax(135px,.85fr) minmax(210px,1.15fr) minmax(90px,.45fr) minmax(120px,.6fr) auto;
}
.device-type-form .device-field-row .df-field-wrap{grid-column:1}
.device-type-form .device-field-row .df-category-wrap{grid-column:2}
.device-type-form .device-field-row .df-type-wrap{grid-column:3}
.device-type-form .device-field-row .df-unit-wrap{grid-column:4}
.device-type-form .device-field-row .df-quantity-wrap{grid-column:5}
.device-type-form .device-field-row .df-options-wrap{grid-column:1/6}
.device-type-form .device-field-row .cf-row-actions{grid-column:6;grid-row:1;align-self:end}
.device-type-form .device-field-row input,
.device-type-form .device-field-row select{min-width:0;width:100%;max-width:100%}
.device-type-form .device-field-row select{overflow:hidden;text-overflow:ellipsis}

@media(max-width:1200px){
  .generic-form.device-type-form{max-width:none}
  .device-type-form .device-field-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .device-type-form .device-field-row .df-field-wrap,
  .device-type-form .device-field-row .df-category-wrap,
  .device-type-form .device-field-row .df-type-wrap,
  .device-type-form .device-field-row .df-unit-wrap,
  .device-type-form .device-field-row .df-quantity-wrap{grid-column:auto}
  .device-type-form .device-field-row .df-options-wrap{grid-column:1/-1}
  .device-type-form .device-field-row .cf-row-actions{grid-column:1/-1;grid-row:auto;justify-content:flex-end}
}
@media(max-width:760px){
  .device-type-form .device-field-row{grid-template-columns:1fr}
  .device-type-form .device-field-row .df-options-wrap,
  .device-type-form .device-field-row .cf-row-actions{grid-column:auto}
}


/* V0.9.7.4: app-interner Zurueck-Button fuer PWA und Maeuse ohne Navigationstaste */
.topbar-back{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;border:1px solid #41505d;background:#26323d;color:#fff;border-radius:9px;min-height:38px;padding:7px 11px;cursor:pointer;font-weight:750;white-space:nowrap;line-height:1}
.topbar-back:hover{background:#31404c;border-color:#536575}
.topbar-back:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media(max-width:760px){
  .topbar{gap:8px}
  .topbar-back{width:40px;height:40px;min-height:40px;padding:0;font-size:22px}
  .topbar-back span{display:none}
}


/* V0.9.8 – echte einfache Oberfläche, Aufgabenbeschreibung und Offline nur bei Bedarf */
[data-offline-visibility][hidden]{display:none!important}
.sidebar-more{margin-top:5px;border-top:1px solid rgba(255,255,255,.08);padding-top:5px}
.sidebar-more summary{list-style:none;cursor:pointer;color:#dce4e9;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:9px;font-size:14px;user-select:none}
.sidebar-more summary::-webkit-details-marker{display:none}
.sidebar-more summary:hover,.sidebar-more[open] summary{background:#2b3944;color:#fff}
.sidebar-more-links{display:grid;gap:3px;padding:3px 0 0 10px}
.sidebar-more-links a{font-size:13px;padding-top:8px;padding-bottom:8px}
.task-mini-description{margin:3px 0 4px;color:var(--muted);font-size:12px;line-height:1.35}
.task-filterbar.worker-task-filterbar{grid-template-columns:160px minmax(220px,1fr) auto}
@media(max-width:1100px){
  .sidebar-more summary{justify-content:center;padding-left:4px;padding-right:4px}.sidebar-more summary span{display:none}
  .sidebar-more-links{padding-left:0}.sidebar-more-links a{justify-content:center;padding-left:4px;padding-right:4px}.sidebar-more-links a span{display:none}
  .task-filterbar.worker-task-filterbar{grid-template-columns:160px minmax(0,1fr) auto}
}
@media(max-width:760px){.task-filterbar.worker-task-filterbar{grid-template-columns:1fr}}


/* V0.9.8.1 – persönliche Mitteilungen */
.staff-notice-panel{border-color:#d5c9a9;background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--warnbg) 35%,var(--panel)))}
.staff-notice-list{display:grid;gap:9px}.staff-notice-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;border:1px solid var(--line);border-radius:11px;padding:13px 14px;background:var(--panel)}
.staff-notice-card.unread{border-left:5px solid var(--warn);background:var(--warnbg)}.staff-notice-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.staff-notice-main p,.sent-notice p{white-space:pre-wrap;margin:6px 0;color:var(--text);line-height:1.45}.staff-notice-main small,.sent-notice small{color:var(--muted)}
.staff-notice-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.staff-notice-actions form{margin:0}.sent-notice{border-top:1px solid var(--line);padding:14px 0}.sent-notice:first-of-type{border-top:0}.sent-notice-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.sent-notice details{margin-top:10px}.sent-notice summary{cursor:pointer;color:var(--accent);font-weight:700;font-size:13px}
@media(max-width:760px){.staff-notice-card{grid-template-columns:1fr}.staff-notice-actions{justify-content:flex-start}.staff-notice-actions .btn{width:100%}.staff-notice-actions form{flex:1}.sent-notice-head{display:block}.sent-notice-head>.badge{margin-top:8px}}

/* V0.9.8.2: Freigaben in Dark Mode und kompakte Nutzer-/Team-Auswahl */
html[data-theme="dark"] .share-private,
html[data-theme="dark"] .share-checkboxes{background:#101820;color:var(--text);border-color:#30414d}
html[data-theme="dark"] .share-picker-grid>label>span{color:var(--muted)}
html[data-theme="dark"] input[type="file"]{color:var(--text)}
html[data-theme="dark"] input[type="file"]::file-selector-button{background:#22313b;color:var(--text);border:1px solid #3a4a56;border-radius:7px;padding:6px 9px;margin-right:8px;cursor:pointer}
html[data-theme="dark"] input[type="file"]::file-selector-button:hover{background:#2a3b47}
input[type="checkbox"]{accent-color:var(--accent)}

/* V0.9.8.3 – getrennte Termin-/Kalenderansicht und Urlaub */
.calendar-dot.vacation{background:#4f8fc7}.calendar-dot.vacation-pending{background:var(--warn)}
.calendar-event.vacation{border-left-color:#4f8fc7;background:#e8f2fb}
.calendar-event.vacation-pending{border-left-color:var(--warn);background:var(--warnbg)}
.calendar-type.vacation{background:#e8f2fb;color:#286899}
.calendar-type.vacation-pending{background:var(--warnbg);color:var(--warn)}
.appointment-description{margin:6px 0 0;color:var(--muted);font-weight:400;line-height:1.45}
.appointment-row time small{display:block;margin-top:3px;color:var(--muted);font-weight:500}
.vacation-list{display:grid;gap:10px}
.vacation-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}
.vacation-card.pending{border-left:4px solid var(--warn)}
.vacation-card.approved{border-left:4px solid #4f8fc7}.vacation-card.rejected{border-left:4px solid var(--danger)}
.vacation-card-main{display:grid;gap:5px;min-width:0}.vacation-card-main p{margin:2px 0;color:var(--text)}.vacation-card-main small{color:var(--muted)}
.vacation-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vacation-card-actions,.vacation-review-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.vacation-card-actions form{margin:0}
.vacation-review-actions form{display:grid;grid-template-columns:minmax(150px,1fr) auto auto;gap:7px;align-items:center;margin:0}.vacation-review-actions .form-control{margin:0}
.vacation-status.approved{background:#e8f2fb;color:#286899}.vacation-status.pending{background:var(--warnbg);color:var(--warn)}.vacation-status.rejected{background:#fdebea;color:var(--danger)}
html[data-theme="dark"] .calendar-event.vacation{background:#172d3f;border-left-color:#6aa4d2}
html[data-theme="dark"] .calendar-event.vacation-pending{background:#392e13;border-left-color:var(--warn)}
html[data-theme="dark"] .calendar-type.vacation,html[data-theme="dark"] .vacation-status.approved{background:#172d3f;color:#9dccf0}
html[data-theme="dark"] .vacation-status.rejected{background:#3b2528;color:#ffb3b3}
html[data-theme="dark"] .vacation-card{background:var(--panel);border-color:var(--line)}
@media(max-width:760px){.vacation-card{grid-template-columns:1fr}.vacation-card-actions,.vacation-review-actions{justify-content:flex-start}.vacation-review-actions form{grid-template-columns:1fr;width:100%}.vacation-review-actions form .btn{width:100%}}


/* V0.9.8.8 – Dark-Mode-Audit: ältere fest helle Komponenten themefest machen. */
html[data-theme="dark"] .workmode-description{
  background:#101820;
  color:var(--text)!important;
  border-left-color:#49606f;
}
html[data-theme="dark"] .quick-add-btn:hover{background:#20352f;color:var(--text)}
html[data-theme="dark"] .delete-state.ok{background:#173128;border-color:#285846;color:var(--text)}
html[data-theme="dark"] .delete-state.warn{background:#3a2d17;border-color:#65502b;color:var(--text)}
html[data-theme="dark"] .bulk-toolbar{background:#19362f;border-color:#316250;color:#e9f5f0}
html[data-theme="dark"] .mini-thumb{background:#101820}
html[data-theme="dark"] .work-context-main em,
html[data-theme="dark"] .effort-duration{background:var(--soft);color:#75d1b7}
html[data-theme="dark"] .panel.subtle{background:#131d25;border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .badge.ok{background:#17362d;color:#7fd5b5}
html[data-theme="dark"] .import-bulk-toolbar{background:#18242d;border-color:#344651;box-shadow:0 5px 14px rgba(0,0,0,.2)}
html[data-theme="dark"] .import-section-row{background:#202c35;border-left-color:#5b6c78;color:var(--text)}
html[data-theme="dark"] .import-work-row{background:var(--panel);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .import-work-row.is-ignored,
html[data-theme="dark"] 
html[data-theme="dark"] .report-day h3,
html[data-theme="dark"] .report-project>h3{
  background:#24313b;
  color:var(--text);
  border-color:#40515d;
}
html[data-theme="dark"] .report-compact-head{border-color:#52636f}
html[data-theme="dark"] .report-compact-head>div{border-color:#52636f}
html[data-theme="dark"] .report-compact-head span{color:var(--muted)}
html[data-theme="dark"] .report-date{border-bottom-color:#52636f}
html[data-theme="dark"] .report-table td,
html[data-theme="dark"] .report-effort-block{border-color:#30414d}
html[data-theme="dark"] .report-effort-people,
html[data-theme="dark"] .report-effort-extra,
html[data-theme="dark"] .report-effort-quantity{color:var(--muted)}
html[data-theme="dark"] .danger-outline{color:#ffbcbc!important;border-color:#6a4148!important}
html[data-theme="dark"] .offline-error{color:#ff9e9e}

/* V0.9.8.10: dashboard custom-field labels stay inline inside work details. */
.work-row p b{display:inline}


/* V0.9.9.7 – app-interne Bestätigungs- und Fehlermeldungsdialoge */
.app-dialog-shell{display:none;position:fixed;inset:0;z-index:220;align-items:center;justify-content:center;padding:18px}.app-dialog-shell.open{display:flex}.app-dialog-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(8,14,20,.62);backdrop-filter:blur(2px)}.app-dialog-card{position:relative;z-index:1;display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;width:min(520px,100%);background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,.38)}.app-dialog-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--soft);color:var(--accent);font-size:24px;font-weight:850}.app-dialog-shell.danger .app-dialog-icon{background:rgba(176,55,55,.12);color:var(--danger)}.app-dialog-content h2{margin:1px 0 7px;font-size:19px}.app-dialog-content p{margin:0;color:var(--text);line-height:1.5;white-space:pre-line}.app-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.app-dialog-actions .btn{min-width:100px}.app-dialog-actions .btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.app-dialog-actions .btn.danger:hover{filter:brightness(.94)}body.app-dialog-open{overflow:hidden}@media(max-width:600px){.app-dialog-shell{align-items:flex-end;padding:0}.app-dialog-card{grid-template-columns:40px minmax(0,1fr);width:100%;border-radius:18px 18px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));gap:11px}.app-dialog-icon{width:38px;height:38px;font-size:20px}.app-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.app-dialog-shell.alert-only .app-dialog-actions{grid-template-columns:1fr}.app-dialog-actions .btn{width:100%}}


/* V0.9.9.9 – Mitarbeiter-Fertigmeldung und Abrechnungs-Warteschlange */
.badge.work-ready{background:#e5f4ec;color:#1f7758}.badge.work-progress{background:#eef1f3;color:#66737c}.ready-toggle.active{background:#e5f4ec!important;color:#1f7758!important;border-color:#9bcdb8!important}.work-ready-button{background:#e5f4ec!important;color:#1f7758!important;border-color:#9bcdb8!important}.workmode-entry-actions form,.row-actions form{margin:0}.manager-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.manager-stat-ready{background:#e5f4ec;color:#1f7758;border-color:#b9ddce}.manager-queue-ready>h2{background:#e5f4ec;color:#1f7758}.manager-queue-working>h2{background:#f1f3f5;color:var(--text)}
html[data-theme="dark"] .badge.work-ready,html[data-theme="dark"] .work-ready-button,html[data-theme="dark"] .ready-toggle.active,html[data-theme="dark"] .manager-stat-ready{background:#17362d!important;color:#7fd5b5!important;border-color:#285846!important}html[data-theme="dark"] .badge.work-progress{background:#26333d;color:#bdc8cf}@media(max-width:900px){.manager-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.manager-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V0.9.9.11 – Gerätevorlagen auch in Tätigkeiten */
.device-template-work-panel[hidden]{display:none!important}
.device-template-work-fields{display:grid;gap:1rem}
.device-template-work-category{display:grid;gap:.65rem}
.device-template-work-category>h3{margin:0;font-size:.95rem}
.device-template-work-field{min-width:0}
.device-template-work-field>label{display:grid;gap:.35rem}
.device-template-check-quantity{display:grid;grid-template-columns:auto minmax(6rem,1fr) auto;gap:.55rem;align-items:center}
.device-template-check-quantity .check{margin:0;white-space:nowrap}
.device-template-check-quantity>span{font-size:.88rem;opacity:.78}
@media (max-width:720px){.device-template-check-quantity{grid-template-columns:1fr auto}.device-template-check-quantity .check{grid-column:1/-1}}


/* V0.9.9.13 – Bauleitungs-Warteschlange im Dark Mode */
html[data-theme="dark"] .manager-queue-working>h2{background:#202c35;color:var(--text);border-color:#344651}
html[data-theme="dark"] .manager-queue-ready>h2{background:#17362d;color:#7fd5b5;border-color:#285846}
html[data-theme="dark"] .manager-queue-billed>h2{background:#1b2e29;color:#b9ddd0;border-color:#344f46}
html[data-theme="dark"] .manager-select-all{background:#1b2730;color:var(--text);border-color:var(--line)}

/* V0.9.9.14 – Bauleitungsfotos, Datumsstatus und Push */
.manager-work-photos{margin:10px 0 4px;border:1px solid var(--line);border-radius:10px;background:var(--soft);overflow:hidden}
.manager-work-photos>summary{cursor:pointer;padding:9px 11px;font-size:12px;font-weight:800;color:var(--accent);list-style:none}
.manager-work-photos>summary::-webkit-details-marker{display:none}
.manager-work-photos>summary::after{content:'▾';float:right;color:var(--muted)}
.manager-work-photos[open]>summary::after{content:'▴'}
.manager-work-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 10px 10px}
.manager-work-photo-grid>a{display:block;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.manager-work-photo-grid img{display:block;width:100%;height:100%;object-fit:cover}
.today-chip.date-not-today{background:#fff1cc;color:#7a5711;border-color:#e4c66d}
[data-push-toggle].push-active{border-color:#74bca7;background:#e7f5ef;color:#17664e}
html[data-theme="dark"] .manager-work-photos{background:#15212a;border-color:var(--line)}
html[data-theme="dark"] .manager-work-photo-grid>a{background:#101820;border-color:#344651}
html[data-theme="dark"] .today-chip.date-not-today{background:#3a2d17;color:#f2d58c;border-color:#65502b}
html[data-theme="dark"] [data-push-toggle].push-active{background:#17362d;color:#7fd5b5;border-color:#285846}
@media(max-width:760px){.manager-work-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V0.9.9.14 – sichtbarer lokaler Entwurf */
.local-draft-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;margin:0 0 14px;border:1px solid #d8bd68;border-radius:12px;background:#fff7dc}
.local-draft-panel[hidden]{display:none!important}.local-draft-copy{min-width:0}.local-draft-copy>b{display:block;margin-bottom:4px}.local-draft-copy p{margin:0 0 4px}.local-draft-copy small{color:var(--muted)}
.day-check-list a.day-check-item{text-decoration:none}.day-check-list a.day-check-item:hover{text-decoration:underline}
html[data-theme="dark"] .local-draft-panel{background:#302817;border-color:#66562e;color:var(--text)}
@media(max-width:760px){.local-draft-panel{align-items:stretch;flex-direction:column}.local-draft-panel .actions{width:100%}.local-draft-panel .actions .btn{flex:1 1 auto}}

/* V0.9.9.15 – Bestellungen / Materialanforderungen */
.material-stats{margin-bottom:1rem}.material-request-list{display:grid;gap:.75rem}.material-request-card{display:flex;gap:1rem;justify-content:space-between;align-items:flex-start;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.material-request-card.status-ordered{border-left:4px solid #c58b19}.material-request-card.status-open{border-left:4px solid #b86119}.material-request-main{min-width:0;flex:1}.material-request-title{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.material-request-meta{display:flex;gap:.65rem;flex-wrap:wrap;margin:.35rem 0;color:var(--muted)}.material-detail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.35rem .8rem;margin:.6rem 0}.material-detail-list div{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:.45rem .6rem}.material-detail-list dt{font-size:.76rem;color:var(--muted)}.material-detail-list dd{margin:0;font-weight:600}.material-request-actions{display:flex;flex-direction:column;align-items:stretch;gap:.45rem;flex:0 0 auto;min-width:96px}.material-status-actions{display:flex;flex-direction:column;gap:.3rem;align-items:stretch}.material-status-actions .btn{width:100%;justify-content:center;white-space:nowrap}.material-item-actions{display:flex;gap:.35rem;justify-content:center;align-items:center}.material-item-actions .material-delete-form{margin:0}.material-dynamic-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin:1rem 0}.material-dynamic-field>label>span{display:block;font-weight:600;margin-bottom:.3rem}.material-dynamic-field small{display:block;margin-top:.2rem;color:var(--muted)}.material-label-single,.material-label-multi{margin-top:.5rem}.material-lines{display:grid;gap:.5rem;margin-top:.5rem}.material-lines label{font-size:.85rem;color:var(--muted)}.material-duplicate-warning{margin-bottom:1rem}.material-field-editor{margin:1rem 0}.material-field-row{grid-template-columns:minmax(180px,2fr) minmax(180px,1fr) minmax(120px,1fr) minmax(160px,1fr) minmax(180px,2fr) auto auto}.nav-count{display:inline-flex;min-width:1.5rem;height:1.5rem;padding:0 .4rem;align-items:center;justify-content:center;border-radius:999px;background:var(--accent);color:#fff;font-size:.75rem;margin-left:auto}
html[data-theme="dark"] .material-request-card{background:var(--panel);border-color:var(--line)}html[data-theme="dark"] .material-detail-list div{background:#18242d;border-color:#344651}
@media(max-width:760px){.material-request-card{display:block}.material-request-actions{margin-top:.8rem;min-width:0;width:max-content}.material-status-actions{margin-top:0;justify-content:flex-start}.material-field-row{grid-template-columns:1fr}.material-dynamic-fields{grid-template-columns:1fr}}

/* V0.9.9.15 – Hinweise für offene Materialanforderungen */
.material-dashboard-alert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 0 18px;padding:13px 15px;border:1px solid #d7b65f;border-left:5px solid #b97c18;border-radius:12px;background:#fff7dc;color:var(--text)}
.material-dashboard-alert>span{font-size:24px;color:#9a6511}.material-dashboard-alert div{min-width:0}.material-dashboard-alert b{display:block}.material-dashboard-alert small{display:block;margin-top:3px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-dashboard-alert>strong{font-size:12px;color:var(--accent);white-space:nowrap}
.button-count{display:inline-flex;min-width:20px;height:20px;padding:0 6px;align-items:center;justify-content:center;border-radius:999px;background:var(--warn);color:#fff;font-size:11px}.manager-stat-material{border-color:#dec77f;background:#fff8df;color:#7b5711}
html[data-theme="dark"] .material-dashboard-alert{background:#302817;border-color:#66562e;border-left-color:#b88b35;color:var(--text)}html[data-theme="dark"] .material-dashboard-alert>span{color:#f0ce78}html[data-theme="dark"] .manager-stat-material{background:#302817;border-color:#66562e;color:#f0ce78}
@media(max-width:760px){.material-dashboard-alert{grid-template-columns:auto minmax(0,1fr)}.material-dashboard-alert>strong{grid-column:2;white-space:normal}.material-dashboard-alert small{white-space:normal}}

.manager-stats#manager-stats-live{grid-template-columns:repeat(6,minmax(0,1fr))}

/* V0.9.9.17 – Bestellungen: flexible Artikelfelder und gleiche Artikelart mehrfach */
.material-common-fields{grid-template-columns:repeat(2,minmax(240px,1fr));margin-bottom:1rem}.material-position-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:1rem 0 .75rem}.material-position-head h3{margin:0}.material-position-head p{margin:.2rem 0 0}.material-position-list{display:grid;gap:.85rem}.material-position-card{border:1px solid var(--line);border-radius:12px;background:var(--soft);padding:.85rem}.material-position-card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.material-position-card-head b{font-size:.9rem}.material-position-card-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.material-field-label{display:block;font-weight:600;margin-bottom:.3rem}.material-line-count-field{display:block;max-width:220px;margin:.55rem 0}.material-line-count-field>span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.25rem}.material-label-dynamic-field{grid-column:span 2;min-width:0}.material-label-line-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,160px);gap:.6rem;align-items:end;min-width:0}.material-label-line-row>label{min-width:0}.material-label-line-row>label>span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.25rem}.material-label-size-field select{position:relative;z-index:2;cursor:pointer;pointer-events:auto}.material-inline-check{margin-top:.35rem}.material-position-grid{display:grid;grid-template-columns:minmax(260px,2fr) minmax(220px,1.4fr) minmax(110px,.65fr) minmax(120px,.7fr);gap:.75rem;align-items:end}.material-position-grid>label>span{display:block;font-weight:600;margin-bottom:.3rem}.material-custom-name[hidden]{display:none}.material-position-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--line)}.material-position-errors ul{margin:.45rem 0 0;padding-left:1.25rem}.material-note{margin-top:1rem}
html[data-theme="dark"] .material-position-card{background:#18242d;border-color:#344651}
@media(max-width:900px){.material-position-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.material-common-fields,.material-position-grid,.material-position-fields,.material-label-line-row{grid-template-columns:1fr}.material-label-dynamic-field{grid-column:1/-1}.material-position-head{align-items:stretch;flex-direction:column}.material-position-head .btn{align-self:flex-start}.material-position-card-head{align-items:flex-start}.material-position-card-actions{justify-content:flex-end}.material-position-card-actions .btn{white-space:normal;text-align:center}}

/* V0.9.11 – kompakte Gruppierung der Bestellübersicht */
.material-location-list{display:grid;gap:1rem}.material-location-group{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel)}.material-location-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;background:var(--soft);border-bottom:1px solid var(--line)}.material-location-title{display:flex;align-items:baseline;gap:.65rem;flex-wrap:wrap;min-width:0}.material-location-title strong{font-size:1.05rem}.material-location-title span{color:var(--muted)}.material-group-count,.material-article-head>span{white-space:nowrap;font-size:.82rem;color:var(--muted);font-weight:600}.material-article-list{display:grid;gap:.9rem;padding:.9rem}.material-article-group{min-width:0}.material-article-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 .45rem;padding:0 .15rem}.material-article-head h3{font-size:1rem;margin:0}.material-request-list-compact{gap:.45rem}.material-request-list-compact .material-request-card{padding:.7rem .8rem;border-radius:11px}.material-request-list-compact .material-detail-list{margin:.45rem 0;grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}.material-request-list-compact .material-detail-list div{padding:.35rem .5rem}.material-request-note{margin:.45rem 0}.material-request-list-compact .material-request-title strong{font-size:.95rem}
html[data-theme="dark"] .material-location-group{background:var(--panel);border-color:var(--line)}html[data-theme="dark"] .material-location-head{background:#18242d;border-color:#344651}
/* V0.10.7.6 – Projektgruppen in der Bestellübersicht einklappbar */
.material-project-orders>summary.material-location-head{cursor:pointer;list-style:none;user-select:none}.material-project-orders .material-group-count{margin-left:auto}.material-project-orders>summary.material-location-head::-webkit-details-marker{display:none}.material-project-orders>summary.material-location-head::after{content:'›';font-size:1.45rem;line-height:1;color:var(--muted);transition:transform .15s ease;flex:0 0 auto}.material-project-orders[open]>summary.material-location-head::after{transform:rotate(90deg)}.material-project-orders:not([open])>summary.material-location-head{border-bottom-color:transparent}.material-project-orders>summary.material-location-head:hover{filter:brightness(.985)}
@media(max-width:760px){.material-location-head,.material-article-head{align-items:flex-start}.material-location-head{padding:.7rem .8rem}.material-article-list{padding:.7rem}.material-location-title{display:grid;gap:.1rem}.material-request-list-compact .material-detail-list{grid-template-columns:1fr}.material-group-count,.material-article-head>span{font-size:.76rem}}

/* V0.9.12 · portable backup / restore */
.backup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}
.backup-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start}
.backup-card h2{margin-top:0}
.backup-card-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:1.5rem;font-weight:800;background:var(--surface-2,#eef3f8);border:1px solid var(--border,#d8e0e8)}
.backup-info-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:14px 0}
.backup-info-list span{font-size:.94rem}
.backup-warning{margin:12px 0 16px}
.backup-import-form{margin-top:12px}
.backup-import-form label>span:first-child{display:block;font-weight:700;margin-bottom:5px}
.backup-import-form small{display:block;margin-top:5px;color:var(--muted,#6b7280)}
.backup-confirm{display:flex!important;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--border,#d8e0e8);border-radius:10px;background:var(--surface-2,#f7f9fb)}
.backup-confirm input{margin-top:.2rem;flex:0 0 auto}
.backup-confirm input[type="checkbox"]{width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important;padding:0!important;margin:.15rem 0 0!important;flex:0 0 18px!important;border-radius:4px;accent-color:var(--accent)}
.backup-confirm span{font-weight:600!important;margin:0!important}
.backup-steps{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:backup-step}
.backup-steps li{counter-increment:backup-step;display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--border,#e5e7eb)}
.backup-steps li:last-child{border-bottom:0}
.backup-steps li:before{content:counter(backup-step);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:var(--surface-2,#eef3f8);border:1px solid var(--border,#d8e0e8);grid-row:1/3}
.backup-steps b,.backup-steps span{grid-column:2}
.backup-steps span{color:var(--muted,#6b7280);margin-top:2px}
[data-theme="dark"] .backup-card-icon,[data-theme="dark"] .backup-confirm,[data-theme="dark"] .backup-steps li:before{background:rgba(255,255,255,.055)}
@media (max-width:900px){.backup-grid{grid-template-columns:1fr}.backup-info-list{grid-template-columns:1fr}}
@media (max-width:600px){.backup-card{grid-template-columns:1fr}.backup-card-icon{width:40px;height:40px}.backup-move-panel{padding-inline:14px}}

/* V0.10.0 – positionsweise Abrechnung & QoL */
.entry-item-accounting{width:112px;vertical-align:top}
.position-accounting-check{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;white-space:nowrap;cursor:pointer;color:var(--muted)}
.position-accounting-check input{width:17px!important;height:17px!important;min-width:17px!important;min-height:17px!important;margin:0!important;padding:0!important;accent-color:var(--accent);cursor:pointer}
.position-accounting-check input:checked+span{color:var(--accent)}
.item-accounting-progress{font-size:.78rem;font-weight:700;color:var(--accent)}
[data-entry-position-progress]{white-space:nowrap}
.backup-verified{margin:12px 0 16px;padding:12px;border:1px solid #6bb69b;border-radius:12px;background:#eef9f4}
.backup-verified-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.backup-verified-head>b{color:#17664e}.backup-verified-head>span{font-size:.82rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.backup-verified dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.backup-verified dl>div{padding:8px;border-radius:8px;background:rgba(255,255,255,.55)}.backup-verified dt{font-size:.72rem;color:var(--muted)}.backup-verified dd{margin:2px 0 0;font-weight:800}.backup-hash{display:block;margin-top:10px;word-break:break-all;color:var(--muted)}
.save-flash{display:inline-flex;align-items:center;margin-left:6px;font-size:.76rem;font-weight:700;color:var(--accent);opacity:1;transition:opacity .4s ease}
.save-flash.fade{opacity:0}
html[data-theme="dark"] .backup-verified{background:#17362d;border-color:#285846}html[data-theme="dark"] .backup-verified dl>div{background:rgba(255,255,255,.04)}
@media(max-width:760px){.entry-item-accounting{width:auto}.position-accounting-check span{display:none}.backup-verified dl{grid-template-columns:1fr}.backup-verified-head{align-items:flex-start;flex-direction:column}.backup-verified-head>span{white-space:normal}}

/* V0.10.0.2 · persönliche Versionshinweise */
.account-preference{align-items:flex-start!important;padding:10px 0}.account-preference input{margin-top:3px}.account-preference span{display:grid;gap:3px}.account-preference small{color:var(--muted);font-weight:400;line-height:1.35}

/* V0.10.1 – zentrale Checklistenübersicht */
.checklist-overview-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:16px}
.checklist-overview-filter label{flex:1 1 320px;display:grid;gap:6px}
.checklist-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:14px}
.checklist-overview-card{padding:0;overflow:hidden}
.checklist-overview-main{display:block;padding:18px;color:inherit;text-decoration:none}
.checklist-overview-main:hover{background:var(--surface-2,#f7f9fb)}
.checklist-overview-title{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}
.checklist-overview-title h2{margin:0;font-size:1.1rem}
.checklist-overview-title p{margin:3px 0 0;color:var(--muted,#66727c)}
.checklist-overview-description{margin:12px 0;color:var(--muted,#66727c)}
.checklist-overview-meta{display:flex;gap:8px 14px;flex-wrap:wrap;font-size:.88rem;color:var(--muted,#66727c);margin-top:12px}
.checklist-overview-progress{display:flex;gap:10px;align-items:center;margin-top:14px}
.checklist-overview-progress .checklist-progress-bar{flex:1;min-width:90px}
.checklist-overview-progress b{font-size:.88rem;white-space:nowrap}
.checklist-overview-actions{padding:12px 18px;border-top:1px solid var(--border,#d8e0e8);margin:0}
.checklist-overview-empty{grid-column:1/-1}
[data-theme="dark"] .checklist-overview-main:hover{background:rgba(255,255,255,.035)}
@media(max-width:620px){.checklist-overview-progress{align-items:flex-start;flex-direction:column}.checklist-overview-progress .checklist-progress-bar{width:100%}.checklist-overview-progress b{white-space:normal}}

/* V0.10.3 – Checklistenfelder bleiben trotz Dokumentationshinweis sauber ausgerichtet */
.checklist-field-label{grid-template-rows:minmax(28px,auto) 14px;align-content:start;min-height:44px}
.checklist-field-title{display:block;align-self:end}
.checklist-field-meta{display:block;min-height:12px;line-height:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.checklist-field-meta.is-empty{visibility:hidden}
.checklist-check-text{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}
.checklist-check-text>.form-control{min-width:0;width:100%}
.checklist-select-or-text{min-width:0}
.checklist-select-or-text>.form-control{width:100%;min-width:0}
@media(max-width:760px){.checklist-check-text{grid-template-columns:1fr}.checklist-field-label{min-height:42px}}

/* V0.10.3 – Abrechnungsfrist für Aufwand */
.effort-dashboard-alert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 0 18px;padding:13px 15px;border:1px solid #d6b45c;border-left:5px solid #c58a16;border-radius:12px;background:#fff7d8;color:var(--text);text-decoration:none}
.effort-dashboard-alert>span{font-size:24px;color:#9b6911}.effort-dashboard-alert b{display:block}.effort-dashboard-alert small{display:block;margin-top:3px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.effort-dashboard-alert>strong{font-size:12px;color:#8b5e0d;white-space:nowrap}.effort-dashboard-alert.urgent{border-color:#d98474;border-left-color:#c83f2e;background:#fff0ed}.effort-dashboard-alert.urgent>span,.effort-dashboard-alert.urgent>strong{color:#b63224}
.manager-stat-effort{border-color:#d6b45c;background:#fff7d8;color:#74520f}.manager-stat-effort.urgent{border-color:#d98474;background:#fff0ed;color:#a72f22}.manager-stat-effort small{display:block;font-size:10px;margin-top:2px}
.badge.effort-deadline{background:#fff2c5;color:#77510c;border:1px solid #dfbd61}.badge.effort-deadline.due-today,.badge.effort-deadline.overdue{background:#ffe4df;color:#a82e21;border-color:#df8c80}
html[data-theme="dark"] .effort-dashboard-alert{background:#302817;border-color:#66562e;border-left-color:#b88b35;color:var(--text)}html[data-theme="dark"] .effort-dashboard-alert.urgent{background:#351f1c;border-color:#754238;border-left-color:#c85a49}html[data-theme="dark"] .manager-stat-effort{background:#302817;border-color:#66562e;color:#f0ce78}html[data-theme="dark"] .manager-stat-effort.urgent{background:#351f1c;border-color:#754238;color:#ffb0a3}html[data-theme="dark"] .badge.effort-deadline{background:#3a3017;color:#f0ce78;border-color:#66562e}html[data-theme="dark"] .badge.effort-deadline.due-today,html[data-theme="dark"] .badge.effort-deadline.overdue{background:#3c211d;color:#ffb0a3;border-color:#754238}
@media(max-width:760px){.effort-dashboard-alert{grid-template-columns:auto minmax(0,1fr)}.effort-dashboard-alert>strong{grid-column:2;white-space:normal}.effort-dashboard-alert small{white-space:normal}}
.manager-stats#manager-stats-live{grid-template-columns:repeat(7,minmax(0,1fr))}
@media(max-width:1200px){.manager-stats#manager-stats-live{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.manager-stats#manager-stats-live{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.manager-stats#manager-stats-live{grid-template-columns:repeat(2,minmax(0,1fr))}}
.device-template-check-text{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}.device-template-check-text .form-control{min-width:0}
@media(max-width:760px){.device-template-check-text{grid-template-columns:1fr}}

/* V0.10.4 checklist fast entry */

/* V0.10.4.1 – zeilenweise Geräte-/Kabelerfassung */
.checklist-entry-shared-grid{display:grid;grid-template-columns:minmax(240px,420px) auto;gap:14px;align-items:end}
.checklist-entry-shared-grid>label:not(.check){display:grid;gap:5px;font-size:12px;font-weight:700}.checklist-entry-shared-grid>.check{align-self:center;margin-bottom:10px}
.checklist-inline-entry{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
[data-checklist-entry-list]{display:grid;gap:9px}.checklist-entry-row{display:grid;gap:9px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--bg)}
.checklist-entry-row.is-device{grid-template-columns:minmax(120px,.8fr) minmax(120px,.8fr) minmax(180px,1.2fr) minmax(180px,1.2fr) auto}
.checklist-entry-row.is-cable{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(180px,1fr) auto}
.checklist-entry-row>label{display:grid;gap:5px;min-width:0;font-size:12px;font-weight:700}.checklist-entry-row>label>span small{font-weight:500;color:var(--muted)}
.checklist-entry-row .form-control{width:100%;min-width:0}.checklist-entry-row-actions{display:flex;gap:6px;align-items:center;padding-bottom:1px}
.checklist-entry-row-actions .btn{min-width:38px;padding-inline:10px;font-size:18px;line-height:1}.checklist-entry-remove{font-size:20px!important}
.checklist-entry-row[data-row-number]:before{content:attr(data-row-number);display:none}
[data-checklist-cable-field][hidden],[data-checklist-normal-field][hidden]{display:none!important}
@media(max-width:1050px){.checklist-entry-row.is-device{grid-template-columns:repeat(2,minmax(0,1fr)) auto}.checklist-entry-row.is-device .checklist-entry-row-actions{grid-column:3;grid-row:1/3}}
@media(max-width:760px){.checklist-entry-shared-grid,.checklist-entry-row.is-device,.checklist-entry-row.is-cable{grid-template-columns:1fr}.checklist-entry-shared-grid>.check{margin-bottom:0}.checklist-entry-row.is-device .checklist-entry-row-actions{grid-column:auto;grid-row:auto}.checklist-entry-row-actions{justify-content:flex-end}.checklist-entry-row-actions .btn{min-width:44px;min-height:40px}}

.dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}}


/* V0.10.7 - kompaktere Stammdatenverwaltung */
.master-group-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.master-group-tabs .btn.active{background:var(--accent);border-color:var(--accent);color:#fff}
.master-section.master-group-hidden{display:none}
@media(max-width:760px){.master-group-tabs{display:grid;grid-template-columns:1fr 1fr}.master-group-tabs .btn{width:100%}}

/* V0.10.7.2 Hotfix: hidden muss die allgemeine .master-row display:flex-Regel übersteuern */
.master-row[hidden]{display:none!important}
/* V0.10.7.1 Verwaltung: Projekte kontextbezogen nach Bau anzeigen */
.master-site-link{appearance:none;border:0;background:none;padding:0;margin:0;color:var(--text);font:inherit;font-weight:700;text-align:left;cursor:pointer;text-decoration:none}
.master-site-link:hover,.master-site-link.active{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.master-site-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.master-project-filter-label{margin-left:6px;font-size:11px;vertical-align:middle}
.master-project-prompt,.master-project-empty-filter{padding:18px 4px;text-align:center}
.link-button{appearance:none;border:0;background:none;padding:0;color:var(--accent);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.master-project-section .panel-head .actions{display:flex;gap:7px;align-items:center}
.master-project-section [data-master-site-filter="all"].active{background:var(--accent);border-color:var(--accent);color:#fff}

/* V0.10.7.5 – Bestellpositionen bearbeiten/löschen */
.material-request-actions{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:.45rem;flex-wrap:nowrap;min-width:96px}.material-request-actions .material-delete-form{margin:0}.material-request-actions .icon-action{flex:0 0 auto}
.checklist-document-modal[hidden]{display:none}.checklist-document-modal{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:16px}.checklist-document-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.5)}.checklist-document-card{position:relative;width:min(520px,100%);background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.32)}.checklist-document-card .panel-head{margin-bottom:12px}.checklist-document-card h3{margin:0}.checklist-document-card small{color:var(--muted)}.checklist-document-options{display:grid;gap:8px;margin-top:14px}.checklist-document-options .btn{width:100%}

/* V1.0.1: Praegeschilder – Text und Textgroesse zeilenweise lesbar anzeigen. */
.material-detail-list dd{white-space:pre-line}
