:root{--bg:#000;--panel:#171717;--line:#383838;--text:#f5f5f5;--muted:#aaa;--accent:#d7b35d;--app-height:100dvh;--background-fit:cover}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:#000;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
body{overscroll-behavior:none;touch-action:manipulation}.screen{position:absolute;inset:0;display:none;width:100%;height:var(--app-height);background:#000}.screen.active{display:block}
.pin-screen{background:#000;overflow:hidden}.pin5-screen.invalid-pin .pin5-dots i{background:#ff6f69;box-shadow:0 0 0 2px rgba(255,76,70,.14)}.pin5-screen.invalid-pin .pin5-content{animation:pin5-shake .30s ease}.pin5-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:env(safe-area-inset-top) 26px calc(20px + env(safe-area-inset-bottom));background:radial-gradient(ellipse 72% 54% at 50% 38%,rgba(36,43,50,.25),transparent 74%),linear-gradient(180deg,#070a0d 0%,#05080b 56%,#010203 100%)}.pin5-lock{width:29px;height:29px;margin:0 0 18px;background:rgba(231,238,255,.96);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 10V7a5 5 0 0 1 10 0v3h1.2A1.8 1.8 0 0 1 20 11.8v8.4a1.8 1.8 0 0 1-1.8 1.8H5.8A1.8 1.8 0 0 1 4 20.2v-8.4A1.8 1.8 0 0 1 5.8 10H7Zm2.2 0h5.6V7a2.8 2.8 0 1 0-5.6 0v3Zm2.8 3.2a1.7 1.7 0 0 0-.8 3.2V19h1.6v-2.6a1.7 1.7 0 0 0-.8-3.2Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 10V7a5 5 0 0 1 10 0v3h1.2A1.8 1.8 0 0 1 20 11.8v8.4a1.8 1.8 0 0 1-1.8 1.8H5.8A1.8 1.8 0 0 1 4 20.2v-8.4A1.8 1.8 0 0 1 5.8 10H7Zm2.2 0h5.6V7a2.8 2.8 0 1 0-5.6 0v3Zm2.8 3.2a1.7 1.7 0 0 0-.8 3.2V19h1.6v-2.6a1.7 1.7 0 0 0-.8-3.2Z'/%3E%3C/svg%3E") center/contain no-repeat}.pin5-title{font-size:19px;font-weight:650;line-height:1.15;color:#f4f6fb;text-align:center}.pin5-subtitle{margin-top:9px;font-size:14px;font-weight:560;color:rgba(244,246,251,.9);text-align:center}.pin5-dots{height:20px;margin:18px 0 17px;display:flex;align-items:center;justify-content:center;gap:10px}.pin5-dots i{display:none;width:8px;height:8px;border-radius:50%;background:rgba(245,248,255,.95)}.pin5-dots i.filled{display:block}.pin5-keypad{display:grid;grid-template-columns:repeat(3,clamp(68px,19vw,84px));gap:10px clamp(22px,7vw,31px);justify-content:center}.pin5-key{width:clamp(68px,19vw,84px);height:clamp(68px,19vw,84px);padding:0;border:0;border-radius:50%;background:rgba(105,119,135,.90);color:#fff;display:grid;place-content:center;line-height:.86;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);-webkit-tap-highlight-color:transparent}.pin5-key:active,.pin5-key.pin-key-flash{background:rgba(190,202,214,.98);box-shadow:inset 0 0 0 2px rgba(255,255,255,.46),0 0 16px rgba(205,224,242,.2)}.pin5-key>span{font-size:31px;font-weight:450}.pin5-key small{min-height:.9em;margin-top:.18em;font-size:10px;font-weight:720;line-height:1;letter-spacing:.04em}.pin5-delete{grid-column:1;grid-row:4;font-size:0}.pin5-delete>span{display:block;width:25px;height:19px;background:rgba(255,255,255,.96);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath fill='black' d='M10.2 2h17.3A2.5 2.5 0 0 1 30 4.5v15a2.5 2.5 0 0 1-2.5 2.5H10.2L2 12 10.2 2Zm4.1 5.2-1.5 1.5 3.3 3.3-3.3 3.3 1.5 1.5 3.3-3.3 3.3 3.3 1.5-1.5-3.3-3.3 3.3-3.3-1.5-1.5-3.3 3.3-3.3-3.3Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath fill='black' d='M10.2 2h17.3A2.5 2.5 0 0 1 30 4.5v15a2.5 2.5 0 0 1-2.5 2.5H10.2L2 12 10.2 2Zm4.1 5.2-1.5 1.5 3.3 3.3-3.3 3.3 1.5 1.5 3.3-3.3 3.3 3.3 1.5-1.5-3.3 3.3-3.3-3.3Z'/%3E%3C/svg%3E") center/contain no-repeat}.pin5-key[data-digit="0"]{grid-column:2;grid-row:4}.pin5-ok{grid-column:3;grid-row:4;font-size:18px;font-weight:500;pointer-events:none}.pin5-footer{width:min(360px,100%);display:flex;justify-content:space-between;margin-top:12px;font-size:14px;color:rgba(255,255,255,.86)}@keyframes pin5-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}50%{transform:translateX(7px)}75%{transform:translateX(-4px)}}.home-screen{touch-action:none}.home-track,.home-page{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.home-page{will-change:transform}.home-page:first-child{transform:translateX(0)}.home-page:nth-child(2){transform:translateX(100%)}.home-page img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:var(--background-fit,cover);object-position:center;background:#000;pointer-events:none;user-select:none;-webkit-user-drag:none}
.gallery-screen{background:#000}.gallery-header{position:absolute;z-index:20;top:0;left:0;right:0;height:calc(54px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);display:grid;grid-template-columns:54px 1fr 70px;align-items:center;background:rgba(10,10,10,.94);border-bottom:1px solid #252525}.gallery-back{border:0;background:transparent;color:#fff;font-size:40px;line-height:1}.gallery-title{text-align:center;font-size:17px;font-weight:600}.secret-indicator{justify-self:end;padding-right:15px;font-size:12px;font-weight:750;letter-spacing:.06em;color:#c7c7c7;min-width:60px;text-align:right}.secret-indicator .mode{font-size:12px;margin-right:3px}.secret-indicator .num{font-size:11px}.zoom-stage{position:absolute;top:calc(54px + env(safe-area-inset-top));left:0;right:0;bottom:0;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none;background:#000}.gallery-frame{position:relative;width:100%;height:100%;overflow:hidden;background:#000;touch-action:none}.gallery-canvas{display:block;width:100%;height:100%;background:#000;touch-action:none} .config-screen{overflow:auto;background:#0d0d0d;padding-bottom:30px}.config-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;background:#101010ee;border-bottom:1px solid #333;backdrop-filter:blur(12px)}.config-header h1{font-size:23px;margin:0}.config-header p{margin:3px 0 0;color:#aaa}.config-header button,.panel button{border:1px solid #444;border-radius:10px;background:#292929;color:#fff;padding:10px 14px}.config-header .primary{background:var(--accent);color:#19140b;border-color:var(--accent);font-weight:800}.config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;padding:14px;max-width:1200px;margin:auto}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px}.panel h2{margin:0 0 12px;font-size:18px;color:#f4d789}.panel p{color:#bbb}.panel label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0}.panel input[type=file],.panel select{max-width:65%;background:#252525;color:#fff;border:1px solid #444;border-radius:8px;padding:7px}.panel textarea{width:100%;background:#0e0e0e;color:#eee;border:1px solid #444;border-radius:10px;padding:10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.hint{font-size:13px}.stack-status{min-height:20px;font-size:13px;color:#9fd39f}.stack-status.error{color:#ff8b8b}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.toolbar button{min-width:48px}.toolbar button.active{background:var(--accent);color:#17120b;border-color:var(--accent);font-weight:800}.toolbar.ranks button{min-width:40px}.editor{position:relative;width:100%;aspect-ratio:9/16;overflow:hidden;border:1px solid #444;border-radius:12px;background:#000;touch-action:none;height:auto}.editor img{width:100%;height:100%;object-fit:contain!important;object-position:center!important;display:block;pointer-events:none;background:#000}.zones{position:absolute;inset:0}.zone{position:absolute;border:2px solid var(--zone-color,#ffd23f);background:color-mix(in srgb,var(--zone-color,#ffd23f) 22%,transparent);display:flex;align-items:center;justify-content:center;font-weight:900;text-shadow:0 1px 3px #000;cursor:move;min-width:18px;min-height:18px;touch-action:none}.zone span{pointer-events:none}.zone .handle{position:absolute;right:-5px;bottom:-5px;width:13px;height:13px;background:#fff;border:2px solid #000;border-radius:50%;cursor:nwse-resize;pointer-events:auto}.editor:not(.resize-unlocked) .zone .handle{display:none}.editor.resize-unlocked .zone .handle{display:block}.help ol{padding-left:22px;color:#ddd;line-height:1.55}
@media(max-width:560px){.config-grid{grid-template-columns:1fr;padding:10px}.keypad{grid-template-columns:repeat(3,68px)}.keypad button{width:68px;height:68px}.gallery-header{grid-template-columns:48px 1fr 65px}}

/* CartePhoto 1.1 — configurateur de chapelet visuel repris de StatCartes */
.config-brand{display:flex;align-items:center;gap:11px;min-width:0}.config-app-icon{width:46px;height:46px;border-radius:12px;display:block;box-shadow:0 5px 16px #0008}.config-brand h1,.config-brand p{white-space:nowrap}
.stack-panel>p{font-size:14px;line-height:1.45}.stack-mode{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.panel .mode-card{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:0;padding:13px;border:1px solid #394457;border-radius:14px;background:#0c1118;cursor:pointer}.mode-card input{width:18px;height:18px;accent-color:var(--accent)}.mode-card:has(input:disabled){opacity:.42;cursor:not-allowed}
.stack-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:14px 0}.stack-summary p{margin:5px 0 0}.stack-count{font-size:1.2rem;font-weight:900}.custom-stack-list{display:grid;gap:13px;margin-top:15px}.custom-stack-suit{border:1px solid #2d3746;border-radius:16px;background:#0d1219;padding:11px}.custom-stack-suit h3{margin:0 0 9px;font-size:.86rem}.custom-stack-suit h3.red{color:#ff6e7c}.custom-stack-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.panel .stack-card{position:relative;border:0;border-radius:8px;padding:0;background:#fff;overflow:visible;min-width:0;line-height:0}.panel .stack-card img{display:block;width:100%;height:auto;border-radius:7px;pointer-events:none}.panel .stack-card.selected,.panel .stack-card:disabled{opacity:.55}.order-badge{position:absolute;right:-4px;top:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#3b82f6;color:#fff;font-size:10px;font-weight:900;line-height:1;border:2px solid #0d1219;z-index:2}.admin-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.panel .admin-button{border:0;border-radius:12px;padding:11px 14px;background:#eef2f7;color:#111827;font-weight:850}.panel .admin-button.secondary{background:#252d39;color:#eef2f7;border:1px solid #3a4658}.panel .admin-button.danger{background:#5c1d25;color:#ffe0e4;border:1px solid #8d3140}.panel .admin-button:disabled{opacity:.4}.active-stack-list{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:12px}.active-stack-list span{padding:7px 8px;border-radius:8px;background:#0b1017;color:#cbd5e1;font-size:.76rem}.active-stack-list .red-card{color:#ff8995}.stack-builder-panel{grid-column:1/-1}
@media(max-width:620px){.custom-stack-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stack-mode{grid-template-columns:1fr}.active-stack-list{grid-template-columns:repeat(2,1fr)}.config-app-icon{width:42px;height:42px}.config-header{padding:12px}.config-brand p{font-size:12px}.config-header h1{font-size:21px}}

.zone-controls{margin-top:12px;padding-top:12px;border-top:1px solid #333;display:grid;gap:10px}.zone-controls label{margin:0}.zone-size{display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;gap:10px!important}.zone-size input{min-width:0;width:100%}.zone-size output{min-width:55px;text-align:right;color:var(--accent);font-weight:800}.lock-control{justify-content:flex-start!important;cursor:pointer}.lock-control input{width:18px;height:18px;accent-color:var(--accent)}


/* CartePhoto 1.13 — capture galerie + noms persistants */
.gallery-screen.overview-mode .gallery-header{display:none}
.gallery-screen.overview-mode .zoom-stage{top:0}
.config-header-actions{display:flex;align-items:center;gap:9px}
.config-header .save-config{background:#2b3442;color:#fff;border-color:#46546b;font-weight:800}
.config-header .save-config.saved{background:#285b3a;border-color:#3f8d5a}
.file-setting{padding:4px 0 7px;border-bottom:1px solid #292929}
.file-setting:last-of-type{border-bottom:0}
.stored-file-name{margin-top:-4px;font-size:12px;color:#9eacc0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:16px;text-align:right}
.save-config-status{min-height:18px;margin-top:10px;color:#8fd3a2;font-size:13px;font-weight:700}
@media(max-width:560px){.config-header-actions{gap:6px}.config-header .save-config,.config-header .primary{padding:9px 10px}.stored-file-name{text-align:left;margin-top:2px}}

/* CartePhoto 2.0 — saisie PIN 5 chiffres, faux Home simple */
.simple-home #homePage1{transform:none!important;transition:none!important}
.simple-home #homePage2{display:none!important}
.simple-home{cursor:pointer}
.legacy-hidden{display:none!important}
.gallery-screen.overview-mode .gallery-header{display:block!important;height:0!important;padding:0!important;background:transparent!important;border:0!important;pointer-events:none}
.gallery-screen.overview-mode .gallery-back,.gallery-screen.overview-mode .gallery-title{display:none!important}
.gallery-screen.overview-mode .secret-indicator{position:fixed;z-index:60;top:calc(env(safe-area-inset-top) + 5px);right:6px;display:block!important;min-width:0;padding:0 2px;font-size:8px;line-height:1;color:rgba(255,255,255,.56);text-shadow:0 1px 2px rgba(0,0,0,.8)}
.gallery-screen.overview-mode .secret-indicator .mode{font-size:8px;margin-right:2px}.gallery-screen.overview-mode .secret-indicator .num{font-size:8px}
.gallery-screen.overview-mode .zoom-stage{top:0!important}


/* CartePhoto 2.1 — démarrage et faux PIN style ACAAT */
:root{--status-h:clamp(42px,10.4vw,74px);--sysnav-h:clamp(48px,8vh,62px);--menu-accent:#91bbd4;--menu-panel:#1a2029;--menu-line:rgba(255,255,255,.12);--menu-muted:#98a3af;--menu-bg:#07090d}
body.standalone-display{background:#000;color:#f4f7fa}
.menu-screen{background:radial-gradient(circle at 50% 18%, rgba(67,94,128,.28), transparent 40%), linear-gradient(#06080c, #020305);padding:max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));overflow:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.menu-brand{text-align:center;margin-top:6vh}.menu-brand h1{margin:0;font-size:clamp(52px,14vw,88px);letter-spacing:.06em;line-height:.92}.menu-subtitle{margin-top:14px;font-size:clamp(21px,6vw,32px);letter-spacing:.18em;color:rgba(255,255,255,.72)}.menu-version{margin-top:7px;color:rgba(255,255,255,.34);font-size:11px;letter-spacing:.12em}.menu-actions{width:min(420px,100%);margin:9vh auto 0;display:grid;gap:14px}.primary-action,.secondary-action{border:1px solid var(--menu-line);border-radius:18px;min-height:56px;padding:0 22px;color:#fff;background:var(--menu-panel);font-weight:680}.primary-action{background:var(--menu-accent);font-size:21px;border-color:rgba(255,255,255,.36);color:#10151d}
.performance-screen{background:#000;user-select:none}.performance-screen,.performance-screen *{touch-action:manipulation}#sleepScreen{cursor:pointer;background:#000}
.fake-status{position:absolute;z-index:50;top:0;left:0;right:0;height:var(--status-h);background:#000 url("assets/header-template.png") left top/100% auto no-repeat}.status-time{position:absolute;left:2.7vw;top:2.4vw;font-size:4.1vw;font-weight:680;font-variant-numeric:tabular-nums}.status-network{position:absolute;right:10.2vw;top:2.3vw;color:#efefef;font-size:2.4vw;display:flex;gap:1vw;align-items:center}.status-network-type{display:flex;gap:.45vw;align-items:flex-end}.status-traffic{display:flex;gap:.2vw;align-items:flex-end}.status-traffic i{display:block;width:.45vw;min-width:2px;background:#efefef;border-radius:1px}.status-traffic i:first-child{height:1vw}.status-traffic i:last-child{height:1.5vw}.status-signal{display:flex;gap:.18vw;align-items:flex-end}.status-signal i{display:block;width:.5vw;min-width:2px;background:#efefef;border-radius:1px}.status-signal i:nth-child(1){height:.8vw}.status-signal i:nth-child(2){height:1.2vw}.status-signal i:nth-child(3){height:1.6vw}.status-signal i:nth-child(4){height:2vw}.battery-pill{--fill:45%;position:absolute;right:3.25vw;top:2.72vw;width:6.1vw;height:3.7vw;border-radius:999px;display:grid;place-items:center;color:#252525;background:linear-gradient(to right,#efefef 0,#efefef var(--fill),#787a7d var(--fill),#787a7d 100%);overflow:hidden}.battery-number{font-size:2.25vw;font-weight:760;line-height:1}.system-nav{position:absolute;z-index:60;left:0;right:0;bottom:0;height:var(--sysnav-h);display:grid;grid-template-columns:repeat(3,1fr);align-items:center;pointer-events:none}.recent-lines{justify-self:center;width:20px;height:23px;border-left:2.5px solid #fff;border-right:2.5px solid #fff}.home-ring{justify-self:center;width:28px;height:28px;border:2.5px solid #fff;border-radius:50%;background:transparent}.back-chevron{justify-self:center;width:18px;height:18px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(45deg)}
.pin-screen{background:#000;overflow:hidden;transition:filter .32s ease}.pin-screen.invalid-pin .pin-dots i{background:#ff6f69;box-shadow:0 0 0 2px rgba(255,76,70,.14)}.pin-screen.invalid-pin .pin-content{animation:pin5-shake .30s ease}.pin-content{position:absolute;inset:var(--status-h) 0 var(--sysnav-h);display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse 72% 54% at 50% 43%, rgba(36,43,50,.22), transparent 74%), linear-gradient(180deg, #070a0d 0%, #05080b 56%, #010203 100%)}.lock-clock{display:none!important}.standalone-pin-camera,.standalone-pin-lock,.standalone-pin-subtitle{display:block}.standalone-pin-camera{width:11px;height:11px;margin-top:18px;border-radius:50%;background:radial-gradient(circle at 50% 50%, #020305 0 42%, #0b1118 46% 61%, #020305 66% 100%);box-shadow:0 0 0 1px rgba(135,164,184,.2), inset 0 0 7px rgba(41,99,135,.25)}.standalone-pin-lock{width:29px;height:29px;margin:18px 0 18px;background:rgba(231,238,255,.96);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 10V7a5 5 0 0 1 10 0v3h1.2A1.8 1.8 0 0 1 20 11.8v8.4a1.8 1.8 0 0 1-1.8 1.8H5.8A1.8 1.8 0 0 1 4 20.2v-8.4A1.8 1.8 0 0 1 5.8 10H7Zm2.2 0h5.6V7a2.8 2.8 0 1 0-5.6 0v3Zm2.8 3.2a1.7 1.7 0 0 0-.8 3.2V19h1.6v-2.6a1.7 1.7 0 0 0-.8-3.2Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 10V7a5 5 0 0 1 10 0v3h1.2A1.8 1.8 0 0 1 20 11.8v8.4a1.8 1.8 0 0 1-1.8 1.8H5.8A1.8 1.8 0 0 1 4 20.2v-8.4A1.8 1.8 0 0 1 5.8 10H7Zm2.2 0h5.6V7a2.8 2.8 0 1 0-5.6 0v3Zm2.8 3.2a1.7 1.7 0 0 0-.8 3.2V19h1.6v-2.6a1.7 1.7 0 0 0-.8-3.2Z'/%3E%3C/svg%3E") center/contain no-repeat}.pin-panel{width:min(440px,100%);margin-top:auto;padding:0 25px 20px;text-align:center}.pin-panel h2{margin:0 0 10px;color:#f4f6fb;font-size:19px;font-weight:650;line-height:1.15}.standalone-pin-subtitle{margin:0;color:rgba(244,246,251,.9);font-size:14px;font-weight:560;line-height:1.2;text-align:center;white-space:nowrap}.pin-dots{height:20px;margin:18px 0 17px;display:flex;align-items:center;justify-content:center;gap:9px}.pin-dots i{display:none;width:8px;height:8px;border:0;border-radius:50%;background:rgba(245,248,255,.94)}.pin-dots i.filled{display:block}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px 26px;justify-items:center}.key{position:relative;display:grid!important;place-content:center;gap:0;width:clamp(66px,18vw,82px);height:clamp(66px,18vw,82px);border:0!important;border-radius:50%;background:rgba(105,119,135,.9)!important;color:#fff;font-size:31px;font-weight:450;line-height:.86;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);transition:background-color 90ms ease, box-shadow 90ms ease;-webkit-tap-highlight-color:transparent}.key.pin-key-flash,.key:active{background:rgba(190,202,214,.98)!important;box-shadow:inset 0 0 0 2px rgba(255,255,255,.46),0 0 16px rgba(205,224,242,.2)!important}.key::after{min-height:.9em;margin-top:.18em;font-size:.34em;font-weight:720;line-height:1;letter-spacing:.015em}.key[data-letters]::after{content:attr(data-letters)}.key[data-key="0"]{grid-column:2;grid-row:4}.key.delete{grid-column:1;grid-row:4;font-size:0!important;background:rgba(105,119,135,.9)!important}.key.delete::before{content:"";width:31%;height:25%;background:rgba(255,255,255,.96);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath fill='black' d='M10.2 2h17.3A2.5 2.5 0 0 1 30 4.5v15a2.5 2.5 0 0 1-2.5 2.5H10.2L2 12 10.2 2Zm4.1 5.2-1.5 1.5 3.3 3.3-3.3 3.3 1.5 1.5 3.3-3.3 3.3 3.3 1.5-1.5-3.3-3.3 3.3-3.3-1.5-1.5-3.3 3.3-3.3-3.3Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath fill='black' d='M10.2 2h17.3A2.5 2.5 0 0 1 30 4.5v15a2.5 2.5 0 0 1-2.5 2.5H10.2L2 12 10.2 2Zm4.1 5.2-1.5 1.5 3.3 3.3-3.3 3.3 1.5 1.5 3.3-3.3 3.3 3.3 1.5-1.5-3.3-3.3 3.3-3.3-1.5-1.5-3.3 3.3-3.3-3.3Z'/%3E%3C/svg%3E") center/contain no-repeat}.key.blank{visibility:visible!important;grid-column:3;grid-row:4;background:rgba(105,119,135,.9)!important;pointer-events:none}.key.blank::before{content:attr(data-label);font-size:.72em;font-weight:450;line-height:1}.pin-footer{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-size:13px;color:#fff}.pin-footer span:first-child{display:flex;align-items:center;justify-content:center;width:100%;height:44px;padding:0 16px;border-radius:999px;background:rgba(93,111,128,.92);color:#fff;font-weight:650;line-height:1;box-sizing:border-box;white-space:nowrap}.pin-footer span:last-child{display:none}.pin-screen .system-nav .recent-lines,.pin-screen .system-nav>.back-chevron{visibility:hidden!important}.pin-screen .system-nav .home-ring{grid-column:3;color:rgba(245,248,255,.96)!important}.pin-screen .system-nav .home-ring::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:11px;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.fake-home-screen img{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:fill;background:#000}.simple-home #homePage1{transform:none!important;transition:none!important}.simple-home #homePage2{display:none!important}.simple-home{cursor:pointer}
@media (max-height:760px){.menu-brand{margin-top:2vh}.menu-actions{margin-top:5vh}.standalone-pin-lock{margin:12px 0 14px}.key{width:59px;height:59px;font-size:27px}.keypad{gap:4px 28px}}


/* CartePhoto 2.1.1 — reprise fidèle du PIN ACAAT */
.standalone-display .pin-screen .pin-content { bottom: 0; }
.pin-content { position: absolute; inset: var(--status-h) 0 var(--sysnav-h); display: flex; flex-direction: column; align-items: center; background: radial-gradient(circle at 50% 25%, rgba(35,40,50,.25), transparent 43%), #000; }
.lock-clock { text-align: center; margin-top: clamp(25px,6vh,60px); }
.lock-clock > div { font-size: clamp(62px,18vw,96px); font-weight: 300; letter-spacing: -.06em; line-height: 1; }
.lock-clock small { display: block; margin-top: 8px; font-size: 18px; color: rgba(255,255,255,.82); }
.pin-panel { width: min(440px,100%); margin-top: auto; padding: 0 25px 20px; text-align: center; }
.pin-panel h2 { font-size: 19px; font-weight: 520; margin: 0 0 14px; }
.pin-dots { min-height: 22px; display: flex; justify-content: center; gap: 14px; margin-bottom: 13px; }
.pin-dots i { width: 12px; height: 12px; border: 1.6px solid #fff; border-radius: 50%; }
.pin-dots i.filled { background: #fff; }
.keypad { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px 26px; justify-items: center; }
.key { width: clamp(66px,18vw,82px); height: clamp(66px,18vw,82px); border: 0; border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; display: grid; place-items: center; font-size: 31px; }
.key:active { background: rgba(255,255,255,.23); }
.key.blank { visibility: hidden; }
.key.delete { background: transparent; font-size: 25px; }
.pin-footer { display: flex; justify-content: space-between; margin-top: 10px; font-size: 14px; color: rgba(255,255,255,.84); }
.standalone-display .pin-content,
.standalone-display .lock-clock,
.standalone-display .pin-panel,
.standalone-display .keypad,
.standalone-display .system-nav { box-sizing: border-box; }
.standalone-display .lock-clock { margin: 0; padding: 0; }
.standalone-display .lock-clock > div { line-height: 1; font-variant-numeric: tabular-nums; }
.standalone-display .lock-clock small { margin-top: 6px; }
.standalone-display .pin-panel h2 { font-size: 17px; font-weight: 500; text-align: center; }
.standalone-display .pin-dots { gap: 12px; }
.standalone-display .pin-dots i { width: 11px; height: 11px; }
.standalone-display .key { border: 1px solid rgba(255,255,255,.035); border-radius: 50%; background: rgba(255,255,255,.105); color: #fff; pointer-events: auto !important; touch-action: manipulation; }
.standalone-display .key:active { background: rgba(255,255,255,.25); transform: scale(.96); }
.standalone-display .key.delete { background: transparent; }
.standalone-display .pin-footer { color: rgba(255,255,255,.8); font-size: 13px; }
.standalone-display .home-ring { pointer-events: auto !important; touch-action: manipulation; }
.standalone-pin-camera, .standalone-pin-lock, .standalone-pin-subtitle { display: none; }
.standalone-display .pin-screen { background: #000; }
.standalone-display .pin-screen .performance-header { display: none !important; }
.standalone-display .pin-screen .pin-content { background: radial-gradient(ellipse 72% 54% at 50% 43%, rgba(36,43,50,.22), transparent 74%), linear-gradient(180deg, #070a0d 0%, #05080b 56%, #010203 100%); }
.standalone-display .pin-screen .lock-clock { display: none !important; }
.standalone-display .standalone-pin-camera { display: block; z-index: 4; border-radius: 50%; background: radial-gradient(circle at 50% 50%, #020305 0 42%, #0b1118 46% 61%, #020305 66% 100%); box-shadow: 0 0 0 1px rgba(135,164,184,.2), inset 0 0 7px rgba(41,99,135,.25); }
.standalone-display .standalone-pin-lock { display: block; z-index: 4; background: rgba(231,238,255,.96); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 10V7a5 5 0 0 1 10 0v3h1.2A1.8 1.8 0 0 1 20 11.8v8.4a1.8 1.8 0 0 1-1.8 1.8H5.8A1.8 1.8 0 0 1 4 20.2v-8.4A1.8 1.8 0 0 1 5.8 10H7Zm2.2 0h5.6V7a2.8 2.8 0 1 0-5.6 0v3Zm2.8 3.2a1.7 1.7 0 0 0-.8 3.2V19h1.6v-2.6a1.7 1.7 0 0 0-.8-3.2Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 10V7a5 5 0 0 1 10 0v3h1.2A1.8 1.8 0 0 1 20 11.8v8.4a1.8 1.8 0 0 1-1.8 1.8H5.8A1.8 1.8 0 0 1 4 20.2v-8.4A1.8 1.8 0 0 1 5.8 10H7Zm2.2 0h5.6V7a2.8 2.8 0 1 0-5.6 0v3Zm2.8 3.2a1.7 1.7 0 0 0-.8 3.2V19h1.6v-2.6a1.7 1.7 0 0 0-.8-3.2Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.standalone-display .pin-panel h2 { color: #f4f6fb; font-weight: 650; line-height: 1.15; text-align: center; }
.standalone-display .standalone-pin-subtitle { display: grid; place-items: center; color: rgba(244,246,251,.9); font-weight: 560; line-height: 1.2; text-align: center; white-space: nowrap; }
.standalone-display .pin-dots { gap: 9px; }
.standalone-display .pin-dots i { display: none; width: 8px; height: 8px; border: 0; background: rgba(245,248,255,.94); }
.standalone-display .pin-dots i.filled { display: block; }
.standalone-display .key { position: relative; display: grid !important; place-content: center; gap: 0; border: 0 !important; border-radius: 50%; background: rgba(105,119,135,.9) !important; color: #fff; font-weight: 450; line-height: .86; box-shadow: inset 0 0 0 1px rgba(255,255,255,.025); transition: background-color 90ms ease, box-shadow 90ms ease; -webkit-tap-highlight-color: transparent; }
.standalone-display .key.pin-key-flash { background: rgba(190,202,214,.98) !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.46), 0 0 16px rgba(205,224,242,.2) !important; }
.standalone-display .key::after { min-height: .9em; margin-top: .18em; font-size: .34em; font-weight: 720; line-height: 1; letter-spacing: .015em; }
.standalone-display .key[data-letters]::after { content: attr(data-letters); }
.standalone-display .key[data-key="0"] { grid-column: 2; grid-row: 4; }
.standalone-display .key.delete { grid-column: 1; grid-row: 4; background: rgba(105,119,135,.9) !important; font-size: 0 !important; }
.standalone-display .key.delete::before { content: ""; width: 31%; height: 25%; background: rgba(255,255,255,.96); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath fill='black' d='M10.2 2h17.3A2.5 2.5 0 0 1 30 4.5v15a2.5 2.5 0 0 1-2.5 2.5H10.2L2 12 10.2 2Zm4.1 5.2-1.5 1.5 3.3 3.3-3.3 3.3 1.5 1.5 3.3-3.3 3.3 3.3 1.5-1.5-3.3-3.3 3.3-3.3-1.5-1.5-3.3 3.3-3.3-3.3Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath fill='black' d='M10.2 2h17.3A2.5 2.5 0 0 1 30 4.5v15a2.5 2.5 0 0 1-2.5 2.5H10.2L2 12 10.2 2Zm4.1 5.2-1.5 1.5 3.3 3.3-3.3 3.3 1.5 1.5 3.3-3.3 3.3 3.3 1.5-1.5-3.3-3.3 3.3-3.3-1.5-1.5-3.3 3.3-3.3-3.3Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.standalone-display .key.blank { visibility: visible !important; grid-column: 3; grid-row: 4; background: rgba(105,119,135,.9) !important; pointer-events: none; }
.standalone-display .key.blank::before { content: attr(data-label); font-size: .72em; font-weight: 450; line-height: 1; }
.standalone-display .pin-footer { color: #fff; font-size: 13px; }
.standalone-display .pin-footer span:first-child { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 0 16px; border-radius: 999px; background: rgba(93,111,128,.92); color: #fff; font-weight: 650; line-height: 1; box-sizing: border-box; white-space: nowrap; }
.standalone-display .pin-footer span:last-child { display: none; }
.standalone-display .pin-screen .system-nav .recent-lines,
.standalone-display .pin-screen .system-nav > .back-chevron { visibility: hidden !important; }
.standalone-display .pin-screen .system-nav .home-ring { grid-column: 3; color: rgba(245,248,255,.96) !important; }
.standalone-display .pin-screen .system-nav .home-ring::after { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 11px; border: 0; border-left: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; border-radius: 0; transform: translate(-50%, -50%) rotate(45deg); }
.pin-screen.invalid-pin .pin-dots i { background: #ff6f69; box-shadow: 0 0 0 2px rgba(255,76,70,.14); }
.pin-screen.invalid-pin .pin-content { animation: pin5-shake .30s ease; }
@media (max-height: 760px) {
  .lock-clock { margin-top: 12px; }
  .pin-panel { padding-bottom: 4px; }
  .key { width: 59px; height: 59px; font-size: 27px; }
  .keypad { gap: 4px 28px; }
}

/* CartePhoto 2.1.13 — aucun faux header/status bar */
.performance-header,.fake-status{display:none!important}


/* CartePhoto 2.1.13 — zone de sécurité Paramètres (iPhone / encoche / barre système) */
:root{--config-safe-top:max(env(safe-area-inset-top),18px)}
.config-screen{
  padding-top:var(--config-safe-top)!important;
  padding-bottom:calc(30px + env(safe-area-inset-bottom))!important;
}
.config-screen .config-header{
  top:var(--config-safe-top)!important;
}


/* CartePhoto 2.1.13 — iPhone : faux Home et fausse Galerie sous la zone système */
:root{--runtime-safe-top:max(env(safe-area-inset-top),18px)}
.ios-device .fake-home-screen{
  background:#000!important;
}
.ios-device .fake-home-screen .home-track{
  top:var(--runtime-safe-top)!important;
  bottom:0!important;
  height:auto!important;
}
.ios-device .gallery-screen{
  background:#000!important;
}
.ios-device .gallery-screen .gallery-header{
  top:var(--runtime-safe-top)!important;
  height:54px!important;
  padding-top:0!important;
}
.ios-device .gallery-screen .zoom-stage{
  top:calc(var(--runtime-safe-top) + 54px)!important;
}
.ios-device .gallery-screen.overview-mode .secret-indicator{
  top:calc(var(--runtime-safe-top) + 5px)!important;
}
.ios-device .gallery-screen.overview-mode .zoom-stage{
  top:var(--runtime-safe-top)!important;
}


/* === v2.1.14 — faux PIN iPhone piloté par image === */
.reference-pin-screen{
  background:#000!important;
  overflow:hidden!important;
  touch-action:manipulation;
}
.reference-pin-viewport{
  position:absolute;
  left:0;
  top:0;
  width:100px;
  height:100px;
  overflow:hidden;
  background:#000;
  transform:translateZ(0);
}
.reference-pin-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:fill;
  user-select:none;
  -webkit-user-select:none;
  -webkit-user-drag:none;
  pointer-events:none;
}
.reference-pin-hotspots{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  pointer-events:none;
}
.reference-pin-key{
  position:absolute!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:0!important;
  pointer-events:auto!important;
  -webkit-tap-highlight-color:transparent!important;
  touch-action:manipulation;
}
.reference-pin-key.pin-key-flash,
.reference-pin-key:active{
  background:transparent!important;
  box-shadow:none!important;
  opacity:0!important;
}
.reference-pin-cancel{
  position:absolute;
  left:67.5%;
  top:87.2%;
  width:26%;
  height:8.5%;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  opacity:0;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.reference-pin-fill-dots{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:8;
}
.reference-pin-fill-dots i{
  position:absolute;
  display:none;
  margin:0;
  padding:0;
  border:0;
  border-radius:50%;
  background:#fff;
  box-shadow:none;
}
.reference-pin-fill-dots i.filled{display:block}
.reference-pin-screen.invalid-pin{filter:none!important}
.reference-pin-screen.invalid-pin .reference-pin-viewport{animation:none!important}
.reference-pin-screen .pin-menu-hitbox{
  position:absolute;
  left:0;
  top:0;
  width:14%;
  height:7%;
  z-index:20;
  border:0;
  background:transparent;
  opacity:0;
}


/* === v2.1.15 — réglage visuel des zones du faux PIN === */
.pin-zone-panel{
  grid-column:span 1;
}
.pin-zone-panel h3{
  margin:16px 0 8px;
  font-size:15px;
}
.pin-zone-toolbar,
.pin-dot-toolbar{
  align-items:center;
}
.pin-zone-toolbar button{
  min-width:42px;
}
.pin-zone-toolbar button[data-key="cancel"]{
  min-width:86px;
}
.pin-dot-toolbar button{
  min-width:72px;
}
.pin-zone-editor{
  aspect-ratio:699/1536!important;
  max-width:440px;
  margin:12px auto 0;
  background:#000;
  touch-action:none;
}
.pin-zone-editor img{
  width:100%;
  height:100%;
  object-fit:fill!important;
  pointer-events:none;
}
.pin-editor-zone{
  border:2px solid var(--zone-color);
  background:color-mix(in srgb,var(--zone-color) 20%,transparent);
  color:#fff;
  text-shadow:0 1px 3px #000;
}
.pin-editor-key{
  border-radius:50%;
}
.pin-editor-key.pin-editor-cancel{
  border-radius:10px;
}
.pin-editor-dot{
  border-radius:50%;
  /* Important : ne jamais forcer une taille mini dans l'éditeur.
     Sinon le rectangle s'agrandit depuis son coin haut-gauche et son centre
     ne correspond plus au centre utilisé en production. */
  min-width:0!important;
  min-height:0!important;
}
.pin-editor-zone.selected{
  --zone-color:#ffd23f!important;
  border-width:3px;
  background:rgba(255,210,63,.28);
  z-index:4;
}
.pin-editor-zone .zone-label{
  padding:2px 4px;
  border-radius:5px;
  background:rgba(0,0,0,.58);
  font-size:11px;
  line-height:1;
  white-space:nowrap;
}
.pin-editor-dot .zone-label{
  transform:translateY(-130%);
}
.pin-zone-controls{
  margin-top:14px;
}
