fieldset{border:0;padding:0;margin:0;min-width:0}
:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#20334a;background:#f3f5f8;font-synthesis:none;--surface:#fff;--bg:#f3f5f8;--line:#e3e8ef;--muted:#768497;--ink:#20334a;--accent:#087e76;--nav:#142c44;--shadow:0 18px 60px #112b4622}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:7px;padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;transition:background .15s}button:hover{background:#edf4f5}button.primary{background:var(--accent);color:white;border-color:var(--accent)}button.primary:hover{background:#066c65}button.danger{color:#ba4141;border-color:#eccaca}button.icon{padding:8px;min-width:34px}button.ghost{background:transparent;border-color:transparent}svg.i{width:18px;height:18px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}input,select,textarea{background:var(--surface);color:var(--ink);border:1px solid #dce2e9;border-radius:6px;padding:10px 11px;min-width:0;font-size:13px}input:focus,select:focus,textarea:focus{outline:2px solid #15988c55;border-color:#15988c}textarea{resize:vertical;min-height:80px}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600}small,.muted{color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:27px;letter-spacing:-.8px;margin-bottom:7px}h2{font-size:20px;letter-spacing:-.4px}h3{font-size:14px}a{color:var(--accent)}
.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--nav);color:#b9c8d7;padding:28px 16px 18px;display:flex;flex-direction:column;z-index:40}.brand{display:flex;align-items:center;gap:11px;color:white;padding:0 12px 32px;font-size:21px;font-weight:750;letter-spacing:-.6px}.brandmark{width:37px;height:37px;border-radius:10px;background:#1f4859;display:grid;place-items:center;color:#61ddc5}.brandmark svg{width:25px;height:25px}.brand small{font-size:9px;display:block;color:#8cabbc;font-weight:500;letter-spacing:1.8px;margin-top:4px}.navlabel{font-size:10px;text-transform:uppercase;letter-spacing:1.6px;color:#7890a6;margin:20px 14px 10px}.navitem{width:100%;justify-content:flex-start;background:transparent;border:0;color:#b5c7d8;border-radius:7px;padding:13px 14px;margin:2px 0;font-weight:500}.navitem:hover{background:#203d56;color:white}.navitem.active{background:#24505c;color:#b7f9e9;box-shadow:inset 3px 0 #62d7bd}.navitem .i{margin-right:4px}.navbottom{margin-top:auto}.server-note{margin:25px 12px 18px;border:1px solid #345067;padding:13px;border-radius:8px;font-size:11px;line-height:1.7;color:#99afc3}.server-note strong{color:#dce9f2;font-size:12px}.userbox{display:flex;align-items:center;gap:10px;border-top:1px solid #30455b;padding:18px 8px 0}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#d8ebe7;color:#277769;font-size:12px;font-weight:700}.userinfo{flex:1;min-width:0}.userinfo strong{font-size:12px;color:white;display:block;overflow:hidden;text-overflow:ellipsis}.userinfo small{font-size:10px}.userbox button{color:#9ab1c6}.main{min-width:0}.topbar{height:65px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:var(--surface);border-bottom:1px solid var(--line);font-size:12px}.breadcrumb{color:var(--muted);display:flex;align-items:center;gap:14px}.breadcrumb strong{color:var(--ink);font-weight:500}.topright{display:flex;align-items:center;gap:18px}.live{font-size:11px;color:#368878;display:flex;align-items:center;gap:6px}.dot{width:6px;height:6px;background:#29ae86;border-radius:100%;display:inline-block}.live.offline{color:#c08525}.live.offline .dot{background:#c08525}.content{padding:29px 32px 20px}.pagehead{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:20px}.pagehead p{color:var(--muted);font-size:13px;margin:0}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:25px}.stat{padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:9px;display:flex;gap:13px;align-items:center}.stat-icon{width:39px;height:39px;border-radius:9px;display:grid;place-items:center;background:#eef4fa;color:#4d7ca9}.stat:nth-child(2) .stat-icon{background:#fff6e5;color:#b38d2a}.stat:nth-child(3) .stat-icon{background:#e8f5ef;color:#2a9874}.stat:nth-child(4) .stat-icon{background:#f0eef8;color:#8670ac}.stat strong{font-size:24px;letter-spacing:-.5px}.stat span{font-size:11px;color:var(--muted);display:block;margin-top:3px}.panel{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow:hidden}.plan-toolbar{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;gap:15px;flex-wrap:wrap}.week-control{display:flex;align-items:center;gap:11px}.week-control h2{font-size:16px;margin:0 6px 0 0}.week-pill{border-radius:5px;background:#eef3f7;color:#728399;font-size:11px;padding:5px 7px}.date-button{width:132px;padding:7px 8px}.segmented{display:flex;background:var(--bg);border-radius:6px;padding:3px;gap:2px}.segmented button{border:0;background:transparent;color:var(--muted);padding:6px 12px;font-size:12px}.segmented .active{background:var(--surface);box-shadow:0 1px 4px #15334d16;color:var(--ink)}.filters{padding:0 20px 18px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.search{position:relative;flex:1;min-width:200px}.search .i{position:absolute;left:11px;top:10px;color:#98a4b4}.search input{width:100%;padding-left:37px}.filters select{max-width:185px;flex:1}.filterreset{color:var(--muted);font-size:11px}.plan-scroll{overflow:auto;max-height:calc(100vh - 370px);min-height:300px;border-top:1px solid var(--line)}.plan{border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed;min-width:1460px}.plan.day{min-width:600px}.plan.month{min-width:6000px}.plan th{position:sticky;top:0;background:#f8fafc;z-index:15;height:58px;padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);border-right:1px solid var(--line);font-size:12px;font-weight:600}.plan th small{display:block;margin-top:5px;font-weight:400;font-size:10px}.plan .vehicle-col{position:sticky;left:0;width:173px;z-index:10;background:var(--surface);border-right:1px solid var(--line);box-shadow:3px 0 5px #16324d04}.plan th.vehicle-col{z-index:25;background:#f8fafc;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.7px}.plan td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top;padding:8px;height:159px}.plan td.vehicle-col{vertical-align:top;padding:19px 14px}.trucklabel{font-size:13px;display:flex;align-items:center;gap:7px;margin-bottom:7px}.trucklabel .i{color:#7890a6;width:16px}.truckdetail{font-size:10px;color:var(--muted);display:block;margin:5px 0}.availability{font-size:9px;color:#4c9680;display:flex;align-items:center;gap:4px;margin-top:16px}.availability .dot{width:4px;height:4px}.plan .weekend{background:#fafbfc}.plan th.today{background:#eaf6f3;color:#138275}.plan td.today{background:#f6fcfa}.tour{position:relative;border:1px solid #c9dedc;border-left:3px solid #5aa99b;border-radius:6px;padding:10px 9px;background:#f2f9f6;margin-bottom:7px;min-width:0;transition:box-shadow .2s}.tour:hover{box-shadow:0 3px 12px #234b5420}.tour[data-status="Unterwegs"]{background:#f0f5fc;border-color:#ceddf0;border-left-color:#6895d1}.tour[data-status="Erledigt"]{background:#f4f6f8;border-color:#dde3e9;border-left-color:#9eabb9}.tour[data-status="Ausgefallen"]{background:#fdf4f3;border-color:#efdddb;border-left-color:#d9948c}.company{font-size:12px;font-weight:700;line-height:1.35;display:block;overflow-wrap:anywhere;padding-right:18px;margin-bottom:6px}.tour-title{font-size:11px;color:#54716b;margin-bottom:8px;overflow-wrap:anywhere}.tour[data-status="Unterwegs"] .tour-title{color:#647fa4}.driverline{font-size:10px;display:flex;gap:5px;align-items:center;margin-bottom:5px}.driverline .i{width:12px;height:12px;color:#7e9893}.tourplate{font-size:9px;color:#81918f;margin-bottom:8px}.tourroute{font-size:10px;color:#6e8383;line-height:1.5;margin-bottom:7px;overflow-wrap:anywhere}.tourfoot{display:flex;align-items:center;justify-content:space-between;gap:3px}.badge{font-size:9px;padding:3px 6px;border-radius:4px;background:#deeee7;color:#447e6e;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.badge.Unterwegs{background:#e0eafa;color:#5780b3}.badge.Erledigt{background:#e7ebef;color:#7b8b9b}.badge.Ausgefallen{background:#f5e0df;color:#b96662}.badge.inactive{background:#f6e9e6;color:#aa7365}.tourtime{font-size:9px;color:#82938f}.tour-edit{position:absolute;right:4px;top:5px;padding:3px!important;background:transparent!important;border:0;color:#7c9a93}.tour-edit .i{width:13px;height:13px}.changebtn{padding:2px 4px;font-size:9px;background:#fff8df;color:#ad8b38;border:0;border-radius:4px;margin-top:8px}.changebtn .i{width:11px;height:11px}.cell-add{opacity:0;display:flex;justify-content:center;width:100%;font-size:10px;background:transparent;border:1px dashed #a8c9c3;padding:7px;color:#649b91}.plan td:hover .cell-add,.cell-add:focus{opacity:1}.cell-empty{min-height:100px;display:flex;align-items:center;justify-content:center;color:#c6cfd8;font-size:18px}.plan td:hover .cell-empty{min-height:62px}.plan-footer{padding:13px 19px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);gap:15px;flex-wrap:wrap}.legend{display:flex;gap:15px}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:6px;height:6px;background:#65a798;border-radius:2px}.legend span:nth-child(2) i{background:#7198cd}.legend span:nth-child(3) i{background:#a9b6c4}.legend span:nth-child(4) i{background:#d79b94}.below-note{font-size:11px;color:#8a98a8;margin:14px 3px;display:flex;align-items:center;gap:7px}.empty{padding:55px 20px;text-align:center;color:var(--muted)}.empty .i{width:35px;height:35px;margin-bottom:13px}.empty h3{color:var(--ink);font-size:16px;margin-bottom:8px}.empty p{font-size:13px;line-height:1.7}.empty button{margin-top:10px}.data-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th{background:#f8fafc;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px;text-align:left;font-weight:600;padding:15px 20px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:17px 20px;border-bottom:1px solid var(--line);max-width:300px;overflow-wrap:anywhere}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f8fbfb}.data-table strong{font-weight:600}.entityname{display:flex;align-items:center;gap:12px}.entityicon{width:34px;height:34px;display:grid;place-items:center;background:#eef4f6;border-radius:7px;color:#66899a}.table-sub{font-size:10px;color:var(--muted);display:block;margin-top:5px}.notice{padding:12px 15px;background:#edf7f3;border:1px solid #d5e9e2;border-radius:7px;color:#427b69;font-size:12px;margin-bottom:20px;display:flex;gap:10px;align-items:center}.audit-list{padding:0 23px}.audit-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:20px 0;border-bottom:1px solid var(--line)}.audit-item:last-child{border-bottom:0}.audit-item .avatar{background:#edf3f5;color:#638193}.audit-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.audit-head time{margin-left:auto;font-size:10px;color:var(--muted)}.audit-context{font-size:12px;margin:8px 0;color:#6d8094}.changes{display:grid;gap:5px;font-size:11px}.change-row{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.change-row b{font-weight:500;min-width:95px}.old{color:#ae7570;text-decoration:line-through;overflow-wrap:anywhere}.new{color:#327e6f;overflow-wrap:anywhere}.audit-hash{font-family:monospace;font-size:9px;color:#a8b2bf;margin-top:9px}.overlay{position:fixed;inset:0;background:#0d233763;backdrop-filter:blur(3px);z-index:100;display:flex;align-items:center;justify-content:center;padding:25px}.modal{width:650px;max-width:100%;max-height:92vh;overflow:auto;background:var(--surface);border-radius:13px;box-shadow:var(--shadow)}.modal.wide{width:820px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:23px 27px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:2}.modal-head h2{margin:0;font-size:19px}.modal-head p{font-size:11px;color:var(--muted);margin:6px 0 0}.modal-body{padding:24px 27px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:22px;margin-top:22px;border-top:1px solid var(--line);flex-wrap:wrap}.form-actions .left{margin-right:auto}.form-error{font-size:12px;color:#ab4945;background:#fff1ee;padding:12px;border-radius:6px;line-height:1.7;margin-bottom:17px}.form-error:empty{display:none}.labelrow{display:flex;align-items:center;justify-content:space-between}.labelrow button{padding:0;font-size:11px;color:var(--accent)}.checklabel{flex-direction:row;align-items:center;gap:9px}.checklabel input{accent-color:var(--accent);width:16px;height:16px}.form-meta{font-size:11px;color:var(--muted);line-height:1.7;margin:17px 0 0}.quick{display:grid;gap:7px;margin-top:10px;border-top:1px solid #cdded9;padding-top:10px}.quick input,.quick select{width:100%;font-size:11px;padding:6px}.quick label{font-size:9px;gap:3px}.quick .actions button{font-size:10px;padding:5px}.drop-target{outline:2px dashed var(--accent);outline-offset:-3px;background:#e5f4ef!important}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#163b39;color:white;box-shadow:var(--shadow);border-radius:8px;padding:13px 20px;font-size:13px;z-index:200;display:none;max-width:85vw}#toast.visible{display:block}#toast.error{background:#a34a46}.loading{padding:60px;text-align:center;color:var(--muted)}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--surface)}.login-art{padding:70px;background:var(--nav);color:white;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-art:before{content:'';position:absolute;width:650px;height:650px;border:1px solid #36606c;border-radius:50%;bottom:-350px;right:-200px;box-shadow:0 0 0 70px #24465566,0 0 0 140px #24465533}.login-art .brand{padding:0;margin-bottom:85px}.login-art h1{font-size:51px;line-height:1.14;letter-spacing:-2px;max-width:470px;position:relative}.login-art h1 span{color:#72d7bd}.login-art p{color:#a1b9ca;font-size:15px;line-height:1.8;max-width:390px;position:relative}.login-caption{font-size:11px;color:#6f94a8;margin-top:65px;position:relative}.login-form{display:flex;justify-content:center;align-items:center;padding:45px}.login-inner{width:360px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--accent);font-weight:700;margin-bottom:18px}.login-inner h2{font-size:26px;margin-bottom:10px}.login-inner p{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:28px}.login-inner form{display:grid;gap:18px}.login-inner button{padding:12px;margin-top:5px}.login-foot{font-size:10px;color:#9ba7b4;margin-top:28px;text-align:center}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-card{padding:25px}.settings-card p{font-size:13px;line-height:1.8;color:var(--muted)}.dark{--surface:#192c3d;--bg:#102131;--line:#304353;--muted:#93a9bb;--ink:#e3edf6;background:var(--bg);color:var(--ink)}.dark .plan th,.dark .plan th.vehicle-col,.dark .data-table th,.dark .plan .weekend{background:#1d3245}.dark .plan td.today{background:#183a3b}.dark .plan th.today{background:#234a49;color:#8cd7c5}.dark input,.dark select,.dark textarea{border-color:#3b5266}.dark button:hover,.dark .data-table tbody tr:hover{background:#294457}.dark .tour{color:#20334a}.dark .stat-icon,.dark .segmented,.dark .entityicon{background:#2a4254}.dark .notice{background:#21443d;color:#b4dccb;border-color:#30594d}.dark .form-error{background:#4b3035;color:#ffc0b5}
@media(min-width:1800px){.content{padding:32px 40px}.plan{min-width:1600px}.tour{padding:12px}.company{font-size:13px}.plan-scroll{max-height:calc(100vh - 385px)}}@media(max-width:1150px){.shell{grid-template-columns:188px minmax(0,1fr)}.sidebar{padding:25px 10px}.content{padding:22px 20px}.topbar{padding:0 20px}.brand{font-size:18px}.stats{gap:9px}.stat{padding:14px 12px}.stat-icon{width:32px;height:32px}.pagehead{align-items:flex-start}.week-control{flex-wrap:wrap}.plan-toolbar{padding:15px}.filters{padding:0 15px 15px}}@media(max-width:760px){.shell{display:block}.sidebar{height:auto;position:relative;padding:15px;display:block}.sidebar .brand{padding:0 0 15px}.sidebar nav{display:flex;overflow:auto;gap:5px}.navlabel,.navbottom,.userbox,.server-note{display:none}.navitem{width:auto;white-space:nowrap;padding:9px;font-size:11px}.topbar{height:50px}.topright{gap:7px}.topright>small{display:none}.content{padding:20px 12px}.pagehead{flex-direction:column;gap:14px;margin-bottom:18px}.pagehead h1{font-size:24px}.stats{grid-template-columns:1fr 1fr;margin-bottom:16px}.stat strong{font-size:21px}.filters select{min-width:115px;max-width:none}.search{min-width:100%}.plan-scroll{max-height:65vh}.cell-add{opacity:1}.login{grid-template-columns:1fr}.login-art{padding:35px}.login-art .brand{margin-bottom:25px}.login-art h1{font-size:33px}.login-art p,.login-caption{display:none}.login-form{padding:35px 25px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.modal-body,.modal-head{padding:20px}.overlay{padding:10px}.settings-grid{grid-template-columns:1fr}.audit-head time{margin-left:0}.legend{gap:9px}.date-button{width:122px}}
@media print{@page{size:A3 landscape;margin:9mm}.sidebar,.topbar,.actions,.filters,.segmented,.date-button,.below-note,.cell-add,.tour-edit,.changebtn,.stats,.week-control>button,#toast{display:none!important}.shell{display:block}.content{padding:0}.pagehead{margin-bottom:12px}.plan-scroll{overflow:visible;max-height:none;min-height:0}.plan{min-width:0;width:100%;font-size:9px}.plan th,.plan .vehicle-col{position:static!important}.plan .vehicle-col{width:110px}.plan td{height:auto;padding:4px}.tour{break-inside:avoid;padding:6px;print-color-adjust:exact}.company{font-size:10px}.plan-toolbar{padding:10px}.panel{overflow:visible}.plan-footer{font-size:9px}body{background:white}.modal-root{display:none}}
