*{box-sizing:border-box}body{margin:0;background:#050505 url('assets/game/background-seamless.svg') repeat;color:#555;font:16px Arial,sans-serif}button,a{touch-action:manipulation}a{color:inherit}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #ef8d00;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.6}.top{background:linear-gradient(#666,#111 70%);border-bottom:2px solid #bbb;color:#ddd;font-size:14px}.top>div{max-width:1100px;margin:auto;min-height:28px;display:flex;align-items:center;gap:6px}.top button{background:none;border:0;color:inherit;font-size:14px}.top #logout{margin-left:auto}.game-shell{max-width:1100px;margin:auto}.game-header{min-height:125px;background:linear-gradient(170deg,#0753aa,#002761 65%,#06183d);color:white;display:flex;align-items:center;gap:16px;padding:12px 20px}.moon{width:100px;height:100px;border-radius:50%;object-fit:cover}#element-symbol{width:42px;max-height:60px;object-fit:contain}.identity{flex:1;min-width:0}.identity h1{font-weight:400;font-size:30px;margin:0 0 8px;overflow-wrap:anywhere}.identity span{font-size:14px;color:#dce6f3}.player-stats{background:#d9e0eddf;color:#535b70;margin:0;padding:10px 16px;min-width:175px;font-size:14px}.player-stats div{display:flex;justify-content:space-between;gap:20px}.player-stats dt{font-weight:bold}.player-stats dd{margin:0}.player-stats div:nth-child(3){color:#557d25}.player-stats div:nth-child(4){color:#267799}.profile-link{font-size:14px}.game-nav{display:flex;align-items:stretch;flex-wrap:wrap;background:linear-gradient(#119d82,#007750);color:#fff;border-radius:0 0 5px 5px;overflow:hidden}.game-nav>a,.game-nav>button{font-variant:small-caps;font-size:16px;text-decoration:none;border:0;border-right:1px solid #ffffff25;background:none;color:inherit;padding:10px 12px}.game-nav>a:hover,.game-nav>button:hover,.game-nav [aria-current]{background:#ffffff20}.game-nav time{margin-left:auto;padding:12px;font-size:13px;color:#bde2d9}.stock-bar{background:linear-gradient(#fff,#ddd);border-radius:0 0 8px 8px;display:flex;flex-wrap:wrap;gap:20px;padding:8px 16px;width:fit-content;margin-left:16px;font-size:14px;color:#555}.stock-bar b{margin-left:6px;color:#333}main{margin:26px 6% 0;background:#fff;border:1px solid #ccc;border-radius:10px;padding:14px 16px 22px}.breadcrumb{border-bottom:1px dotted #999;padding:2px 10px 10px;font-family:Georgia,serif;font-weight:bold}.breadcrumb button{border:0;background:none;color:inherit;font-family:inherit}.columns{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:16px;margin-top:24px}.view-title{font-weight:400;text-align:center;font-size:20px;margin:4px 0 12px}.village-map{position:relative;width:100%;max-width:550px;margin:0 auto 24px}.village-map>img{width:100%;display:block}.zone{position:absolute;transform:translate(-50%,-50%);width:15%;height:6.5%;border:0;border-radius:3px;background:#eadbad;color:#625533;box-shadow:0 0 3px #ddd4ad;font-size:14px;display:flex;align-items:center;justify-content:center;gap:3px}.zone:hover{background:#fff0b7;outline:2px solid #d9a551}.town-zone{position:absolute;left:25%;top:13%;width:48%;height:28%;background:transparent;border:0;border-radius:40%}.town-zone:hover{box-shadow:inset 0 0 0 2px #d6a541}.panel{border:1px solid #d2d2d2;border-radius:12px;overflow:hidden;margin-bottom:14px;background:#fff}.panel h2{margin:0;padding:5px 14px;background:linear-gradient(#929292,#484848);color:white;font-size:14px;line-height:1.3}.panel.orange h2{background:linear-gradient(#ffe887,#ff9700 42%,#ff6500 75%,#ff3c00)}.empty{font-style:italic;color:#777;text-align:center;margin:12px 10px;line-height:1.5}.office>button{border:0;padding:0;width:100%;display:block;background:#fff}.office img{display:block;width:100%;image-rendering:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{font-weight:400;font-style:italic;background:#ececec;color:#777;padding:6px 4px}td{padding:6px 7px;text-align:center}td:first-child{text-align:left}tbody tr:nth-child(even){background:#f5f5f5}.orange th,.ribbon{background:#fff0b5}.ribbon{text-align:center;margin:0;padding:4px;font-style:italic;font-size:14px}.more{display:block;margin:0 8px 6px auto;border:0;background:none;color:#4b4380;font-size:14px}.guide-content{padding:14px;line-height:1.5}.guide-content h3{font:italic bold 20px Georgia,serif;margin:0}.guide-content p{margin:10px 0}.guide-content summary{cursor:pointer;color:#535088;font-size:14px}.clan-row{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:10px}.clan-chat{text-align:center;min-height:130px}.clan-chat>button{background:none;border:0;color:#575184;text-decoration:underline;margin-bottom:12px}footer{text-align:center;color:#999;font-size:12px;padding:18px}dialog{border:1px solid #999;border-radius:8px;max-width:440px;width:90%;padding:24px;color:#555}dialog::backdrop{background:#0009}dialog h2{font-size:20px}dialog p{line-height:1.6}#close-dialog{float:right;border:0;background:none;font-size:25px}body[data-element=eau] .game-nav{background:linear-gradient(#438cbd,#1f5076)}body[data-element=sable] .game-nav{background:linear-gradient(#caa537,#987400)}[hidden]{display:none!important}@media(max-width:800px){main{margin:18px 10px 0}.columns{grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr)}.game-header{gap:10px;padding:12px}.moon{width:70px;height:70px}.player-stats{min-width:140px}.game-nav time{display:none}.profile-link{display:none}.stock-bar{gap:12px;margin-left:8px}}@media(max-width:620px){.columns,.clan-row{grid-template-columns:1fr}.game-header{flex-wrap:wrap}.moon{width:60px;height:60px}.identity h1{font-size:24px}.player-stats{width:100%;display:flex;gap:12px;flex-wrap:wrap}.player-stats div{gap:6px}.game-nav>a,.game-nav>button{font-size:14px;padding:10px}.stock-bar{font-size:14px}.village-map{max-width:400px}.breadcrumb{line-height:1.8;font-size:14px}.game-header #element-symbol{width:30px}}

/* Original resource sprites, extracted without redrawing. */
.resource-icon{width:18px;height:18px;object-fit:contain;vertical-align:middle;flex-shrink:0;mix-blend-mode:multiply;margin-right:4px}.stock-bar>span{display:inline-flex;align-items:center}.stock-bar b{margin-left:0}.zone .resource-icon{margin:0}.zone{background:#eee0b7;isolation:isolate}body[data-element=feu] .zone{width:15%;height:7%;background:#eee0b7;box-shadow:none}body[data-element=feu] .zone:hover{background:#fff0b7}

.stock-bar{justify-content:space-between;gap:8px;padding:6px 12px}.stock-bar>span{white-space:nowrap}.office-scene{position:relative}.office-scene>img{width:100%;display:block}.office-alert{position:absolute;background:#fffbe9;border:1px solid #986e42;color:#a32616;font-size:14px;padding:2px 5px;box-shadow:1px 1px 2px #0004}.message-alert{left:4%;top:7%}.report-alert{right:4%;top:57%}.office-links{display:flex;justify-content:space-between;padding:5px 10px}.office-links button{border:0;background:none;color:#575184;font-size:14px;text-decoration:underline}#inbox-status{font-size:14px;padding:0 10px}#close-inbox{float:right;background:none;border:0;font-size:25px}#inbox-dialog{max-width:640px}#inbox-list article{padding:10px 0;border-bottom:1px solid #ddd}#inbox-list article>button{border:0;background:none;color:#575184;text-align:left}.inbox-body{white-space:pre-wrap;overflow-wrap:anywhere}.stock-bar .resource-icon{margin-right:4px}

/* Invisible, keyboard-accessible office links. Alerts remain clickable above them. */
.office-hotspot{position:absolute;top:0;bottom:0;width:50%;border:0;background:transparent;z-index:1;padding:0}.office-left{left:0}.office-right{right:0}.office-hotspot:focus-visible{outline:3px solid #ef8d00;outline-offset:-3px}.office-alert{z-index:2}
.game-header{background:#043477 url('assets/game/bandeau-nuit.png') repeat-x left top;background-size:auto 100%}
body[data-period=day] .game-header{background:#f2f2f2 url('assets/game/bandeau-jour.png') repeat-x left top;background-size:auto 100%;color:#111}
body[data-period=day] .identity span{color:#444}body[data-period=day] .game-header::before{content:"";width:100px;flex-shrink:0}body[data-period=day] .player-stats{background:#ffffffb8;color:#333}
@media(max-width:800px){body[data-period=day] .game-header::before{width:70px}}@media(max-width:620px){body[data-period=day] .game-header::before{width:60px}}

.account-profile{display:grid;grid-template-columns:auto 1fr;gap:12px 24px}.account-profile dd{margin:0;overflow-wrap:anywhere}.identity h1{margin:0}

.unit-icon{display:block;width:100%;max-width:58px;height:auto;aspect-ratio:3.2;object-fit:fill;margin:auto;border:1px solid #544c39}td[data-stat]{color:#648234}#march-time{font-weight:bold;margin:4px 8px 8px}

.qg-intro{display:flex;gap:18px;margin:24px 8px 16px;align-items:flex-start}.qg-intro>img{width:80px;height:110px;object-fit:contain;flex-shrink:0}.qg-intro h1{font-size:22px;color:#d99400;margin:0 0 6px}.qg-intro p{line-height:1.5;margin:0}.qg-mail{background:#f6f6f6;padding:12px;margin:18px 8px;width:85%}.qg-mail button{display:block;border:0;background:none;color:#3485b1;font-weight:bold;margin:5px 0}.qg-army{margin:45px 8px 90px;padding:12px;border-radius:15px;background:#d8eae1;width:85%}.qg-army h2{margin:0 0 8px;font-size:20px;color:#253b32}.qg-army table{background:white}.qg-army th,.qg-army td{border:1px solid #ccc}.qg-army thead tr:first-child th,.qg-food td{background:#e6f4e7;font-style:normal}.qg-food td{text-align:left}@media(max-width:620px){.qg-mail,.qg-army{width:auto}.qg-intro{gap:10px;margin-left:0;margin-right:0}.qg-intro>img{width:60px}.qg-intro h1{font-size:20px}}

/* QG reference alignment and typography. */
.qg-intro>img{width:92px;height:124px}
.qg-mail{padding:4px 6px;background:#f7f7f7}
.qg-mail button{display:grid;grid-template-columns:68px 20px auto;align-items:center;justify-content:start;column-gap:0;padding:0;margin:0;min-height:29px;text-align:left;font:14px Arial,sans-serif}
.qg-mail .mail-label{color:#0080ff;font-weight:700}.qg-mail .mail-envelope{display:block;width:20px;height:16px;object-fit:contain;mix-blend-mode:multiply}.qg-mail .mail-count{color:#666;font-weight:700;padding-left:1px}
.qg-mail button:hover .mail-label{text-decoration:underline}
.qg-army{padding:0 8px 10px;border:1px solid #d6e2dc;border-radius:15px;background:linear-gradient(#b5d6c8,#e4eee8 36px,#d5e9df);box-shadow:0 0 0 18px #f7f7f7;margin-top:52px}
.qg-army h2{margin:0;padding:5px 18px;font:700 20px Georgia,serif;color:#18291f;line-height:1.2}
.qg-army table{table-layout:fixed;color:#222;font-size:14px}.qg-army .army-owner{width:16%}.qg-army .army-genin{width:24%}.qg-army .army-chunin,.qg-army .army-jounin{width:30%}
.qg-army th,.qg-army td{padding:5px 6px;text-align:center;line-height:1.2;border:1px solid #d0d0d0;font-style:normal;font-weight:400}
.qg-army thead tr:first-child th{font-weight:700;color:#26382c;background:#e5f2e6}
.qg-army .army-unit-headings th{background:#fafafa;color:#444;text-decoration:underline;font-weight:400}
.qg-army tbody tr:first-child{background:#f8f8f8}.qg-army tbody tr:first-child td:not(:first-child){color:#aaa}
.qg-army .qg-food td{text-align:left;background:#e3f2e6}.qg-army .qg-food strong{font-weight:700;color:#17291e}.qg-army .qg-food .resource-icon{margin:0 4px 0 0}
@media(max-width:620px){.qg-intro>img{width:70px;height:100px}.qg-army{box-shadow:0 0 0 7px #f7f7f7}.qg-army th,.qg-army td{padding:5px 3px}}

.town-map{position:relative;width:100%;max-width:550px;margin:18px auto;background:#749520}.town-background{width:100%;display:block}.town-sign{position:absolute;left:8%;top:10.5%;width:28.4%;height:5%;display:grid;place-items:center}.town-sign img{position:absolute;width:100%;height:100%}.town-sign span{position:relative;max-width:74%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:red;font-weight:bold;font-size:14px}.town-plot{position:absolute;transform:translate(-50%,-50%);width:11%;height:5%;border-radius:50%;display:grid;place-items:center;text-decoration:none;color:#fff}.town-plot span{opacity:0;font-size:14px;text-shadow:0 1px 2px #000}.town-plot:hover,.town-plot:focus-visible{background:#ffe58c55;outline:2px solid #ffeeb0}.town-plot:hover span,.town-plot:focus-visible span{opacity:1}.wall-slot{position:absolute;inset:0;clip-path:polygon(0 79%,10% 85%,26% 91%,40% 94%,55% 94%,75% 91%,91% 85%,100% 78%,100% 86%,85% 94%,65% 99%,35% 99%,15% 94%,0 86%);background:transparent}.wall-slot:hover,.wall-slot:focus-visible{background:#ffe58c55}.wall-slot span{position:absolute;left:35%;top:94%;width:30%;text-align:center;font-size:14px;color:white;opacity:0;text-shadow:0 1px 2px #000}.wall-slot:hover span,.wall-slot:focus-visible span{opacity:1}.town-help{text-align:center;color:#666;font-size:14px;line-height:1.5}.building-option{padding:14px 16px;margin:12px 0;background:#f7f7f7;border:1px solid #ddd;border-radius:6px}.building-option h2{font-size:18px;margin:0 0 8px;color:#9c6900}.building-option p{font-size:14px;line-height:1.5;margin:6px 0}.building-available{color:#30732f;font-weight:bold}.building-locked{color:#666}.building-option a{font-size:14px;color:#3485b1}

.building-option{display:flow-root;min-height:140px}.building-icon{float:left;width:90px;height:110px;object-fit:contain;margin:0 18px 10px 0}.unit-defense td[data-stat]{color:#2676c8}.unit-attack>td:first-child,.unit-defense>td:first-child{font-style:italic}.buildtree-heading{text-align:center;margin:10px 0 28px}.buildtree-heading h1{font-size:26px;color:#ee851e;margin:0}.buildtree-heading p{font-size:14px;margin:3px 0;color:#777}#buildtree-list{max-width:760px;margin:0 auto 20px}.tree-row{display:grid;grid-template-columns:100px 1fr;gap:10px;padding:8px 12px;scroll-margin-top:15px}.tree-row:nth-child(even){background:#eaf4ff}.tree-icon{width:90px;height:125px;object-fit:contain;align-self:center}.tree-row h2{font:700 20px Georgia,serif;color:#d99428;margin:0 0 4px}.tree-row p{font-size:14px;line-height:1.4;margin:0}.tree-row .tree-requirements{margin-top:14px}.tree-requirements strong{color:#333;margin-right:8px}.tree-requirements a{color:#4c8055;text-decoration:none}.tree-requirements a:hover{text-decoration:underline}.tree-requirements em{color:#888}@media(max-width:620px){.tree-row{grid-template-columns:70px 1fr;padding:8px 6px}.tree-icon{width:64px;height:100px}.building-icon{width:70px;margin-right:12px}}

.plot-built{height:13%;width:16%;border-radius:0;transform:translate(-50%,-85%)}.plot-built img{width:100%;height:100%;object-fit:contain}.plot-built span{position:absolute;bottom:0}.built-wall{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.build-action{padding:7px 12px;background:#ffe4c3;border:1px solid #edb472;border-radius:5px;color:#854500;margin-right:12px}

.upgrade-surround{margin:34px 0 0;padding:40px 6px 6px;border-radius:10px;background:linear-gradient(#fff,#eee 30%,#d8d8d8)}.upgrade-box{background:#fff;border:1px solid #ddd;border-radius:7px;padding:8px}.upgrade-box h2{font-size:14px;text-decoration:underline;color:#333;margin:0 0 5px}.cost-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:14px;font-weight:bold}.cost-line>span{display:inline-flex;align-items:center}.cost-line>span+span:before{content:'|';margin-right:8px;color:#555}.cost-line img{margin:0;width:18px;height:18px}.upgrade-box .build-action{font-size:14px;padding:3px 14px;margin:8px 0 0;color:#e87918;font-weight:bold}.training-panel{border:1px solid #d1d1d1;border-radius:9px;overflow:hidden;margin-bottom:16px}.training-panel h2{background:linear-gradient(#ffe775,#ff9800 45%,#ff3400);font:700 16px Georgia,serif;color:white;text-align:center;margin:0;padding:4px}.training-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:16px 20px}.training-stat{border:1px solid #d7d7d7;text-align:center}.training-stat h3{font-size:16px;margin:0;padding:5px;text-decoration:underline;background:#f7f7f7;border-bottom:1px dashed #ddd}.training-value{padding:14px 6px;font:700 24px Georgia,serif;color:#222}.training-value .cost-line{justify-content:center;font:14px Arial,sans-serif}.training-value .cost-line>span+span:before{content:none}.training-grid{display:grid;grid-template-columns:70% 30%}.training-grid>div+div{border-left:1px solid #ccc}.training-grid table{font-size:14px}.training-grid td,.training-grid th{text-align:center;padding:2px 4px;border:1px solid #ddd;font-style:normal}.training-grid th{font-weight:bold}.bonus-current{outline:2px solid #e8a244;outline-offset:-2px;background:#fff0d9!important}.training-room{border-bottom:1px solid #ddd;text-align:center}.training-room h3{font-size:21px;font-weight:400;margin:9px 0 2px;color:#888}.training-room h3.room-open{color:#598c47}.room-locked{font-style:italic;color:#888;margin:0 0 14px}.training-room-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:8px 14px}.training-room-columns>div{border:1px dashed #d8d8d8;padding:8px 3px}.training-label{display:block;text-decoration:underline;font-size:14px;margin-bottom:6px}.training-room-columns p{margin:6px;font-size:18px}.training-room-columns em{font-size:14px;color:#888}.training-room-columns input{width:52px;margin:0 12px 0 0}.training-room-columns button{font-size:14px}.training-room-columns .training-max{color:#4d84b8;font-size:14px;font-weight:bold;margin:5px 0 0}.training-costs{border-top:1px solid #ddd}.training-note{font-size:14px;color:#777}@media(max-width:650px){.training-grid{grid-template-columns:1fr}.training-stats{gap:10px;padding:10px}.training-stat h3{font-size:14px}.training-value{font-size:20px}.training-grid>div+div{border-left:0}.training-room-columns{gap:8px;padding:8px}.training-room-columns input{margin-right:4px}}

/* Bâtiments : tableaux des références originales. */
.building-reference{width:76%;box-sizing:border-box;padding:20px 24px 28px;margin:18px 0;background:linear-gradient(110deg,#f8f8f8,#f0f0f0);border-radius:5px}
.building-reference table{width:100%;border-collapse:separate;border-spacing:0;text-align:center;font-size:14px;color:#181818;border:1px solid #c5cccb;border-bottom:12px solid #acd4ce;border-radius:0 0 9px 9px;overflow:hidden}
.building-reference caption{background:linear-gradient(#cde7df,#a2ccc6);font-size:16px;font-weight:bold;color:#061d1b;padding:5px 8px;border-radius:12px 12px 0 0}
.building-reference th,.building-reference td{padding:2px 9px;border-right:1px solid #d3d3d3;border-bottom:1px solid #d3d3d3;line-height:1.3}
.building-reference th{background:linear-gradient(#fff,#eceeee);font-weight:bold;padding:5px 9px}.building-reference th:first-child{width:50%}
.building-reference tbody tr:nth-child(odd){background:#fff}.building-reference tbody tr:nth-child(even){background:#f0f0f0}
.building-reference tbody tr.building-current{background:linear-gradient(#fff2d8,#ffe4b5);outline:2px solid #f69a12;outline-offset:-2px}
.raptor-panel{width:80%;box-sizing:border-box;margin:16px 0;padding:12px;background:linear-gradient(110deg,#f6f6f6,#ececec);border-radius:5px;font-size:14px}
.raptor-panel h2,.raptor-panel summary{color:#005bfa;text-decoration:underline;font-size:16px;font-weight:bold;margin:0 0 14px}.raptor-panel summary{cursor:pointer;margin:18px 0 0}
.raptor-grid{display:grid;grid-template-columns:2fr 1fr;border:1px solid #c8c8c8;padding:6px;gap:4px 10px}.raptor-grid>strong{border-bottom:1px solid #ddd;padding-bottom:4px}.raptor-grid>strong:nth-child(2){text-align:center}
.raptor-name{color:blue}.raptor-count{color:#929292}.raptor-action{text-align:center}.raptor-action p{margin:5px 0}.raptor-action button{border:0;border-radius:6px;padding:10px 30px;background:linear-gradient(#e5edeb,#cddbd8);color:#fff;cursor:not-allowed;font:inherit}
#raptor-costs{margin:4px 0}.raptor-panel details p{margin:6px 0}
@media(max-width:700px){.building-reference,.raptor-panel{width:100%;padding:12px 8px}.building-reference th,.building-reference td{padding:3px 4px}.raptor-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.raptor-action button{padding:10px}}

/* Centrage des niveaux dans les tableaux des bâtiments. */
.building-reference th,.building-reference td,.building-reference td:first-child,.training-grid th,.training-grid td,.training-grid td:first-child{text-align:center;vertical-align:middle}

.zone{text-decoration:none}.job-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.job-row strong{display:block;color:#222;font-size:14px}.job-row em{display:block;font-size:12px;color:#999}.job-progress{position:relative;min-width:135px;height:22px;background:#e0e6fb;border:1px solid #6a78b9;border-radius:3px;overflow:hidden}.job-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(#618cff,#174cda 50%,#08298d)}.job-time{position:relative;display:block;text-align:center;font-size:12px;line-height:20px;color:#fff;text-shadow:0 1px 2px #000,0 0 3px #000}.job-row{border-bottom:1px dashed #ddd}

/* Chantier compact, centré et lisible. */
.job-row{display:grid;grid-template-columns:minmax(0,1.1fr) 30px minmax(0,1fr);align-items:center;justify-content:center;gap:10px;max-width:520px;margin:0 auto;padding:12px 18px;text-align:center}
.job-row strong{font-size:17px;line-height:1.35}.job-row em{font-size:13px;line-height:1.4;margin-top:3px}
.job-progress{min-width:0;width:100%;height:29px}.job-time{font-size:14px;line-height:27px;font-weight:bold}.job-cancel{border:0;background:transparent;color:#cf251d;font-size:29px;line-height:1;padding:0;min-height:36px;min-width:30px;font-weight:bold}.job-cancel:hover{color:#8e0803;background:#ffeded;border-radius:4px}
@media(max-width:480px){.job-row{gap:7px;padding:12px 8px;grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr)}.job-row strong{font-size:16px}.job-row em{font-size:12px}.job-time{font-size:12px}}
.training-room-columns>form{border:1px dashed #d8d8d8;padding:8px 3px}.training-room-columns .training-feedback{font-size:13px;margin:6px 0;color:#666}.next-unit-time{font-size:13px;margin-top:5px;color:#777}.training-room-columns .queue-time{display:block}
.mail-heading{font:400 18px Arial,sans-serif;color:#800099;margin:22px 16px 20px}.mail-table-wrap{width:80%;margin:0 16px 24px;overflow-x:auto}.mail-table{width:100%;border:1px solid #ccc;border-collapse:collapse;color:#111;font-size:16px}.mail-table th,.mail-table td{border:1px solid #e1e1e1;padding:7px 9px;background:#fafafa;font-style:normal}.mail-table th{font-weight:bold;color:#111;text-align:left}.mail-table th:last-child,.mail-table td:last-child{text-align:center;white-space:nowrap}.mail-table td:first-child{width:30px;text-align:center;padding:4px}.mail-table td:first-child img{width:16px;height:19px;object-fit:contain}.mail-table td a{text-decoration:none}.mail-table td a:hover{text-decoration:underline}.report-attack_sent{color:#086312}.report-attack_received{color:#f00}.report-withdrawal{color:#f28b00}.mail-table strong{font-weight:bold}.mail-table tfoot td{text-align:right!important}.mail-table tfoot button{border:0;background:none;color:#00e;font-size:22px;font-weight:bold;padding:0 3px}.mail-table tfoot button:disabled{color:#777;opacity:1;cursor:default}.mail-table .mail-empty{text-align:center;padding:22px;color:#777}body[data-inbox-kind="message"] .mail-unread td:nth-child(2){font-weight:bold}body[data-inbox-kind="message"] .mail-table a{color:#335a94}#mail-detail{margin:0 16px 24px}#mail-title{font-size:18px;font-weight:normal}#mail-body{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid #ddd;padding:18px;color:#333;line-height:1.5}#mail-date{color:#777;font-size:14px}@media(max-width:700px){.mail-table-wrap{width:100%;margin:0 0 20px}.mail-table{font-size:14px}.mail-table th,.mail-table td{padding:6px}.mail-heading{margin-left:0}}

[data-ninja-count],#qg-genin,#qg-chunin,#qg-jounin{color:#000!important;font-weight:700!important}.stock-bar{justify-content:space-evenly;gap:12px}.stock-bar>span{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.job-row+.job-row{border-top:1px solid #ddd;margin-top:12px;padding-top:12px}a.more{width:fit-content;text-decoration:none}

/* Native 75x100 sprites anchored at their ground line, scaled with the map. */
.town-map{max-width:720px}.plot-built{width:13.63636%;height:13.86963%;transform:translate(-50%,-100%);margin-top:.55%}.plot-built img{object-fit:fill;display:block}.town-plot:hover,.wall-slot:hover{background:transparent;outline:none}.town-plot span,.wall-slot span{display:none}.town-plot:focus-visible{background:transparent;outline:2px solid #ffeeb0}.wall-slot:focus-visible{background:transparent}.built-wall{z-index:750}.wall-slot{z-index:751}
.village-map .zone,body[data-element=feu] .village-map .zone{width:auto;height:auto;min-width:38px;padding:3px 5px;gap:2px}.away-unit-count{color:#000;font-weight:700}
/* Overview artwork and the centre-ville tooltip scale with the mine overlay. */
body[data-element=feu] .columns{grid-template-columns:minmax(0,1.72fr) minmax(300px,1fr)}
body[data-element=feu] .village-map{max-width:585px}
.village-map .town-zone{border-radius:0;box-shadow:none;text-decoration:none;z-index:2}
.village-map .town-zone:hover{box-shadow:none;background:transparent}
.town-tooltip{display:none;position:absolute;left:48%;top:35%;width:205px;padding:9px 10px;background:rgba(15,15,15,.9);color:#fff;font:12px/1.25 Arial,sans-serif;pointer-events:none;z-index:5;box-shadow:0 1px 3px #0004}
.town-tooltip strong{display:block;color:#efa22e;font-weight:700;margin-bottom:12px}.town-tooltip>span{display:block}
.town-zone:hover .town-tooltip,.town-zone:focus-visible .town-tooltip{display:block}
#production-table tbody tr:not(:last-child) td:nth-child(3)::before{content:'+ ';font-size:12px}
#production-table tbody tr:not(:last-child) td:nth-child(3)::after{content:' =';font-size:12px}
#production-table tbody tr td:last-child{font-weight:700}
@media(max-width:620px){body[data-element=feu] .columns{grid-template-columns:1fr}.town-tooltip{width:170px;left:15%}}

.town-tooltip{position:fixed;z-index:100;left:0;top:0}

body[data-element=sable] .town-zone{left:26%;top:23%;width:44%;height:21%}
.mail-tabs{margin:18px 0;color:#68638d;font-size:14px}.mail-tabs a{text-decoration:none}.mail-tabs a:hover{text-decoration:underline}.mail-tabs [aria-current]{font-weight:bold;color:#333}.compose-panel{border:1px solid #d4d4d4;border-radius:8px;overflow:hidden;margin:18px 0}.compose-panel h1{font-size:17px;color:#fff;background:linear-gradient(#ffe887,#ff9700 42%,#ff3c00);padding:7px 14px;margin:0}.compose-panel form{padding:20px;background:#fafafa}.compose-panel label{display:block;font-weight:700;font-size:14px;margin:0 0 6px}.compose-panel input,.compose-panel textarea{display:block;width:100%;margin-bottom:18px;padding:8px;border:1px solid #bbb;font:15px Arial,sans-serif;resize:vertical}.compose-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px}.compose-actions button{padding:6px 14px;font-weight:700;color:#985000}.compose-actions a,#mail-reply{color:#68638d;font-size:14px}#mail-reply{display:inline-block;margin-top:18px}#compose-status{color:#a12424}.mail-table td:nth-child(3) a{font-weight:700}

#mail-reply[hidden]{display:none}.mail-tabs a{color:#68638d}.mail-tabs a[aria-current]{color:#333}.mail-table thead th{background:linear-gradient(#ffe887,#ffad35);}.mail-table tbody tr:nth-child(even) td{background:#f2f2f2}

.office-messenger{position:absolute;top:13%;width:28%;aspect-ratio:1;background:url('assets/game/bureau-messagers.png') no-repeat;background-size:200% 100%;pointer-events:none;z-index:1}.messenger-left{top:19%;left:23%;background-position:left center}.messenger-right{right:22%;background-position:right center}
.account-recap{display:flex;align-items:stretch;gap:0;margin-left:auto}.account-recap .player-stats{min-width:230px;display:block;width:auto}.game-header .profile-link{display:block;width:145px;height:110px;background:#111;flex-shrink:0}.profile-link img{display:block;width:100%;height:100%;object-fit:contain}.mail-shortcuts{padding:5px 10px;background:#f7f7f7;display:flex;gap:18px;font-size:13px;font-weight:bold}.mail-shortcuts a{color:#008cff;text-decoration:none}.mail-shortcuts a.has-unread,.mail-shortcuts a.has-unread b{color:#d00000}.mail-shortcuts b{color:#666}.mail-shortcuts img{width:17px;height:13px;vertical-align:middle}.office-alert{color:#d00000}
@media(max-width:620px){.account-recap{width:100%;justify-content:center}.account-recap .player-stats{min-width:0;flex:1}.game-header .profile-link{width:120px}}

.qg-mail button.has-unread .mail-label,.qg-mail button.has-unread .mail-count{color:#d00000}

/* v36: reference-style curves, bold translucent recap and player nameplate. */
.account-recap{position:relative;isolation:isolate;align-items:stretch;padding-left:80px;background:none}
.account-recap::before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:0 174px 0 0;background:url('assets/game/recap-motif.svg') no-repeat left center;background-size:100% 100%}
.account-recap .player-stats{box-sizing:border-box;width:282px;min-width:282px;height:110px;padding:11px 12px;background:rgba(248,249,251,.70);font:700 15px/22px Arial,sans-serif;color:#514276;border:0}
.account-recap .player-stats div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:0;line-height:22px;border-bottom:1px solid rgba(175,178,183,.30)}
.account-recap .player-stats div:last-child{border-bottom:0}
.account-recap .player-stats dd{margin:0;text-align:left;white-space:nowrap;font-weight:700}
.account-recap .player-stats dt{font-weight:700}
.account-recap .player-stats div:nth-child(3){color:#71962c}
.account-recap .player-stats div:nth-child(4){color:#237eaa}
body[data-period=day] .account-recap .player-stats{background:rgba(255,255,255,.70);color:#514276}
.game-header .account-recap .profile-link{box-sizing:border-box;display:flex;flex-direction:column;width:174px;height:110px;border:2px solid #171717;background:rgba(255,255,255,.18);text-decoration:none;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.65)}
.account-recap .profile-name{display:block;flex:0 0 23px;height:23px;width:100%;padding:0 5px;background:linear-gradient(#343434,#111);color:#fff;font:italic 700 16px/23px Arial,sans-serif;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid #090909}
.game-header .account-recap .profile-link img{display:block;min-height:0;flex:1;width:100%;height:calc(100% - 23px);object-fit:contain}
@media(max-width:1000px){.account-recap{padding-left:65px}.account-recap::before{right:145px}.account-recap .player-stats{width:240px;min-width:240px;font-size:14px}.account-recap .player-stats div{grid-template-columns:115px 1fr}.game-header .account-recap .profile-link{width:145px}}
@media(max-width:620px){.account-recap{width:100%;padding-left:38px}.account-recap::before{right:120px}.account-recap .player-stats{min-width:0;width:auto;flex:1;padding:11px 7px;font-size:12px}.account-recap .player-stats div{grid-template-columns:86px 1fr}.game-header .account-recap .profile-link{width:120px;flex-shrink:0}}

/* Tour de garde */
.watchtower{margin:18px 0}.watchtower .panel>p{padding:0 12px}.watchtower td{vertical-align:top}.watchtower small{display:block;margin-top:4px;color:#666}.tower-scroll{overflow-x:auto}.watchtower table{min-width:420px}.watchtower details{margin:18px 0}.watchtower summary{cursor:pointer;font-weight:bold;margin-bottom:12px}.watchtower .tower-current td{background:#e1f0df;font-weight:bold}

/* v41: shared column headings and compact dotted army rows. */
.watchtower .tower-armies{width:100%;min-width:630px;table-layout:fixed;color:#111;font:13px/1.4 Arial,sans-serif;border-collapse:collapse}
.watchtower .tower-armies th,.watchtower .tower-armies td{padding:7px 8px;text-align:center;vertical-align:middle;border-right:0;background:#fff}
.watchtower .tower-armies th:first-child{width:34%}
.watchtower .tower-armies th:nth-child(2){width:18%}
.watchtower .tower-armies th{font-weight:400;font-style:italic;border-bottom:1px solid #ddd;padding-top:5px;padding-bottom:5px}
.watchtower .tower-armies th:last-child,.watchtower .tower-armies td:last-child{border-right:0}
.watchtower .tower-armies tbody tr+tr td{border-top:1px solid #ddd}
.watchtower .tower-armies td.tower-army-info{text-align:left}
.tower-army-info p{margin:0 0 3px}.tower-army-info p:last-child{margin-bottom:0}
.watchtower .tower-village a{color:inherit;overflow-wrap:anywhere}
.tower-unit strong{font-weight:700}
.tower-attack{color:#e00000}.tower-pillage{color:#399300}
.watchtower p.tower-arrival{font-style:italic;margin:3px 0 0}

.watchtower .tower-armies th:nth-child(2),.watchtower .tower-armies td:nth-child(2){border-left:1px dotted #aaa;border-right:1px dotted #aaa}

.mail-delete-actions{padding:10px 0;text-align:left}.mail-table input[type=checkbox]{cursor:pointer;width:15px;height:15px}
body[data-inbox-kind="report"] .mail-table thead th{background:#fff;color:#000;font-style:normal}
/* New terrain uses the same slot identities as the classic map. */
.modern-town .town-sign{display:none}.modern-town .wall-slot{display:none}
.modern-town .town-plot{width:15%;height:6%;transform:translate(-50%,-50%)}
.modern-town .plot-built{width:14%;height:13%;margin:0;transform:translate(-50%,-100%)}
.modern-town .plot-built img{object-fit:contain;object-position:center bottom}
.modern-wall{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:750}
.modern-wall a:focus-visible path{stroke:#ffeeb0}.modern-wall a:hover path:last-child{stroke:#ffeeb04a}

.build-action[aria-disabled=true]{opacity:.65;cursor:help}.build-action[aria-busy=true]{cursor:wait}.construction-reason{color:#913c17}

.hospital-care table{table-layout:fixed;width:100%}
.hospital-care table th,.hospital-care table td{width:18%;text-align:center;vertical-align:middle}
.hospital-care table th:first-child,.hospital-care table td:first-child{width:28%}
.hospital-care .hospital-recover{border:0;background:none;padding:0;color:#355b89;text-decoration:underline;font:inherit;cursor:pointer}
.hospital-care .hospital-recover:disabled{color:inherit;opacity:.6;text-decoration:none;cursor:default}
.town-map .plot-hospital{margin-top:1.5%}

.training-room input[type=number]{appearance:textfield;-moz-appearance:textfield}.training-room input[type=number]::-webkit-inner-spin-button,.training-room input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.training-room button.training-max{display:block;background:none;border:0;box-shadow:none;padding:0;margin:8px auto;color:inherit;font:inherit;cursor:pointer}.training-room button.training-max:hover{text-decoration:underline}.training-room button.training-max:disabled{cursor:default}.training-feedback:empty{display:none}

#starter-quests .guide-content,#guide .guide-content{padding:9px 12px;line-height:1.35}#starter-quests p{margin:0 0 5px}#starter-quests a{font-size:13px}#guide .guide-content p{margin:7px 0}#guide .guide-content h3{font-size:17px}.quest-ready{color:#22852a;font-weight:700;font-size:18px}.building-tooltip{position:fixed;z-index:2000;max-width:240px;padding:10px;background:rgba(15,15,15,.93);color:#fff;font:12px/1.4 Arial,sans-serif;pointer-events:none;box-shadow:0 1px 3px #0004}.building-tooltip strong{display:block;color:#efa22e;margin-bottom:7px}

#starter-quests .quest-summary{display:flex;align-items:center;gap:12px;padding:8px 12px;min-height:58px;background:#fffdf7}
#starter-quests .quest-summary-icon{width:38px;height:42px;object-fit:contain;flex-shrink:0}
#starter-quests #quest-preview{flex:1;margin:0;font:14px/1.4 Arial,sans-serif;color:#5b583e}
#starter-quests .quest-summary>a{flex-shrink:0;color:#986411;font:12px Arial,sans-serif;text-underline-offset:2px}
@media(max-width:480px){#starter-quests .quest-summary{gap:8px;flex-wrap:wrap}#starter-quests #quest-preview{min-width:140px}#starter-quests .quest-summary>a{margin-left:auto}}

/* Original decorations displayed as CSS sprites, without altering the source. */
body{background:#000;isolation:isolate}
.game-shell>main{position:relative}
.classic-backdrop{position:fixed;inset:0;z-index:-1;display:grid;overflow:hidden;pointer-events:none;background:#000}
.classic-background-tile{width:459px;height:459px;background-image:url('assets/game/classic-decoration-reference.jpg');background-size:2312px 1014.9px;background-position:0 -23.8px;background-repeat:no-repeat}
.classic-calligraphy{position:absolute;top:0;bottom:0;width:22px;overflow:hidden;pointer-events:none;user-select:none}
.classic-calligraphy.left{left:-28px}
.classic-calligraphy.right{right:-28px}
.classic-calligraphy span{display:block;width:22px;height:499.5px;background-image:url('assets/game/classic-decoration-reference.jpg');background-size:1836px 805.95px;background-position:-579.15px -168.75px;background-repeat:no-repeat}
@media(max-width:650px){.classic-calligraphy{display:none}}
.game-header .account-recap .profile-link{position:relative;display:block}
.game-header .account-recap .profile-link img{display:block;width:100%;height:100%;object-fit:contain}
.game-header .account-recap .profile-name{position:absolute;top:0;left:0;z-index:1;width:100%;height:23px;background:rgba(0,0,0,.43);border:0;text-shadow:0 1px 2px #000}
@media(max-width:650px){.game-shell>main::before,.game-shell>main::after{display:none}}
