:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#202e36;background:#f4f6f8;font-synthesis:none;font-size:16px;line-height:1.5;--green:#123e35;--lime:#d8f278;--border:#e0e6e9;--muted:#65747c;--radius:12px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);border-radius:8px;background:#fff;color:#2b3e46;padding:9px 13px;cursor:pointer;font-weight:550;font-size:.875rem;line-height:1.45;min-height:40px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#edf3f0;border-color:#aebfb9}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--green);color:#fff;border-color:var(--green);padding:11px 17px}button.primary:hover:not(:disabled){background:#205447}button.icon-button{padding:8px;min-width:40px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #81acdb;outline-offset:3px}input,select,textarea{min-width:0;border:1px solid #ccd6da;border-radius:7px;background:#fff;padding:10px 12px;color:#21343d;font-size:.9375rem;max-width:100%}input:disabled,select:disabled,textarea:disabled{background:#f3f5f6;color:#65747c}textarea{resize:vertical}input[type=checkbox]{width:17px;height:17px;accent-color:var(--green);flex-shrink:0}h1,h2,h3,p{margin-top:0}h1{font-size:1.8rem;line-height:1.25;letter-spacing:-.035em;font-weight:650;margin-bottom:9px}h2{font-size:1.13rem;font-weight:650;letter-spacing:-.02em;margin-bottom:16px}h3{font-size:.9375rem;font-weight:650}small{font-size:.8125rem}p{line-height:1.65}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.6875rem;font-weight:750;color:#6c7b80;margin-bottom:9px}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#12352f;color:#dce6e1;padding:29px 19px 19px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:10px;font-size:1.2rem;font-weight:650;line-height:1.3;letter-spacing:-.02em}.brand img{width:42px;height:42px}.brand small{display:block;font-size:.75rem;color:#a4c0b6;font-weight:400;letter-spacing:.02em;margin-top:2px}.sidebar .brand{margin:0 8px 44px}.nav-label{text-transform:uppercase;font-size:.65rem;letter-spacing:.13em;color:#a0b9b1;padding:0 13px;margin-bottom:11px}nav{display:flex;flex-direction:column;gap:6px}nav button{background:transparent;border-color:transparent;color:#c5d7d1;justify-content:flex-start;font-weight:500;padding:12px;font-size:.875rem}nav button.active{background:#d8f278;color:#153d31;border-color:#d8f278;font-weight:650}nav button:hover:not(:disabled){background:#21483e;border-color:transparent;color:#fff}nav button.active:hover{background:#d8f278;color:#153d31}.sidebar-bottom{margin-top:auto;padding-top:35px}.version{display:block;font-size:.6875rem;color:#9cb7ad;margin:0 12px 18px}.profile{display:flex;align-items:center;gap:10px;border-top:1px solid #35554a;padding:20px 9px 14px;min-width:0}.profile strong{display:block;font-size:.85rem;overflow-wrap:anywhere}.profile small{color:#a5bdb4;font-size:.75rem}.initials{display:grid;place-items:center;width:37px;height:37px;flex-shrink:0;background:#426458;color:#e5efde;border-radius:50%;font-size:.75rem}.sidebar-bottom button{background:transparent;border:none;color:#aec6bb;font-size:.8125rem;justify-content:flex-start;width:100%;padding:8px 12px}.sidebar-bottom button:hover:not(:disabled){background:#254a3d}.workspace{margin-left:248px;min-width:0;flex:1}.topbar{height:72px;border-bottom:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:20px}.topbar>div{display:flex;align-items:center;gap:12px}.breadcrumb{font-size:.8125rem;color:#52666c}.breadcrumb>span{color:#a7b3b5;padding:0 13px}.connection{display:flex;align-items:center;gap:7px;font-size:.75rem;color:#47705e}.connection>span{width:6px;height:6px;border-radius:50%;background:#4e8561}.connection.offline{color:#975a27}.connection.offline>span{background:#bf842d}main{max-width:1760px;padding:34px 36px 64px;margin:auto;min-height:calc(100vh - 134px)}footer{border-top:1px solid var(--border);padding:18px 36px;font-size:.75rem;color:#7c888e;display:flex;justify-content:space-between}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:27px}.page-heading p{font-size:.875rem;color:var(--muted);margin:0}.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:5px 0 26px}.stat{display:block;text-align:left;padding:23px 20px;background:#fff;border-radius:var(--radius);min-width:0;font-weight:400}.stat-top{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:.8125rem;color:#5d7079}.stat-top svg{color:#6f8c81;flex-shrink:0}.stat strong{font-size:2.7rem;font-weight:600;line-height:1.15;display:block;letter-spacing:-.05em;margin:20px 0 10px}.stat small{color:#73817f;font-size:.75rem;display:block}.dashboard-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.section-title{border-bottom:1px solid var(--border);margin:0 -24px;padding:0 24px 4px}.quick-links{display:grid;margin-top:10px}.quick-links button{background:transparent;border:none;justify-content:flex-start;text-align:left;padding:17px 0;gap:16px;border-radius:0}.quick-links button+button{border-top:1px solid #edf0f1}.quick-links button>svg{width:44px;height:44px;padding:10px;background:#eef4ee;border-radius:10px;color:#305b48}.quick-links b{font-size:.9375rem;font-weight:600}.quick-links small{display:block;font-weight:400;color:var(--muted);margin-top:5px}.system-panel{background:#edf2e9;border-color:#dce5d8;display:flex;flex-direction:column;align-items:flex-start}.system-panel>svg{color:#50754a;margin-bottom:22px}.system-panel p{font-size:.875rem;color:#586d5b}.system-version{display:flex;justify-content:space-between;gap:15px;width:100%;padding-top:20px;margin-top:auto;border-top:1px solid #d1decb;font-size:.75rem;color:#5a715c}.list-panel{padding:0;overflow:hidden}.toolbar{display:flex;align-items:center;gap:12px;padding:18px 22px}.toolbar .count{margin-left:auto;color:var(--muted);font-size:.8125rem}.search{display:flex;align-items:center;gap:9px;flex:1;max-width:420px;background:#f8fafb;border:1px solid var(--border);border-radius:8px;padding-left:12px;color:#809095}.search input{border:none;background:transparent;width:100%;padding-left:0}.filters{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:14px 22px;border-block:1px solid var(--border);background:#fcfdfd}.filters>svg{margin-right:3px;color:#78898c}.filters select{font-size:.8125rem;padding:8px;min-height:38px}.sort-control{display:flex;gap:6px;align-items:center;margin-left:auto;color:#78898c}.sort-control select{border:none;background:transparent}.responsive-table{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:.875rem}th{color:#74818a;background:#fbfcfd;font-size:.75rem;font-weight:600;padding:14px 18px;white-space:nowrap;border-bottom:1px solid var(--border)}td{padding:18px;vertical-align:middle;border-bottom:1px solid #edf0f2}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafcfb}td strong{font-weight:600;display:block;white-space:nowrap}td small{display:block;color:var(--muted);font-size:.75rem;margin-top:4px}.badge{display:inline-flex;align-items:center;border-radius:6px;padding:4px 8px;background:#eef1f4;color:#536775;font-size:.75rem;font-weight:550;white-space:nowrap}.badge.waiting{background:#fff3d9;color:#93681c}.badge.ready{background:#edf6e8;color:#48733f}.badge.assigned{background:#eaf0fc;color:#446696}.badge.started{background:#e3f3ef;color:#346e5b}.badge.archived{background:#f0f1f3;color:#7a8189}.priority-number{width:32px;min-height:30px;border-color:#dce4e7;padding:3px;border-radius:6px}.row-actions{display:flex;gap:5px;align-items:center}.row-actions button{padding:7px;min-width:34px;min-height:34px;font-size:.75rem}.row-actions.wrap{flex-wrap:wrap}.danger-icon{color:#a15c59}.danger-text{margin-top:15px;color:#a84343;border-color:#e6cdcd}.empty{padding:50px 20px;text-align:center;color:#7b8d91}.empty svg{color:#90a3a4}.empty p{margin:10px auto 0;font-size:.875rem;max-width:400px}.error-box{display:flex;gap:10px;align-items:flex-start;background:#fff0ef;border:1px solid #f0cfcc;color:#9d3c3c;border-radius:8px;padding:12px 14px;font-size:.875rem;margin:14px 0}.error-box svg{flex-shrink:0;margin-top:3px}.list-panel>.error-box,.list-panel>.muted{margin:18px 22px}.modal{border:1px solid #dce4e5;padding:26px 30px 24px;border-radius:16px;max-width:min(740px,calc(100vw - 30px));width:740px;max-height:90dvh;overflow-y:auto;box-shadow:0 25px 100px #132f3035;color:#21333b}.modal::backdrop{background:#12292680;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.modal-head h2{font-size:1.25rem;margin:0}.modal-head .icon-button{border:0;background:#f4f6f7}.form-grid{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:20px 18px;min-width:0}.field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:.875rem}.field>label,.field-title{font-weight:550;font-size:.8125rem;color:#50656d}.field small{font-size:.75rem;color:#7a8b8c;font-weight:400}.wide{grid-column:1/-1}.check{display:flex;align-items:center;gap:9px;font-size:.875rem;cursor:pointer}.check input{margin:0}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px;border-top:1px solid var(--border);padding-top:20px}.form-hint{font-size:.8125rem;color:#75858b;margin:0;line-height:1.7}.vehicle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.vehicle-card{padding:25px;display:flex;flex-direction:column}.vehicle-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.vehicle-icon{display:grid;place-items:center;width:57px;height:57px;border-radius:13px;background:#eef3ed;color:#4f7761}.vehicle-card h2{font-size:1.3rem;margin-bottom:13px}.plate{font-size:.9375rem;letter-spacing:.05em;font-weight:700;align-self:flex-start;background:#fafcfd;border:1px solid #bdc8d1;border-left:7px solid #426b9b;border-radius:5px;padding:3px 9px;margin-bottom:18px}.vehicle-card p{font-size:.8125rem;white-space:pre-wrap}.vehicle-card dl{font-size:.8125rem;margin:0 0 20px}.vehicle-card dl>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0}.vehicle-card dt{color:var(--muted)}.vehicle-card dd{margin:0;text-align:right}.card-actions{margin-top:auto;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:16px}.note{border-left:2px solid #c5d6c8;padding-left:12px;color:#617275;overflow-wrap:anywhere}.class-options{display:flex;gap:15px;flex-wrap:wrap;padding-top:12px}.class-options .check{min-width:65px}.calendar-panel{padding:0;overflow:hidden}.calendar-toolbar{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border-bottom:1px solid var(--border)}.date-switch{display:flex;gap:6px;align-items:center}.date-switch input{font-size:.875rem;max-width:154px}.calendar-options{display:flex;gap:9px;align-items:center}.calendar-options select{font-size:.8125rem;max-width:210px}.segmented{display:flex;border:1px solid var(--border);border-radius:7px;padding:3px;background:#f7f9fa}.segmented button{border:0;min-height:32px;padding:5px 12px;background:transparent;font-size:.8125rem;color:#71808a}.segmented button.selected{color:#24523d;background:#fff;box-shadow:0 1px 4px #16342c15}.calendar-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px}.calendar-caption h2{margin:0;font-size:1rem}.calendar-caption .muted{font-size:.75rem}.calendar-grid{display:grid;grid-template-columns:repeat(var(--columns),minmax(160px,1fr));overflow-x:auto;min-height:380px;border-top:1px solid var(--border)}.calendar-grid.day{grid-template-columns:repeat(var(--columns),minmax(220px,1fr))}.calendar-column{border-right:1px solid var(--border);min-width:0}.calendar-column:last-child{border-right:0}.column-title{display:flex;flex-direction:column;gap:2px;padding:14px;border-bottom:1px solid var(--border);font-size:.875rem;background:#f9fbfc}.column-title small{color:#76868c;font-size:.6875rem}.calendar-column.today .column-title{background:#ecf3e2;color:#39603c}.booking-list{padding:12px;min-height:230px}.booking{display:flex;align-items:stretch;text-align:left;flex-direction:column;border:1px solid #d8e4f0;border-left:3px solid #688caf;background:#edf3fa;padding:10px;gap:5px;width:100%;margin-bottom:10px;font-weight:400;border-radius:5px}.booking.own-booking{background:#edf4e4;border-color:#d9e6c9;border-left-color:#69904d}.booking b{font-size:.8125rem;font-weight:600;overflow-wrap:anywhere}.booking small{display:flex;gap:5px;align-items:center;font-size:.6875rem;color:#6d8080}.booking-time{display:flex;align-items:center;gap:5px;font-size:.6875rem;color:#5e757e;white-space:nowrap}.no-booking{font-size:.75rem;color:#95a1a3;display:block;text-align:center;margin-top:28px}.week-vehicle h3{font-size:.6875rem;color:#62747a;margin:9px 0 6px}.person{display:flex;align-items:center;gap:10px}.avatar{border-radius:50%;background:#eef3f0;color:#6c887a;display:grid;place-items:center;width:36px;height:36px;flex-shrink:0}.permission-groups{display:grid;grid-template-columns:1fr 1fr;gap:20px}.permission-groups section{padding:18px;background:#f8faf9;border:1px solid var(--border);border-radius:9px}.permission-groups h3{margin-bottom:14px;color:#395a4d}.permission{align-items:flex-start;margin:13px 0;font-size:.8125rem}.permission input{margin-top:3px}.permission small{display:block;font-size:.6875rem;color:#8b9798;overflow-wrap:anywhere}.audit-list{padding:0 24px}.audit-list article{display:flex;gap:15px;border-bottom:1px solid var(--border);padding:19px 0}.audit-marker{width:9px;height:9px;flex-shrink:0;background:#d0e2d3;border:2px solid #6e9580;border-radius:50%;margin-top:6px}.audit-list h3{margin-bottom:5px}.audit-list p{font-size:.8125rem;color:#74838a;margin:4px 0}.audit-list details{font-size:.75rem;color:#6a7b80;margin-top:8px;overflow-wrap:anywhere}.audit-list summary{cursor:pointer}.audit-list code{font-size:.6875rem;display:block;white-space:normal;margin-top:10px}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;padding:22px;font-size:.8125rem;color:var(--muted)}.offline-banner{display:flex;align-items:center;gap:12px;background:#fff3d5;color:#855d22;padding:15px 35px;font-size:.8125rem}.offline-banner>svg{flex-shrink:0}.offline-banner span{display:block;font-size:.75rem}.offline-banner button{margin-left:auto;flex-shrink:0;background:transparent;border-color:#debe86}.mobile-menu,.mobile-close,.mobile-scrim{display:none}.login-page{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;background:#fff}.login-brand{padding:48px 60px;background:#12352f;color:#fff;display:flex;flex-direction:column}.login-intro{margin:auto 0;padding:80px 0}.login-intro .eyebrow{color:#c8df85}.login-intro h1{font-size:clamp(2rem,3.5vw,3.5rem);line-height:1.16;margin:17px 0 24px;letter-spacing:-.045em;font-weight:550}.login-intro p{color:#acc5ba;max-width:350px;font-size:1rem}.login-features{display:flex;gap:26px;margin-top:42px;flex-wrap:wrap}.login-features span{display:flex;flex-direction:column;gap:10px;color:#bfd3ca;font-size:.8125rem}.login-features svg{color:#d8f278;width:26px}.login-brand>small{color:#8fac9f;font-size:.75rem}.login-side{display:grid;place-items:center;padding:50px}.login-form{width:100%;max-width:370px}.login-form h2{font-size:2rem;margin-bottom:10px}.login-form>p{font-size:.875rem;color:#839091;margin-bottom:30px}.login-form>.field{margin-bottom:22px}.login-form>.primary{width:100%;margin:8px 0 25px}.login-form .form-hint{font-size:.75rem;line-height:1.7;margin-bottom:0}.app-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#668079}.app-loading img{width:60px;margin-bottom:15px}@media(min-width:1800px){.calendar-grid.week{grid-template-columns:repeat(7,minmax(0,1fr))}}@media(max-width:1200px){.sidebar{width:218px;padding-inline:14px}.workspace{margin-left:218px}main{padding:28px 24px 50px}.topbar{padding-inline:24px}.stats,.vehicle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-toolbar{padding:15px}.login-brand{padding:40px}.dashboard-grid{grid-template-columns:1.3fr 1fr}}@media(max-width:900px){.sidebar{width:245px;transform:translate(-100%);transition:transform .2s}.sidebar.open{transform:translate(0)}.workspace{margin-left:0}.mobile-menu{display:inline-flex}.mobile-close{display:inline-flex;margin-left:auto;background:transparent;border:0;color:#c5d5cd}.sidebar .brand{margin-left:0;margin-right:0}.mobile-scrim.visible{display:block;position:fixed;inset:0;border:0;border-radius:0;background:#102b2980;z-index:25}.dashboard-grid{grid-template-columns:1fr 1fr}.login-brand{padding:32px}.login-side{padding:35px}.login-features{gap:20px}}@media(max-width:700px){main{padding:24px 16px 38px}.topbar{height:62px;padding:0 16px}.breadcrumb{font-size:.75rem}.breadcrumb>span{padding:0 7px}.page-heading{align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:23px}.page-heading h1{font-size:1.6rem}.page-heading p{font-size:.8125rem}.page-heading>.primary{align-self:stretch}.eyebrow{font-size:.625rem}.stats{gap:12px}.stat{padding:18px 15px}.stat-top{align-items:flex-start;font-size:.75rem;min-height:36px}.stat-top svg{width:18px}.stat strong{font-size:2.2rem;margin:10px 0}.stat small{font-size:.6875rem}.dashboard-grid{grid-template-columns:1fr;gap:18px}.panel{padding:20px}.list-panel,.calendar-panel{padding:0}.vehicle-grid{grid-template-columns:1fr}.toolbar{padding:14px;flex-wrap:wrap}.toolbar .search{max-width:none;min-width:170px}.toolbar .count{font-size:.75rem}.filters{padding:13px;gap:8px}.filters>svg{display:none}.filters select{flex:1;max-width:100%;min-width:calc(50% - 8px)}.sort-control{margin-left:0;flex:1;min-width:100%}.sort-control select{width:100%}.responsive-table{overflow:visible}table,tbody,tr,td{display:block;width:100%}thead{display:none}tbody tr{position:relative;padding:15px 17px;border-bottom:1px solid var(--border)}tbody tr:last-child{border-bottom:0}td{padding:6px 0;border:0;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.8125rem;flex-wrap:wrap}td:before{content:attr(data-label);color:#7c8a8f;font-size:.75rem}td:first-child{padding-bottom:14px;display:block}td:first-child:before{display:none}td:first-child strong{font-size:1rem}td:first-child small{font-size:.75rem}td>small{margin:0}td .row-actions{padding-top:5px;flex-wrap:wrap}td strong{white-space:normal}td .person strong{font-size:.9375rem}.row-actions button{min-height:40px;min-width:40px}.modal{padding:21px 20px;max-width:calc(100vw - 20px);max-height:92dvh}.form-grid{grid-template-columns:1fr;gap:16px}.modal-head{margin-bottom:20px}.modal-head h2{font-size:1.1rem}.form-actions{position:sticky;bottom:-24px;background:#fff;padding-bottom:10px}.permission-groups{grid-template-columns:1fr}.calendar-toolbar{gap:12px;padding:12px}.date-switch{width:100%;gap:5px}.date-switch input{flex:1;max-width:none;min-width:0;padding:8px}.date-switch>button:last-child{padding:8px}.calendar-options{width:100%;justify-content:space-between}.calendar-options select{flex:1;min-width:0;max-width:170px}.calendar-options>.icon-button{display:none}.calendar-caption{padding:17px 14px;align-items:flex-start;flex-direction:column;gap:6px}.calendar-grid,.calendar-grid.day{display:block;min-height:0;overflow:visible;border-top:0}.calendar-column{border-right:0;border-top:1px solid var(--border)}.column-title{flex-direction:row;justify-content:space-between;align-items:center;padding:12px 15px}.booking-list{min-height:0;padding:12px 15px}.booking{padding:13px;gap:6px;min-height:88px}.booking b{font-size:.875rem}.booking-time,.booking small{font-size:.75rem}.week-vehicle h3{font-size:.8125rem}.no-booking{margin:6px 0 12px;text-align:left;font-size:.8125rem}.offline-banner{padding:13px 16px;flex-wrap:wrap}.offline-banner>div{flex:1;min-width:210px}.offline-banner button{margin-left:28px;min-height:35px;padding:6px 10px}.login-page{display:block}.login-brand{padding:22px 25px}.login-brand .brand{font-size:1rem}.login-brand .brand img{width:38px;height:38px}.login-intro,.login-brand>small{display:none}.login-side{padding:44px 25px}.login-form{max-width:420px}.login-form h2{font-size:1.75rem}footer{padding:17px;font-size:.6875rem}.audit-list{padding:0 18px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.topbar{position:sticky;top:0;z-index:20;box-shadow:0 1px 6px #102b2910}.sidebar-bottom{padding-top:18px}.date-time-pair{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px}.notification-button{position:relative}.notification-dot{position:absolute;right:5px;top:4px;width:9px;height:9px;border-radius:50%;background:#d1363c;border:2px solid white}.notice{display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:100%;margin:8px 0;padding:14px}.notice.unread{border-left:4px solid #ca3542;background:#fff7f6}.notice small{color:var(--muted)}.update-banner{padding:12px 24px;background:#e6f2d5;display:flex;align-items:center;gap:20px;justify-content:space-between}.offline-settings{margin-bottom:20px}.offline-settings button{margin:0 12px 12px 0}.temporary-password{font-size:1.3rem;width:100%;font-family:ui-monospace,monospace;margin-bottom:20px}.vehicle-warning{padding:12px 18px;background:#fff0e4;color:#8b431d;margin:0}.time-scroll{overflow:auto;max-height:70dvh;overscroll-behavior:contain;position:relative;border-top:1px solid var(--border)}.time-grid{display:grid;grid-template-columns:48px repeat(var(--columns),minmax(170px,1fr));min-width:100%;width:max-content;isolation:isolate}.time-grid:not(.week-grid){width:100%}.time-heading{position:sticky;top:0;z-index:6;background:#f6f9f9;border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:12px 10px;font-size:.8rem;font-weight:650;height:46px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-corner{position:sticky;top:0;left:0;background:#f6f9f9;z-index:8;font-size:.7rem;color:var(--muted);padding:14px 7px;height:46px}.time-scale{height:1440px;position:sticky;left:0;z-index:5;background:#fff}.time-scale span{position:absolute;right:5px;font-size:.65rem;color:#6b7e86;transform:translateY(-50%);background:#fff;padding:0 1px}.time-scale span:first-child{transform:none}.time-column{height:1440px;position:relative;border-right:1px solid var(--border);background:repeating-linear-gradient(to bottom,transparent 0,transparent 29px,#eef1f3 29px,#eef1f3 30px,transparent 30px,transparent 59px,#dce3e7 59px,#dce3e7 60px)}.time-slot{position:absolute;left:0;width:100%;height:30px;min-height:0;padding:0;border:0;border-radius:0;background:transparent}.time-slot:disabled{opacity:1}.time-slot:hover:not(:disabled){background:#e7f1ed88}.time-booking{position:absolute;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:2px;text-align:left;padding:5px 7px;border-radius:5px;border:1px solid white;min-height:0;overflow:hidden;z-index:2;color:#fff;font-size:.72rem;background:#4676c2;line-height:1.25}.time-booking b{font-weight:650;overflow-wrap:anywhere}.time-booking span,.time-booking small{font-size:.65rem}.time-booking:hover:not(:disabled){filter:brightness(.95);background:#4676c2;border-color:#fff}.time-booking.color-1{background:#ad5864}.time-booking.color-2{background:#438273}.time-booking.color-3{background:#8870b0}.time-booking.color-4{background:#ac7236}.time-booking.color-5{background:#557e8e}.time-booking.inactive-booking{background:repeating-linear-gradient(45deg,#966967,#966967 8px,#855655 8px 16px)}.now-line{position:absolute;left:0;right:0;border-top:2px solid #d23737;pointer-events:none;z-index:3}.now-line:before{content:"";position:absolute;top:-5px;left:-4px;width:8px;height:8px;background:#d23737;border-radius:50%}@media(max-width:700px){html{-webkit-text-size-adjust:100%;text-size-adjust:100%}input,select,textarea{font-size:16px!important}main{padding:18px 12px 30px}.topbar{padding:0 12px;gap:8px}.topbar>div{gap:8px}.breadcrumb{font-size:.8rem}.connection{font-size:.65rem}.page-heading{gap:12px;margin-bottom:18px}.page-heading h1{font-size:1.35rem}.page-heading .eyebrow{display:none}.page-heading p{font-size:.8rem}.time-grid:not(.week-grid){grid-template-columns:44px minmax(0,1fr);width:100%}.time-grid.week-grid{grid-template-columns:44px repeat(7,160px)}.time-scroll{max-height:67dvh}.time-booking{font-size:.76rem}.time-heading{font-size:.8rem}.compact-students td:nth-child(3),.compact-students td:nth-child(4),.compact-students td:nth-child(5),.compact-students td:nth-child(6){display:none}.compact-students td:nth-child(2){position:absolute;right:14px;top:13px;width:auto}.compact-students td:nth-child(2):before,.compact-students td:last-child:before{display:none}.compact-students td:first-child{padding-right:80px;padding-bottom:2px}.compact-students td:last-child{padding:0;justify-content:flex-end}.compact-students tbody tr{padding:12px 15px}.compact-students .filters select[aria-label="Fahrlehrer filtern"],.compact-students .filters select[aria-label="Priorität filtern"],.compact-students .sort-control{display:none}.date-time-pair{gap:10px}.update-banner{padding:10px 14px;font-size:.8rem;gap:10px}.calendar-caption{padding:12px}.calendar-caption h2{font-size:.9rem}.calendar-caption .muted{display:none}.form-actions{bottom:-21px}.sidebar{padding-top:max(20px,env(safe-area-inset-top))}.modal{scroll-padding-bottom:90px}}:root{--green:#3f4344;--lime:#71c27a;--muted:#646e71;--border:#dce2df;color:#303b3e;background:#f3f5f3}.sidebar,.login-brand{background:#34393a}.brand img{width:58px;height:58px;padding:5px;background:#fff;border-radius:12px;flex-shrink:0}.brand{font-size:1.13rem}.brand small{color:#c0d2c4}.sidebar .brand{margin-bottom:28px}.sidebar{overflow-y:auto}.sidebar-bottom{padding-top:20px}nav{gap:3px}nav button{padding:10px;color:#dce4df}nav button.active,nav button.active:hover{background:#71c27a;border-color:#71c27a;color:#17321d}nav button:hover:not(:disabled),.sidebar-bottom button:hover:not(:disabled){background:#4d5951}.sidebar-bottom button{color:#d3ddd6}.initials{background:#53685a}.login-intro .eyebrow{color:#71c27a}.login-intro p{color:#c1cec5}.primary,button.primary{background:#3b6941;border-color:#3b6941}button.primary:hover:not(:disabled){background:#2c5332}.segmented button.active{background:#fff;color:#24523d;box-shadow:0 1px 4px #16342c15}.connection-logo{width:29px;height:29px}.connection-logo.connecting{animation:logo-turn 2.5s linear infinite}.app-loading img{width:98px;animation:logo-turn 3s linear infinite}@keyframes logo-turn{to{transform:rotate(360deg)}}.picker-field,.password-input{position:relative;display:flex;min-width:0;width:100%}.picker-field>input,.password-input>input{width:100%;padding-right:48px}.native-picker{position:absolute;right:0;top:0;bottom:0;width:43px;display:grid;place-items:center;border-left:1px solid var(--border);color:#42614a;cursor:pointer;overflow:hidden}.native-picker input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;padding:0;border:0}.native-picker input::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;cursor:pointer;margin:0;padding:0}.password-input>button{position:absolute;right:2px;top:2px;bottom:2px;background:transparent;border:0;min-height:0;padding:8px}.date-navigation{max-width:186px;min-width:0;flex:1}.date-navigation small{display:block;color:#a84343}.date-switch .date-navigation input{max-width:100%;width:100%}.date-time-pair{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.settings-section{margin-top:20px}.record-dl{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr);font-size:.9rem}.record-dl dt,.record-dl dd{margin:0;padding:10px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.record-dl dt{color:var(--muted);padding-right:14px}.record-dl dd{white-space:pre-wrap}.archive-row{display:flex;justify-content:space-between;gap:14px;padding:18px 22px;border-bottom:1px solid var(--border);align-items:center}.archive-row small{display:block;color:var(--muted);margin-top:4px}.list-panel>.form-hint{padding:14px 22px}.priority-number{width:auto;min-width:32px;padding:3px 7px}.intensive-priority{background:#e4f3e5;color:#255d31;border-color:#85bd8c}.notice-row{display:flex;align-items:center;border:1px solid var(--border);border-radius:8px;margin:10px 0;overflow:hidden}.notice-row.unread{border-left:4px solid #be343b;background:#fff4f3}.notice-row .notice{flex:1;min-width:0;border:0;margin:0;border-radius:0;background:transparent;text-align:left}.notice-row>button:last-child{margin-right:8px;flex-shrink:0}.notification-button.has-notices{background:#be343b;border-color:#be343b;color:#fff;animation:notice-pulse 1s ease-in-out 3}.notification-button.has-notices:hover{background:#a72730;color:#fff}.notification-count{font-size:.7rem;min-width:16px;font-weight:700}.notification-dot{display:none}@keyframes notice-pulse{50%{box-shadow:0 0 0 6px #be343b22}}.unified-calendar .time-grid{grid-template-columns:64px repeat(var(--columns),minmax(0,1fr));width:100%;min-width:0}.unified-calendar .time-column,.unified-calendar .time-scale{height:calc(1440 * var(--minute));position:relative;min-width:0}.unified-calendar .time-column{background:repeating-linear-gradient(to bottom,#fff 0 calc(60 * var(--minute)),#f7f9f7 calc(60 * var(--minute)) calc(120 * var(--minute)))}.unified-calendar .time-slot{position:absolute;left:0;right:0;width:100%;min-height:0;background:transparent;border:0;border-top:1px dashed #e4eae5;border-radius:0;margin:0;padding:0}.unified-calendar .time-slot.hour-slot{border-top:1px solid #cfd8d1}.unified-calendar .time-slot:hover:not(:disabled){background:#71c27a22}.unified-calendar .time-scale>button{position:absolute;right:0;left:0;width:100%;border:0;border-top:1px solid transparent;border-radius:0;background:#f5f7f5;font-size:.67rem;padding:0 6px;min-height:0;justify-content:flex-end;align-items:flex-start;color:#859289;font-weight:400}.unified-calendar .time-scale>button.full-hour{font-weight:650;font-size:.75rem;color:#4c6254;border-top-color:#cfd8d1}.unified-calendar .time-scale>button:hover:not(:disabled){background:#d9ecdc}.unified-calendar .time-heading,.unified-calendar .time-corner{min-width:0;font-size:.8rem;border-radius:0;border-top:0;min-height:44px;height:44px;margin:0;padding:8px 2px;top:0;position:sticky;background:#f2f6f2;z-index:5;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #cbd8ce}.unified-calendar .time-heading.today{background:#dff0e1;color:#23542b}.unified-calendar .time-booking{background:color-mix(in srgb,var(--vehicle) 27%,white);color:#253d2b;border:1px solid color-mix(in srgb,var(--vehicle) 60%,white);border-left:4px solid var(--vehicle);border-radius:5px;display:block;padding:4px 6px;overflow:clip;font-size:.82rem;line-height:1.35;min-height:0;text-align:left}.unified-calendar .time-booking:hover{background:color-mix(in srgb,var(--vehicle) 40%,white);border-color:var(--vehicle)}.booking-content{position:sticky;top:47px;display:flex;flex-direction:column;gap:2px;max-height:100%;overflow:hidden}.booking-content b{font-size:inherit;overflow-wrap:anywhere}.booking-content small{font-size:.73rem;color:inherit;white-space:normal}.booking-content>span{font-size:.72rem;white-space:nowrap}.unified-calendar .inactive-booking,.unified-calendar .inactive-booking:hover{background:repeating-linear-gradient(45deg,#f0e9e9,#f0e9e9 8px,#e4d9d9 8px 16px);color:#795253;border-color:#b99797}.inactive-booking b{text-decoration:line-through}.vehicle-legend{display:flex;gap:8px 18px;flex-wrap:wrap;padding:0 22px 15px;font-size:.77rem;color:#607368}.vehicle-legend>span{display:flex;gap:7px;align-items:center}.vehicle-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0;border:1px solid #0002}.vehicle-filters{padding:18px 22px;background:#f5f8f5;border-bottom:1px solid var(--border)}.vehicle-filters>.field{max-width:310px}.vehicle-checks{display:flex;gap:12px 20px;flex-wrap:wrap;margin-top:14px}.vehicle-checks .check{font-size:.8rem}.unified-calendar .calendar-caption{touch-action:pan-y;padding-block:17px 12px}.calendar-caption>small{color:var(--muted);font-size:.72rem}.unified-calendar .time-scroll{max-height:72dvh;touch-action:pan-y}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border);touch-action:pan-y}.month-weekday{padding:11px 3px;text-align:center;font-size:.8rem;border-bottom:1px solid var(--border);background:#f4f7f4}.month-day{border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0;min-width:0;min-height:135px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px;padding:12px;overflow:hidden}.month-day.outside{color:#a8b0ab;background:#f9faf9}.month-day.today{background:#e1f1e3}.month-day>strong{font-size:1rem}.month-day small{font-size:.73rem;line-height:1.3}.month-dots{display:flex;gap:4px;flex-wrap:wrap}.month-dots span{width:11px;height:11px;border-radius:50%}.calendar-add-mobile{display:none}@media(max-width:900px){.sidebar{width:275px}.sidebar .brand img{width:50px;height:50px}.sidebar-bottom{padding-top:15px}.sidebar .brand{gap:8px;font-size:1.04rem}.sidebar .brand small{font-size:.68rem}}@media(max-width:700px){.topbar{position:sticky;top:0;z-index:20;height:calc(62px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}.unified-calendar .time-grid{grid-template-columns:49px repeat(var(--columns),minmax(0,1fr));width:100%;min-width:0}.unified-calendar .time-heading{font-size:.69rem}.unified-calendar .time-corner{font-size:.63rem}.unified-calendar .week-grid .time-booking{font-size:.64rem;padding:2px;border-left-width:2px}.week-grid .booking-content small{font-size:.58rem}.week-grid .booking-content>span{font-size:.55rem;white-space:normal}.unified-calendar .calendar-options{flex-wrap:wrap;gap:6px}.calendar-options>button{font-size:.72rem;gap:4px}.segmented button{padding-inline:9px}.date-navigation{max-width:none}.date-switch .date-navigation input{padding-right:38px}.native-picker{width:34px}.date-time-pair{gap:10px}.archive-row{flex-direction:column;align-items:flex-start;padding:15px}.archive-row .row-actions{flex-wrap:wrap}.record-dl{font-size:.8rem}.vehicle-legend{padding:0 12px 12px;gap:6px 13px;font-size:.7rem}.vehicle-filters{padding:13px}.vehicle-checks{gap:10px}.calendar-caption>small{display:none}.month-day{min-height:94px;padding:8px 4px;gap:8px}.month-day small{font-size:.59rem}.month-day>strong{font-size:.85rem}.month-dots{gap:3px}.month-dots span{width:8px;height:8px}.month-weekday{font-size:.73rem}.calendar-add-mobile{display:flex;position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:12;width:58px;height:58px;border-radius:50%;box-shadow:0 6px 20px #23422a44}.connection-logo{width:24px;height:24px}.offline-banner{padding:10px 12px}.offline-banner button{font-size:.7rem;padding:7px;min-width:0}.sidebar-bottom{padding-bottom:env(safe-area-inset-bottom)}}@media(prefers-reduced-motion:reduce){.connection-logo.connecting,.app-loading img,.notification-button.has-notices{animation:none}}.unified-calendar .time-corner{z-index:9}.unified-calendar .time-booking{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.booking-content{flex-shrink:0}
