:root{--bg:#f4f6f8;--surface:#fff;--surface2:#f8fafb;--ink:#17212b;--muted:#667482;--line:#dfe5ea;--red:#c51f2d;--red2:#9f1823;--nav:#111b24;--nav2:#182631;--green:#218a57;--amber:#d98a13;--blue:#1769aa;--radius:16px;--shadow:0 8px 30px rgba(16,31,44,.07)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 Inter,Segoe UI,Roboto,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}body{min-height:100vh}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--nav);color:#dce6ed;padding:22px 16px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 22px;border-bottom:1px solid #263745}.brand img{width:52px;height:52px;object-fit:contain}.brand strong{display:block;color:#fff;font-size:17px}.brand small{color:#91a3b1}.nav-title{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#718796;margin:24px 12px 8px}.nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;margin:3px 0;color:#c8d4dc;font-weight:600}.nav a:hover,.nav a.active{background:var(--nav2);color:#fff}.nav .ico{width:24px;text-align:center}.sidebar-user{margin-top:26px;padding:14px 12px;border-top:1px solid #263745;color:#91a3b1}.sidebar-user b{color:#fff;display:block}.workspace{min-width:0}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:20}.topbar h1{font-size:18px;margin:0}.top-actions{display:flex;gap:8px}.container{max-width:1500px;margin:0 auto;padding:30px}.back{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#445461;margin-bottom:18px}.page-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 22px}.page-head h1{font-size:30px;letter-spacing:-.03em;margin:0}.page-head p{margin:5px 0 0;color:var(--muted)}.hero-new{background:linear-gradient(120deg,#15232e,#223847);border-radius:22px;padding:28px 30px;color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);margin-bottom:22px}.hero-new h1{font-size:30px;margin:3px 0}.hero-new p{margin:0;color:#bdcbd4}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#91a7b6;font-weight:700}.overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0 26px}.overview{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;gap:14px;align-items:center;box-shadow:var(--shadow)}.overview .bubble{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:22px;font-weight:800;background:#eef3f6}.overview.alert .bubble{background:#fff0f1;color:var(--red)}.overview.good .bubble{background:#eaf7f0;color:var(--green)}.overview.warn .bubble{background:#fff5e4;color:var(--amber)}.overview b{font-size:22px;display:block}.overview small{color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:22px;margin-bottom:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.panel-head h2{margin:0;font-size:19px}.vehicle-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.vehicle-pill{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:13px;padding:13px;background:var(--surface2)}.dot{width:12px;height:12px;border-radius:50%;background:#aaa;box-shadow:0 0 0 4px #e9edf0}.dot.ok{background:var(--green);box-shadow:0 0 0 4px #dcefe5}.dot.warn{background:var(--amber);box-shadow:0 0 0 4px #fff0d3}.dot.bad{background:var(--red);box-shadow:0 0 0 4px #fde0e3}.vehicle-pill b{display:block}.vehicle-pill small{color:var(--muted)}.section-label{font-size:13px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:28px 0 12px}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tile{background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px;display:flex;gap:15px;align-items:center;box-shadow:var(--shadow);transition:.15s}.tile:hover{transform:translateY(-2px);border-color:#c6d1d9}.tile i{font-style:normal;width:44px;height:44px;border-radius:12px;background:#edf2f5;display:grid;place-items:center;font-size:20px}.tile h3{margin:0 0 3px;font-size:17px}.tile p{margin:0;color:var(--muted);font-size:13px}.tile strong{margin-left:auto;color:#93a1ab;font-size:24px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.stack{display:grid;gap:12px}.topgap{margin-top:18px}.btn{border:1px solid #cfd8df;background:#fff;color:#22313d;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}.btn:hover{background:#f4f7f9}.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.primary:hover{background:var(--red2)}.btn.danger{color:#a51e28;border-color:#efc9cd}.btn.small{padding:7px 10px;font-size:13px}.btn.wide{width:100%}.icon-btn{border:0;background:#eef2f5;border-radius:8px;width:34px;height:34px;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.span2{grid-column:span 2}label{font-weight:700;display:grid;gap:6px}input,select,textarea{width:100%;border:1px solid #cfd8df;border-radius:10px;background:#fff;padding:11px 12px;color:#17212b;min-height:44px}textarea{min-height:100px;resize:vertical}.inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.inline label{flex:1;min-width:180px}.alert{padding:13px 16px;border-radius:12px;background:#eaf7f0;color:#17643e;margin-bottom:18px}.alert.bad{background:#fff0f1;color:#9d1c27}.todo{display:grid;grid-template-columns:5px 1fr auto auto;gap:15px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}.todo .prio{align-self:stretch;border-radius:4px;background:#999}.todo.high .prio{background:var(--red)}.todo.medium .prio{background:var(--amber)}.todo.low .prio{background:var(--green)}.todo h3{margin:0;font-size:15px}.todo small{color:var(--muted)}.badge{font-size:12px;border-radius:99px;padding:5px 9px;font-weight:800}.badge.high{background:#fff0f1;color:#a51e28}.badge.medium{background:#fff5e4;color:#98620c}.badge.low{background:#eaf7f0;color:#17643e}.check{width:38px;height:38px;border-radius:10px;border:1px solid #cfd8df;background:#fff;cursor:pointer}.check-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,1.3fr);gap:18px;align-items:center;padding:12px 0;border-top:1px solid #edf0f2}.seg{display:flex;gap:7px;flex-wrap:wrap}.seg input{display:none}.seg span{display:block;padding:9px 11px;border:1px solid #d4dce2;border-radius:9px;background:#fff;cursor:pointer;font-weight:700}.seg input:checked+span{background:#eaf7f0;border-color:#7bc39d;color:#17643e}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.05em}.admin-layout{display:grid;grid-template-columns:230px 1fr;gap:22px}.admin-menu{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px;height:max-content;position:sticky;top:92px}.admin-menu a{display:block;padding:10px 12px;border-radius:9px;font-weight:700;color:#53626e}.admin-menu a:hover,.admin-menu a.active{background:#eef3f6;color:#17212b}.admin-menu .sep{border-top:1px solid var(--line);margin:8px 0}.manage-list{display:grid;gap:8px}.manage-row{display:grid;grid-template-columns:minmax(220px,1fr) 150px auto auto;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:11px}.admin-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.admin-card b{font-size:26px;display:block}.admin-card span{color:var(--muted)}.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tool-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow)}.tool-card .tool-icon{width:52px;height:52px;border-radius:15px;background:#eef3f6;display:grid;place-items:center;font-size:24px;margin-bottom:16px}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-art{background:linear-gradient(140deg,#111c25,#243a49);padding:60px;color:#fff;display:flex;flex-direction:column;justify-content:space-between}.login-art img{width:170px}.login-art h1{font-size:46px;line-height:1.05;max-width:520px}.login-panel{max-width:470px;margin:auto;padding:40px;width:100%}.login-panel .login-logo{width:110px;background:#17232c;padding:12px;border-radius:14px}.login-panel h1{font-size:32px}.login-panel p{color:var(--muted)}.login-panel form{display:grid;gap:15px}.login-links{display:flex;justify-content:space-between;margin-top:18px}.signature{width:100%;height:180px;border:1px dashed #aebbc5;border-radius:12px;background:#fff;touch-action:none}.small-signature{height:120px}.crew-list{display:grid;gap:7px}.crew-list>div{display:flex;justify-content:space-between;align-items:center;background:#f7f9fa;padding:10px 12px;border-radius:10px}.vehicle-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.capacity{display:flex;justify-content:space-between}.big-number{font-size:38px;font-weight:800}.profile-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:14px}.cash-layout{display:grid;grid-template-columns:1fr 390px;gap:18px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.keypad button{height:58px;font-size:20px}.money-display{font-size:32px;font-weight:800;text-align:right;background:#f5f7f8;border-radius:12px;padding:14px}.empty{color:var(--muted);text-align:center;padding:35px}.live{color:var(--red);font-weight:800;font-size:12px}.mobile-head{display:none}.fab-back{display:none}@media(max-width:1000px){.app-shell{grid-template-columns:82px 1fr}.sidebar{padding:18px 10px}.brand span,.nav a span:not(.ico),.nav-title,.sidebar-user{display:none}.brand{justify-content:center}.brand img{width:48px}.nav a{justify-content:center}.overview-grid{grid-template-columns:repeat(2,1fr)}.tiles,.tools-grid{grid-template-columns:repeat(2,1fr)}.vehicle-strip{grid-template-columns:repeat(2,1fr)}.admin-layout{grid-template-columns:1fr}.admin-menu{position:static;display:flex;overflow:auto;white-space:nowrap}.admin-menu a{flex:0 0 auto}.admin-menu .sep{display:none}}@media(max-width:680px){.app-shell{display:block}.sidebar{position:fixed;bottom:0;top:auto;height:68px;width:100%;z-index:50;padding:6px 8px;overflow:hidden}.brand,.nav-title,.sidebar-user,.nav a:nth-child(n+6){display:none}.nav{display:grid;grid-template-columns:repeat(5,1fr)}.nav a{margin:0;padding:7px 2px;display:grid;place-items:center;font-size:10px;gap:1px}.nav a span:not(.ico){display:block;font-size:9px}.topbar{height:60px;padding:0 15px}.container{padding:18px 14px 90px}.hero-new{padding:22px}.hero-new h1{font-size:24px}.overview-grid{grid-template-columns:repeat(2,1fr);gap:8px}.overview{padding:12px}.overview .bubble{width:38px;height:38px}.vehicle-strip,.tiles,.tools-grid,.vehicle-grid,.profile-grid,.cash-layout{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.check-row{grid-template-columns:1fr}.manage-row{grid-template-columns:1fr}.page-head{align-items:start}.topbar h1{font-size:15px}.admin-cards{grid-template-columns:1fr 1fr}.login-wrap{display:block}.login-art{display:none}.login-panel{padding:30px 20px}.fab-back{display:block;position:fixed;right:14px;bottom:82px;z-index:45;background:#17212b;color:#fff;border-radius:99px;padding:12px 16px;box-shadow:var(--shadow)}}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.product{min-height:92px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px;cursor:pointer;text-align:left}.product:hover{border-color:#aebbc5;background:#f8fafb}.product b,.product span{display:block}.product span{color:var(--red);font-weight:800;margin-top:5px}.cash-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow);height:max-content;position:sticky;top:90px}.cart-line{display:grid;grid-template-columns:1fr auto 34px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.cart-line button{border:0;border-radius:8px;height:32px}.cash-total,.change{display:flex;justify-content:space-between;align-items:center;padding:16px 0;font-size:18px}.cash-total b,.change b{font-size:26px}.received{font-size:30px;font-weight:800;text-align:right;background:#f4f6f8;border-radius:12px;padding:12px;margin:8px 0 10px}.keypad button{border:1px solid #d2dbe1;border-radius:12px;background:#fff;font-weight:800;cursor:pointer}.keypad button:active{background:#e9eef2}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.accent-card{border-top:4px solid var(--red)}@media(max-width:680px){.product-grid{grid-template-columns:repeat(2,1fr)}.cash-panel{position:static}}

/* Dashboard refinement v3.1 */
.overview-grid{align-items:stretch}.overview{min-height:84px;height:100%;box-sizing:border-box}.overview.hours-overview{align-items:center}.hours-values{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.hours-values span{display:grid;gap:2px}.hours-values b{font-size:19px;white-space:nowrap}.hours-values small{font-size:12px}.bubble svg,.tile i svg,.nav .ico svg,.sort-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav .ico{display:grid;place-items:center}.nav .ico svg{width:20px;height:20px}.tile i svg{width:22px;height:22px}.status-legend{display:flex;gap:20px;flex-wrap:wrap;padding:0 0 16px;color:var(--muted);font-size:12px;font-weight:700}.status-legend span{display:flex;align-items:center;gap:8px}.status-legend .dot{display:inline-block;width:9px;height:9px}.dashboard-sort{display:grid;gap:8px}.sort-row{display:grid;grid-template-columns:42px minmax(180px,1fr) auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface2)}.sort-icon{width:38px;height:38px;border-radius:10px;background:#fff;display:grid;place-items:center}.sort-row small{display:block;color:var(--muted);margin-top:2px}.sort-actions{display:flex;gap:6px;align-items:center}.visibility{display:flex;grid-template-columns:auto auto;gap:6px;align-items:center;font-size:12px;margin-left:6px}.visibility input{width:auto;min-height:0}.vehicle-pill small{line-height:1.35}
@media(max-width:1150px){.hours-values{gap:8px}.hours-values b{font-size:17px}}
@media(max-width:680px){.overview{min-height:78px}.hours-values{display:grid;gap:5px}.hours-overview .bubble{display:none}.sort-row{grid-template-columns:38px 1fr}.sort-actions{grid-column:1/-1;justify-content:flex-end}}
.quick.modern{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.quick.modern button{border:1px solid #cbd5df;background:#fff;border-radius:10px;padding:12px 16px;font-weight:800;cursor:pointer}.quick.modern button:hover{background:#eef3f7}.collective-launch{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:0 0 2px}.collective-launch span{font-weight:700}.collective-summary{padding:16px 18px;border-radius:12px;background:#eef7f3;border:1px solid #b9dfce}.modal-card{width:min(720px,calc(100% - 28px));border:0;border-radius:18px;padding:0;box-shadow:0 24px 80px #0005}.modal-card::backdrop{background:#101820aa;backdrop-filter:blur(3px)}.modal-card>form,.modal-card>div{padding:0}.modal-head{display:flex;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid #e0e6eb}.modal-head h2{margin:0 0 4px}.modal-head p{margin:0;color:#617080}.modal-x{border:0;background:#eef2f5;width:38px;height:38px;border-radius:10px;font-size:24px;cursor:pointer}.modal-card .form-grid{padding:22px 24px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:18px 24px;border-top:1px solid #e0e6eb}.collective-total{background:#f3f6f8;border-radius:12px;padding:16px;display:flex;justify-content:space-between;font-size:18px}.modern-check{gap:20px}.status-buttons{display:grid;grid-template-columns:repeat(4,50px);gap:7px}.status-buttons input{position:absolute;opacity:0;pointer-events:none}.status-buttons span{display:grid;place-items:center;width:48px;height:44px;border:1px solid #d5dde4;border-radius:11px;background:#fff;font-size:25px;font-weight:900;cursor:pointer}.s-ok input:checked+span{background:#e6f6ee;border-color:#198754;color:#198754}.s-warn input:checked+span{background:#fff5d8;border-color:#d99a00;color:#9a6a00}.s-bad input:checked+span{background:#fde9ea;border-color:#d3222f;color:#c51e2b}.s-na input:checked+span{background:#edf1f4;border-color:#71808d;color:#52606b}.problem-photo+*{font-size:12px}.review-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:20px 24px}.review-stats div{padding:12px;border-radius:10px;background:#f3f6f8;text-align:center}.review-stats b{display:block;font-size:22px}.review-problem{margin:0 24px 10px;padding:14px;border:1px solid #e1e6ea;border-radius:12px}.review-problem.warn{border-left:5px solid #d99a00}.review-problem.bad{border-left:5px solid #d3222f}.group-editor,.item-editor{display:grid;grid-template-columns:minmax(220px,1fr) 100px auto;gap:8px;align-items:center}.item-editor{grid-template-columns:minmax(220px,1fr) 90px auto auto}.checklist-admin .manage-row{padding:8px 0}@media(max-width:700px){.status-buttons{grid-template-columns:repeat(4,44px)}.status-buttons span{width:42px;height:42px}.modern-check{align-items:flex-start}.group-editor,.item-editor{grid-template-columns:1fr 80px}.group-editor button,.item-editor button{width:100%}.review-stats{grid-template-columns:1fr 1fr}}

/* v3.3 interaction refinements */
.todo{grid-template-columns:8px minmax(0,1fr) auto auto;gap:14px;align-items:center}
.todo-action{min-width:132px;min-height:48px;border:1px solid #b9d9c8;background:#edf8f2;color:#176c45;border-radius:12px;padding:10px 14px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.todo-action:hover{background:#e3f4eb}.todo-action.undo{border-color:#cdd7df;background:#f4f6f8;color:#44525e}.todo-action-icon{font-size:19px;line-height:1}
.collective-launch{border:1px solid var(--line);background:var(--surface2);border-radius:14px;padding:14px 16px;align-items:center}.collective-launch>div{display:grid;gap:3px}.collective-launch strong{font-size:14px}.collective-launch small{color:var(--muted);font-weight:400}.collective-btn{white-space:nowrap}
.vehicle-check-layout{display:grid;gap:18px}.vehicle-select-card,.vehicle-meta-card{margin:0}.vehicle-meta-card{margin-top:0}.check-group{margin:0}.stack{gap:18px}
.modal-card{max-height:calc(100dvh - 32px);overflow:hidden}.modal-card .form-grid{overflow:auto;max-height:calc(100dvh - 210px)}.modal-card.review-modal{overflow:auto}.modal-head{position:sticky;top:0;background:#fff;z-index:2}.modal-actions{position:sticky;bottom:0;background:#fff;z-index:2}.photo-actions{display:flex;gap:8px;flex-wrap:wrap}.photo-actions .btn{flex:1 1 160px}.modal-card small{display:block;margin-top:7px;color:var(--muted)}
.todo-admin-list{display:grid;gap:14px}.todo-admin-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--surface2)}.row-actions,.export-actions,.table-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.table-actions form{margin:0}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto auto;gap:10px;align-items:end}.hours-admin-total{margin-top:14px;padding:14px 16px;background:#f2f6f8;border-radius:12px;text-align:right;font-size:16px}
.vehicle-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.vehicle-admin-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px}.vehicle-admin-card:hover,.vehicle-admin-card.active{border-color:#93a9b9;background:#f3f7f9}.vehicle-admin-card b,.vehicle-admin-card small{display:block}.vehicle-admin-card small{margin-top:4px;color:var(--muted)}.create-box summary{cursor:pointer;font-weight:800;font-size:16px}.danger-zone{margin-top:18px;padding-top:18px;border-top:1px solid #f0d4d7}.sortable-groups{display:grid;gap:16px}.admin-check-group{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.admin-check-group.dragging,.admin-check-item.dragging{opacity:.45}.admin-check-group-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px 16px;background:#f3f6f8;border-bottom:1px solid var(--line)}.group-title-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.group-title-form input{font-weight:800}.drag-handle{cursor:grab;user-select:none;font-size:22px;color:#748391;padding:4px 6px}.sortable-items{display:grid;gap:0;padding:6px 14px}.admin-check-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f3}.admin-check-item:last-child{border-bottom:0}.item-title-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.admin-check-group-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;background:#fafcfd;border-top:1px solid var(--line)}.add-check-item{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:8px;flex:1}.add-group-form{margin-top:16px;border:1px dashed #b9c7d1;border-radius:14px;padding:14px;display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:8px;background:#fbfcfd}
@media(max-width:1000px){.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.todo{grid-template-columns:8px minmax(0,1fr)}.todo .badge{grid-column:2}.todo form{grid-column:2}.todo-action{width:100%;min-height:52px}.collective-launch{display:grid;gap:12px}.collective-btn{width:100%}.modal-card{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.modal-head{padding:16px}.modal-card .form-grid{padding:16px;max-height:calc(100dvh - 185px)}.modal-actions{padding:14px 16px}.filter-grid,.vehicle-admin-grid{grid-template-columns:1fr}.admin-check-group-head{grid-template-columns:auto 1fr}.admin-check-group-head>form:last-child{grid-column:2}.group-title-form,.item-title-form{grid-template-columns:1fr}.admin-check-item{grid-template-columns:auto 1fr}.admin-check-item>form:last-child{grid-column:2}.admin-check-group-foot{display:grid}.add-check-item,.add-group-form{grid-template-columns:1fr}.export-actions{width:100%}.export-actions .btn{flex:1}.table-actions{min-width:150px}}

/* v3.4 polish: dashboard, dialogs, mobile navigation, text checks */
.brand small{max-width:150px;line-height:1.15;display:block}
.hours-values{display:grid;gap:2px;align-items:center}
.hours-values .hours-current b{font-size:24px;line-height:1.05}
.hours-values .hours-current small{font-size:12px;font-weight:700;color:var(--muted)}
.hours-values .hours-total{display:flex;gap:6px;align-items:baseline}
.hours-values .hours-total b{font-size:13px;font-weight:800;color:#51606c}
.hours-values .hours-total small{font-size:11px;color:var(--muted)}

/* Dialog content must never sit on the edge; override the generic direct-div reset. */
dialog.modal-card{width:min(720px,calc(100vw - 32px));max-width:calc(100vw - 32px);margin:auto;overflow-x:hidden}
.modal-card>.modal-head{padding:20px 24px}
.modal-card>.form-grid{padding:22px 24px}
.modal-card>.modal-actions{padding:16px 24px}
.modal-card>.camera-body{padding:18px 24px}
.modal-card .form-grid>*{min-width:0}
.photo-actions .btn{min-width:0;white-space:normal}
.camera-body video{display:block;width:100%;max-height:62vh;object-fit:cover;background:#111;border-radius:14px;aspect-ratio:4/3}
.camera-hint{margin:10px 0 0;color:var(--muted)}
.check-text-input{max-width:420px;background:#fbfcfd}
.text-check{grid-template-columns:minmax(220px,1fr) minmax(220px,420px)}

/* Vehicle administration remains airy with the extra item type control. */
.item-title-form{grid-template-columns:minmax(220px,1fr) 150px auto}
.add-check-item{grid-template-columns:minmax(220px,1fr) 150px auto}

@media(max-width:680px){
  .sidebar{height:62px;padding:4px 6px;padding-bottom:max(4px,env(safe-area-inset-bottom))}
  .nav a{padding:4px 1px;gap:0;min-width:0}
  .nav .ico svg{width:18px;height:18px}
  .nav a span:not(.ico){font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.1}
  .nav a:nth-child(4) span:not(.ico){font-size:0}
  .nav a:nth-child(4) span:not(.ico)::after{content:'Check';font-size:8px}
  .container{padding-bottom:82px}
  .fab-back{bottom:72px}
  dialog.modal-card{width:calc(100vw - 20px);max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
  .modal-card>.modal-head{padding:15px 16px}
  .modal-card>.form-grid{padding:16px;grid-template-columns:minmax(0,1fr);max-height:calc(100dvh - 190px)}
  .modal-card>.modal-actions{padding:12px 16px;display:grid;grid-template-columns:1fr 1fr}
  .modal-card>.camera-body{padding:14px 16px}
  .modal-head h2{font-size:20px;line-height:1.2}
  .modal-head p{font-size:13px;overflow-wrap:anywhere}
  .photo-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .photo-actions .btn{width:100%}
  .text-check{grid-template-columns:1fr;gap:8px}
  .check-text-input{max-width:none}
  .item-title-form,.add-check-item{grid-template-columns:1fr}
  .hours-values .hours-current b{font-size:21px}
}

/* v3.4.1 vehicle-check layout fix */
.vehicle-check-layout,
#vehicleCheckForm,
.check-group,
.check-group .check-row{
  min-width:0;
  max-width:100%;
}
.check-group{overflow:hidden}
.check-group .modern-check{
  display:grid;
  grid-template-columns:minmax(0,1fr) !important;
  gap:10px;
  align-items:start;
}
.check-group .modern-check>span{
  display:block;
  min-width:0;
  overflow-wrap:anywhere;
  font-weight:700;
}
.check-group .status-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-start;
  width:max-content;
  max-width:100%;
}
.check-group .text-check{
  grid-template-columns:minmax(0,1fr) !important;
}
.check-group .check-text-input{
  width:min(100%,420px);
  max-width:420px;
  justify-self:start;
  margin:0;
}
@media(max-width:700px){
  .check-group .status-buttons{width:100%}
  .check-group .status-buttons label{flex:0 0 auto}
  .check-group .check-text-input{width:100%;max-width:none}
}

/* v3.4.2 definitive vehicle-check overflow fix */
body:has(#vehicleCheckForm),
body:has(.vehicle-check-layout){
  overflow-x:hidden;
}
body:has(#vehicleCheckForm) .workspace,
body:has(#vehicleCheckForm) .container,
.vehicle-check-layout,
#vehicleCheckForm,
#vehicleCheckForm .card,
#vehicleCheckForm .check-group,
#vehicleCheckForm .check-row,
#vehicleCheckForm .modern-check,
#vehicleCheckForm .status-buttons,
#vehicleCheckForm .text-check{
  box-sizing:border-box;
  min-width:0 !important;
  max-width:100% !important;
}
.vehicle-check-layout,
#vehicleCheckForm{
  width:100%;
  overflow-x:clip;
}
#vehicleCheckForm .check-group{
  width:100%;
  overflow-x:hidden;
}
#vehicleCheckForm .check-row,
#vehicleCheckForm .modern-check,
#vehicleCheckForm .text-check{
  display:grid;
  grid-template-columns:minmax(0,1fr) !important;
  width:100%;
  gap:10px;
  overflow:hidden;
}
#vehicleCheckForm .status-buttons{
  display:flex !important;
  flex-wrap:wrap;
  justify-content:flex-start;
  width:100% !important;
  max-width:100% !important;
  gap:8px;
  overflow:hidden;
}
#vehicleCheckForm .status-buttons label{
  flex:0 0 auto;
  min-width:0;
}
#vehicleCheckForm .check-text-input{
  display:block;
  width:100% !important;
  max-width:420px !important;
  min-width:0 !important;
  justify-self:start;
}
@media(max-width:700px){
  body:has(#vehicleCheckForm) .container{overflow-x:hidden}
  #vehicleCheckForm .check-text-input{max-width:100% !important}
  #vehicleCheckForm .status-buttons{width:100% !important}
}

/* v3.4.3 mobile viewport + bottom navigation hardening */
@media (max-width: 760px){
  html,body{
    width:100%;
    max-width:100%;
    overflow-x:hidden !important;
  }
  .app-shell,.workspace,.container{
    width:100%;
    max-width:100%;
    min-width:0 !important;
    overflow-x:hidden !important;
  }

  /* The mobile bar contains exactly the five primary actions. The separate
     administration nav must never create a second/cut-off row. */
  .sidebar{
    width:100% !important;
    max-width:100% !important;
    height:64px !important;
    overflow:hidden !important;
    padding:5px 6px max(5px,env(safe-area-inset-bottom)) !important;
  }
  .sidebar > .nav:not(:first-of-type){display:none !important}
  .sidebar > .nav:first-of-type{
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    width:100%;
    height:100%;
    gap:2px;
    overflow:hidden;
  }
  .sidebar > .nav:first-of-type > a{
    min-width:0 !important;
    width:100% !important;
    height:100%;
    padding:3px 1px !important;
    margin:0 !important;
    display:flex !important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:1px !important;
    overflow:hidden;
  }
  .sidebar > .nav:first-of-type > a:nth-child(n+6){display:none !important}
  .sidebar .nav .ico{width:auto !important;height:20px;display:grid;place-items:center}
  .sidebar .nav .ico svg{width:17px !important;height:17px !important}
  .sidebar .nav a span:not(.ico){
    display:block !important;
    width:100%;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    text-align:center;
    font-size:8px !important;
    line-height:1 !important;
  }
  .sidebar .nav a:nth-child(4) span:not(.ico){font-size:0 !important}
  .sidebar .nav a:nth-child(4) span:not(.ico)::after{content:'Check';font-size:8px}
  .container{padding-bottom:84px !important}
  .fab-back{bottom:74px !important}

  /* Nothing inside a vehicle check may establish a wider formatting context. */
  .vehicle-check-layout,
  .vehicle-check-layout > *,
  #vehicleCheckForm,
  #vehicleCheckForm > *,
  #vehicleCheckForm .card,
  #vehicleCheckForm .form-grid,
  #vehicleCheckForm .check-group,
  #vehicleCheckForm .check-row,
  #vehicleCheckForm .modern-check,
  #vehicleCheckForm .text-check,
  #vehicleCheckForm .status-buttons{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
  #vehicleCheckForm .check-group{overflow:hidden !important}
  #vehicleCheckForm .check-row,
  #vehicleCheckForm .modern-check,
  #vehicleCheckForm .text-check{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:8px !important;
  }
  #vehicleCheckForm .status-buttons{
    display:flex !important;
    flex-wrap:wrap !important;
    justify-content:flex-start !important;
    gap:8px !important;
    overflow:visible !important;
  }
  #vehicleCheckForm .check-text-input{width:100% !important;max-width:100% !important;min-width:0 !important}

  /* Native dialogs are anchored to the visual viewport, not to an oversized
     document/container. This keeps them centered even on narrow phones. */
  dialog.modal-card,
  #problemModal,
  #cameraModal,
  #reviewModal{
    position:fixed !important;
    inset:0 !important;
    margin:auto !important;
    width:calc(100dvw - 24px) !important;
    max-width:calc(100dvw - 24px) !important;
    min-width:0 !important;
    max-height:calc(100dvh - 24px) !important;
    box-sizing:border-box !important;
    overflow-x:hidden !important;
    transform:none !important;
  }
  dialog.modal-card .modal-head,
  dialog.modal-card .form-grid,
  dialog.modal-card .modal-actions,
  dialog.modal-card .camera-body{
    width:100%;
    max-width:100%;
    min-width:0 !important;
    box-sizing:border-box;
  }
  dialog.modal-card .form-grid{grid-template-columns:minmax(0,1fr) !important}
  dialog.modal-card .span2{grid-column:auto !important}
  dialog.modal-card input,
  dialog.modal-card select,
  dialog.modal-card textarea,
  dialog.modal-card .photo-actions,
  dialog.modal-card .photo-actions .btn{min-width:0 !important;max-width:100% !important}
}

/* v3.4.4: real mobile menu + hard viewport containment */
.mobile-more-toggle,.mobile-menu-backdrop,.mobile-menu-drawer{display:none}
@media (max-width:760px){
  html,body{overflow-x:clip !important;max-width:100vw !important}
  body:has(#vehicleCheckForm),body:has(#vehicleCheckForm) .app-shell,body:has(#vehicleCheckForm) .workspace,body:has(#vehicleCheckForm) .container{overflow-x:clip !important;max-width:100vw !important;width:100% !important}
  body:has(#vehicleCheckForm) .container>*{max-width:100% !important;min-width:0 !important}
  #vehicleCheckForm,#vehicleCheckForm *{min-width:0;box-sizing:border-box}
  #vehicleCheckForm .card,#vehicleCheckForm .panel,#vehicleCheckForm .check-group,#vehicleCheckForm .form-grid,#vehicleCheckForm .check-row,#vehicleCheckForm .modern-check,#vehicleCheckForm .text-check{max-width:100% !important;width:100% !important;overflow-wrap:anywhere}
  #vehicleCheckForm .status-buttons{max-width:100% !important;width:100% !important;overflow:hidden !important}

  /* The floating overview pill was the last element that could sit outside the
     usable mobile layout. The normal page back link remains available. */
  .fab-back{display:none !important}

  /* Bottom bar: four direct destinations + one menu button. */
  .sidebar{
    display:grid !important;
    grid-template-columns:minmax(0,4fr) minmax(58px,1fr) !important;
    align-items:stretch !important;
    gap:2px !important;
  }
  .sidebar > .nav:first-of-type{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    width:100% !important;
    min-width:0 !important;
  }
  .sidebar > .nav:first-of-type > a:nth-child(n+5){display:none !important}
  .mobile-more-toggle{
    display:flex !important;
    min-width:0;
    width:100%;
    border:0;
    border-radius:10px;
    margin:0;
    padding:3px 1px;
    background:transparent;
    color:#c8d4dc;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:1px;
    font-weight:600;
    cursor:pointer;
  }
  .mobile-more-toggle.active,.mobile-more-toggle:active{background:var(--nav2);color:#fff}
  .mobile-more-toggle span:last-child{font-size:8px;line-height:1;white-space:nowrap}
  .mobile-more-icon{height:20px;display:grid;place-items:center}
  .mobile-more-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

  .mobile-menu-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:89;
    background:rgba(8,18,26,.52);
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease;
  }
  .mobile-menu-backdrop.open{opacity:1;pointer-events:auto}
  .mobile-menu-drawer{
    display:flex;
    position:fixed;
    z-index:90;
    top:0;
    right:0;
    bottom:0;
    width:min(360px,88vw);
    max-width:88vw;
    background:#fff;
    box-shadow:-18px 0 48px rgba(13,28,39,.24);
    transform:translateX(105%);
    transition:transform .2s ease;
    flex-direction:column;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding-bottom:max(18px,env(safe-area-inset-bottom));
  }
  .mobile-menu-drawer.open{transform:translateX(0)}
  .mobile-menu-head{display:flex;align-items:center;justify-content:space-between;padding:20px 18px 16px;border-bottom:1px solid var(--line)}
  .mobile-menu-head strong{display:block;font-size:22px}
  .mobile-menu-head small{display:block;color:var(--muted);margin-top:2px}
  .mobile-menu-close{width:40px;height:40px;border:0;border-radius:11px;background:#eef2f5;font-size:28px;line-height:1;cursor:pointer}
  .mobile-menu-links{display:grid;padding:10px}
  .mobile-menu-links a{display:flex;align-items:center;gap:13px;padding:13px 12px;border-radius:11px;font-weight:750;color:#253744}
  .mobile-menu-links a:active{background:#eef3f6}
  .mobile-menu-links .ico{width:25px;height:25px;display:grid;place-items:center;color:#425865}
  .mobile-menu-links .ico svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mobile-menu-logout{margin-top:8px;border-top:1px solid var(--line);border-radius:0 !important;color:var(--red) !important}
  body.mobile-menu-open{overflow:hidden !important}

  /* Dialogs are centered on the visual viewport and cannot inherit document width. */
  dialog.modal-card,#problemModal,#cameraModal,#reviewModal{
    inset:auto !important;
    top:50% !important;
    left:50% !important;
    right:auto !important;
    bottom:auto !important;
    transform:translate(-50%,-50%) !important;
    margin:0 !important;
    width:min(720px,calc(100vw - 24px)) !important;
    max-width:calc(100vw - 24px) !important;
  }
}

/* v3.4.5 mobile navigation is independent from desktop sidebar */
.mobile-bottom-nav{display:none}
@media (max-width:760px){
  html,body{width:100%;max-width:100%;overflow-x:hidden !important}
  .sidebar{display:none !important}
  .app-shell{display:block !important;width:100% !important;max-width:100% !important;overflow-x:hidden !important}
  .workspace{width:100% !important;max-width:100% !important;min-width:0 !important;overflow-x:hidden !important}
  .container{width:100% !important;max-width:100% !important;min-width:0 !important;overflow-x:hidden !important;padding-bottom:88px !important}

  .mobile-bottom-nav{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:120;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    height:calc(64px + env(safe-area-inset-bottom));
    padding:5px 6px max(5px,env(safe-area-inset-bottom));
    background:var(--nav);
    border-top:1px solid #263745;
    box-shadow:0 -8px 24px rgba(9,20,29,.18);
    overflow:hidden;
  }
  .mobile-bottom-nav>a,.mobile-bottom-nav>button{
    min-width:0;width:100%;height:100%;margin:0;padding:3px 1px;border:0;border-radius:10px;
    background:transparent;color:#c8d4dc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    font-weight:650;overflow:hidden;
  }
  .mobile-bottom-nav>a.active,.mobile-bottom-nav>button.active{background:var(--nav2);color:#fff}
  .mobile-bottom-nav .ico,.mobile-bottom-nav .mobile-more-icon{height:20px;display:grid;place-items:center}
  .mobile-bottom-nav .ico svg,.mobile-bottom-nav .mobile-more-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mobile-bottom-nav>a>span:last-child,.mobile-bottom-nav>button>span:last-child{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:9px;line-height:1}

  /* Vehicle check: force one viewport-wide formatting context only. */
  body.vehicle-check-view{width:100% !important;max-width:100% !important;overflow-x:hidden !important;position:relative}
  body.vehicle-check-view .app-shell,
  body.vehicle-check-view .workspace,
  body.vehicle-check-view .container,
  body.vehicle-check-view .vehicle-check-layout,
  body.vehicle-check-view #vehicleCheckForm,
  body.vehicle-check-view #vehicleCheckForm>.card,
  body.vehicle-check-view #vehicleCheckForm>.check-group{
    width:100% !important;max-width:100% !important;min-width:0 !important;overflow-x:hidden !important;
  }
  body.vehicle-check-view .vehicle-check-layout,
  body.vehicle-check-view #vehicleCheckForm{display:grid !important;grid-template-columns:minmax(0,1fr) !important}
  body.vehicle-check-view #vehicleCheckForm *{box-sizing:border-box;min-width:0}
  body.vehicle-check-view #vehicleCheckForm .form-grid{grid-template-columns:minmax(0,1fr) !important;width:100% !important}
  body.vehicle-check-view #vehicleCheckForm input,
  body.vehicle-check-view #vehicleCheckForm select,
  body.vehicle-check-view #vehicleCheckForm textarea{max-width:100% !important}

  /* Dialogs stay centered relative to the visible phone screen. */
  body.vehicle-check-view dialog.modal-card,
  body.vehicle-check-view #problemModal,
  body.vehicle-check-view #cameraModal,
  body.vehicle-check-view #reviewModal{
    position:fixed !important;top:50% !important;left:50% !important;right:auto !important;bottom:auto !important;
    transform:translate(-50%,-50%) !important;margin:0 !important;
    width:calc(100vw - 24px) !important;max-width:calc(100vw - 24px) !important;
  }
}

/* Vehicle check status controls with captions */
#vehicleCheckForm .status-buttons{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  width:min(100%,460px) !important;
  max-width:100% !important;
  gap:8px !important;
  overflow:visible !important;
}
#vehicleCheckForm .status-buttons label{
  min-width:0 !important;
  display:grid !important;
  grid-template-rows:auto auto;
  justify-items:center;
  align-content:start;
  gap:5px;
}
#vehicleCheckForm .status-buttons label>span{
  width:46px;height:44px;max-width:100%;
}
#vehicleCheckForm .status-buttons label>small{
  display:block;
  margin:0;
  color:#687783;
  font-size:10px;
  line-height:1.15;
  font-weight:700;
  text-align:center;
  overflow-wrap:anywhere;
}
@media(max-width:420px){
  #vehicleCheckForm .status-buttons{gap:5px !important}
  #vehicleCheckForm .status-buttons label>span{width:42px;height:42px}
  #vehicleCheckForm .status-buttons label>small{font-size:9px}
}

/* v3.6 Sammeleintrag */
.collective-modal-quick{align-self:end;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:22px}
.collective-modal-quick button{min-height:46px;border-radius:12px;border:1px solid #cfd9e2;background:#f7f9fb;font:inherit;font-weight:700;cursor:pointer}
.collective-modal-quick button:hover{background:#edf2f6}

/* v3.6 Tickets */
.ticket-photo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px;border:1px solid #d7e0e8;border-radius:14px;background:#f7f9fb}
.ticket-photo-actions>div{margin-right:auto;display:flex;flex-direction:column;gap:3px}.ticket-photo-actions small{color:#647384}
.camera-file{position:relative;overflow:hidden}.camera-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ticket-open-grid,.ticket-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ticket-view,.ticket-admin-card{min-width:0}.ticket-topline,.ticket-admin-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.ticket-number{color:#647384}.ticket-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.ticket-thumbs img{width:92px;height:68px;object-fit:cover;border-radius:10px;border:1px solid #d5dee7}.duplicate-matches{display:grid;gap:10px;padding:2px 0 14px}.duplicate-match{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px;border:1px solid #d7e0e8;border-radius:12px;cursor:pointer}.duplicate-match:has(input:checked){border-color:#c91f2c;background:#fff5f6}.duplicate-match small{display:block;color:#647384;margin:3px 0 6px}.duplicate-match p{margin:0}.duplicate-ticket-modal{width:min(760px,calc(100vw - 28px))}
@media(max-width:800px){.ticket-open-grid,.ticket-admin-grid{grid-template-columns:1fr}.ticket-photo-actions{align-items:stretch}.ticket-photo-actions>div{width:100%}.ticket-photo-actions .btn{flex:1}.collective-modal-quick{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}}
/* v3.7 Dokumentenverwaltung */
.doc-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.doc-tabs a{display:inline-flex;align-items:center;min-height:42px;padding:9px 15px;border-radius:12px;background:#fff;border:1px solid var(--line,#d8e0e7);font-weight:700;color:#3d4a56}.doc-tabs a.active{background:#172b3a;color:#fff;border-color:#172b3a}.doc-filter-panel{padding:18px 20px}.doc-filter{display:grid;grid-template-columns:minmax(240px,2fr) minmax(180px,1fr) auto auto;gap:12px;align-items:end}.doc-list{gap:14px}.doc-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:22px 24px}.doc-card-main h3{margin:8px 0 6px}.doc-card-main p{margin:0 0 10px;color:#5e6d79}.doc-meta{display:flex;gap:8px;flex-wrap:wrap}.doc-meta span{font-size:12px;font-weight:700;background:#eef3f6;padding:5px 8px;border-radius:999px}.doc-meta .doc-ack-tag{background:#fff2dc;color:#9a6200}.doc-actions{justify-content:flex-end;flex-wrap:wrap}.document-admin-intro{overflow:visible}.doc-workflow-note{padding:15px 16px;background:#eef5fa;border:1px solid #d3e3ef;border-radius:12px;margin-bottom:20px;line-height:1.5}.doc-workflow-note code,.template-card code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#fff;padding:2px 5px;border-radius:5px}.document-upload-form{display:grid;gap:20px}.document-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.document-form-grid label,.category-new label,.template-create label{display:grid;gap:7px;font-weight:700}.field-label{display:block;margin-bottom:7px}.toggle-card{display:flex;align-items:center;gap:10px;min-height:48px;border:1px solid #ced9e1;border-radius:12px;padding:10px 13px;background:#fff;font-weight:600}.toggle-card input{width:20px;height:20px}.document-file-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.upload-box{display:grid;gap:8px;border:1px dashed #aebdca;background:#f8fafb;border-radius:14px;padding:18px;cursor:pointer}.upload-box.secondary{background:#fcfcfd}.upload-title{font-size:16px;font-weight:800}.upload-box small{color:#667482;line-height:1.45}.upload-box input[type=file]{margin-top:5px;width:100%;padding:10px;border:1px solid #d5dee5;border-radius:10px;background:#fff}.visibility-box{border:1px solid #d7e0e7;border-radius:14px;padding:18px}.visibility-box legend{font-weight:800;padding:0 7px}.visibility-box>p{margin:0 0 13px;color:#667482}.visibility-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.visibility-grid label{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f5f8fa;border-radius:10px;font-weight:650}.visibility-grid input{width:18px;height:18px}.doc-submit{min-height:48px}.category-admin-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.5fr);gap:22px}.category-new{display:grid;gap:12px;align-content:start}.category-list{display:grid;gap:8px}.category-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.template-create{padding-bottom:20px;border-bottom:1px solid #e1e7eb}.template-list{display:grid;gap:10px}.template-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:15px;border:1px solid #dce4ea;border-radius:12px;background:#fbfcfd}.template-card>div:first-child{display:grid;gap:5px}.template-card small{color:#667482}.table-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.table-actions form{margin:0}
@media(max-width:900px){.doc-filter{grid-template-columns:1fr 1fr}.doc-card{grid-template-columns:1fr}.doc-actions{justify-content:flex-start}.visibility-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-admin-grid{grid-template-columns:1fr}.document-file-grid{grid-template-columns:1fr}}
@media(max-width:620px){.doc-tabs{display:grid;grid-template-columns:1fr}.doc-filter{grid-template-columns:1fr}.document-form-grid{grid-template-columns:1fr}.document-form-grid .span2{grid-column:auto}.visibility-grid{grid-template-columns:1fr}.template-card{grid-template-columns:1fr}.category-row{grid-template-columns:1fr}.doc-card{padding:18px}.doc-actions .btn{width:100%;justify-content:center}}
/* v3.7 document refinements */
.doc-meta .doc-read-tag{background:#e8f6ef;color:#16734e}.document-meta-edit{border-left:4px solid var(--red,#c91f2c)}.attach-pdf-form input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.attach-pdf-form label{cursor:pointer}.document-admin-intro .upload-box input[type=file]{font-weight:600}.document-admin-intro .panel-head,.template-card .actions{flex-wrap:wrap}

/* ===== v3.8 Dokumentenlenkung ===== */
.doc-admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px;padding:6px;background:#e9eef2;border-radius:14px}.doc-admin-tabs a{padding:11px 16px;border-radius:10px;color:#425363;font-weight:700;text-decoration:none}.doc-admin-tabs a:hover{background:#fff}.doc-admin-tabs a.active{background:#132838;color:#fff;box-shadow:0 4px 12px rgba(15,40,58,.14)}
.doc-stock-list{display:grid;gap:16px}.doc-stock-card{border:1px solid #dce4e9;border-radius:16px;background:#fff;padding:20px;box-shadow:0 5px 20px rgba(17,36,50,.05)}.doc-stock-card.focus{outline:3px solid rgba(197,31,45,.18)}.doc-stock-top{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.doc-stock-main h3{font-size:20px;margin:6px 0}.doc-stock-main p{color:#627482;margin:7px 0 10px}.doc-stock-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.doc-draft-editor{margin-top:18px;padding:18px;background:#f5f8fa;border:1px solid #dce5ea;border-radius:14px}.doc-draft-editor h4{font-size:18px;margin:0 0 14px}.publish-box{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:16px;background:#fff;border:1px solid #dce5ea;border-radius:12px}.publish-box small{display:block;color:#667987;margin-top:4px;max-width:780px}.doc-version-details{margin-top:16px;border-top:1px solid #e3e9ed;padding-top:12px}.doc-version-details summary{cursor:pointer;font-weight:700;color:#344b5d;padding:6px 0}.document-create-panel{max-width:1180px}.document-source-choice{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:stretch;margin:20px 0}.source-card{background:#f6f9fb;border:1px solid #dbe4ea;border-radius:14px;padding:18px}.source-card h3{margin:0 0 7px}.source-card p{color:#637684;min-height:42px}.source-or{display:flex;align-items:center;justify-content:center;color:#81909b;font-weight:800;text-transform:uppercase;font-size:11px}.document-create-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.doc-placeholder-help{background:#f5f8fa;border:1px solid #dce5ea;border-radius:14px;padding:18px}.doc-placeholder-help h3{margin-top:0}.placeholder-grid{display:grid;grid-template-columns:max-content 1fr;gap:9px 14px;align-items:center}.placeholder-grid code{background:#142736;color:#fff;padding:6px 9px;border-radius:7px}.word-launch-card{max-width:900px;margin:30px auto;background:#fff;border:1px solid #dce5ea;border-radius:18px;padding:28px;display:grid;grid-template-columns:72px 1fr;gap:22px;box-shadow:0 10px 28px rgba(15,36,50,.08)}.word-launch-icon{width:64px;height:64px;border-radius:14px;background:#185abd;color:#fff;display:grid;place-items:center;font-size:35px;font-weight:800}.word-launch-card h1{margin:0 0 4px}.word-launch-card .actions{margin-top:20px;display:flex;gap:8px;flex-wrap:wrap}.badge.neutral{background:#edf1f4;color:#526472}.category-new{align-items:end}
@media(max-width:760px){.doc-admin-tabs{display:grid;grid-template-columns:1fr 1fr}.doc-admin-tabs a{text-align:center;padding:10px 8px;font-size:13px}.document-source-choice{grid-template-columns:1fr}.source-or{padding:0}.publish-box{align-items:stretch;flex-direction:column}.publish-box form,.publish-box .btn{width:100%}.document-create-actions{display:grid;grid-template-columns:1fr}.document-create-actions .btn{width:100%}.placeholder-grid{grid-template-columns:1fr;gap:4px}.placeholder-grid span{margin-bottom:8px}.word-launch-card{grid-template-columns:1fr;padding:20px}.doc-stock-actions .btn{flex:1 1 140px}.doc-draft-editor{padding:14px}}

/* v3.9.0 Ausbildung */
.active-work-strip{display:grid;gap:10px;margin:0 0 20px}.active-work{display:flex;align-items:center;gap:14px;padding:15px 18px;border-radius:15px;border:1px solid #f0c7cb;background:#fff6f7;box-shadow:var(--shadow)}.active-work.deployment-live{background:#fff0f1;border-color:#eeb8bd}.active-work.training-live{background:#eef6ff;border-color:#bdd9ef}.active-work .pulse-dot{width:12px;height:12px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(197,31,45,.45);animation:fwPulse 1.8s infinite;flex:0 0 auto}.active-work.training-live .pulse-dot{background:var(--blue)}.active-work div{display:grid}.active-work small{font-weight:800;letter-spacing:.08em;color:var(--muted)}.active-work b{font-size:16px}.active-work span{font-size:13px;color:var(--muted)}.active-work strong{margin-left:auto;white-space:nowrap}@keyframes fwPulse{70%{box-shadow:0 0 0 9px rgba(197,31,45,0)}100%{box-shadow:0 0 0 0 rgba(197,31,45,0)}}
.field-hint{font-weight:500;color:var(--muted)}.training-card{scroll-margin-top:95px}.training-close-start{display:flex;align-items:end;gap:10px}.training-close-start label{min-width:140px}.training-attendee-head{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.count-chip{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:#eef3f6;font-weight:800}.training-sign-form{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:10px}.required-mark{color:var(--red)}.empty-line{padding:10px 0;color:var(--muted)}
.modal-backdrop.always-open{position:fixed;inset:0;background:rgba(12,20,27,.58);z-index:100;display:grid;place-items:center;padding:20px}.confirm-modal{width:min(720px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.modal-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.modal-head small{font-weight:800;letter-spacing:.08em;color:var(--muted)}.modal-head h2{margin:4px 0 0}.modal-x{border:0;background:#eef2f5;border-radius:10px;width:38px;height:38px;display:grid;place-items:center;font-size:24px;cursor:pointer}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.summary-grid>div{padding:12px;border-radius:11px;background:#f5f7f9}.summary-grid small,.summary-grid b{display:block}.preview-participants{display:grid;gap:7px;margin-bottom:20px}.preview-participants>div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.preview-participants b{color:var(--green);font-size:12px}.training-add-dialog{width:min(680px,calc(100% - 30px));border:0;border-radius:18px;padding:0;box-shadow:0 20px 60px rgba(0,0,0,.3)}.training-add-dialog::backdrop{background:rgba(12,20,27,.58)}.dialog-form{padding:24px;display:grid;gap:12px}
@media(max-width:760px){.active-work{align-items:flex-start}.active-work strong{display:none}.training-close-start{width:100%;display:grid;grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr}.preview-participants>div{display:grid}.training-card .page-head.compact{align-items:stretch;display:grid}}
/* v3.9.1 Einsatzdokumentation */
.deployment-list{display:grid;gap:9px}.deployment-row{display:grid;grid-template-columns:120px 110px 110px 1fr auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid #dde4ea;border-radius:14px;background:#fff}.deployment-row.open{text-decoration:none;color:inherit;border-left:5px solid #cc1f2f}.deployment-row.closed{background:#f7f9fa;color:#53616d}.deployment-row em{font-style:normal;font-weight:700;color:#cc1f2f}.check-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.check-chips label{border:1px solid #d5dee6;border-radius:999px;padding:9px 12px;background:#fff}.section-title{margin:25px 0 12px}.seat-grid{display:grid;gap:7px;margin:12px 0}.seat-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e0e6eb;border-radius:11px;background:#f8fafb}.seat-row.occupied{background:#eef7f1;border-color:#c8e6d1}.seat-row span{display:grid}.seat-row small{color:#6b7781}.vehicle-run-data{border-top:1px solid #e2e7eb;padding-top:12px}.trailer-list{display:grid;gap:8px}.trailer-row{display:flex;align-items:center;justify-content:space-between;border:1px solid #e0e6eb;border-radius:12px;padding:12px}.trailer-row>div{display:grid}.deployment-close{margin:18px 0 30px}.alarm-details{margin-top:14px;background:#f3f7fa;border-radius:12px;padding:12px 14px}.info-box{background:#eef5fb;border:1px solid #c9dceb;border-radius:12px;padding:14px;margin-top:14px;line-height:1.5}.filter-row{align-items:end;flex-wrap:wrap}.filter-row label{min-width:130px}.status-chip{padding:7px 10px;border-radius:999px;background:#eef3f6;font-size:12px;font-weight:700}
@media(max-width:760px){.deployment-row{grid-template-columns:1fr 1fr}.deployment-row strong,.deployment-row em{grid-column:1/-1}.deployment-vehicle-grid{grid-template-columns:1fr}.seat-row{align-items:flex-start}.seat-row .btn{white-space:nowrap}}


/* v3.9.2 deployment/admin polish */
input[type=checkbox],
input[type=radio]{
  width:18px !important;
  height:18px !important;
  min-height:18px !important;
  padding:0 !important;
  border-radius:5px;
  accent-color:var(--red);
  display:inline-block;
  flex:0 0 18px;
  vertical-align:middle;
}
label > span{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
}
label > span input[type=checkbox],
label > span input[type=radio]{margin:0}
.form-grid{align-items:start}
.vehicle-grid,.crew-list,.stack,.manage-list{gap:14px}
.crew-list>div{padding:12px 14px}
.modal-card,.confirm-modal,dialog.modal-card{
  width:min(760px,calc(100vw - 32px));
  max-width:calc(100vw - 32px);
}
.modal-card>.form-grid,
.confirm-modal,
.dialog-form{padding:22px 24px}
@media (max-width:760px){
  .modal-card,.confirm-modal,dialog.modal-card{width:calc(100vw - 20px);max-width:calc(100vw - 20px)}
  .modal-card>.form-grid,.confirm-modal,.dialog-form{padding:16px}
  .vehicle-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
}

/* v3.9.3 – Einsatzansicht + Verwaltung Feinschliff */
.check-chips{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:10px;
}
.check-chips label{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface2);
  cursor:pointer;
  font-weight:700;
}
.check-chips label:hover{border-color:#bcc9d2;background:#fff}
.check-chips input[type=checkbox]{margin:0}

.deployment-vehicle-grid{gap:20px}
.deployment-vehicle-grid .vehicle-card{
  padding:20px;
  display:grid;
  gap:14px;
}
.deployment-vehicle-grid .capacity{align-items:flex-start;gap:14px}
.deployment-vehicle-grid .capacity h2{margin:0 0 3px}
.deployment-vehicle-grid .capacity span{color:var(--muted);font-size:13px}
.deployment-vehicle-grid .seat-grid{gap:10px;margin:0}
.deployment-vehicle-grid .seat-row{padding:13px 14px}
.deployment-vehicle-grid .vehicle-run-data{
  margin-top:2px;
  padding-top:16px;
  gap:12px;
}

/* Teilnahme-Popup: Inhalt darf nicht an den Dialogrand kleben */
dialog#deploymentSeatDialog{
  width:min(720px,calc(100vw - 32px));
  border:0;
  border-radius:18px;
  padding:0;
  overflow:hidden;
  box-shadow:0 22px 70px rgba(0,0,0,.30);
}
dialog#deploymentSeatDialog::backdrop{background:rgba(10,18,25,.62)}
dialog#deploymentSeatDialog>.modal-head{padding:20px 24px;border-bottom:1px solid var(--line)}
dialog#deploymentSeatDialog>form.training-sign-form{
  margin:0;
  border-top:0;
  padding:22px 24px 24px;
  display:grid;
  gap:14px;
}
dialog#deploymentSeatDialog .signature{height:180px}
dialog#deploymentSeatDialog .actions{margin-top:2px}

/* Verwaltung: Formulare und Aktionsleisten luftiger */
.admin-layout .panel>.form-grid{gap:18px 16px}
.admin-layout .panel>.row-actions,
.admin-layout .panel form + .row-actions{margin-top:18px}
.admin-layout .panel .actions{gap:10px}
.admin-layout .filter-row{gap:12px;margin-bottom:16px}
.admin-layout .panel button.btn,
.admin-layout .panel a.btn{margin:0}
.admin-layout .info-box{margin-top:18px}
.admin-layout details{margin-top:16px}

/* Alarmmail-Form klar gliedern */
.admin-layout form .span2 + .span2{margin-top:2px}

@media(max-width:760px){
  .check-chips{grid-template-columns:1fr}
  .deployment-vehicle-grid{gap:14px}
  dialog#deploymentSeatDialog{width:calc(100vw - 18px);max-width:calc(100vw - 18px)}
  dialog#deploymentSeatDialog>.modal-head{padding:16px}
  dialog#deploymentSeatDialog>form.training-sign-form{padding:16px}
}


/* v3.9.3.1 – Einsatzlayout: Kartenhöhen und Abschnittsabstände */
.deployment-vehicle-grid{
  align-items:start;
}
.deployment-vehicle-grid .vehicle-card{
  align-self:start;
  height:auto;
}
.deployment-vehicle-grid + .card{
  margin-top:20px;
}
.deployment-vehicle-grid + .card + .card{
  margin-top:20px;
}
.deployment-vehicle-grid + .card .panel-head,
.deployment-vehicle-grid + .card + .card .panel-head{
  margin-bottom:18px;
}
.deployment-vehicle-grid + .card .crew-list,
.deployment-vehicle-grid + .card + .card .trailer-list{
  margin-top:4px;
}
.trailer-list{
  gap:12px;
}
.trailer-row{
  padding:14px 16px;
}
.deployment-close{
  margin-top:22px;
}
@media(max-width:760px){
  .deployment-vehicle-grid + .card,
  .deployment-vehicle-grid + .card + .card{
    margin-top:16px;
  }
  .deployment-close{
    margin-top:18px;
  }
}

/* v3.9.4 – Ausbildung wie Einsatzliste */
.training-list{display:grid;gap:9px}
.training-row{display:grid;grid-template-columns:120px 110px minmax(220px,1fr) minmax(160px,.7fr) auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid #dde4ea;border-radius:14px;background:#fff}
.training-row.open{color:inherit;border-left:5px solid var(--red)}
.training-row.closed{background:#f7f9fa;color:#53616d}
.training-row em{font-style:normal;font-weight:700;color:var(--red);white-space:nowrap}
.training-open-view{scroll-margin-top:95px}
.training-create-modal{width:min(780px,100%)}
.training-open-view>.page-head .actions{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.training-open-view .training-close-start{margin:0}
@media(max-width:900px){
  .training-row{grid-template-columns:110px 105px minmax(180px,1fr) auto}
  .training-row>span:nth-of-type(3){display:none}
}
@media(max-width:700px){
  .training-row{grid-template-columns:1fr 1fr;gap:7px 10px}
  .training-row strong,.training-row em{grid-column:1/-1}
  .training-row>span:nth-of-type(3){display:block;grid-column:1/-1}
  .training-open-view>.page-head{display:grid}
  .training-open-view>.page-head .actions{justify-content:stretch;display:grid}
  .training-open-view>.page-head .actions>.btn,.training-open-view .training-close-start{width:100%}
}


/* v3.9.5 Termine – Filter */
.event-filter-card{margin-bottom:18px;padding:18px 20px}.event-filter-form{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(260px,1.4fr) auto;gap:14px;align-items:end}.event-filter-actions{display:flex;gap:8px;align-items:center}.event-filter-meta{margin-top:12px;color:var(--muted);font-size:13px}.event-filter-meta b{color:var(--ink)}.event-list{gap:14px}.event{min-height:0}.event time{min-width:95px}@media(max-width:800px){.event-filter-form{grid-template-columns:1fr 1fr}.event-filter-actions{grid-column:1/-1}}@media(max-width:560px){.event-filter-form{grid-template-columns:1fr}.event-filter-actions{grid-column:auto}.event-filter-actions .btn{flex:1}}

/* ===== v4.0 Verwaltung, Rechte, Profil und Design ===== */
.admin-shell-v4{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100vh}
.admin-sidebar-v4{background:var(--nav);color:#dce6ed;padding:20px 14px;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column}
.admin-sidebar-v4 .brand{margin-bottom:14px}.admin-main-nav{display:grid;gap:3px}.admin-main-nav a{padding:11px 12px;border-radius:10px;color:#c8d4dc;font-weight:700}.admin-main-nav a:hover,.admin-main-nav a.active{background:#ffffff14;color:#fff}.admin-switch{margin-top:auto;padding:16px 10px 4px;border-top:1px solid #ffffff18;display:grid;gap:7px}.admin-switch a{font-weight:800;color:#fff}.admin-switch small{color:#91a3b1}.admin-workspace-v4{min-width:0}.admin-mode .container{max-width:1600px}
.admin-stat-grid-v4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.admin-stat-v4{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow)}.admin-stat-v4 b{display:block;font-size:30px}.admin-stat-v4 span{color:var(--muted)}
.admin-overview-links{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.admin-overview-links a{border:1px solid var(--line);border-radius:13px;padding:15px;background:var(--surface2)}.admin-overview-links strong,.admin-overview-links span{display:block}.admin-overview-links span{color:var(--muted);font-size:13px;margin-top:3px}
.subtabs-v4{display:flex;gap:8px;padding:6px;background:#e8edf1;border-radius:13px;margin-bottom:20px}.subtabs-v4 a{padding:10px 15px;border-radius:9px;font-weight:800}.subtabs-v4 a.active{background:#172a38;color:#fff}
.role-grid-v4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.role-card-v4{border:1px solid var(--line);border-radius:15px;padding:18px;display:grid;gap:14px;background:#fbfcfd}.permission-grid-v4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.permission-grid-v4 label{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:9px;background:#fff;border:1px solid #e0e6eb;font-weight:600}.permission-grid-v4 label span{display:block}
.roomy-actions-v4{gap:16px}.roomy-actions-v4 .row-actions{margin-top:16px;gap:10px}.ticket-admin-list-v4{display:grid;grid-template-columns:1fr;gap:16px}.ticket-admin-list-v4 .ticket-admin-card{width:100%}
.filter-actions{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.event-list-v4{display:grid;gap:9px}.event-list-v4>div{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fbfcfd}.chips-v4{display:flex;gap:8px;flex-wrap:wrap}.chips-v4 span{background:#eef3f6;border-radius:999px;padding:7px 10px;font-weight:700}.product-admin-list-v4{display:grid;gap:9px}.product-edit-v4{display:grid;grid-template-columns:minmax(180px,1.6fr) minmax(160px,1fr) 130px auto auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:10px}
.nav-admin-list-v4{display:grid;gap:10px}.nav-admin-row-v4{display:grid;grid-template-columns:minmax(190px,1.5fr) 110px 110px 120px minmax(150px,1fr) auto auto;gap:8px;align-items:end;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fbfcfd}.mini-check-v4{display:flex;align-items:center;gap:7px;min-height:44px}.backup-grid-v4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.backup-grid-v4 .btn{text-align:left}
.profile-hero-v4{display:flex;align-items:center;gap:18px;padding:24px;background:linear-gradient(120deg,var(--nav),#294354);color:#fff;border-radius:20px;box-shadow:var(--shadow);margin-bottom:16px}.profile-avatar-v4{width:64px;height:64px;border-radius:18px;background:#ffffff1f;display:grid;place-items:center;font-size:30px;font-weight:900}.profile-hero-v4 h2{margin:0}.profile-hero-v4 p{margin:3px 0;color:#c7d3db}.reward-v4{margin-left:auto;text-align:right}.reward-v4 b{font-size:32px;display:block}.reward-v4 span{font-size:12px;color:#c7d3db}.profile-stats-v4{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.profile-stats-v4>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px}.profile-stats-v4 b{display:block;font-size:24px}.profile-stats-v4 span{color:var(--muted);font-size:13px}.notification-list-v4{display:grid;gap:9px}.notification-row-v4{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fbfcfd}.notification-row-v4>span{display:flex;align-items:center;gap:10px}.notification-row-v4 small{text-align:right;color:var(--muted)}
.tiles.v4-dashboard-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense}.tile.dash-medium{grid-column:span 2}.tile.dash-large{grid-column:span 2;grid-row:span 2}.tile.dash-full{grid-column:1/-1}.tile.dash-small{grid-column:span 1}
@media(max-width:1050px){.admin-shell-v4{grid-template-columns:210px minmax(0,1fr)}.admin-stat-grid-v4,.admin-overview-links{grid-template-columns:repeat(2,1fr)}.role-grid-v4{grid-template-columns:1fr}.nav-admin-row-v4{grid-template-columns:1fr 100px 100px 120px}.nav-admin-row-v4 .btn{width:100%}.product-edit-v4{grid-template-columns:1fr 1fr 110px}.product-edit-v4 .btn{width:100%}}
@media(max-width:760px){.admin-shell-v4{display:block}.admin-sidebar-v4{position:static;height:auto}.admin-main-nav{display:flex;overflow:auto;white-space:nowrap;padding-bottom:5px}.admin-main-nav a{flex:0 0 auto}.admin-switch{margin-top:10px}.admin-stat-grid-v4,.admin-overview-links,.profile-stats-v4{grid-template-columns:1fr 1fr}.permission-grid-v4,.backup-grid-v4{grid-template-columns:1fr}.product-edit-v4,.nav-admin-row-v4{grid-template-columns:1fr}.notification-row-v4{grid-template-columns:1fr}.notification-row-v4 small{text-align:left}.profile-hero-v4{align-items:flex-start}.reward-v4{margin-left:0}.tiles.v4-dashboard-grid{grid-template-columns:1fr 1fr}.tile.dash-medium,.tile.dash-large,.tile.dash-full{grid-column:1/-1}.admin-mode .topbar{position:static}}


/* v4.0.2 Feinschliff */
.login-links{gap:18px;flex-wrap:wrap}.login-links a:last-child{margin-left:auto}
.check-chips input[type=checkbox]{width:18px!important;height:18px!important;min-height:18px!important;flex:0 0 18px;margin:0!important;accent-color:var(--red)}
.check-chips label{border-radius:12px!important}
.admin-mode .form-grid + .row-actions{margin-top:22px!important;padding-top:4px}
.event-list-v4 .table-actions form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.todo-admin-card .row-actions{gap:12px;margin-top:16px}
.doc-admin-tabs{margin-bottom:22px}
@media(max-width:680px){.login-links{display:grid;gap:10px}.login-links a:last-child{margin-left:0}.event-list-v4 .table-actions form{width:100%}.event-list-v4 .table-actions form .btn{flex:1}}


/* v4.0.4 – mobile safe spacing above fixed bottom navigation */
@media(max-width:760px){
  body:not(.admin-mode) .container{
    padding-bottom:calc(122px + env(safe-area-inset-bottom)) !important;
  }
}

/* v4.0.10 user administration */
.table-actions form{display:inline-flex;margin:0}.table-actions{gap:8px}.login-panel .card.narrow{max-width:560px;margin:0 auto}


/* v4.0.15 – Mobile Dashboard: Schnellzugriff bleibt vollständig im Viewport */
.tiles.v4-dashboard-grid,
.tiles.v4-dashboard-grid > .tile{
  min-width:0;
  max-width:100%;
}
.tiles.v4-dashboard-grid > .tile{
  overflow:hidden;
}
.tiles.v4-dashboard-grid > .tile > div{
  min-width:0;
  overflow:hidden;
}
.tiles.v4-dashboard-grid > .tile h3,
.tiles.v4-dashboard-grid > .tile p{
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
}
.tiles.v4-dashboard-grid > .tile strong{
  flex:0 0 auto;
}

@media(max-width:760px){
  .tiles.v4-dashboard-grid{
    width:100%;
    max-width:100%;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    overflow:hidden;
  }
  .tiles.v4-dashboard-grid > .tile{
    width:100%;
    max-width:100%;
    min-width:0 !important;
    padding:15px 13px;
    gap:10px;
  }
  .tiles.v4-dashboard-grid > .tile i{
    flex:0 0 44px;
    width:44px;
    height:44px;
  }
  .tiles.v4-dashboard-grid > .tile h3{
    font-size:16px;
    line-height:1.2;
  }
  .tiles.v4-dashboard-grid > .tile p{
    font-size:12px;
    line-height:1.35;
  }
  .tiles.v4-dashboard-grid > .tile strong{
    display:none;
  }
  .tile.dash-medium,
  .tile.dash-large,
  .tile.dash-full{
    grid-column:1/-1;
  }
}

@media(max-width:390px){
  .tiles.v4-dashboard-grid{
    grid-template-columns:1fr !important;
  }
  .tile.dash-small,
  .tile.dash-medium,
  .tile.dash-large,
  .tile.dash-full{
    grid-column:1/-1 !important;
  }
}

/* v4.0.16 – Fahrzeugreihenfolge Einsatzdokumentation */
.deployment-order-list{display:grid;gap:9px}
.deployment-order-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface2)}
.deployment-order-row>div:first-child{display:grid;min-width:0}
.deployment-order-row small{color:var(--muted)}
.deployment-order-row .actions{display:flex;gap:8px;flex:0 0 auto}
.deployment-order-row form{margin:0}
@media(max-width:600px){.deployment-order-row{align-items:flex-start}.deployment-order-row .actions{gap:6px}}

/* v4.0.17 – Verwaltung Fahrzeuge & Checklisten */
.admin-subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px;padding:6px;background:#e9eef2;border-radius:14px}
.admin-subtabs a{padding:10px 15px;border-radius:10px;font-weight:800;color:#52616d}
.admin-subtabs a.active{background:#172b3a;color:#fff;box-shadow:0 4px 12px rgba(15,40,58,.14)}
.vehicle-check-filter{grid-template-columns:repeat(5,minmax(120px,1fr));align-items:end;margin-bottom:14px}
.vehicle-check-filter .filter-actions{display:flex;gap:8px;align-items:end}
@media(max-width:1000px){.vehicle-check-filter{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.admin-subtabs{display:grid;grid-template-columns:1fr}.vehicle-check-filter{grid-template-columns:1fr}.vehicle-check-filter .filter-actions{display:grid;grid-template-columns:1fr 1fr}}

/* v4.0.18 – Mannschaft ohne Nummern + QR-Teilnahme */
.team-capacity-box{border:1px solid #dfe6eb;border-radius:12px;background:#f8fafb;padding:12px 14px}
.team-capacity-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.team-capacity-head span{display:grid}.team-capacity-head small{color:var(--muted)}
.team-members{display:grid;gap:7px;margin-top:10px}.team-members>div{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid #e2e8ec;border-radius:9px;padding:9px 10px}
.participation-qr-card{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:20px;align-items:center;margin:18px 0;background:#f7fafc}
.participation-qr-card img{width:180px;height:180px;justify-self:end;border:8px solid #fff;border-radius:12px}.participation-qr-card .actions{grid-column:1/-1}
.participation-public{max-width:760px;margin:0 auto;padding:28px 18px 60px}.participation-public>header{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.participation-public>header img{width:64px;height:64px;object-fit:contain;background:#17232c;border-radius:13px;padding:8px}.participation-public>header h1{margin:2px 0 0}.participation-public>header small{color:var(--muted);font-weight:700}
.participation-public-card{padding:24px}.participation-public-card h2{margin:6px 0}.participation-public-card>p{color:var(--muted);margin-top:4px}.participation-expired{text-align:center;margin-top:50px}
@media(max-width:650px){.participation-qr-card{grid-template-columns:1fr;text-align:center}.participation-qr-card img{justify-self:center}.participation-qr-card .actions{grid-column:auto}.team-capacity-head{align-items:flex-start}.participation-public{padding:18px 12px 42px}}

/* v4.0.19 – editierbare Schnellzugriff-Beschreibungen */
.nav-admin-row-v4 .nav-description-field{min-width:240px}
@media(max-width:900px){.nav-admin-row-v4 .nav-description-field{min-width:0}}

/* v4.0.20 – Navigation & Design: sauberes Formularlayout */
.nav-admin-list-v4{display:grid;gap:12px}
.nav-admin-row-v4{
  display:grid;
  grid-template-columns:minmax(210px,1.15fr) minmax(280px,1.5fr) 105px 112px 122px minmax(145px,170px) auto auto;
  gap:12px;
  align-items:end;
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px;
  background:#fbfcfd;
}
.nav-admin-row-v4 label{
  min-width:0;
}
.nav-admin-row-v4 .nav-label-field,
.nav-admin-row-v4 .nav-description-field,
.nav-admin-row-v4 .nav-order-field,
.nav-admin-row-v4 .nav-size-field{
  display:grid;
  gap:6px;
}
.nav-admin-row-v4 .nav-description-field{
  min-width:0 !important;
}
.nav-admin-row-v4 input,
.nav-admin-row-v4 select{
  min-width:0;
  width:100%;
}
.nav-admin-row-v4 .mini-check-v4{
  align-self:end;
  min-height:44px;
  padding:0 4px;
  white-space:nowrap;
}
.nav-admin-row-v4 .nav-save-button,
.nav-admin-row-v4 .nav-delete-button{
  min-height:44px;
  white-space:nowrap;
}

@media(max-width:1320px){
  .nav-admin-row-v4{
    grid-template-columns:minmax(220px,1fr) minmax(260px,1.25fr) 100px 110px 120px;
  }
  .nav-admin-row-v4 .nav-size-field{
    grid-column:1 / 3;
  }
  .nav-admin-row-v4 .nav-save-button,
  .nav-admin-row-v4 .nav-delete-button{
    width:100%;
  }
}

@media(max-width:980px){
  .nav-admin-row-v4{
    grid-template-columns:1fr 1fr;
  }
  .nav-admin-row-v4 .nav-label-field,
  .nav-admin-row-v4 .nav-description-field{
    grid-column:auto;
  }
  .nav-admin-row-v4 .nav-order-field,
  .nav-admin-row-v4 .nav-size-field{
    grid-column:auto;
  }
}

@media(max-width:680px){
  .nav-admin-row-v4{
    grid-template-columns:1fr;
    gap:10px;
  }
  .nav-admin-row-v4 .nav-label-field,
  .nav-admin-row-v4 .nav-description-field,
  .nav-admin-row-v4 .nav-order-field,
  .nav-admin-row-v4 .nav-size-field,
  .nav-admin-row-v4 .nav-visible-field,
  .nav-admin-row-v4 .nav-dashboard-field,
  .nav-admin-row-v4 .nav-save-button,
  .nav-admin-row-v4 .nav-delete-button{
    grid-column:1;
  }
  .nav-admin-row-v4 .mini-check-v4{
    padding:0;
  }
}

/* v4.0.22 – Kassenrechner: Kategorien im Frontend und Verwaltung */
.cash-products-by-category{display:grid;gap:22px;min-width:0}
.cash-category-group{min-width:0}
.cash-category-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 10px;padding:0 2px 8px;border-bottom:2px solid #dfe5ea}
.cash-category-title h2{margin:0;font-size:18px}
.cash-category-title span{font-size:12px;font-weight:800;color:var(--muted);background:#eef3f6;border-radius:999px;padding:5px 9px}
.cash-category-group .product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cash-category-group .product{min-width:0}
.cash-category-admin-list{display:grid;gap:9px}
.cash-category-admin-row{display:grid;grid-template-columns:52px minmax(220px,1fr) auto auto auto auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface2)}
.cash-category-order{display:grid;place-items:center;min-height:42px;border-radius:9px;background:#e9eef2;color:#60717f;font-weight:800;font-size:12px}
.cash-category-admin-row input{min-width:0}
@media(max-width:1050px){
 .cash-category-group .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cash-category-admin-row{grid-template-columns:46px minmax(180px,1fr) auto auto auto}
 .cash-category-admin-row .danger{grid-column:2/-1;justify-self:end}
}
@media(max-width:700px){
 .cash-category-title{align-items:center}
 .cash-category-group .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cash-category-admin-row{grid-template-columns:42px 1fr auto auto}
 .cash-category-admin-row input[name=name]{grid-column:2/-1}
 .cash-category-admin-row button[name=action][value=category_save]{grid-column:2}
 .cash-category-admin-row .danger{grid-column:2/-1;width:100%}
}
@media(max-width:430px){
 .cash-category-group .product-grid{grid-template-columns:1fr}
}

/* v4.0.23 – Aktionen bei durchgeführten Fahrzeugchecks */
.vehicle-check-filter + .row-actions{margin-top:14px}
.table-wrap .table-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.table-wrap .table-actions form{margin:0}

.vehicle-note{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#eef3f6;color:#4b5a68}.vehicle-note.issue{background:#fff1e5;color:#965b00}.issue-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#f2b24f;box-shadow:0 0 0 4px #fff3d9}.status-legend .issue-dot{flex:0 0 auto}.settings-hint-box,.settings-preview-box{border:1px solid var(--line);border-radius:14px;background:#f8fafb;padding:16px}.placeholder-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.placeholder-chips code,.settings-preview-box code{background:#eef3f6;border-radius:8px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.review-modal{width:min(940px,calc(100vw - 28px))}.review-stats{gap:12px;padding:22px 24px 10px}.review-stats div{padding:16px 12px;border-radius:14px;border:1px solid #e2e8ec;background:#f7fafb}.review-stats b{font-size:28px;margin-bottom:4px}.review-problem{display:grid;gap:10px;margin:0;padding:18px;border:1px solid #e1e6ea;border-radius:14px;background:#fff}.review-problem p{margin:0;white-space:pre-line;line-height:1.5}.review-problem small{margin-top:0}.review-problem .btn{justify-self:start}.review-problem-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.review-problem-list{display:grid;gap:12px;padding:0 24px 18px}.monitor-issue{margin-top:10px;align-self:flex-start}@media(max-width:700px){.review-modal{width:min(100vw - 18px,1000px)}.review-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.review-problem-list{padding:0 16px 16px}}

/* v4.0.29 – Maschinist: Fahrdaten direkt bei Teilnahme */
.driver-data-box{margin:14px 0;padding:14px 16px;border:1px solid #d9e2ea;border-radius:14px;background:#f7fafc}.driver-data-box[hidden]{display:none!important}.driver-data-title{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.driver-data-title small{color:#667482}.driver-data-box .form-grid{margin:0}.driver-data-box label.already-filled{position:relative}.driver-data-box label.already-filled:after{content:'Bereits eingetragen';display:inline-block;margin-top:5px;font-size:.78rem;font-weight:700;color:#237a45}.driver-data-box input[readonly]{background:#eef3f6;color:#46545f;cursor:not-allowed}


/* v4.0.30 – unverbindliche Vorschläge für Tätigkeiten */
.activity-suggest-host{position:relative}
.activity-suggest-box{position:absolute;z-index:1200;left:0;right:0;top:calc(100% + 5px);background:#fff;border:1px solid #d8e1e7;border-radius:12px;box-shadow:0 12px 30px rgba(17,36,50,.16);overflow:hidden;max-height:310px;overflow-y:auto}
.activity-suggest-box[hidden]{display:none!important}
.activity-suggest-option{width:100%;border:0;border-bottom:1px solid #edf1f3;background:#fff;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:#17212b;cursor:pointer;font:inherit}
.activity-suggest-option:last-child{border-bottom:0}
.activity-suggest-option:hover,.activity-suggest-option.active{background:#f2f6f8}
.activity-suggest-option span{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.activity-suggest-option small{flex:0 0 auto;color:#738390;font-size:.75rem;font-weight:600}
@media(max-width:600px){.activity-suggest-option{align-items:flex-start;flex-direction:column;gap:3px}.activity-suggest-option span{white-space:normal}}


/* v4.0.31 – Kassenrechner: feste Rechenspalte, nur Artikelliste scrollt */
.cash-event-bar{flex:0 0 auto;margin-bottom:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}
.cash-event-bar form{margin:0}.cash-event-bar label{display:grid;grid-template-columns:auto minmax(220px,360px);align-items:center;justify-content:space-between;gap:14px}.cash-event-bar label>span{font-size:13px;color:var(--muted);font-weight:800}.cash-event-bar select{min-height:42px}
.cash-products-column{min-width:0;min-height:0;display:flex;flex-direction:column}.cash-products-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:8px;scrollbar-gutter:stable}.cash-cart-scroll{min-height:42px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
@media (min-width:681px){
 body.cash-view{height:100dvh;overflow:hidden}
 body.cash-view .app-shell{height:100dvh;min-height:0;overflow:hidden}
 body.cash-view .workspace{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
 body.cash-view .topbar{flex:0 0 70px}
 body.cash-view .container{flex:1;min-height:0;width:100%;padding-top:18px;padding-bottom:18px;overflow:hidden;display:flex;flex-direction:column}
 body.cash-view .back{flex:0 0 auto;margin-bottom:10px}
 body.cash-view .cash-page-head{flex:0 0 auto;margin-bottom:12px;align-items:center}
 body.cash-view .cash-page-head h1{font-size:28px}
 body.cash-view .cash-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,390px);gap:18px;align-items:stretch;margin-top:0}
 body.cash-view .cash-panel{position:static;top:auto;height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:clamp(14px,2vh,20px)}
 body.cash-view .cash-panel>h2{flex:0 0 auto;margin:0 0 clamp(7px,1.2vh,14px)}
 body.cash-view .cash-panel .cash-cart-scroll{flex:1 1 76px}
 body.cash-view .cash-total,body.cash-view .change{flex:0 0 auto;padding:clamp(7px,1.3vh,14px) 0}
 body.cash-view .cash-total b,body.cash-view .change b{font-size:clamp(21px,3vh,26px)}
 body.cash-view .cash-panel>label{flex:0 0 auto}
 body.cash-view .received{flex:0 0 auto;font-size:clamp(24px,3.7vh,30px);padding:clamp(7px,1.5vh,12px);margin:5px 0 clamp(6px,1.2vh,10px)}
 body.cash-view .keypad{flex:0 0 auto;gap:clamp(5px,.9vh,8px)}
 body.cash-view .keypad button{height:clamp(40px,6.4vh,58px);font-size:clamp(17px,2.4vh,20px)}
 body.cash-view #nextSale{flex:0 0 auto;padding-top:clamp(9px,1.4vh,12px);padding-bottom:clamp(9px,1.4vh,12px)}
}
@media (min-width:681px) and (max-height:720px){
 body.cash-view .container{padding-top:10px;padding-bottom:10px}
 body.cash-view .back{margin-bottom:6px}
 body.cash-view .cash-page-head{margin-bottom:8px}
 body.cash-view .cash-page-head h1{font-size:24px}
 body.cash-view .cash-page-head p{margin-top:2px;font-size:13px}
 .cash-event-bar{padding:8px 10px;margin-bottom:8px}.cash-event-bar select{min-height:38px;padding-top:7px;padding-bottom:7px}
 body.cash-view .cash-panel{padding:12px}
 body.cash-view .cash-panel>h2{font-size:20px;margin-bottom:5px}
 body.cash-view .cash-total,body.cash-view .change{padding:6px 0}
 body.cash-view .received{margin:3px 0 5px;padding:6px 9px}
 body.cash-view .keypad{gap:5px}
 body.cash-view .keypad button{height:38px}
 body.cash-view #nextSale{padding:8px 12px}
}
@media (max-width:680px){
 .cash-event-bar{position:sticky;top:0;z-index:3;margin-bottom:12px}
 .cash-event-bar label{grid-template-columns:1fr;gap:6px}
 .cash-products-scroll{overflow:visible;padding-right:0}
 .cash-products-column{display:block}
 .cash-cart-scroll{overflow:visible}
}

/* v4.0.41 – Remember-Me */
.remember-login{display:flex;flex-direction:column;gap:4px;margin:2px 0 12px}.remember-login>span{display:flex;align-items:center;gap:9px;font-weight:700}.remember-login input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--red)}.remember-login small{color:#6b7783;font-weight:400;margin-left:27px}.btn.danger{border-color:#e1a7ad;color:#a51624;background:#fff}.btn.danger:hover{background:#fff0f1}
