@font-face{font-family:Local;src:local('Segoe UI')}*{box-sizing:border-box}body{margin:0;background:#f4f5f1;color:#243b36;font-family:Local,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-color:#cb9f47}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button,.button{border:1px solid #d8ded6;border-radius:8px;background:#fff;padding:10px 14px;color:#263e35;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}button:hover,.button:hover{background:#edf2e9}button.primary,.button.primary{background:#245d4b;border-color:#245d4b;color:white}button.primary:hover,.button.primary:hover{background:#194a3a}button.danger{color:#a54134;background:#fff5f2}.shell{display:grid;grid-template-columns:224px 1fr;min-height:100vh}aside{background:#142c29;color:#e1e9dd;padding:30px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.logo{font-weight:700;letter-spacing:-1px;font-size:28px;padding:0 12px}.logo span{color:#d6b566}.tagline{padding:5px 12px 28px;color:#a8bcb3;font-size:12px}nav{display:grid;gap:6px}nav button{background:none;border:0;justify-content:flex-start;color:#becdc4;padding:13px 16px;font-weight:500}nav button:hover{background:#233e37}nav button.selected{background:#dfe9d8;color:#163b2c}nav button .navicon{width:22px;text-align:center;font-size:18px}.sidefoot{margin-top:auto;padding:18px 12px 0;border-top:1px solid #365045;color:#adc0b5;line-height:1.7;font-size:12px}.avatar{width:32px;height:32px;border-radius:50%;background:#e4eadc;color:#31503e;display:grid;place-items:center;font-weight:600}main{min-width:0;padding:0 34px 40px}.topbar{height:81px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dce2d7;color:#738077;font-size:12px}.topbar .owner{display:flex;align-items:center;gap:10px}.topbar button{font-size:12px;padding:6px 9px}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:31px 0 24px}h1{font-size:29px;letter-spacing:-.7px;margin:0 0 7px;font-weight:650}h2{font-size:20px;margin:0 0 14px}h3{font-size:15px;margin:0 0 12px}p{line-height:1.6}small,.muted{color:#7a867c}.pagehead p{margin:0;color:#7a867c;font-size:13px}.actions{display:flex;gap:9px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.stat{background:#fff;border:1px solid #dce2d7;border-radius:12px;padding:17px 20px}.stat .value{font-size:29px;font-weight:600;letter-spacing:-1px;margin:9px 0 3px}.stat .value small{font-size:13px;letter-spacing:0;font-weight:400}.stat label{color:#718074;font-size:12px}.stat .hint{font-size:11px;color:#8c958b}.panel{background:#fff;border:1px solid #dce2d7;border-radius:12px;margin-bottom:20px;overflow:hidden}.panelhead{padding:20px;display:flex;justify-content:space-between;align-items:center;gap:14px}.panelhead h2{margin:0}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar button{padding:8px 12px}.toolbar button.selected{background:#e7eddf}.legend{display:flex;gap:18px;font-size:11px;color:#7a867c;padding:0 20px 17px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.calendar{overflow:auto;border-top:1px solid #e4e7df}.calendar-row{display:grid;min-height:72px;position:relative;border-bottom:1px solid #edf0e9}.calendar-row:last-child{border:0}.calendar-row.header{min-height:54px;background:#f9faf7}.carlabel{position:sticky;left:0;z-index:4;background:#fff;padding:17px 16px;border-right:1px solid #e1e6dc;grid-column:1;grid-row:1;font-weight:600}.carlabel small{display:block;font-size:11px;font-weight:400;margin-top:5px}.header .carlabel{background:#f9faf7;color:#7a867c;font-size:11px;font-weight:500}.day{grid-row:1;border-right:1px solid #eef1eb;text-align:center;padding:10px 0;color:#67776a;min-width:38px;font-size:12px}.header .day small{display:block;font-size:10px;color:#94a08e;margin-top:3px}.day.weekend{background:#fafbf8}.day.today{background:#f0f2de}.day.free{background:transparent;border:0;border-right:1px solid #eef1eb;border-radius:0;padding:0;align-self:stretch}.day.free:hover{background:#edf3e6}.event{grid-row:1;z-index:2;align-self:center;height:38px;margin:0 2px;border:0;border-radius:6px;padding:5px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:left;font-size:11px;min-width:0;box-shadow:inset 3px 0 #6f917a}.event.active{background:#d9e8d7;color:#315c3c}.event.booked{background:#f7ead0;color:#826832;box-shadow:inset 3px 0 #d4b162}.event.overdue{background:#f5dcd5;color:#9a4a3a;box-shadow:inset 3px 0 #c26a54}.event.block{background:#e6e8ec;color:#627080;box-shadow:inset 3px 0 #8b96a4}.event.closed{background:#f0f2ef;color:#839080;box-shadow:inset 3px 0 #aeb9aa}.empty{padding:55px 24px;text-align:center;color:#7a867c}.empty .big{font-size:34px;margin-bottom:12px;color:#97a68c}.empty h2{color:#334f3f}.empty p{max-width:430px;margin:0 auto 20px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.card{background:white;border:1px solid #dce2d7;border-radius:12px;padding:21px}.card h3{font-size:19px}.plate{font-family:monospace;letter-spacing:1px;background:#f3f5ee;border:1px solid #dfe5d7;padding:5px 9px;border-radius:5px;display:inline-block}.card .actions{margin-top:18px}.listrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 20px;border-top:1px solid #eef0e9}.listrow strong{display:block;margin-bottom:4px}.badge{font-size:11px;border-radius:5px;background:#eaf0e4;padding:5px 8px;display:inline-block;white-space:nowrap}.badge.booked{background:#f7ead0;color:#826832}.badge.active{background:#d9e8d7;color:#315c3c}.badge.closed{background:#eef0ea;color:#798574}.badge.cancelled{background:#f4e3de;color:#9a4a3a}.red{color:#b05744}.green{color:#2b7050}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;font-weight:500;color:#7c887b;background:#f9faf7;padding:12px 17px}td{padding:14px 17px;border-top:1px solid #edf0e9;font-size:13px}td button{font-size:12px;padding:6px 10px}.search{min-width:220px}input,select,textarea{border:1px solid #d4dece;border-radius:7px;background:#fff;color:#2d4639;padding:10px 11px;width:100%}textarea{resize:vertical;min-height:78px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}label.field{display:block;font-size:12px;color:#687b6b}label.field span{display:block;margin:0 0 6px}.full{grid-column:1/-1}dialog{border:0;border-radius:14px;padding:0;width:min(780px,95vw);max-height:91vh;color:#243b36;box-shadow:0 25px 100px #071f2940}dialog::backdrop{background:#132e2866;backdrop-filter:blur(3px)}.modalhead{padding:21px 25px;border-bottom:1px solid #e5eade;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:white;z-index:5}.modalhead h2{margin:0}.modalbody{padding:24px}.modalfoot{padding:17px 25px;border-top:1px solid #e5eade;display:flex;justify-content:flex-end;gap:8px;background:#fafbf8}.modalhead button{padding:5px 10px;font-size:18px}.notice{background:#f4f6eb;border:1px solid #e0e6cd;border-radius:8px;padding:12px 15px;font-size:12px;line-height:1.6;margin-bottom:16px}.notice.warn{background:#fff5e6;border-color:#f0dbb6}.detailstats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.detailstats div{background:#f5f7f0;padding:12px;border-radius:7px;font-size:12px}.detailstats strong{display:block;margin-top:5px;font-size:18px}.section{margin:25px 0 12px}.error{color:#ab4835;background:#fff1ed;border-radius:7px;padding:10px;font-size:13px;margin-top:12px;display:none}.error:not(:empty){display:block}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#193d2e;color:#fff;padding:13px 22px;border-radius:9px;z-index:100;box-shadow:0 8px 30px #152e2926;display:none;max-width:90vw}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.loginintro{background:#142c29;color:#e7eedf;padding:70px;display:flex;flex-direction:column;justify-content:center}.loginintro h1{font-size:49px;max-width:450px;margin-top:60px;line-height:1.13}.loginintro p{color:#a9beb1;max-width:390px}.loginform{display:flex;align-items:center;justify-content:center;padding:35px}.loginform form{width:360px}.loginform .primary{width:100%;margin-top:18px}.loginform label{margin-top:20px}.template-editor{font-family:Georgia,serif;font-size:15px;line-height:1.6;min-height:420px}.paper{background:white;white-space:pre-wrap;padding:35px;font:15px/1.6 Georgia,serif;border:1px solid #ddd}.step{display:grid;grid-template-columns:1fr 1fr 40px;gap:9px;margin-bottom:8px}.small{font-size:12px}.onboard{padding:25px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f3f5e8}.onboard h2{margin:0 0 6px;font-size:18px}.onboard p{margin:0;color:#778270}.weeklabel{font-size:16px;font-weight:600;min-width:150px;text-transform:capitalize}.stack{display:grid;gap:10px}.scheduleline{font-size:12px;color:#8a9385;margin-top:4px}.docs a{font-size:12px}.balance-note{padding:10px 20px;font-size:12px;color:#7b8778}.mobile-only{display:none}@media(max-width:1100px){.shell{grid-template-columns:185px 1fr}main{padding:0 20px 30px}aside{padding:25px 10px}.stats{gap:8px}.stat{padding:13px}.stat .value{font-size:24px}}@media(max-width:760px){.shell{display:block}aside{position:static;height:auto;padding:14px}.logo{font-size:24px}.tagline,.sidefoot{display:none}nav{display:flex;overflow:auto;margin-top:14px;gap:4px}nav button{padding:9px;white-space:nowrap;font-size:12px}nav .navicon{display:none}main{padding:0 13px 25px}.topbar{height:54px}.pagehead{margin:22px 0 18px;align-items:flex-start}h1{font-size:24px}.pagehead .primary{font-size:12px;padding:10px}.stats{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.panelhead{align-items:flex-start;flex-direction:column}.legend{gap:10px;flex-wrap:wrap}.formgrid{grid-template-columns:1fr}.full{grid-column:auto}.detailstats{grid-template-columns:1fr 1fr}.login{grid-template-columns:1fr}.loginintro{padding:30px}.loginintro h1{font-size:29px;margin-top:20px}.loginintro p{display:none}.loginform{padding:30px 20px}.modalbody{padding:18px}.listrow{padding:12px;gap:8px}.onboard{align-items:flex-start;flex-direction:column}.search{min-width:0}.mobile-only{display:block}.topbar>span{max-width:160px;font-size:10px}}

/* Compact brand lockup, based on the approved red-circle car concept. */
.logo{display:flex;align-items:center;gap:9px;padding:0 6px;font-size:25px;line-height:1.15;letter-spacing:-.65px;white-space:nowrap;color:#fff;font-weight:750}
.logo .brand-mark{display:block;width:36px;height:36px;flex:0 0 36px}
.logo .brand-name{color:inherit}
.loginintro .logo{padding:0;font-size:36px;gap:13px}
.loginintro .brand-mark{width:52px;height:52px;flex-basis:52px}
@media(min-width:761px) and (max-width:1100px){aside .logo{font-size:22px;gap:7px;padding:0 2px}aside .brand-mark{width:31px;height:31px;flex-basis:31px}}
@media(max-width:760px){aside .logo{font-size:25px;padding:0 4px}.loginintro .logo{font-size:29px;gap:10px}.loginintro .brand-mark{width:42px;height:42px;flex-basis:42px}}

/* Touch controls and narrow portrait screens. Tables/calendar keep their own scroll. */
@media(max-width:760px){
 button,.button{min-height:48px;min-width:48px;touch-action:manipulation;line-height:1.3}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;min-height:48px;min-width:0}
 nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow:visible}
 nav button{justify-content:center;padding:8px 3px;font-size:12px;white-space:normal;overflow-wrap:anywhere}
 aside{padding:12px}main{padding:0 12px 24px}
 .pagehead{flex-wrap:wrap;gap:12px}.pagehead>.actions{width:100%}.pagehead .primary{font-size:14px}
 .actions>.button,.actions>button{max-width:100%;white-space:normal;text-align:center}
 .toolbar{width:100%}.toolbar input{flex:1 1 180px;width:auto}
 .panelhead{padding:16px}.card{padding:16px;min-width:0}.cards{grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr))}
 .grid2>*{min-width:0}.grid2 p,.notice,.listrow{overflow-wrap:anywhere}
 .listrow{flex-wrap:wrap}.listrow .actions{flex-wrap:wrap}
 .topbar{height:auto;min-height:58px;gap:8px}.topbar .owner{gap:6px}.topbar .avatar{display:none}.topbar>span{max-width:130px}
 dialog{width:calc(100vw - 16px);max-width:780px;max-height:calc(100dvh - 16px);margin:auto}
 .modalhead{padding:12px;gap:8px}.modalhead h2{font-size:20px}.modalbody{padding:14px}
 .modalfoot{position:sticky;bottom:0;z-index:5;padding:12px;flex-wrap:wrap;gap:8px}
 .modalfoot>button{flex:1 1 110px}.field{min-width:0}
 .step{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 48px;gap:6px}
 .event{height:48px;font-size:12px}.calendar{overscroll-behavior-x:contain}
 .loginform form{max-width:100%}.loginintro{padding:24px}.loginintro h1{font-size:26px}
}
