:root{color-scheme:dark;--bg:#080e1e;--surface:#141e33;--surface2:#1e2a44;--stroke:rgba(255,255,255,.13);--text:#f5f7ff;--muted:#a8b7d4;--gold:#ffc85b;--cyan:#50ddff;--red:#fb6677;--safe:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;background:#070d1a;color:var(--text);font:15px/1.45 system-ui,-apple-system,'Segoe UI',Arial,sans-serif}body{overflow-x:hidden}button,input,select{font:inherit}button{color:inherit;border:0;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.35;cursor:not-allowed}input,select{color:#fff;background:#13223d;border:1px solid #45536d;border-radius:13px;padding:12px;width:100%;outline:none}input:focus,select:focus{border-color:var(--cyan)}.loading{height:100dvh;display:grid;place-content:center;text-align:center}.logo{font-weight:1000;font-style:italic;letter-spacing:-2px;font-size:clamp(34px,9vw,54px);line-height:1;color:white;text-shadow:0 4px 1px #091a35,0 7px 12px #000}.logo em{color:#f95e87;font-style:normal}.app{min-height:100dvh;padding-bottom:calc(87px + var(--safe));max-width:700px;margin:auto;background:#080f20;position:relative;overflow:hidden}.hero{height:clamp(205px,35dvh,325px);background:#13273c url('./assets/bariozeguard_jour.webp') center 43%/cover no-repeat;position:relative}.hero.night{background-image:url('./assets/bariozeguard_nuit.webp')}.hero.cloudy{background-image:url('./assets/bariozeguard_nuageux.webp')}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#080f20 0%,transparent 58%),linear-gradient(90deg,#0712259c,transparent)}.hero .heading{position:absolute;z-index:1;top:16px;left:16px;right:16px}.brand{font-size:26px;font-weight:1000;letter-spacing:-1.5px;font-style:italic;text-shadow:0 2px 8px #050813}.brand span{color:#ff6685}.districtTitle{margin-top:10px;font-size:26px;font-weight:850;max-width:85%;line-height:1.1}.smallline{font-size:12px;color:#d8e8ff}.status{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:-45px 13px 0}.stat{background:rgba(20,30,52,.95);padding:11px 8px;border:1px solid var(--stroke);border-radius:13px;text-align:center;backdrop-filter:blur(10px)}.stat strong{font-size:18px;display:block}.stat span{display:block;color:var(--muted);font-size:11px}.content{padding:17px 14px 25px}.pageHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.pageHead h1{font-size:24px;line-height:1.15;margin:0}.tag{display:inline-flex;align-items:center;padding:4px 9px;border-radius:100px;background:#27354d;color:#bdefff;font-size:11px;font-weight:750}.alert{border:1px solid #f6c55e55;background:#41341b99;color:#ffe4a6;padding:12px 13px;border-radius:13px;font-size:13px}.panel{background:linear-gradient(165deg,#1d2a43,#111a2d);border:1px solid var(--stroke);padding:15px;border-radius:18px;margin:10px 0;box-shadow:0 9px 20px #0003}.panel h2,.panel h3{margin:0 0 6px}.panel h2{font-size:19px}.panel h3{font-size:16px}.panel p{color:var(--muted);margin:4px 0 10px}.muted{color:var(--muted)}.small{font-size:12px}.n{font-variant-numeric:tabular-nums}.row{display:flex;align-items:center;justify-content:space-between;gap:9px}.row.start{align-items:flex-start}.group{display:flex;gap:8px;flex-wrap:wrap}.stack{display:grid;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 14px;min-height:45px;border-radius:12px;background:#283952;color:#fff;font-weight:750;text-align:center;transition:transform .12s;border:1px solid #ffffff11}.btn:active{transform:scale(.97)}.btn.primary{background:linear-gradient(135deg,#f1a647,#fa587f);color:#111629;box-shadow:0 5px 12px #b457453a}.btn.blue{background:#0c7798}.btn.danger{background:#7d283d}.btn.ghost{background:transparent;border:1px solid var(--stroke)}.btn.full{width:100%}.btn.tiny{min-height:35px;padding:6px 10px;font-size:12px}.btn:disabled{box-shadow:none}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tile{background:#1a2a42;border:1px solid var(--stroke);padding:13px 10px;border-radius:14px;text-align:center;min-height:93px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.tile .em{font-size:25px}.tile strong{font-size:12px}.tile small{color:#a5b9d3;font-size:11px}.nav{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(700px,100%);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:8px 4px calc(8px + var(--safe));background:#101c31ed;border-top:1px solid #ffffff24;backdrop-filter:blur(20px)}.nav button{background:transparent;padding:6px 2px;display:grid;place-items:center;gap:3px;font-size:10px;color:#9eafce}.nav button.active{color:var(--gold)}.nav b{font-size:21px}.sep{height:1px;background:var(--stroke);margin:13px 0}.listitem{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #ffffff14}.listitem:last-child{border:0}.listitem .info{min-width:0;flex:1}.listitem h3{margin:0;font-size:15px}.listitem p{margin:3px 0 0;color:#a6b5cc;font-size:12px}.pill{display:inline-flex;align-items:center;gap:4px;border-radius:99px;padding:4px 8px;background:#34455e;font-size:11px;white-space:nowrap}.pill.good{background:#114b45;color:#82f3ca}.pill.gold{background:#473518;color:#ffe0a2}.districts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.district{min-height:100px;background:linear-gradient(125deg,#203852,#111f37);border:1px solid #546f9e55;border-radius:15px;padding:10px;display:flex;flex-direction:column;justify-content:space-between;text-align:left}.district strong{font-size:12px;line-height:1.1}.district .em{font-size:29px}.district.current{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.progress{height:8px;border-radius:99px;background:#30405b;overflow:hidden}.progress div{height:100%;background:linear-gradient(90deg,#45cda1,#68dafa);transition:width .15s}.intro{min-height:100dvh;background:linear-gradient(0deg,#050b17 10%,#050b171c 80%),url('./assets/bariozeguard_jour.webp') center/cover;padding:50px 20px 30px;display:flex;flex-direction:column;justify-content:flex-end}.intro .panel{backdrop-filter:blur(13px);background:#101b30e0}.avatar{width:106px;height:150px;margin:auto;position:relative;--skin:#995732;--shirt:#e8ecf2}.avatar .head{position:absolute;top:12px;left:31px;width:44px;height:49px;background:var(--skin);border-radius:44% 44% 48% 48%;z-index:2;box-shadow:inset -5px -3px 0 #0002}.avatar .hair{position:absolute;top:7px;left:30px;width:46px;height:23px;background:#161119;border-radius:50% 50% 15% 15%;z-index:4}.avatar .body{position:absolute;top:57px;left:17px;width:72px;height:62px;background:var(--shirt);border-radius:20px 20px 10px 10px;box-shadow:inset -12px -7px #0002}.avatar .leg1,.avatar .leg2{position:absolute;top:115px;width:26px;height:32px;background:#111722;border-radius:4px}.avatar .leg1{left:24px}.avatar .leg2{left:55px}.avatar .arm{position:absolute;top:66px;width:13px;height:50px;background:var(--skin);border-radius:8px}.avatar .arm.left{left:5px;transform:rotate(10deg)}.avatar .arm.right{right:5px;transform:rotate(-10deg)}.avatar.sm{transform:scale(.7);transform-origin:center;min-height:100px;margin:-15px auto -20px}.sceneModal{position:fixed;inset:0;z-index:40;background:#030710fa;display:flex;flex-direction:column;justify-content:flex-end;padding:14px 14px calc(24px + var(--safe));max-width:700px;margin:auto}.sceneBg{position:absolute;inset:0;background:url('./assets/bariozeguard_jour.webp') center/cover;opacity:.45}.sceneBg:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#040917 2%,#03081344 85%)}.sceneInner{position:relative;z-index:2}.speaker{color:#ffd477;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:850;margin-bottom:11px}.dialogue{min-height:125px;font-size:19px;line-height:1.5;font-weight:550;padding:20px;background:#091527e0;border:1px solid #ffffff32;border-radius:16px}.sceneCounter{color:#b9cae3;font-size:12px;margin:9px 0}.minigame{position:fixed;inset:0;z-index:45;background:#091122;padding:calc(28px + env(safe-area-inset-top,0px)) 18px 30px;max-width:700px;margin:auto;display:flex;flex-direction:column;justify-content:center;text-align:center}.minigame h1{font-size:29px}.miniGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:23px}.miniBtn{border:2px solid #7794bb66;border-radius:20px;min-height:100px;background:linear-gradient(145deg,#273c5d,#172642);font-size:31px;box-shadow:inset 0 0 18px #a4c7ff17}.miniBtn:active{background:#376d7c}.speed{font-size:37px;font-weight:900;color:var(--gold)}.drive{position:fixed;inset:0;z-index:35;background:#091622;display:flex;flex-direction:column;max-width:700px;margin:auto}.drivehead{padding:16px;display:flex;justify-content:space-between;align-items:center;background:#07101bd9}.roadcanvas{width:100%;height:100%;display:block;touch-action:none}.driveControls{position:absolute;left:0;right:0;bottom:calc(22px + var(--safe));padding:0 15px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.dpad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(3,48px);gap:2px}.control{pointer-events:auto;min-width:47px;min-height:47px;border-radius:14px;background:#0b1730ae;border:1px solid #ffffff63;backdrop-filter:blur(5px);font-size:18px;font-weight:900;user-select:none;touch-action:none}.control:active{background:#3d617c}.pedals{display:flex;gap:10px}.pedals .control{width:66px;height:70px}.toast{position:fixed;z-index:80;top:14px;left:50%;transform:translateX(-50%);background:#182f45;border:1px solid #7dbbca91;color:#fff;padding:10px 16px;border-radius:13px;box-shadow:0 10px 30px #0009;max-width:90%;text-align:center;font-size:13px}.formGrid{display:grid;gap:9px}.formGrid label{font-size:13px;color:#becddd}.notice{font-size:12px;color:#c8a975}.right{float:right}a{color:#8bdcff}@media(min-width:700px){.app{border-left:1px solid #34475f;border-right:1px solid #34475f}}

/* Photothèque réellement libre avec auteurs ; arrière-plans locaux et repli garanti */
.hero.night[style*="background-image"]:after{background:linear-gradient(0deg,#080f20 0%,transparent 58%),linear-gradient(90deg,#071225bb,#07122566),#0d1b4a40}
.photoPreview{border-radius:15px;overflow:hidden;margin:10px 0 16px;background:#121e31;border:1px solid var(--stroke)}
.photoPreview img{width:100%;height:220px;display:block;object-fit:cover}
.photoPreview figcaption{font-size:11px;padding:10px 12px;color:#adbed6}
.photoGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}
.photoThumb{margin:0;background:#0b1529;border:1px solid #34475f;border-radius:12px;overflow:hidden}
.photoThumb img{display:block;width:100%;height:133px;object-fit:cover}
.photoThumb figcaption{font-size:10px;padding:8px;color:#afc2dd;overflow-wrap:anywhere}
.photoThumb strong{font-weight:700;color:#fff}
/* Édition solo — extensions adaptées aux petits écrans Android */
.clothing{margin:0;text-align:center}.clothing h3{font-size:13px;min-height:40px}.clothing p{font-size:12px}.fabric{width:75px;height:82px;background:linear-gradient(140deg,#ffffff36,transparent),var(--fabric);border-radius:16px 16px 8px 8px;margin:4px auto 12px;clip-path:polygon(20% 0,80% 0,100% 22%,85% 38%,85% 100%,15% 100%,15% 38%,0 22%);display:grid;place-items:center;font-size:26px;color:#ffffff44}
.roomScene{position:relative;height:min(50vh,390px);overflow:hidden;border-radius:19px;background:linear-gradient(140deg,var(--decor),#37485c);border:1px solid #ffffff43;box-shadow:inset 0 0 80px #172035a0,0 15px 20px #0005}.room-wall{position:absolute;inset:8% 5% 25%;background:linear-gradient(115deg,#ffffff40,transparent 30%,#0003);border:8px solid #ffffff2c}.room-floor{position:absolute;bottom:0;height:28%;width:100%;background:repeating-linear-gradient(110deg,#5b433b,#624d41 20px,#684e3f 25px);border-top:7px solid #ffffff45}.room-window{position:absolute;left:9%;top:14%;font-size:40px;width:31%;height:33%;background:linear-gradient(#31647a,#b5cad0);box-shadow:0 0 0 8px #e9ddc5,0 0 20px #ffffff40;display:grid;place-items:center}.room-light{position:absolute;right:12%;top:8%;width:45px;height:20px;background:#fff1b9;filter:blur(11px)}.room-object{position:absolute;bottom:13%;right:22%;font-size:clamp(80px,23vw,150px);z-index:2;filter:drop-shadow(0 15px 12px #0007)}.room-name{position:absolute;top:14px;right:14px;background:#060e1ac7;padding:7px 12px;border-radius:50px;font-weight:850}.roomButtons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.planModal{overflow-y:auto;justify-content:flex-start}.planInner{margin:auto 0;width:100%;padding:36px 0 20px}.planInner h1{margin:12px 0;font-size:27px}.planGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.planPhase{background:#0c1525;padding:9px 6px;border:1px solid #ffffff22;border-radius:9px;font-size:12px;display:flex;gap:8px;align-items:center}.planPhase b{border-radius:50%;background:#f19b51;color:#071125;width:21px;height:21px;display:grid;place-items:center;flex:none}
.jailscene{height:205px;background:linear-gradient(#24334b,#080f1a);border-radius:18px;border:4px solid #3c5068;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;letter-spacing:2px}.jailscene>div:first-child{font-size:40px}.cellBars{font-size:50px;letter-spacing:12px;opacity:.6}
.arena,.raceGame{height:100dvh;max-width:700px;margin:auto;background:#080f1d;position:relative;display:flex;flex-direction:column;overflow:hidden}.fightInfo{padding:7px 12px;color:#e8cf9d}.combatField{position:relative;flex:1;min-height:260px;background:repeating-linear-gradient(0deg,#42515d,#42515d 60px,#3a4651 61px,#3a4651 122px);border:5px solid #182637;overflow:hidden}.combatField:before{content:'';position:absolute;left:48%;top:0;bottom:0;border-left:3px dashed #fffffe44}.fighter,.foe{position:absolute;transform:translate(-50%,-50%);width:48px;height:48px;display:grid;place-items:center}.fighter{left:45%;top:73%;z-index:2}.fighter .avatar{transform:scale(.37);transform-origin:top left;margin:0;position:absolute;left:2px;top:0}.foe{font-size:32px;transition:transform .08s;filter:drop-shadow(1px 4px 3px #0008)}.exitZone{position:absolute;top:0;right:0;background:#3bdabe;border-radius:0 0 0 12px;color:#03151e;font-size:10px;letter-spacing:1px;font-weight:900;padding:6px}.combatControls{display:flex;align-items:center;justify-content:space-around;gap:13px;padding:8px 12px 18px;min-height:140px}.combatActions{display:grid;gap:8px}.combatActions .btn{min-width:130px}.arena .drivehead{padding:12px}
.richMini{justify-content:center;gap:16px}.richMini h1{line-height:1.07;font-size:30px}.richMini p{max-width:340px;text-align:center}.richMini .miniGrid{width:min(100%,350px)}.colorGem{display:block;border-radius:15px;width:48px;height:48px;margin:auto;box-shadow:inset 0 0 16px #0005}.reflexDot{display:block;width:49px;height:49px;border-radius:50%;background:#263858;margin:auto;box-shadow:0 0 0 4px #ffffff1c}.reflexDot.lit{background:#ffbf58;box-shadow:0 0 20px #ffe292}.targetDot{font-size:45px;color:#63718a}.targetDot.center{color:#ffcf70;text-shadow:0 0 15px #ffc65b}.memoryStrip{display:flex;gap:14px;justify-content:center;margin:30px 0}.memoryStrip span{font-size:40px;color:#fff4ca}.timingRail{height:48px;border-radius:20px;background:#26354a;position:relative;width:min(100%,360px);margin:25px auto;overflow:hidden}.timingZone{position:absolute;left:41%;width:18%;height:100%;background:#3da78188}.timingMarker{position:absolute;width:8px;height:100%;top:0;background:#fcb64c;border-radius:4px;box-shadow:0 0 12px #ffc86f}
.raceStats{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px}.raceCounters{display:flex;justify-content:space-around;gap:8px;font-size:12px;background:#1a2e49;padding:9px 3px}.raceBar{height:6px;background:#34435d}.raceBar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#4ccfa3,#ffc25f)}.raceCanvas{touch-action:none;display:block;align-self:center;max-width:100%;flex:1;min-height:240px}.racePad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:10px 8px max(16px,env(safe-area-inset-bottom));background:#132035}.raceSteer{background:#27415b;border:1px solid #ffffff35;border-radius:12px;min-height:66px;font-size:18px;font-weight:950;user-select:none;-webkit-user-select:none;touch-action:none}.raceSteer.red{background:#853248}.raceSteer.green{background:#147f66}
@media(max-height:720px){.roomScene{height:260px}.richMini{gap:8px}.richMini h1{font-size:25px}.richMini .miniBtn{min-height:65px}.sceneModal{padding-bottom:14px}}
.casinoBanner{text-align:center;padding:20px 15px;border:2px solid #e7ba58;border-radius:22px;background:radial-gradient(circle at center,#4a2d58,#141126 70%);color:#ffdf8f;font-size:36px;letter-spacing:5px}.casinoBanner h2{font-size:24px;letter-spacing:1px;margin:10px 0}.casinoBanner p{font-size:12px;color:#cfc2d5;letter-spacing:0}.flightModal{overflow-y:auto;justify-content:flex-start}.flightModal .sceneInner{margin:auto 0}.flightGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:20px 0}.flightGrid button{min-height:56px}

.scenePreview{height:210px;background-position:center;background-size:cover;border-radius:13px}
.cityMap{position:relative;width:100%;margin:12px 0;border-radius:17px;overflow:hidden;box-shadow:0 8px 24px #0008;border:2px solid #345c65}.cityMap img{width:100%;height:auto;display:block}.mapPins{position:absolute;inset:0}.mapPin{position:absolute;transform:translate(-50%,-50%);border:2px solid #ffe29a;background:#0e203ee8;color:white;width:43px;height:43px;border-radius:50%;box-shadow:0 0 0 4px #040a1763,0 4px 10px #0009;font-size:22px;display:grid;place-items:center}.mapPin.selected{background:#ffbb4c;color:#101623;border-color:white;transform:translate(-50%,-50%) scale(1.2);z-index:2}.mapPin span{pointer-events:none}
.pauseGame{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;gap:20px;background:linear-gradient(#07101ecc,#06152de8),url('./assets/bariozeguard_nuit.webp') center/cover}.pauseGame>.panel{width:min(100%,420px)}.pauseGame .btn{margin-top:8px}
.hero.rain:before{content:'';position:absolute;z-index:1;inset:0;pointer-events:none;background:repeating-linear-gradient(106deg,transparent 0 19px,#c2e7ff38 20px,#c2e7ff38 22px,transparent 23px 52px);opacity:.5}.hero.fog:before{content:'';position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(100deg,#cbd5dd8e,#d7e2e44a,#c7d1d96d)}.hero.cloudy{filter:saturate(.78)}
.messageList{display:grid;gap:9px}.sms{padding:12px;border-radius:13px;background:#263850;max-width:95%;border:1px solid #ffffff15}.sms p{margin:6px 0;font-size:14px;color:#fff}.sms small{font-size:10px;color:#c5a979}.galleryTiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.galleryTiles figure{margin:0;background:#1a2b44;border-radius:13px;overflow:hidden}.galleryTiles img{width:100%;height:120px;object-fit:cover;display:block}.galleryTiles figcaption{padding:8px;font-size:11px;color:#c7d3e8}
