:root{color-scheme:dark;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:#031329;color:#edf7ff;--bg:#04152e;--glass:#09274c;--border:#1c639f;--bright:#0387ff;--ice:#82d6ff;--muted:#b2cbe6;--success:#12d98c;--warn:#ffb75a}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse 450px 380px at 90% 0%,#0c437c66,transparent),linear-gradient(160deg,#031024,#061c39 72%,#041428);color:#eef7ff}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:#72d8ff;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b1f6ff;outline-offset:3px}[hidden]{display:none!important}.winter-sky{position:fixed;inset:0 0 auto;height:270px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 0%,#1964b941,transparent 68%),repeating-radial-gradient(circle at 50% -250%,#97cdfb25 0 1px,transparent 1px 48px)}h1,h2,h3,p{margin:0}h1{letter-spacing:-.8px;font-size:clamp(28px,6vw,38px)}h2{letter-spacing:-.35px;font-size:18px}.kicker{display:block;font-weight:800;letter-spacing:2px;color:#57b8ff;font-size:10px;margin-bottom:9px}.tiny,.hint{font-size:12px;color:var(--muted);line-height:1.55}.hint{margin:20px 4px}.lead{margin:9px 0 22px;color:var(--muted);line-height:1.5}.brand,.head-right,.app-head,.page-heading,.section-top,.detail-heading,.count-row,.actions,.route-head,.list-meta,.top-row,.stop-heading,.detail-actions,.tabstrip{display:flex;align-items:center}.app-head{position:sticky;top:0;z-index:30;justify-content:space-between;gap:12px;padding:14px max(18px,env(safe-area-inset-left));background:#051a35ee;border-bottom:1px solid #1b5793;backdrop-filter:blur(16px);min-height:70px}.brand{gap:8px;font-size:22px}.brand .snowflake{font-size:29px;color:#69d7ff}.head-right{gap:9px}.net{font-size:11px;color:#7cf8c4;background:#043c33b0;border:1px solid #0f9c6d;border-radius:99px;padding:7px 9px;white-space:nowrap}.net i{width:7px;height:7px;display:inline-block;border-radius:50%;background:#21eda8}.net.offline{color:#ffcd9f;background:#5d2b21;border-color:#bb593e}.net.offline i{background:#ffb977}.avatar{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:900;background:linear-gradient(140deg,#0961bf,#28b2ff);color:white;border:1px solid #5eb9ff;flex:none}.avatar.large{width:65px;height:65px;font-size:22px}.circle-button{color:#bfe7ff;border:1px solid #1a5d98;background:#072a51;width:36px;height:36px;border-radius:11px}.app-content{max-width:970px;margin:auto;padding:26px 16px calc(112px + env(safe-area-inset-bottom))}.screen{animation:page-in .19s ease both}@keyframes page-in{from{opacity:.2;transform:translateY(6px)}to{opacity:1;transform:none}}.page-heading{justify-content:space-between;gap:15px;align-items:flex-end;margin-bottom:20px}.page-heading p{color:#b0cee9;margin-top:5px;font-size:14px}.service-badge{background:#06392f;border:1px solid #22c48b;color:#a4f6d2;font-weight:750;font-size:11px;border-radius:99px;padding:9px 13px;white-space:nowrap}.overview-panel,.route-card,.stop-card,.detail-card,.message-feed,.message-form,.profile-card{background:linear-gradient(145deg,#092b53ed,#041930f7);border:1px solid #1265ab;border-radius:17px;box-shadow:inset 0 1px #62c7ff25,0 12px 27px #0004}.overview-panel{overflow:hidden;margin-bottom:17px}.overview-inner{display:grid;grid-template-columns:1fr 165px;min-height:151px}.overview-inner>div:first-child{padding:19px 20px}.eyebrow{font-size:11px;letter-spacing:1.4px;color:#8acbff;margin-bottom:7px}.overview-inner h2{font-size:21px;margin-bottom:15px}.count-row{gap:8px;color:#c2dbf3}.count-row strong{font-size:32px;color:#fff}.count-row .right{margin-left:auto;font-size:12px}.progress-track{height:8px;background:#183f67;border-radius:20px;overflow:hidden;margin-top:12px}.progress-track i{height:100%;display:block;width:0%;background:linear-gradient(90deg,#0783fc,#44d9ff);border-radius:20px;transition:width .25s}.mini-map{position:relative;overflow:hidden;border-left:1px solid #2270b0;background:radial-gradient(ellipse at 70% 40%,#0b6ba17d,transparent),repeating-linear-gradient(32deg,transparent 0 18px,#2d77a450 19px 20px,transparent 22px 45px),repeating-linear-gradient(112deg,transparent 0 28px,#347fb655 29px 30px,transparent 31px 55px),#0b2441}.mini-map .pin-icon{position:absolute;left:47%;top:25%;font-size:56px;color:#66e2ff;text-shadow:0 0 15px #00aaff}.mini-label{position:absolute;bottom:14px;left:9px;right:9px;text-align:center;font-size:10px;color:#e0effe;background:#031d3ecc;border-radius:7px;padding:5px}.tabstrip{border:1px solid #165c9b;border-radius:13px;padding:4px;background:#041a35;gap:4px;margin:14px 0 20px}.tabstrip button{flex:1;border:0;padding:12px 4px;color:#b4d1ed;font-weight:760;font-size:12px;background:transparent;border-radius:9px;white-space:nowrap}.tabstrip button.active{background:#076ef0;color:#fff;box-shadow:0 3px 14px #006fff6e}.tabstrip em{font-style:normal;font-size:11px;margin-left:4px}.section-top{justify-content:space-between;margin:8px 0 14px}.link-button,.text-button{background:none;border:0;color:#70caff;font-size:12px;font-weight:750}.route-card{margin-bottom:17px;overflow:hidden}.route-head{padding:16px;gap:12px;border-bottom:1px solid #1a5181;justify-content:space-between}.route-head h3{font-size:17px;margin-bottom:5px}.route-head p{color:var(--muted);font-size:12px}.badge{border:1px solid #217ed5;background:#084b88;border-radius:22px;padding:7px 11px;font-size:11px;color:#bee6ff;white-space:nowrap;font-weight:800}.stop-card{margin:12px;overflow:hidden;border-radius:13px;padding:14px;background:linear-gradient(115deg,#073665,#051c3a);border-color:#135d99}.stop-heading{gap:11px;align-items:flex-start;margin-bottom:13px}.stop-no{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;background:linear-gradient(145deg,#0c5ee4,#00b6ff);font-size:16px;font-weight:900;box-shadow:0 0 15px #087de366}.stop-title{flex:1;min-width:0}.stop-title b{display:block;font-size:15px;line-height:1.3}.stop-title small{display:block;color:#bbd5ee;margin-top:3px;font-size:12px}.chevron{background:transparent;color:#95d4ff;border:0;font-size:26px;padding:0 0 0 8px}.photo-summary{display:grid;grid-template-columns:110px 1fr;gap:13px;align-items:stretch}.photo-summary img{width:110px;height:104px;object-fit:cover;border-radius:11px;border:1px solid #2c83c5}.photo-missing{min-height:104px;border-radius:11px;border:1px dashed #2a72ab;background:#072445;display:grid;place-items:center;text-align:center;font-size:30px;color:#5bb9f2}.photo-missing small{display:block;font-size:10px;color:#aacbe8;max-width:90px}.stop-note{background:#0e3259;border:1px solid #214b74;border-radius:10px;padding:10px;color:#cde2f8;font-size:12px;line-height:1.45;max-height:104px;overflow:auto}.stop-note b{display:block;color:#9dd5ff;font-size:11px;margin-bottom:4px}.stop-note small{color:#92c8f5}.actions{gap:8px;flex-wrap:wrap;margin-top:13px}.actions>*{flex:1;min-width:100px}.button{border-radius:10px;border:1px solid #2d85d4;background:#0c2f55;padding:12px 10px;color:#edf7ff;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:800;min-height:45px;white-space:nowrap}.button.primary{background:linear-gradient(110deg,#0570e9,#0caaff);border:1px solid #3bbcff;box-shadow:0 4px 17px #007bff52}.button.complete{background:linear-gradient(105deg,#009c68,#14df8e);border-color:#53edb9;color:#012b22}.button.outline{background:#071e3b;border-color:#2a689b}.button.warn{border-color:#d7626b;color:#ffcad0;background:#461c39}.button.full{width:100%}.completed-message{color:#9ef4c8;border:1px solid #167856;background:#04453788;padding:11px;border-radius:10px;margin-top:10px;font-size:12px}.status-flag{font-size:11px;border-radius:20px;display:inline-flex;padding:6px 9px;color:#9cddff;background:#123e69;border:1px solid #1d71ac;margin-top:10px}.status-flag.done{color:#9cfcbe;background:#0b443c;border-color:#108d6d}.status-flag.blocked{color:#ffc39d;background:#4b302a;border-color:#ba583b}.empty{text-align:center;padding:25px 18px;border:1px dashed #23689f;border-radius:14px;color:#b9d8ef;margin:16px 0}.back{background:none;border:none;color:#83cbff;font-weight:750;margin-bottom:18px;padding:0}.detail-heading{justify-content:space-between;margin-bottom:17px}.pill{padding:8px 11px;color:#d8f4ff;background:#095994;border:1px solid #388ecc;border-radius:20px;font-size:11px}.detail-card{overflow:hidden;padding:15px}.detail-photo{height:260px;overflow:hidden;background:#08294f;border:1px solid #2469a2;border-radius:13px;display:grid;place-items:center}.detail-photo img{width:100%;height:100%;object-fit:cover}.detail-card h2{margin:15px 0 5px;font-size:22px}.detail-card>p{color:#aac9e8}.link-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:17px}.detail-block{margin:10px 0;padding:14px 15px;border-radius:13px;background:#0b2b4e;border:1px solid #255985}.detail-block h3{margin-bottom:8px;font-size:14px}.detail-block p{line-height:1.6;font-size:14px;color:#c4dcf3;white-space:pre-wrap}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.details-grid .detail-block{margin:0}.proof-list{display:flex;gap:8px;overflow-x:auto}.proof-list img{width:100px;height:90px;object-fit:cover;border-radius:8px;border:1px solid #2e7ab4}.photo-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}.photo-buttons label{flex:1;cursor:pointer}.photo-buttons input{display:none}.detail-actions{gap:10px;margin:18px 0;align-items:stretch}.detail-actions>*{flex:1}.map-address{padding:15px;display:flex;align-items:center;gap:12px;background:#0b2d53;border:1px solid #1c6ba8;border-radius:12px;margin-bottom:9px}.map-address>*:nth-child(2){flex:1}.map-address b,.map-address small{display:block}.map-address small{color:var(--muted);margin-top:3px}.message-feed{min-height:180px;max-height:390px;overflow:auto;padding:14px;margin-bottom:15px}.message{padding:11px 12px;border:1px solid #24689c;border-radius:13px;margin-bottom:9px;background:#09345c}.message.mine{background:#05529a}.message b{display:block;font-size:11px;color:#9cdbff;margin-bottom:4px}.message p{font-size:13px;white-space:pre-wrap}.message small{color:#a8cdec;font-size:11px;display:block;margin-top:6px}.message-form{padding:16px}.profile-card{padding:18px;display:flex;gap:15px;align-items:center}.profile-card h2{font-size:19px}.profile-card p{color:var(--muted);font-size:12px;margin-top:6px}.profile-actions{display:grid;gap:12px;margin-top:15px}label{display:block;font-size:12px;font-weight:770;color:#c8e5fa;margin:13px 0 6px}input:not([type=file]),textarea,select{background:#0c2b4e;color:#edf8ff;border:1px solid #3974a3;border-radius:10px;min-height:45px;width:100%;padding:11px 12px;outline:none}textarea{resize:vertical}input:focus,textarea:focus,select:focus{border-color:#2cb8ff}.error{color:#ffb5b5;margin-top:10px;font-size:13px}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:space-around;gap:4px;padding:8px max(8px,env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom));border-top:1px solid #2976af;background:#041630f5;backdrop-filter:blur(15px);box-shadow:0 -6px 22px #0005}.bottomnav button{flex:1;min-width:0;color:#a9cae9;background:transparent;border:0;border-radius:10px;padding:4px 3px;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:2px}.bottomnav button span{font-size:24px;line-height:1.2}.bottomnav button.active{color:white;background:#075bb75e;border-bottom:3px solid #23a9ff;font-weight:800}.login-view{min-height:100vh;display:grid;place-items:center;padding:30px 16px;background:radial-gradient(ellipse at top right,#145ea15d,transparent),linear-gradient(160deg,#05172e,#092a4d)}.login-card{background:#071f3e;border:1px solid #2678bc;padding:28px;border-radius:22px;width:min(450px,100%);box-shadow:0 25px 70px #0008}.logo.big{font-size:29px;font-weight:850;margin-bottom:20px}.login-card h1{font-size:36px}.login-card h1 span{color:#44bdff}.login-card p{color:#bbd9f4;line-height:1.55;margin:16px 0 21px}.login-card .text-button{display:block;margin:20px auto 4px}.shade{position:fixed;inset:0;background:#000a;z-index:60;display:grid;place-items:center;padding:16px}.dialog{width:min(420px,100%);background:#0a2547;border:1px solid #2983c9;border-radius:17px;padding:22px;position:relative}.dialog h2{font-size:23px;margin-bottom:15px}.dialog p{margin:9px 0;color:#cce7fa;line-height:1.6}.dialog .close{position:absolute;right:15px;top:12px;background:transparent;border:0;color:white}.toast{position:fixed;top:75px;left:50%;transform:translateX(-50%);max-width:90vw;width:max-content;background:#0b4d7a;border:1px solid #60befe;border-radius:12px;padding:12px 17px;color:white;z-index:90;box-shadow:0 8px 30px #0008;display:none;font-size:13px}.toast.show{display:block}@media(min-width:720px){.route-card{max-width:800px;margin-left:auto;margin-right:auto}.app-content{padding-top:36px}.stop-card{padding:20px}.photo-summary{grid-template-columns:155px 1fr}.photo-summary img,.photo-missing{height:130px;width:155px}.stop-note{max-height:130px}}@media(max-width:470px){.page-heading{align-items:flex-start}.service-badge{padding:7px;font-size:10px}.overview-inner{grid-template-columns:1fr 116px}.overview-inner>div:first-child{padding:16px}.overview-inner h2{font-size:17px}.overview-inner .count-row strong{font-size:26px}.mini-label{font-size:9px}.app-head{padding:12px}.net{font-size:10px}.photo-summary{grid-template-columns:96px 1fr}.photo-summary img{width:96px}.actions>.button{min-width:90px}.actions{gap:6px}.button{font-size:11px;padding:10px 7px}.stop-title b{font-size:14px}.link-grid{grid-template-columns:1fr 1fr}}

.service-badge{cursor:pointer;white-space:nowrap}.service-badge.off-duty{background:#263049;color:#d1ddeb;border-color:#5a748e}.service-badge[aria-pressed=true]{background:#064936;border-color:#19cf86;color:#a6ffd9}

/* V5.5 — finition fidèle au thème Premium Hiver, sans remplacer les données réelles. */
:root{--frost:#63d4ff;--night:#031329;--raised:#09294e;--rim:#1978c4}
body{background:radial-gradient(ellipse 480px 330px at 65% -5%,#16539a66,transparent),radial-gradient(ellipse 270px 220px at 10% 10%,#055b8a24,transparent),linear-gradient(160deg,#021029,#041b36 75%,#04162b);}
.winter-sky{height:340px;background:linear-gradient(to bottom,#06355a16,transparent),repeating-radial-gradient(ellipse at 54% -300%,#5aabff20 0px 1px,transparent 2px 58px);opacity:.9}
.app-head{position:sticky;top:0;z-index:35;box-shadow:0 4px 28px #0005;background:linear-gradient(100deg,#02142eeb,#063462df);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid #2369a5}
.app-head .brand{letter-spacing:-.5px}.snowflake{color:#72daff;text-shadow:0 0 12px #00a7ff90}
.app-content{width:min(100%,1040px);margin:0 auto;padding-bottom:118px}
.page-heading{padding-top:3px}.page-heading h1{font-size:clamp(30px,7vw,44px);letter-spacing:-1.15px}
.page-heading p{font-size:13px;line-height:1.55;color:#c0dbf4;max-width:520px}
.overview-panel,.route-card,.stop-card,.detail-card,.detail-block,.profile-card,.message-form{box-shadow:inset 0 1px 0 #bbecff14,0 12px 28px #0004}
.overview-panel{border:1px solid #2294ef;background:linear-gradient(125deg,#082f5a,#052345 70%,#092f58);border-radius:19px;overflow:hidden}
.overview-inner{min-height:166px}.overview-inner h2{font-size:clamp(16px,4.5vw,24px)}
.count-row strong{color:white!important;font-weight:900}.progress-track{background:#0b426f!important;height:9px;border-radius:10px;overflow:hidden}.progress-track i{background:linear-gradient(90deg,#0079fa,#5fd7ff)!important;border-radius:10px;box-shadow:0 0 12px #2ac9ff77}
.mini-map{background:radial-gradient(ellipse at center,#0a6db675,transparent 68%),repeating-linear-gradient(34deg,transparent 0 21px,#1f659e5d 22px 23px,transparent 24px 46px),repeating-linear-gradient(126deg,#05284a 0 36px,#174e775c 37px 38px,transparent 39px 52px),#041f3b}
.tabstrip{display:flex;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.tabstrip::-webkit-scrollbar{display:none}.tabstrip button{min-height:43px;scroll-snap-align:start}
.route-card{background:linear-gradient(157deg,#052a50,#041a35);border:1px solid #176db7;border-radius:17px}
.route-head{background:linear-gradient(100deg,#083967,#051f3e);}
.stop-card{border:1px solid #2579c4;border-left:3px solid #039bff;background:linear-gradient(117deg,#082f59,#041b36);border-radius:13px}
.stop-card:hover{border-color:#3caefe}.stop-no{background:linear-gradient(145deg,#0063fa,#14bdff);box-shadow:0 0 0 3px #0c3657,0 0 15px #077cef72}
.stop-heading .stop-title b{font-weight:850}.stop-note{border:1px solid #255f9b;background:#0c3158;color:#d9ebff}
.photo-summary img,.detail-photo img{background:#0a325c}
.actions{display:grid;grid-template-columns:.86fr 1fr 1fr;gap:8px;align-items:stretch}
.actions>*{min-width:0!important;min-height:47px!important;line-height:1.1}
.actions .button.complete{background:linear-gradient(105deg,#00855d,#00d889);border-color:#22eda9;color:#002c24}
.actions .button.outline{border:1px solid #3288c9;background:#0b3359}
.actions .button:focus-visible,.all-stop:focus-visible{outline:3px solid #71dcff;outline-offset:2px}
.status-flag{font-weight:800}.status-flag.done{background:#05563d;border-color:#11b078}.status-flag.blocked{background:#522b2a;border-color:#d57a54}
.detail-photo{height:clamp(190px,48vw,360px)}.detail-card{background:linear-gradient(130deg,#062a50,#04192f);border:1px solid #2682cd;border-radius:16px}
.detail-block{border:1px solid #1c609b;background:#082648}.detail-actions .button{min-height:54px}
.all-stop{width:100%;display:flex;gap:11px;align-items:center;text-align:left;color:#f2f8ff;background:linear-gradient(125deg,#072b52,#05203d);border:1px solid #2675b5;padding:14px;border-radius:12px;margin-bottom:9px;min-height:74px}
.all-stop-position{width:33px;height:33px;flex:0 0 33px;display:grid;place-items:center;border-radius:50%;background:#086af1;font-weight:900}
.all-stop-copy{flex:1;min-width:0}.all-stop-copy b{display:block;overflow-wrap:anywhere;font-size:14px}.all-stop-copy small{display:block;color:#b2d2ef;font-size:11px;margin-top:4px}
.bottomnav{border-top:1px solid #267bbb;background:linear-gradient(180deg,#052b50ed,#021026fa);box-shadow:0 -5px 25px #0008}.bottomnav button{transition:color .15s,background .15s;min-height:55px}.bottomnav button.active{border-bottom:3px solid #18b7ff;background:linear-gradient(0deg,#0757a785,#07264c44)}
@media(max-width:500px){.actions{grid-template-columns:1fr 1fr}.actions>a:first-child{grid-column:1/-1}.app-head{padding:11px 13px}.net{max-width:85px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottomnav{gap:0}.bottomnav button{font-size:10px;padding-inline:1px}.bottomnav button span{font-size:21px}.tabstrip button{font-size:11px}.photo-summary{grid-template-columns:96px minmax(0,1fr)}.stop-card{padding:11px}.stop-note{font-size:11px}.page-heading{gap:8px;flex-wrap:wrap}}
@media(min-width:900px){.app-content{padding-inline:30px}.stop-card{margin-inline:17px}.route-card{max-width:100%}.route-card .stop-card{display:inline-block;vertical-align:top;width:calc(50% - 28px)}.bottomnav{left:50%;transform:translateX(-50%);width:min(100%,1040px);border:1px solid #286f9b;border-radius:16px 16px 0 0}}
@media(prefers-reduced-motion:reduce){.bottomnav button,.progress-track i{transition:none!important}}

/* SnowRoute V5.6 — GPS opt-in, responsive, sans changer le thème validé */
.gps-consent-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(115deg,#092d54,#0d4569);border:1px solid #4b99c9;border-radius:19px;margin:14px 0 19px;padding:17px 20px;color:#e6f5ff;box-shadow:0 8px 22px #08192b55}
.gps-consent-bar b{font-size:16px;color:#fff}.gps-consent-bar p{margin:5px 0;font-weight:650;color:#8de0f5}
.gps-consent-bar small{display:block;font-size:12px;line-height:1.45;color:#bdd7ec;max-width:62ch}
.gps-consent-bar .button{min-width:158px;white-space:nowrap}
.gps-consent-bar .button.gps-active{background:#0a766a;border-color:#34e8bc;color:#fff}
@media(max-width:640px){.gps-consent-bar{flex-direction:column;align-items:stretch;padding:15px}.gps-consent-bar .button{width:100%}}
