
:root{--bg:#10191e;--panel:#172127;--panel2:#1d2a2f;--line:#2b3b3d;--text:#ebe5d5;--muted:#94a6a0;--gold:#d7b36e;--green:#9ac4a0;--danger:#df8f82;--blue:#94b9d8;--radius:11px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 35% 0%,#25362f 0,#111c20 45%,#0e171b 100%);color:var(--text);font:13px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-width:880px}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:#223037;color:var(--text);border-radius:6px;padding:9px 13px;transition:background .15s,border-color .15s,transform .1s}button:hover:not(:disabled){background:#30433f;border-color:#75806a}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:normal}h1{font-size:26px;letter-spacing:-.6px}h2{font-size:28px}h3{font-size:20px}[hidden]{display:none!important}.app{max-width:1900px;margin:auto;padding:0 24px}.topbar{height:79px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #324038;gap:20px}.brand{display:flex;align-items:center;text-decoration:none;gap:12px;font-family:Georgia,serif;letter-spacing:3px;font-size:20px;white-space:nowrap}.brand-mark{color:var(--gold);font-size:38px;line-height:1}.brand small{display:block;font:8px/1.8 sans-serif;letter-spacing:2px;color:var(--muted);margin-top:4px}nav{height:100%;display:flex;align-items:stretch;gap:20px}nav button{background:none;border:none;border-bottom:2px solid transparent;border-radius:0;padding:0 5px;color:#aab4aa;font-size:13px}nav button.active{color:var(--gold);border-bottom-color:var(--gold)}nav button:hover:not(:disabled){background:none;border-color:var(--gold);color:var(--text)}nav i{display:inline-block;background:var(--green);width:5px;height:5px;border-radius:50%;vertical-align:middle;margin-left:4px}.top-actions{display:flex;align-items:center;gap:16px}.version{font-size:9px;color:var(--muted);letter-spacing:1.6px}.icon-button{width:32px;height:32px;padding:0;font-size:20px;line-height:28px;background:transparent}.economy-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:65px}.settlement{display:flex;align-items:center;gap:8px;white-space:nowrap}.settlement>span:nth-child(2){font-weight:600}.settlement small{font-size:11px;color:var(--muted);margin-left:6px}.status-dot,.save-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px #98c69344}.resources{display:flex;align-items:center;gap:25px}.res{display:flex;gap:8px;align-items:center}.res .res-value{font-size:15px;font-variant-numeric:tabular-nums}.res small{display:block;color:var(--muted);font-size:9px;margin-top:-3px}.res svg{color:var(--gold);width:19px;height:19px}.connection{color:var(--green);font-size:9px;letter-spacing:1px;border:1px solid #37544b;padding:3px 6px;border-radius:4px;white-space:nowrap}.layout{display:grid;grid-template-columns:210px minmax(400px,1fr) 235px;gap:16px;align-items:start}.left-column,.right-column{display:flex;flex-direction:column;gap:14px}.panel{background:linear-gradient(135deg,#1b282b,#172126);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-title{font-size:10px;font-weight:600;letter-spacing:1.3px;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:flex;justify-content:space-between;align-items:center}.hero-panel{padding:17px}.hero-identity{display:flex;gap:12px;align-items:center;margin-bottom:17px}.portrait{width:54px;height:65px;border:1px solid #50604e;border-radius:6px;background:radial-gradient(#53674c,#263a33);image-rendering:pixelated}.hero-identity h3{font-size:19px;overflow:hidden;max-width:106px;text-overflow:ellipsis}.hero-identity small{font-size:10px;color:var(--muted)}.level-label{color:var(--gold);display:block;font-size:11px;margin-top:4px}.meter-label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:8px 0 4px}.meter-label strong{font-size:10px;color:var(--text);font-weight:400}.meter{height:5px;background:#10191c;border-radius:2px;overflow:hidden}.meter>span{display:block;height:100%;background:#a75752;transition:width .15s}.meter.energy>span{background:#678fa5}.meter.xp>span{background:#b39555}.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:17px 0;padding-top:14px;border-top:1px solid var(--line)}.mini-stat{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.mini-stat b{color:var(--text);font-weight:500}.full-width{width:100%}.small-button{font-size:11px;padding:7px 10px}.objective-panel,.party-panel{padding:16px}.objective-panel h3{font-size:18px;margin-bottom:8px}.objective-panel p{font-size:11px;color:var(--muted);line-height:1.65}.objective-step{display:flex;gap:9px;align-items:center;font-size:11px;color:var(--muted);margin-top:12px}.check{border:1px solid #4b5b51;width:16px;height:16px;border-radius:4px;font-size:10px;text-align:center;line-height:14px;flex:none}.done .check{color:var(--green);background:#2b4338}.done{color:#c7d8bb}.member{display:flex;align-items:center;gap:8px;margin:11px 0 0}.member-dot{height:7px;width:7px;background:#8ab99a;border-radius:50%;flex:none}.member.offline .member-dot{background:#67716a}.member-name{font-size:11px;flex:1}.member small{font-size:9px;color:var(--muted)}.member-squares{display:flex;gap:6px;margin:12px 0 2px}.member-square{width:28px;height:29px;border:1px dashed #40524a;color:#5c7067;text-align:center;line-height:25px;font-size:16px;border-radius:5px}.member-square.occupied{border-style:solid;background:#2b3f36;color:var(--gold)}.keyboard-help{padding:2px 8px;color:#708780;font-size:10px;line-height:2.3}.keyboard-help>span{display:block;font-size:9px;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:4px}kbd{display:inline-block;padding:0 4px;border:1px solid #45594d;background:#1b2c26;border-radius:3px;font:10px/17px monospace;color:#b8c6b7;margin-right:3px;margin-left:5px}.world-panel{border:1px solid #3c4b3e;border-radius:var(--radius);overflow:hidden;background:#162223;box-shadow:0 14px 45px #0003}.scene-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:17px 21px 16px;border-bottom:1px solid #405139;background:linear-gradient(100deg,#22302c,#1c2b2b)}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--gold);font-weight:600;margin-bottom:4px}.scene-badge{font-size:10px;color:#c8d4bc;border:1px solid #526246;border-radius:20px;padding:5px 10px;white-space:nowrap}.canvas-wrap{position:relative;aspect-ratio:3/2;min-height:300px;background:#1c342d;overflow:hidden}canvas#game{width:100%;height:100%;display:block;object-fit:contain;image-rendering:pixelated;cursor:default}.compass{position:absolute;top:16px;right:18px;color:#eee1af99;display:flex;flex-direction:column;align-items:center;font:9px/1 Georgia;pointer-events:none;text-shadow:0 1px #000}.compass span{font-size:32px;line-height:1.2}.map-caption{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);border:1px solid #7e8b5b44;background:#102017c9;padding:5px 10px;border-radius:4px;color:#d4dfc5;font-size:10px;text-align:center;white-space:nowrap;pointer-events:none}.canvas-tooltip{position:absolute;pointer-events:none;background:#111d21ef;border:1px solid #857649;border-radius:5px;padding:7px 10px;color:#f1dfb5;font-size:11px;z-index:3;max-width:180px}.scene-overlay{position:absolute;top:14px;left:14px;pointer-events:none}.scene-overlay>div{padding:5px 9px;background:#10201bd9;border:1px solid #5a6f544a;border-radius:5px;color:#d3dfcd;font-size:10px;margin-bottom:5px}.action-deck{min-height:78px;border-top:1px solid #354736;background:linear-gradient(#1c2a28,#172220);padding:12px 16px;display:flex;align-items:center;justify-content:center;gap:10px}.village-cta{display:flex;align-items:center;gap:17px;justify-content:space-between;width:100%}.village-cta small{display:block;color:var(--muted);font-size:10px}.village-cta strong{font-size:13px;font-weight:500}.primary{background:linear-gradient(#d7b974,#bf9b58);color:#27281b;border-color:#e1c388;font-weight:600}.primary:hover:not(:disabled){background:linear-gradient(#ead097,#cfac64);border-color:#f2dda3}.primary svg{color:#3d3b21}.skill-button{position:relative;width:68px;height:56px;border:1px solid #647a59;background:linear-gradient(140deg,#364d3b,#223a32);padding:5px;overflow:hidden}.skill-button svg{width:27px;height:27px;color:#e3d5a3;position:relative;z-index:1}.skill-button:nth-child(2){background:linear-gradient(140deg,#35565e,#233d45)}.skill-button:nth-child(3){background:linear-gradient(140deg,#405740,#253b32)}.skill-button:nth-child(4){background:linear-gradient(140deg,#554b39,#383726)}.skill-button:nth-child(5){background:linear-gradient(140deg,#4b4261,#2b3049)}.skill-key{position:absolute;left:4px;top:2px;font:9px monospace;color:#ddd5af;z-index:2}.skill-name{font-size:8px;position:absolute;bottom:3px;left:0;right:0;text-align:center;color:#dfdfc7;z-index:2}.skill-cd{position:absolute;inset:0;background:#091017bd;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:20px;color:white;z-index:3}.deck-divider{height:38px;width:1px;background:var(--line);margin:0 3px}.deck-edit{height:38px;font-size:10px;padding:4px 10px;background:transparent}.scene-footer{display:flex;justify-content:space-between;align-items:center;padding:9px 16px;border-top:1px solid #2d3d32;color:var(--muted);font-size:10px}.text-button{padding:3px 0;border:0;background:transparent!important;color:var(--gold);font-size:11px}.text-button:hover:not(:disabled){color:#efcf8e}.text-button span{font-family:Georgia,serif;margin-left:7px}.context-panel{padding:17px}.context-image{height:92px;border-radius:6px;background:radial-gradient(#3e5141,#223830);border:1px solid #3e5042;margin-bottom:15px;display:flex;align-items:center;justify-content:center}.context-image svg{width:48px;height:48px;color:#cbbb87}.context-panel h3{margin:2px 0 7px}.context-panel p{font-size:11px;color:var(--muted);line-height:1.75;margin:8px 0 14px}.context-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);padding:8px 0;border-top:1px solid var(--line)}.context-meta strong{color:#d9daca;font-weight:400}.costs{display:flex;gap:12px;font-size:11px;margin:12px 0 14px}.costs>span{display:flex;align-items:center;gap:4px}.costs svg{width:14px;height:14px;color:var(--gold)}.costs .missing{color:var(--danger)}.journal-panel{padding:16px}.journal-panel .panel-title{margin-bottom:5px}.journal-entry{position:relative;padding:11px 0 11px 12px;border-bottom:1px solid #293935;font-size:10px;line-height:1.7;color:#aebcb0}.journal-entry:last-child{border-bottom:0}.journal-entry:before{content:'';position:absolute;left:0;top:17px;height:4px;width:4px;border-radius:50%;background:#8a9f8c}.journal-entry.good:before{background:var(--gold)}.journal-entry.bad:before{background:var(--danger)}.journal-entry small{display:block;color:#6f847a;font-size:8px;letter-spacing:1px;margin-bottom:2px}.tiny-dot{width:5px;height:5px;border-radius:50%;background:var(--gold)}.app-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 2px;color:#70837a;font-size:9px;letter-spacing:.1px}.save-dot{width:4px;height:4px;box-shadow:none;margin-right:4px}.invitations{padding:15px;border-color:#8e7945}.invitations p{font-size:11px;color:var(--muted);margin-bottom:9px}.invitations button{font-size:10px;padding:6px 9px}.toast-container{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);z-index:40;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:8px}.toast{padding:11px 18px;max-width:600px;border:1px solid #697553;border-radius:7px;background:#24332cf5;box-shadow:0 8px 32px #0007;color:#eee9d6;font-size:12px;animation:toastIn .2s ease}.toast.error{border-color:#9e5b50;background:#422c2bee}@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.modal-backdrop,.welcome-backdrop{position:fixed;inset:0;background:#050c10b8;backdrop-filter:blur(6px);z-index:25;display:flex;align-items:center;justify-content:center;padding:30px}.modal{width:770px;max-width:94vw;max-height:90vh;display:flex;flex-direction:column;background:#17242a;border:1px solid #62715c;border-radius:13px;box-shadow:0 30px 100px #0008;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:22px 27px;border-bottom:1px solid var(--line);flex-shrink:0}.modal-tabs{display:flex;gap:22px;padding:0 27px;background:#18272b;border-bottom:1px solid var(--line)}.modal-tabs:empty{display:none}.modal-tabs button{background:none;border:none;border-bottom:2px solid transparent;border-radius:0;padding:12px 0;color:var(--muted);font-size:12px}.modal-tabs button.active{border-bottom-color:var(--gold);color:var(--gold)}.modal-content{padding:24px 27px;overflow:auto}.muted{color:var(--muted)}.note{padding:12px 14px;border:1px solid #3d5047;background:#20332e;border-radius:6px;font-size:11px;color:#b7c6b9;line-height:1.7;margin-bottom:18px}.warning-note{font-size:10px!important;line-height:1.55!important;color:#d8b691!important;padding:10px 0}.section-label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold);margin:20px 0 10px}.inventory-grid{display:grid;grid-template-columns:230px 1fr;gap:20px}.equipment-slot{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:6px;background:#1c2d30;margin-bottom:7px;min-height:59px}.equipment-slot svg{color:#acb68b;width:25px;height:25px;flex:none}.equipment-slot span{display:block;font-size:10px;color:var(--muted)}.equipment-slot strong{display:block;font-size:11px;font-weight:500}.rarity-0{color:#d0d6c8!important}.rarity-1{color:#8bbbd9!important}.rarity-2{color:#d9bb72!important}.rarity-3{color:#c2a0dd!important}.rarity-4{color:#e4a65f!important}.rarity-5{color:#f38a9a!important}.item-card{padding:13px;border:1px solid var(--line);border-radius:6px;background:#1d2d31;margin-bottom:9px}.item-top{display:flex;gap:10px;align-items:center}.item-top>svg{width:28px;height:28px;color:var(--gold);flex:none}.item-top>div{flex:1}.item-top strong{font-size:12px;font-weight:500;display:block}.item-top small{color:var(--muted);font-size:10px}.item-stats{color:#a6bcb0;font-size:10px;line-height:1.7;margin:8px 0}.item-actions{display:flex;gap:7px}.item-actions button{font-size:10px;padding:5px 10px}.empty-state{text-align:center;padding:30px 16px;color:#8fa298;font-size:12px;border:1px dashed #3e5049;border-radius:6px;line-height:1.8}.bag-res{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:15px}.bag-res span{display:flex;align-items:center;gap:6px;color:var(--text);font-size:12px}.bag-res svg{width:16px;height:16px;color:var(--gold)}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 25px}.stat-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:9px 0;font-size:12px}.stat-row span{color:var(--muted)}.stat-row strong{font-weight:500}.talent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.talent-card{border:1px solid var(--line);background:linear-gradient(140deg,#233631,#1b2930);border-radius:8px;padding:16px}.talent-card svg{width:30px;height:30px;color:var(--gold);margin:8px 0}.talent-card h3{font-size:17px}.talent-card p{font-size:10px;color:var(--muted);min-height:53px;margin:8px 0}.talent-card .eyebrow{font-size:8px}.talent-card button{width:100%;font-size:10px}.talent-rank{display:flex;gap:4px;margin:9px 0 14px}.talent-rank i{height:4px;background:#42534a;flex:1;border-radius:2px}.talent-rank i.filled{background:var(--gold)}.spell-card{display:flex;align-items:center;gap:15px;border:1px solid var(--line);border-radius:6px;background:#1b2e32;padding:14px;margin:9px 0}.spell-card>svg{width:29px;height:29px;color:var(--gold);flex:none}.spell-info{flex:1}.spell-info h3{font-size:17px}.spell-info p{font-size:11px;color:var(--muted);margin-top:4px}.spell-info small{font-size:9px;color:#8da7a6}.spell-card select{background:#152127;color:var(--text);border:1px solid #485b50;border-radius:4px;padding:6px;font-size:10px;max-width:116px}.guild-code{display:flex;gap:12px;align-items:center;padding:15px;background:#233b34;border:1px dashed #73815d;border-radius:6px;margin:15px 0}.guild-code code{font:22px monospace;letter-spacing:2px;flex:1;color:var(--gold)}.guild-members{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.guild-member{padding:13px;border:1px solid var(--line);border-radius:6px;font-size:12px}.guild-member small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.button-row{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.button-row button{font-size:11px}.debug-box{border:1px solid #6d6141;border-radius:6px;padding:16px;background:#302f25;margin-top:20px}.debug-box p{font-size:11px;color:#c2b895;margin:8px 0}.debug-box button{font-size:10px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.help-grid p{font-size:12px;line-height:1.8;color:var(--muted);margin:8px 0}.help-grid h3{font-size:19px}.ko-banner{background:#412a2a;border:1px solid #795147;color:#e7c3af;padding:9px;border-radius:5px;font-size:10px;margin:13px 0}.progress-line{display:flex;justify-content:space-between;margin:14px 0 6px;font-size:10px;color:var(--muted)}.progress-line b{color:var(--gold);font-weight:400}.construction-meter{height:5px;background:#13201c;border-radius:3px;overflow:hidden}.construction-meter span{height:100%;background:#c5a35e;display:block}.welcome-backdrop{z-index:50;background:#071115dd}.welcome-card{display:grid;grid-template-columns:1fr 1fr;max-width:980px;width:100%;min-height:570px;max-height:94vh;border:1px solid #5a6a50;border-radius:14px;overflow:auto;background:#18262b;box-shadow:0 30px 130px #0008}.welcome-art{position:relative;overflow:hidden;min-height:560px;background:#1c352b}.welcome-art canvas{height:100%;width:100%;object-fit:cover;image-rendering:pixelated;opacity:.85}.welcome-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0b1b18f0 0%,#0c21172b 70%)}.welcome-art-text{position:absolute;bottom:38px;left:34px;right:24px;z-index:2}.welcome-art-text h2{font-size:38px;line-height:1.15;margin:22px 0 14px;color:#f2e5bf}.welcome-art-text p{color:#b8c9b0;font-size:13px;line-height:1.8}.pill{border:1px solid #81996b;color:#d8dbb2;border-radius:20px;padding:5px 8px;font-size:8px;letter-spacing:1.4px}.welcome-form{padding:38px 40px}.welcome-form h1{font-size:34px;line-height:1.2;margin:16px 0}.welcome-form>p{color:#aabbb0;font-size:12px;line-height:1.8}.welcome-mode{font-size:10px;color:var(--gold);border-bottom:1px solid var(--line);padding:17px 0 14px;margin-bottom:15px}.welcome-form label{display:block;font-size:10px;color:#b9c5b4;margin:11px 0 6px;letter-spacing:.3px}.welcome-form input{width:100%;border:1px solid #415648;border-radius:5px;padding:11px 12px;background:#101e22;color:var(--text);font-size:13px}.welcome-start{margin:23px 0 8px;width:100%;text-align:left;padding:12px 15px}.welcome-start span{float:right}.welcome-footnote{font-size:9px;color:#899d91;line-height:1.8;margin-top:13px}.error-message{font-size:11px;color:#e2a394;margin-top:8px}.danger-button{border-color:#7b4d45;color:#e6ada0;background:#3a2b2b}.mono{font-family:monospace;color:var(--gold)}.canvas-fallback{font-size:14px;padding:30px}.dialog-detail{font-size:11px;color:var(--muted);line-height:1.8}.launch-info{font-size:10px;color:var(--muted);margin:10px 0}.online-mark{color:var(--green)}
@media(min-width:1600px){.layout{grid-template-columns:235px minmax(400px,1fr) 265px;gap:22px}.app{padding:0 34px}.hero-panel,.context-panel{padding:21px}.scene-heading{padding:22px}.hero-identity h3{max-width:130px}.resources{gap:40px}.left-column,.right-column{gap:20px}}
@media(max-width:1200px){.app{padding:0 13px}.layout{grid-template-columns:176px minmax(360px,1fr) 197px;gap:10px}.hero-panel,.context-panel,.journal-panel,.objective-panel,.party-panel{padding:12px}.resources{gap:13px}.settlement small{display:none}nav{gap:15px}.brand{font-size:17px;letter-spacing:2px}.version{display:none}.hero-identity{gap:7px}.hero-identity h3{font-size:17px;max-width:94px}.portrait{width:45px;height:56px}.scene-heading{padding:14px}.scene-heading h1{font-size:23px}.scene-badge{font-size:8px}.action-deck{gap:6px;padding:10px}.skill-button{width:55px}.keyboard-help{display:none}.topbar{gap:10px}}
@media(max-width:900px){body{min-width:650px}.layout{grid-template-columns:minmax(360px,1fr) 200px}.left-column{display:none}.settlement{font-size:11px}.resources{gap:10px}.res .res-value{font-size:12px}.connection{display:none}.topbar .brand small{display:none}.topbar{height:62px}.scene-heading h1{font-size:22px}nav{gap:10px}.welcome-card{max-width:720px}.welcome-art{min-height:550px}.welcome-form{padding:25px}.welcome-form h1{font-size:28px}.app-footer>span:nth-child(2){display:none}}
/* Le terrain et les commandes restent visibles sans faire défiler la page. */
@media(min-width:901px){.layout{height:calc(100vh - 190px);min-height:555px}.left-column,.right-column{max-height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#3c5447 transparent}.world-panel{height:100%;display:flex;flex-direction:column}.scene-heading,.action-deck,.scene-footer{flex-shrink:0}.canvas-wrap{flex:1;aspect-ratio:auto;min-height:230px}.keyboard-help{padding-bottom:12px}}
canvas#game{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);object-fit:fill}
.left-column>.panel,.right-column>.panel,.keyboard-help{flex-shrink:0}


/* Catalogue de skins complets : un PNG 440x660 = un héros animé. */
.skin-picker{display:grid;grid-template-columns:160px 1fr;gap:15px;margin:12px 0 14px;padding:12px;border:1px solid #544a3a;border-radius:9px;background:linear-gradient(145deg,#24302c,#171f22);box-shadow:inset 0 0 28px #c89e5220}
.skin-main-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:178px;border:1px solid #665b43;border-radius:7px;background:radial-gradient(circle at 50% 32%,#6e7455 0,#35483b 46%,#182522 100%);overflow:hidden;position:relative}
.skin-main-preview:after,.appearance-preview:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,#ffd98b13,transparent 43%,#0003)}
.skin-main-preview canvas{width:150px;height:170px;display:block;image-rendering:pixelated;position:relative;z-index:1}
.skin-main-preview small{font-size:9px;color:#d7c69f;letter-spacing:.4px;padding:0 4px 8px;text-align:center;position:relative;z-index:1}
.skin-picker-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px}.skin-picker-head small{display:block;color:var(--muted);font-size:8px;margin-top:3px}.skin-picker-head>span{font-size:8px;color:var(--gold);white-space:nowrap;border:1px solid #5f573f;border-radius:12px;padding:3px 7px}
.skin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.skin-choice{padding:3px;height:68px;position:relative;background:#121c20;border-color:#35443f;overflow:hidden}.skin-choice canvas{width:100%;height:58px;image-rendering:pixelated;display:block}.skin-choice.active{border-color:var(--gold);background:#383729;box-shadow:0 0 0 1px #d9b66d55 inset}.skin-choice span{position:absolute;right:3px;bottom:2px;background:#101817cc;border-radius:3px;padding:0 3px;font-size:7px;color:#cfc5a6}
.skin-pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:7px}.skin-pagination button{width:32px;height:25px;padding:0;font-size:17px}.skin-pagination span{font-size:8px;color:#aeb9ad;min-width:50px;text-align:center}
.appearance-editor{display:grid;grid-template-columns:230px 1fr;gap:24px;align-items:start}.appearance-preview{position:relative;border:1px solid #655c47;border-radius:9px;background:radial-gradient(circle at 50% 32%,#677052,#2b3d34 62%,#152321);min-height:290px;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden}.appearance-preview canvas{width:205px;height:240px;image-rendering:pixelated;position:relative;z-index:1}.appearance-preview small{color:#d0c29f;font-size:9px;padding-bottom:12px;position:relative;z-index:1}.skin-library-note{font-size:11px;color:var(--muted);line-height:1.8}.skin-library-note code{color:var(--gold)}
/* Touche HD-2D originale : UI sombre, accents chauds, bordures légèrement cuivrées. */
.world-panel,.panel{box-shadow:0 10px 30px #0002,inset 0 1px #f5dca00a}.scene-heading{background:linear-gradient(90deg,#172428,#1c2726 65%,#2a2820)}.canvas-wrap{box-shadow:inset 0 0 80px #0a0f0d66}.scene-badge{border-color:#665a42;color:#d9c18a;background:#2b2a21}
@media(max-width:900px){.skin-picker{grid-template-columns:125px 1fr}.skin-main-preview canvas{width:120px;height:145px}.skin-grid{grid-template-columns:repeat(4,1fr)}.appearance-editor{grid-template-columns:170px 1fr}.appearance-preview canvas{width:150px;height:185px}}

/* v0.3.1 — Laboratoire / recherche / expansion */
.lab-summary{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:16px 18px;border:1px solid #6b765c;background:linear-gradient(180deg,#26342d,#1d2a25);box-shadow:6px 7px 0 #111915;margin-bottom:14px}
.lab-summary h3,.active-research h3,.research-card h3{margin:4px 0 6px}.slot-counter{min-width:130px;text-align:right}.slot-counter span{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#a7b39a}.slot-counter strong{font-size:24px;color:#ead9a8}
.lab-upgrade{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px dashed #67735c;background:#1b2822;margin-bottom:14px}.lab-upgrade>span{font-weight:700;margin-right:auto}
.active-research{display:grid;grid-template-columns:1fr auto;gap:6px 18px;padding:16px;border:1px solid #8f8152;background:linear-gradient(180deg,#382f21,#24271f);margin:14px 0}.active-research .construction-meter{grid-column:1/-1}.active-research>strong{align-self:center;color:#f0d591}
.research-category{margin-top:18px}.research-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.research-card{display:grid;grid-template-columns:44px 1fr;gap:10px;padding:12px;border:1px solid #596455;background:#202c26;min-height:132px;box-shadow:3px 4px 0 #121a16}.research-card.done{border-color:#70835f;background:#253329}.research-card.locked{opacity:.66}.research-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#17231d;border:1px solid #70795d}.research-icon svg{width:23px;height:23px;color:#d7c686}.research-copy p{margin:4px 0 7px;font-size:13px}.research-copy small{color:#9fab97}.research-action{grid-column:1/-1;display:flex;align-items:center;gap:8px;justify-content:flex-end}.research-action .costs{margin:0 auto 0 0}.locked-label{font-size:12px;color:#c6aa77;border:1px solid #75684d;padding:5px 8px}.research-card.done .research-action{font-size:22px;color:#9fc18b}
@media(max-width:900px){.research-grid{grid-template-columns:1fr}.lab-summary{flex-direction:column}.slot-counter{text-align:left}}

/* v0.3.2 — Population & production */
.camp-summary{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:16px 18px;border:1px solid #65705b;background:#1f2c26;margin-bottom:14px}.camp-summary h3{margin:4px 0 6px}.camp-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.camp-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#c9d0bc}.camp-form input,.camp-form select{background:#18231f;border:1px solid #596353;color:#eee4c8;padding:9px 10px}.camp-form input:disabled{opacity:.5}
@media(max-width:700px){.camp-summary{flex-direction:column}.camp-form{grid-template-columns:1fr}}
.quantity-picker{display:grid;grid-template-columns:42px minmax(72px,1fr) 42px 58px;gap:6px;align-items:center}.quantity-picker button,.quantity-picker input{height:38px}.quantity-picker input{text-align:center;font-weight:700}.camp-form small{color:#96a38f;font-size:11px}.unit-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.unit-card{border:1px solid #596455;background:#202c26;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.unit-card.military{border-color:#7a6d52;background:#292c24}.unit-card h3,.unit-card .eyebrow,.unit-card small{grid-column:1/-1}.unit-card h3{margin:2px 0 6px}.unit-card span{display:flex;justify-content:space-between;gap:8px;color:#bcc6b4;font-size:12px}.unit-card span b{color:#efe0b7}.unit-card small{margin-top:6px;color:#9fab97;border-top:1px solid #3f4c42;padding-top:8px}@media(max-width:700px){.unit-compare{grid-template-columns:1fr}.quantity-picker{grid-template-columns:38px minmax(60px,1fr) 38px 54px}}

/* v0.3.5.2 — commandement compact : les opérations quittent le panneau de destination. */
.threat-head{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin:2px 0 7px}.threat-head small{display:block;font-size:8px;letter-spacing:.12em;color:#94a58f}.threat-head strong{font-size:21px;color:#e5d6a8}.threat-head>span{font-size:8px;letter-spacing:.08em;border:1px solid #586451;border-radius:10px;padding:3px 6px;color:#aebaa8}.threat-head>span.threat-alert{border-color:#9c6655;color:#e4a68e;background:#3c2825}.threat-meter{height:8px;background:#13201b;border:1px solid #465347;overflow:hidden;margin-bottom:10px}.threat-meter>span{display:block;height:100%;background:linear-gradient(90deg,#738b5b 0%,#b39856 62%,#a65f4f 100%);transition:width .25s ease}.command-alert{display:flex;flex-direction:column;gap:2px;padding:8px 9px;border-left:2px solid #aa6b57;background:#2c2521;margin:8px 0}.command-alert strong{font-size:11px;color:#edc0a8}.command-alert small,.command-note{font-size:9px;line-height:1.5;color:#9eaa9a}.command-note{margin:7px 0 9px}.command-stats{display:grid;gap:4px;margin:8px 0}.command-stats span{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#aeb9aa}.command-stats b{color:#e4d9b8}.command-missions{border-top:1px solid #35453b;margin:8px 0 0;padding-top:7px}.command-missions>div{display:flex;justify-content:space-between;gap:8px;padding:4px 0;font-size:9px}.command-missions span{color:#d3c8a8}.command-missions small{color:#8fa091;white-space:nowrap}.command-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.command-actions button{padding:7px 5px;font-size:9px}.invitations{border-color:#8e794e;box-shadow:0 0 0 1px #d4ad5a19 inset,0 8px 24px #0003}.invitations .panel-title{color:#e7d6a5}

/* v0.3.7 — notifications d'événements */
.notification-button{position:relative}.notification-button b{position:absolute;right:-7px;top:-7px;min-width:18px;height:18px;padding:0 4px;border-radius:10px;background:#b85f50;color:#fff5df;border:2px solid #142026;font:700 9px/14px sans-serif;text-align:center}.notification-button.has-unread{color:#efd28a;border-color:#8d7149;box-shadow:0 0 16px #d2a85a33}
.event-toast{min-width:315px;max-width:430px;display:flex!important;align-items:center;gap:12px;padding:12px 12px 12px 14px!important;border-left:3px solid #7e956b!important;background:linear-gradient(135deg,#25332e,#192329)!important;box-shadow:0 14px 30px #0008!important}.event-toast.important,.event-toast.report{border-left-color:#c8a65e!important}.event-toast.critical{border-left-color:#c86655!important;background:linear-gradient(135deg,#382622,#1d2226)!important}.event-toast-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.event-toast-copy strong{font-size:12px;color:#f2e2b7}.event-toast-copy span{font-size:10px;color:#aeb9ad;line-height:1.4}.event-toast button{padding:6px 10px;font-size:9px;flex-shrink:0}
.notification-summary{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:15px 17px;margin-bottom:14px;border:1px solid #586756;background:#1e2c27}.notification-summary h3{margin:2px 0 4px}.notification-summary p{color:#a6b1a3;font-size:11px}.notification-card{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:start;padding:13px;margin:8px 0;border:1px solid #3d4d44;background:#18241f;opacity:.78}.notification-card.unread{opacity:1;border-color:#68785f;background:#202f28;box-shadow:3px 4px 0 #101814}.notification-card.critical{border-left:3px solid #b96657}.notification-card.important,.notification-card.report{border-left:3px solid #b59a5a}.notification-icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid #526052;background:#121d19;border-radius:50%}.notification-icon svg{width:21px;height:21px;color:#d7c583}.notification-copy>div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.notification-copy strong{color:#eadbb3}.notification-copy small{font-size:9px;color:#7f9084;white-space:nowrap}.notification-copy p{font-size:11px;color:#aeb8aa;margin-top:4px;line-height:1.45}.notification-actions{display:flex;flex-direction:column;gap:5px;min-width:76px}.notification-actions button{padding:6px 8px;font-size:9px}.notification-actions .text-button{padding:2px 4px}
@media(max-width:700px){.notification-card{grid-template-columns:36px 1fr}.notification-actions{grid-column:2;flex-direction:row}.notification-summary{align-items:flex-start;flex-direction:column}.event-toast{min-width:260px;max-width:calc(100vw - 30px)}}
.unit-card.military.selected{border-color:#c5a76a;box-shadow:0 0 0 1px #c5a76a55 inset}.unit-card.military.locked{opacity:.5;filter:saturate(.6)}button.unit-card{color:inherit;text-align:left;width:100%;cursor:pointer}.army-picker{display:grid;gap:10px;margin:12px 0}.unit-expedition-row{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(260px,1.3fr);gap:12px;align-items:center;border:1px solid #48564a;background:#1d2923;padding:10px}.unit-expedition-row>div:first-child{display:flex;flex-direction:column;gap:2px}.unit-expedition-row strong{color:#ead9aa}.unit-expedition-row small{color:#91a091;font-size:10px}@media(max-width:700px){.unit-expedition-row{grid-template-columns:1fr}.army-picker .quantity-picker{grid-template-columns:38px minmax(60px,1fr) 38px 54px}}
.rarity-6{color:#78e0df!important;text-shadow:0 0 8px #4cc9c855}.rarity-7{color:#ff8ee8!important;text-shadow:0 0 8px #ff68dd55}.rarity-8{color:#fff2a8!important;text-shadow:0 0 10px #ffe57488;font-weight:700!important}.salvage-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 14px;padding:10px;border:1px solid var(--line);border-radius:6px;background:#17282b}.salvage-toolbar button{font-size:10px;padding:6px 9px}.salvage-check{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-size:9px;color:#c5d0bf}.salvage-check input{accent-color:#c3a45f}.salvage-route{display:block!important;color:#7f978c!important;margin-top:2px}.locked-item{border-color:#756648;background:#2b2b28}.locked-item .item-top>svg{color:#c9a865}

/* v0.4.1 — direction fantasy mobile illustrée, originale */
:root{--bg:#101827;--panel:#162134;--panel2:#1c2940;--line:#45516a;--text:#f6ecd8;--muted:#a9b4c6;--gold:#e0bd72;--green:#86c5a4;--danger:#df796f;--blue:#8fc7df;--radius:13px}
body{background:radial-gradient(circle at 18% -10%,#31496b 0,#18263d 32%,#0d1422 74%);color:var(--text)}
.topbar{border-bottom-color:#61708a55}.brand{color:#fff1ca;text-shadow:0 1px 8px #e9c56b24}.brand-mark{color:#f2cb75}.brand small{color:#9fb0c4}
.panel,.world-panel{background:linear-gradient(145deg,#1b2941eF,#121c2feF);border-color:#4b5a74;box-shadow:0 16px 38px #050a1366,0 0 0 1px #d8bd7a0d inset}.scene-heading{background:linear-gradient(100deg,#263753,#19273f);border-bottom-color:#60708a55}.eyebrow{color:#efca7c}.scene-badge{border-color:#8fa1bd66;color:#e6dcc8;background:#13203388}
canvas#game{image-rendering:auto}.canvas-wrap{background:#22364d}.map-caption,.canvas-tooltip{background:#111a2de8;border-color:#b99a5c88;color:#fff0c7}.action-deck{background:linear-gradient(#1d2d45,#121d30);border-color:#4a5b74}.skill-button{border-color:#7d8fa8;background:linear-gradient(140deg,#3b5270,#213650);box-shadow:inset 0 0 15px #fff1c00c}.skill-button svg{color:#f4d78b}.primary{background:linear-gradient(#f0d08b,#cfa85e);border-color:#f4dda0;color:#252534;box-shadow:0 3px 12px #d7ac5d33}.primary:hover:not(:disabled){background:linear-gradient(#ffe3a6,#ddb86c)}
.context-panel,.hero-panel,.party-panel,.objective-panel{background:linear-gradient(145deg,#1c2a40,#141e31)}.portrait{background:radial-gradient(#52647f,#1e2d47);border-color:#8595ad}.meter{background:#0d1422}.meter.energy>span{background:#6daed0}.meter.xp>span{background:#d6b568}.mini-stats{border-top-color:#43536c}.connection{color:#a9dec5;border-color:#5b8e7c}
.modal-card{background:linear-gradient(145deg,#1d2b43,#101a2c)!important;border-color:#65758e!important;box-shadow:0 28px 80px #000a!important}.modal-tabs button.active{color:#f1ce7e!important;border-color:#d8b76c!important}.note,.empty-state{background:#17243a!important;border-color:#455670!important}.item-card,.research-card,.unit-card,.notification-card{background:linear-gradient(145deg,#1c2a40,#152237)!important;border-color:#53637c!important;box-shadow:0 5px 16px #0003!important}.lab-summary,.camp-summary,.notification-summary{background:linear-gradient(145deg,#253854,#1a2a42)!important;border-color:#64758e!important;box-shadow:0 8px 24px #0004!important}.active-research{background:linear-gradient(145deg,#3b3141,#232842)!important;border-color:#a28869!important}
.threat-meter{background:#111b2b;border-color:#53647d}.threat-meter>span{background:linear-gradient(90deg,#6ba87d,#d4b05e 62%,#c96861)}.command-alert{background:#332b32;border-color:#d47e68}.event-toast{background:linear-gradient(135deg,#253852,#162438)!important;border-left-color:#7fc2ac!important}.event-toast.critical{background:linear-gradient(135deg,#482b36,#1b2234)!important}.notification-button.has-unread{box-shadow:0 0 20px #e5bd6955}
.dungeon-modifier{margin:0 0 14px;padding:10px 12px;border:1px solid #876f4c;background:linear-gradient(120deg,#3d3040,#27324a);border-radius:9px;box-shadow:inset 0 0 20px #f3ce6a0a}.dungeon-modifier strong{display:block;color:#f5d88c;font-family:Georgia,serif;font-size:14px}.dungeon-modifier small{display:block;color:#b9c2cf;margin-top:3px;line-height:1.4}

/* v0.4.7 — création du héros : Base -> H/F -> couleur. */
.character-creator{grid-template-columns:160px minmax(0,1fr);align-items:stretch}
.creation-step{margin-top:10px;padding-top:9px;border-top:1px solid #3b4439}
.creation-step-head{display:flex;align-items:center;gap:7px;margin-bottom:7px;color:#c8d2bf;font-size:9px;text-transform:uppercase;letter-spacing:1.1px}
.creation-step-head b{width:18px;height:18px;display:grid;place-items:center;border:1px solid #796b4a;border-radius:50%;color:#e6c77e;font:10px/1 Georgia;background:#2b2c22}
.gender-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.gender-choice{height:88px;padding:3px 7px;display:flex;align-items:center;justify-content:center;gap:7px;background:#121c20;border-color:#35443f;overflow:hidden}
.gender-choice canvas{width:62px;height:80px;display:block;image-rendering:auto;flex:none}
.gender-choice strong{font-size:11px;font-weight:600;color:#c7d0c4}
.gender-choice.active{border-color:var(--gold);background:linear-gradient(145deg,#3a3828,#25352f);box-shadow:0 0 0 1px #d9b66d44 inset}
.color-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.color-choice{height:76px;padding:2px;position:relative;background:#121c20;border-color:#35443f;overflow:hidden}
.color-choice canvas{width:100%;height:60px;display:block;image-rendering:auto}
.color-choice span{position:absolute;left:3px;right:3px;bottom:2px;text-align:center;padding:1px 2px;border-radius:3px;background:#0e1718dc;color:#d4c9a8;font-size:7px;line-height:11px}
.color-choice.active{border-color:var(--gold);background:#383729;box-shadow:0 0 0 1px #d9b66d55 inset}
.character-creator .skin-picker-head small strong{color:#e4c77f}
@media(max-width:900px){.character-creator{grid-template-columns:125px minmax(0,1fr)}.color-grid{grid-template-columns:repeat(5,minmax(45px,1fr))}.gender-choice{height:82px}.gender-choice canvas{width:54px;height:72px}}

/* 0.4.9 — Feedback de combat et lecture, sans changement de direction artistique. */
.expedition-status{padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.expedition-status .panel-title{margin-bottom:7px}
.expedition-status .context-meta{padding:6px 0;font-size:11px}
.expedition-status .status-reason{font-size:11px;line-height:1.5;margin:10px 0;color:var(--gold)}
.target-summary{padding:10px;margin:9px 0;background:#0b182688;border-left:2px solid var(--gold);border-radius:4px}
.target-summary strong,.target-summary small{display:block}.target-summary small{font-size:11px;color:var(--muted);margin-top:4px}
.good-text{color:var(--green)}.save-error{color:#ffaaa0;font-weight:600}
.skill-unavailable{filter:saturate(.3);opacity:.65}.skill-unavailable:hover{opacity:1}
.skill-cost{position:absolute;right:4px;top:2px;font-size:9px;color:#bde8ff}
/* Toasts no longer cover the AZERT action bar. Keep the history button available. */
.toast-container{bottom:auto;top:94px;left:auto;right:24px;transform:none;max-width:380px;width:calc(100% - 48px);z-index:100;pointer-events:none}
.toast-container .toast{pointer-events:auto}
.context-panel .context-image{height:65px}.context-panel .context-image svg{width:34px;height:34px}
@media(max-width:1100px){.toast-container{right:12px;max-width:320px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.expedition-status~.context-image{display:none}
/* v0.5.0 — Tier I : branches d'affinité, actifs appris et deck vide au départ */
.talent-branches{display:flex;flex-direction:column;gap:18px}.talent-branch{border:1px solid var(--line);border-radius:9px;background:#17272b;padding:14px}.talent-branch>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.talent-branch>header h3{font-size:19px}.talent-branch>header>strong{font-size:10px;color:var(--gold);border:1px solid #5e664a;padding:5px 8px;border-radius:14px}.talent-branch-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.talent-card{position:relative;padding:13px;min-width:0}.talent-card.active-talent{border-color:#8d7749;background:linear-gradient(140deg,#2c352d,#222838)}.talent-card p{min-height:68px}.talent-type{position:absolute;right:9px;top:8px;font-size:7px;letter-spacing:1px;color:#87998e}.active-talent .talent-type{color:var(--gold)}.deck-config{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:16px}.deck-config>div{display:flex;min-width:0;flex-direction:column;align-items:center;gap:5px;padding:9px 5px;border:1px solid var(--line);border-radius:6px;background:#17282d}.deck-config span{font-size:9px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.deck-config .text-button{font-size:9px}.spell-locked{opacity:.58}.locked-label{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#71847a;border:1px solid #42534b;border-radius:4px;padding:5px 7px}.skill-empty{border-style:dashed;background:#19252b!important;opacity:.78}.skill-empty svg{opacity:.35}.skill-cost{position:absolute;right:4px;top:2px;font-size:7px;color:#9fb6be;z-index:2}.good-text{color:var(--green)}
@media(max-width:1100px){.talent-branch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.deck-config{grid-template-columns:repeat(5,minmax(70px,1fr));overflow-x:auto}}


.admin-access{margin-top:10px;border-top:1px solid #8d74462e;padding-top:10px}
.admin-access-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.admin-access-row input{max-width:120px;margin:0}
.admin-access-status{display:block;margin-top:5px;font-size:10px;color:#b9c5be}
.admin-access-status.ok{color:#d7bf78}
.admin-mode-banner{margin-top:8px;padding:7px 9px;border:1px solid #d7b76866;background:#2a2518;color:#e7cf8c;font-size:10px;letter-spacing:.06em}

/* v0.5.2.1 — Créateur de personnage élargi */
@media (min-width: 1101px){
  .welcome-card{
    max-width:1280px;
    grid-template-columns:minmax(430px,40%) minmax(700px,60%);
  }
  .welcome-form{padding:34px 44px 40px;}
  .character-creator{
    grid-template-columns:210px minmax(0,1fr);
    gap:20px;
    padding:16px;
  }
  .character-creator .skin-main-preview{min-height:244px;}
  .character-creator .skin-main-preview canvas{width:195px;height:218px;}
  .character-creator .skin-main-preview small{font-size:10px;padding-bottom:10px;}
  .character-creator .skin-picker-head{margin-bottom:12px;}
  .gender-grid{gap:12px;}
  .gender-choice{height:112px;padding:5px 14px;gap:14px;justify-content:flex-start;}
  .gender-choice canvas{width:82px;height:104px;}
  .gender-choice strong{font-size:12px;white-space:nowrap;overflow:visible;}
  .color-grid{gap:8px;}
  .color-choice{height:94px;padding:3px;}
  .color-choice canvas{height:77px;}
  .color-choice span{font-size:8px;line-height:12px;bottom:3px;}
}
@media (min-width:901px) and (max-width:1100px){
  .welcome-card{max-width:1040px;grid-template-columns:40% 60%;}
  .welcome-form{padding:28px 30px;}
  .character-creator{grid-template-columns:170px minmax(0,1fr);gap:14px;}
  .gender-choice{height:96px;padding:4px 8px;}
  .gender-choice canvas{width:68px;height:88px;}
}
/* v0.5.3 — Navigation île / archipel */
.map-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid #3a5350;background:#182c31}
.map-breadcrumb{font-size:11px;color:#99aea8;display:flex;align-items:center;gap:6px}
.map-breadcrumb strong{color:#e4dcc1;font-weight:500}
.map-scale-button{padding:7px 11px;font-size:11px;color:#f0d294;border-color:#85764e;background:#344139;white-space:nowrap}
.archipelago-legend{padding:12px 16px;background:#162b30;border-top:1px solid #3a5350}
.arch-legend-items{display:flex;flex-wrap:wrap;gap:9px 20px;font-size:10px}
.arch-key.own{color:#edcd7b}.arch-key.player{color:#a6c9ee}.arch-key.free{color:#acbdb2}.arch-key.ai{color:#e7a389}
.arch-summary{display:flex;align-items:center;gap:10px;margin-top:11px;font-size:10px;color:#a9bbb0;flex-wrap:wrap}
.arch-summary>span{margin-right:auto}.arch-summary label{color:#d2d8c4}
.arch-summary select{border:1px solid #476056;color:#eee7cf;background:#1c3337;border-radius:5px;padding:5px 8px;max-width:220px;font-size:11px}
.island-portrait{height:80px;background:radial-gradient(ellipse,#46624e,#1f3a3b)}
.island-portrait.island-ai{background:radial-gradient(ellipse,#5a5141,#26363b);border-color:#73634c}.island-portrait.island-ai svg{color:#e7a389}
.island-portrait.island-free{background:radial-gradient(ellipse,#4a6353,#223a3e)}
.arch-site{padding:11px 0;border-bottom:1px solid var(--line)}.arch-site strong{display:block;font-size:11px;font-weight:500;color:#d9d6bb}.arch-site span{display:block;font-size:10px;color:#9db0a6;margin-top:3px}
.arch-coming{margin-top:16px;padding:11px;border:1px solid #4f5f52;border-radius:5px;color:#bfc9b4;background:#23362f;font-size:10px;line-height:1.7}
.context-meta{gap:7px}.context-meta strong{text-align:right;overflow-wrap:anywhere}.context-panel h3{overflow-wrap:anywhere}
@media(max-width:1200px){.map-controls{padding:9px 11px;gap:7px}.archipelago-legend{padding:10px}.arch-legend-items{gap:7px 12px}.arch-summary>span{width:100%}.arch-summary select{max-width:200px}}


/* Loot et affixes v0.5.5 */
.item-affix-meta{font-size:11px;color:var(--gold);margin-bottom:8px}.item-affix-line{margin:4px 0;line-height:1.5}.item-affix-line:nth-child(even){color:#b4c5bc}.equipped-details{padding:7px 12px 10px;border:1px solid var(--line);border-top:0;margin-top:-8px;margin-bottom:10px;background:#152025}.equipped-details summary{cursor:pointer;color:var(--gold)}.equipped-details[open] summary{margin-bottom:10px}.affix-group-title{margin:24px 0 10px;color:var(--gold)}.affix-catalogue-card{border:1px solid var(--line);border-radius:8px;background:#142127;padding:12px 15px;margin:8px 0}.affix-catalogue-card p{margin:6px 0}.affix-catalogue-card small{color:var(--muted)}.barrier-status{color:#b5d6ae;font-size:11px;margin:7px 0}.modal-tabs{flex-wrap:wrap}

/* Comparatif indépendant des cartes : le survol ne remplace aucun bouton. */
.item-card[data-compare-id]:focus-visible,.item-comparison:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.item-card[data-compare-id]:hover{border-color:#bba46d!important}
.item-comparison{position:fixed;z-index:45;padding:17px;background:#132035;border:1px solid #b6a16c;border-radius:10px;box-shadow:0 14px 48px #000b;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;line-height:1.5;color:#eee7d7;font-size:12px;pointer-events:auto}
.item-comparison[hidden]{display:none}
.item-comparison h3{font-size:20px;margin:4px 0 5px;overflow-wrap:anywhere}
.comparison-equipped{color:#bfc8d4;font-size:11px;overflow-wrap:anywhere}
.comparison-equipped strong{color:#eee7d7;font-weight:500}
.comparison-section{margin-top:15px;padding-bottom:5px;color:#e5c78b;font-size:11px;letter-spacing:.04em}
.comparison-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11px;font-variant-numeric:tabular-nums}
.comparison-table th,.comparison-table td{border-bottom:1px solid #31415a;padding:7px 3px;vertical-align:top;text-align:right;overflow-wrap:anywhere}
.comparison-table thead th{font-size:10px;color:#a6b7c9;font-weight:500}
.comparison-table th:first-child{width:40%;text-align:left;font-weight:400}
.comparison-table th:last-child{width:23%}
.comparison-gain{color:#9ee0af}.comparison-loss{color:#ffaaa2}.comparison-equal{color:#96a8bc}
.comparison-arrow{font-weight:800;font-size:14px}
.comparison-note,.comparison-mode{font-size:10px;color:#aebed1;margin-top:11px;line-height:1.6}
.comparison-warning{font-size:11px;color:#ffd2a5;border:1px solid #a98059;border-radius:5px;padding:8px;margin-top:12px}
.empty-state p{margin:8px 0 12px}

/* Expéditions neutres, qualité et forge v0.5.6. */
.dungeon-floor{position:absolute;left:auto;right:64px;top:14px;z-index:5;width:max-content;max-width:min(180px,calc(50% - 76px));padding:8px 10px;text-align:center;white-space:normal;overflow-wrap:anywhere;line-height:1.4;border:1px solid #e2c081;border-radius:7px;background:#102033ee;color:#ffe3a9;font-size:12px;font-weight:700;letter-spacing:.03em;pointer-events:none;box-shadow:0 3px 15px #0006}
.dungeon-floor[hidden]{display:none}
.item-quality{display:flex;gap:7px;flex-wrap:wrap;margin:6px 0;font-size:11px;color:#adbed0}
.item-quality span:first-child{border:1px solid currentColor;border-radius:4px;padding:1px 6px}
.quality-poor{color:#a0a5ad}.quality-normal,.quality-historic{color:#b9c5ca}.quality-good{color:#a3d7ad}.quality-excellent{color:#94c5ee}.quality-perfect{color:#dfb5ef}.quality-lucky{color:#ffe49b;background:#72541455}
.item-budget{font-size:10px;color:#aebbd0;margin:3px 0 8px}
.rarity-9{color:#fff0ba!important;text-shadow:0 0 10px #e8ac6380}
.upgrade-card{border:1px solid #516078;border-radius:8px;padding:15px;margin:12px 0;background:#152438}
.upgrade-card p{margin:8px 0}.upgrade-card>small{display:block;margin-top:8px}
.upgrade-chance{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:13px}.upgrade-chance strong{color:#dfc385}.upgrade-chance span{color:#b3c2d2;font-size:11px}
.forge-reserves{padding:8px 0;color:#bbc9d8}
/* Ateliers : un objet, une tentative, un palier. */
.workshop-heading p{color:var(--muted);line-height:1.6}.upgrade-workbench{display:grid;grid-template-columns:minmax(170px,35%) minmax(0,1fr);gap:18px;align-items:start}.upgrade-selector{display:grid;gap:8px;max-height:520px;overflow-y:auto}.upgrade-choice{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:12px;background:#18231f;border:1px solid #364239;border-radius:8px}.upgrade-choice svg{width:30px;flex:none}.upgrade-choice span{flex:1;min-width:0}.upgrade-choice strong,.upgrade-choice small{display:block;overflow-wrap:anywhere}.upgrade-choice small{color:#9dad9f;margin-top:4px}.upgrade-choice.selected{border-color:#d8bc78;background:#303628}.upgrade-choice>b{color:#eacb86}.upgrade-detail{background:#17221ee0;border:1px solid #415040;border-radius:10px;padding:18px;min-width:0}.upgrade-detail>h3{margin-top:0}.upgrade-track{list-style:none;display:flex;gap:4px;padding:0;margin:20px 0}.upgrade-track li{flex:1;text-align:center;padding:10px 2px;border:1px solid #414a41;border-radius:5px;color:#96a395}.upgrade-track b,.upgrade-track small{display:block}.upgrade-track small{font-size:9px;min-height:13px;margin-top:4px}.upgrade-track .current{background:#d5b773;color:#172018;border-color:#f5dca4}.upgrade-track .reached{color:#aac6a0;border-color:#57754d}.upgrade-track .next{border-color:#c2a364;border-style:dashed;color:#e7d19d}.upgrade-risk{padding:12px;background:#46292988;color:#f0b4a6;border-left:3px solid #c47462;font-size:13px;line-height:1.6}.upgrade-stat-preview{display:grid;gap:7px;font-size:12px}.upgrade-stat-preview>div{display:flex;justify-content:space-between;gap:12px}.upgrade-stat-preview strong{white-space:nowrap;color:#d4dbc7}.upgrade-rules{margin-top:18px;font-size:12px;line-height:1.7;color:#acbba9}.upgrade-rules summary{cursor:pointer;color:#dfd2af}.upgrade-result{padding:12px;margin:12px 0;border-radius:6px;font-size:13px}.upgrade-result.success{background:#35512d;color:#dbefbc}.upgrade-result.failure{background:#542e28;color:#ffd0c0}@media(max-width:700px){.upgrade-workbench{grid-template-columns:1fr}.upgrade-selector{max-height:180px}.upgrade-detail{padding:12px}}

.island-site-picker{display:flex;align-items:center;gap:8px;font-size:12px;color:#b8c2ad}.island-site-picker select{max-width:240px;background:#1c2e29;color:#e0d7b9;border:1px solid #55644d;border-radius:5px;padding:8px}

.army-picker .island-quantity{grid-template-columns:minmax(90px,1fr) 64px}.island-quantity input{min-width:0;width:100%}

/* Estimation toujours visible, à côté de la qualité et de la rareté. */
.item-quality{flex-wrap:wrap;align-items:center;gap:7px}
.item-quality .item-verdict{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border:1px solid;border-radius:5px;font-size:11px;font-weight:700;line-height:1.4;white-space:nowrap}
.item-verdict small{font-size:9px;font-weight:400;opacity:.85}
.item-quality .verdict-good{color:#b8f2c6;background:#183b2c;border-color:#529d70}
.item-quality .verdict-bad{color:#ffc0bb;background:#47282c;border-color:#bb6668}
.item-quality .verdict-mixed{color:#f2d79b;background:#3d3525;border-color:#a48c56}
.item-quality .verdict-equal{color:#cad6df;background:#283645;border-color:#65778b}
.item-quality .verdict-blocked{color:#f6c2ae;background:#433128;border-color:#b8866d}
