/* Shared calm composition v3. Loaded last by each page. No behavior changes. */
body.gs2{font-size:15px}
.rail{background:var(--surface);border-right:1px solid var(--line);padding:26px 16px 18px;gap:20px}
.portal-brand{font-size:32px;padding:0 10px;letter-spacing:-1.5px}.portal-brand small{font-size:10px;letter-spacing:1.8px;color:var(--ink-3)}
.portal-workspace{background:var(--ground);border:0;border-radius:20px;padding:14px;color:var(--ink);font-size:14px;font-weight:700}.portal-workspace small{font-size:12px;color:var(--ink-3);font-weight:400}
.rail-nav{gap:6px}.rail-nav:before{display:none}.rail-btn{height:52px;border-radius:18px;padding:0 15px;gap:12px;color:var(--ink-2)}.rail-btn svg{width:22px;height:22px;stroke-width:1.9}.rail-btn:after{font-size:15px;font-weight:700}.rail-btn[aria-current]{background:var(--friendly-sky);box-shadow:none;color:var(--ink)}.rail-btn:hover{background:var(--accent-soft);color:var(--ink)}.rail>.avatar{width:42px;height:42px;margin-left:10px;background:var(--accent-soft);border:0;color:var(--ink);font-size:14px}
.portal-header{padding:0 30px;border-bottom:0}.portal-heading h1{font-size:29px}.portal-demo{background:transparent;padding:0}.portal-view-switch{padding:5px;border-radius:26px}.portal-view-switch a{padding:9px 18px;font-size:14px}.portal-account{gap:12px}
.side{border:0;border-radius:28px;box-shadow:var(--shadow-2)}.side-head{padding:16px 18px 12px;gap:12px;background:var(--surface);border-bottom:1px solid var(--line)}.side-title h1{font-size:22px}.count{font-size:12px;padding:5px 10px}.search{height:48px;border:0;background:var(--ground);border-radius:24px}.search input{font-size:14px}.chips{gap:6px}.chip{height:34px;font-size:12px;padding:0 12px}.list{padding:0 12px 12px}.row{padding:11px 12px;gap:5px;border-top:0;border-bottom:1px solid var(--line-2);margin:0;border-radius:16px}.row[aria-selected=true]{box-shadow:none;background:var(--accent-soft)}.row-name{font-size:16px;font-weight:800}.row-speed{font-size:16px}.row-speed small{font-size:11px}.row-addr{font-size:13px}.row-meta{gap:9px}.plate{font-size:12px;border:0;background:var(--ground);padding:3px 7px}.row .dot{width:9px;height:9px}.portal-demo-notice{font-size:12px;line-height:1.5;border-radius:16px}
.detail{border-radius:28px;max-height:680px}.detail[data-open]{border:0}.detail-head{padding:24px;background:var(--surface)}.detail-id h2{font-size:26px}.veh-ico{width:56px;height:56px;border-radius:20px;background:var(--accent-soft)}.veh-ico img{width:34px;height:34px}.status-text{font-size:13px}.status-line{gap:10px}.tiles{background:var(--ground);border-radius:22px;padding:18px 0}.tile .k{font-size:12px}.tile .v{font-size:31px}.tile .v small{font-size:12px}.tabs{padding:0 24px;gap:22px}.tab{font-size:14px;min-height:46px}.sect{padding:22px 24px}.lbl{font-size:11px}.addr{font-size:15px}.fact .k{font-size:12px}.fact .v{font-size:12px}.detail-foot{padding:20px 24px}.btn{height:48px;font-size:14px;box-shadow:none}.btn-ghost{width:48px}.btn-primary{box-shadow:none}.close{width:38px;height:38px}.pill,.back{height:44px;font-size:14px}
.hist-top{padding:18px 24px;min-height:72px;gap:16px;border-bottom:0}.hist-top h1{font-size:25px}.ctl{min-height:42px;border-radius:18px;font-size:14px}.cp-secs button{font-size:14px;padding-left:14px;padding-right:14px}.cp-secs button[aria-selected=true],.ev-tabs button[aria-selected=true]{background:var(--accent-soft);border-bottom-color:transparent;border-radius:18px}.cp-secs{gap:6px}.vsep{display:none}
.cp-body,.rep-main,.lb-body{padding:20px 24px}.cp-bar{gap:16px;margin-bottom:8px}.cp-search{height:48px}.cp-card{border:0;background:transparent;box-shadow:none;border-radius:0}.cp-table{border-collapse:separate;border-spacing:0 6px;font-size:15px}.cp-table th{background:transparent;border:0;color:var(--ink-3);font-size:13px;padding:0 18px;position:static}.cp-table td{background:var(--surface);border:0;padding:14px 18px}.cp-table td:first-child{border-radius:20px 0 0 20px}.cp-table td:last-child{border-radius:0 20px 20px 0}.cp-table tr:hover td{background:var(--accent-soft)}.cp-table .sel input{width:19px;height:19px}.cp-name{font-size:15px}.cp-sub{font-size:12px;line-height:1.6;margin-top:5px}.cp-t{font-size:13px}.cp-conn{font-size:14px}.cp-table .mono{font-family:var(--sans);font-variant-numeric:tabular-nums}.cp-table .plate{margin-top:3px}.cp-pager{background:transparent;border:0;padding:12px}
.rep-nav,.st-nav{padding:22px 14px;border-right:0}.rep-nav button,.st-nav button{padding:13px 16px;font-size:14px;border-radius:16px}.rep-nav button[aria-current=true],.st-nav button[aria-current=true]{font-weight:800}.card,.rep-card{border:1px solid var(--line);background:var(--surface);padding:20px;border-radius:22px;box-shadow:none}.card h3{font-size:19px}.field label,.field>.k{font-size:14px}.inp{border:0;background:var(--ground);border-radius:16px;min-height:46px}.inp input,.inp select,.inp textarea{font-size:15px}.st-ed-body{padding:24px;gap:18px}.st-ed-head{padding:26px 24px}.st-ed-id h2{font-size:25px}.st-row{padding:13px 16px;border-top:0;margin:4px 8px;width:calc(100% - 16px);border-radius:18px}.st-name{font-size:16px}.st-meta{font-size:12px;line-height:1.5}.st-list-head{padding:22px 16px}.st-tabs .tab{font-size:13px}
.ev-list{border:0;border-radius:26px;margin:22px 0 22px 22px}.ev-tabs button{font-size:14px}.ev-row{padding:13px 16px;border-top:0;border-radius:20px;margin:5px 10px;width:calc(100% - 20px)}.ev-row .n{font-size:16px}.ev-row .s{font-size:13px;line-height:1.5}.ev-row .t{font-size:12px}.ev-ico{width:42px;height:42px;border-radius:15px}.ev-main{padding:30px}.ev-day{font-size:12px}.hist-side,.pl-side{border:0} .stat{background:var(--surface-2);border-radius:20px;padding:18px}.stat .v{font-size:26px}.stat .k{font-size:12px}.leg{padding:16px 12px;border-radius:16px}.pl-row{padding:12px 14px}.player{padding-top:12px;border-top:0}.modal-card{border:0;border-radius:28px;padding:28px}.modal-card h2{font-size:24px}.menu-item{min-height:44px;font-size:14px}.auth-inp{min-height:52px;border:0}.auth-submit{min-height:52px;font-size:16px}.auth h1{font-size:36px}
/* Compact account menu. Desktop destinations already exist in the rail. */
.profile{background:var(--profile-scrim);padding:18px 18px 18px calc(var(--portal-nav) + 14px)}.profile-card{width:300px;border-radius:26px;padding:18px;gap:10px;box-shadow:var(--shadow-2)}.profile-id{padding:0 0 14px;gap:12px}.profile-name{font-size:17px;font-weight:800}.profile-id .avatar{width:44px;height:44px;font-size:14px}.profile-list{gap:5px}.profile-list .menu-item{min-height:44px;padding:0 10px;border-radius:14px;font-size:14px}.profile-list .menu-item:hover{background:var(--ground)}.profile .profile-close{display:flex;min-height:44px;background:var(--ground);border:0;font-size:14px;font-weight:800;border-radius:20px;flex-shrink:0}
@media(min-width:768px){.profile-list a[href^="admin"],.profile-list a[href^="history"],.profile-list a[href^="places"],.profile-list a[href^="logbook"],.profile-list a[href^="tracking.php"]{display:none}}
@media(min-width:768px) and (max-width:1350px){.rail{padding:22px 9px 16px;gap:18px}.portal-brand{font-size:23px;padding:0 3px}.rail-btn{height:61px;padding:7px 0;gap:6px;flex-direction:column}.rail-btn:after{font-size:11px;display:block}.rail-btn svg{width:23px;height:23px}.rail-nav{gap:3px}.portal-workspace{display:none}.portal-header{padding:0 22px}.portal-heading h1{font-size:25px}.side-head{padding:21px 18px}.row-name{font-size:15px}.row{padding:11px 12px}.detail-head{padding:22px}.detail-id h2{font-size:23px}.tile .v{font-size:27px}}
@media(min-width:768px) and (max-width:1100px){.st-list{width:240px}.st-nav{width:155px}.rep-main,.cp-body,.lb-body{padding:20px}.hist-top{padding:20px;gap:12px}.hist-top h1{font-size:25px}.cp-table td{padding:18px 12px}.cp-name{font-size:15px}.ev-main{padding:20px}}
@media(max-height:760px) and (min-width:768px){.rail{padding-top:18px;gap:13px}.portal-workspace{padding:10px}.rail-btn{height:44px}.rail-nav{gap:3px}.portal-brand small{display:none}.detail{max-height:calc(100% - 174px)}}
@media(max-width:767px){.rail{display:none}.portal-header{padding:0 14px}.portal-heading h1{font-size:21px}.portal-view-switch a{font-size:12px;padding:7px 10px}.portal-view-switch{padding:3px}.side{border-radius:26px 26px 0 0}.side-head{padding:15px 17px;gap:12px}.side-title h1{font-size:22px}.row{padding:16px 12px}.row-name{font-size:15px}.row-addr{font-size:12px}.search input{font-size:16px}.detail,.detail[data-open]{border-radius:26px 26px 0 0;max-height:57%}.detail-head{padding:17px}.detail-id h2{font-size:21px}.tiles{padding:12px 0}.tile .v{font-size:25px}.tile .k{font-size:11px}.detail-foot{padding:14px 17px}.hist-top{padding:18px 16px;gap:12px;min-height:64px}.hist-top h1{font-size:24px}.cp-body,.rep-main,.lb-body,.st-ed-body{padding:14px}.card,.rep-card{padding:18px;border-radius:22px}.card h3{font-size:18px}.inp input,.inp select{font-size:16px}.st-row{padding:16px 12px}.st-nav{padding:8px}.st-nav button,.rep-nav button{font-size:13px}.ev-list{margin:0;border-radius:0}.ev-main{padding:16px}.ev-row{padding:17px 12px}.cp-table,.cp-table tbody{display:block}.cp-table tr{background:var(--surface);border:0;border-radius:20px;margin-bottom:12px;padding:18px 16px;gap:10px}.cp-table td{background:transparent;border:0;padding:0;border-radius:0!important}.cp-table .cp-name{font-size:15px}.cp-table .cp-sub{font-size:12px}.cp-table tr:hover td{background:transparent}.profile{padding:12px;align-items:flex-end}.profile-card{width:100%;max-height:calc(100dvh - 24px);padding:20px}.profile-list .menu-item{min-height:44px}.auth h1{font-size:29px}.auth-tag{font-size:27px}.modal-card{padding:22px}}

/* Shared surfaces and readable interaction states across all pages. */
.gs2 .search,.gs2 .cp-search,.gs2 .auth-inp{background:var(--surface-2);border:1px solid var(--line);box-shadow:none;border-radius:24px}
.gs2 .search:focus-within,.gs2 .cp-search:focus-within,.gs2 .inp:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.gs2 .count{background:var(--surface-2);color:var(--ink-2)}
.gs2 .chip{background:var(--surface-2);color:var(--ink-2)}
.gs2 .chip[aria-pressed=true]{background:var(--friendly-sky);color:var(--ink)}
.gs2 .btn-primary,.gs2 .auth-submit{background:var(--friendly-sky);color:var(--ink);box-shadow:none}
.gs2 .st-list-head,.gs2 .st-ed-head{background:var(--surface)}
.gs2 .auth-art{background:var(--surface-2)}
.gs2 .auth-inp:focus-within{outline:2px solid var(--accent);outline-offset:2px}
