:root{font-family:"Segoe UI",Tahoma,sans-serif;color:#e8e6db;background:#111b1b;font-size:15px;--muted:#a8b5af;--border:#344441;--panel:#1b2928;--gold:#d6ba7e;--green:#a5c5aa;--red:#eaa69b}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #727357;background:#3e5146;color:#f3f0e4;border-radius:4px;padding:.66rem 1rem;font-weight:600}button:hover:not(:disabled){background:#506652;border-color:var(--gold)}button:disabled{opacity:.45;cursor:not-allowed}input,select{min-width:0;background:#101b1a;color:#f0eee5;border:1px solid #53625c;border-radius:4px;padding:.67rem .75rem}input:focus,select:focus,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}label{display:block;font-size:.9rem;margin:1rem 0 .45rem}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:Georgia,"Times New Roman",serif;font-weight:400}h1{font-size:1.8rem;letter-spacing:.015em}h2{font-size:2.5rem}h3{font-size:1.5rem}h4{font-size:1.2rem}small{display:block}main{max-width:1280px;margin:auto;padding:0 2rem}.masthead{max-width:1280px;margin:auto;padding:1.6rem 2rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}.brand{display:flex;align-items:center;gap:.85rem}.brand p{font-size:.8rem;color:var(--muted);margin-top:.25rem}.crest{font-size:2.6rem;color:var(--gold);line-height:1}.connection{display:flex;align-items:center;gap:.65rem;font-size:.85rem;flex-wrap:wrap;justify-content:flex-end}.light{width:8px;height:8px;border-radius:50%;background:#7e8782}.light.live{background:#a5c5aa;box-shadow:0 0 0 4px #a5c5aa10}.light.waiting{background:var(--gold)}.notice{border-block:1px solid var(--border);padding:.85rem 0;color:var(--muted);font-size:.86rem;line-height:1.5}.message{margin-top:1rem;padding:1rem;border-left:3px solid var(--gold);background:#34352b;overflow-wrap:anywhere;line-height:1.6}.message.error{border-color:var(--red);background:#3a2926}.subtle,.hint{color:var(--muted)}.hint{font-size:.82rem;line-height:1.55;margin-top:.5rem}.auth-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:6rem;align-items:center;min-height:68vh;padding:3rem 0}.intro h2{font-size:clamp(2.8rem,4.3vw,4.5rem);line-height:1.1;margin:1.4rem 0;color:#eee9d7}.intro>p:last-of-type{max-width:470px;line-height:1.8;color:var(--muted)}.module-line{display:flex;gap:.6rem 1.2rem;flex-wrap:wrap;color:var(--gold);font-size:.85rem;margin-top:2rem}.panel{border:1px solid var(--border);background:var(--panel);border-radius:6px;padding:1.5rem}.auth-panel{max-width:420px;width:100%;border-top:3px solid #a98d58;padding:2rem}.auth-panel h2{font-size:1.8rem;margin-bottom:1.5rem}.auth-panel input{width:100%}.primary{background:#c6ad76;color:#15211c;width:100%;border-color:#d6ba7e;margin-top:1.5rem}.primary:hover:not(:disabled){background:#deca9c;color:#15211c}.text-button{border:0;background:transparent;color:var(--gold);padding:.8rem 0;font-weight:400;width:100%}.text-button:hover:not(:disabled){background:transparent;text-decoration:underline}.quiet{background:transparent;font-weight:400;border-color:var(--border);padding:.45rem .7rem}.city-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding:2rem 0 1.5rem}.city-heading h2{margin:.35rem 0}.clock{font-size:.8rem;color:var(--muted)}.resources{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid #67705a;margin-bottom:1.5rem;padding:1rem 0}.resources>div{display:flex;gap:1.2rem;align-items:center;padding:0 1.5rem;border-right:1px solid var(--border)}.resources>div:first-child{padding-left:0}.resources>div:last-child{border:0}.resource-symbol{font-size:2.5rem;color:var(--gold);width:3rem;text-align:center}.resources strong{display:block;font-size:1.9rem;font-weight:500;margin:.15rem 0;font-variant-numeric:tabular-nums}.resources small{font-size:.8rem;color:var(--green)}.city-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-heading>.subtle{font-size:.8rem}.queue{font-size:.88rem;color:var(--gold);padding:.8rem 0;line-height:1.5;min-height:2.9rem;border-bottom:1px solid var(--border)}.building-row{display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border)}.building-row:last-child{border:0;padding-bottom:0}.building-name{font-size:1rem}.building-level{color:var(--gold);font-size:.85rem;margin-left:.5rem}.building-detail{color:var(--muted);font-size:.8rem;margin-top:.35rem;line-height:1.55}.building-row button{font-size:.85rem;padding:.6rem .8rem}.troop-total{display:flex;align-items:baseline;gap:.8rem;margin:1rem 0}.troop-total strong{font-size:3rem;font-weight:400;color:var(--gold);font-variant-numeric:tabular-nums}.troop-total span{color:var(--muted)}.input-action{display:flex;gap:.6rem}.input-action input{width:100%}.input-action button{white-space:nowrap}.march{line-height:1.6;font-size:.88rem;color:var(--gold);margin-top:1.2rem}.world-panel,.reports-panel{margin-bottom:1.5rem}.map-controls{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.map-controls label{margin:0;font-size:.8rem;color:var(--muted)}.map-controls select{font-size:.85rem;padding:.45rem}.world-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:1.5rem}.map{position:relative;aspect-ratio:1.55;background-color:#152a27;background-image:linear-gradient(#45655520 1px,transparent 1px),linear-gradient(90deg,#45655520 1px,transparent 1px);background-size:10% 10%;border:1px solid #46574b;border-radius:4px;overflow:hidden}.map:before,.map:after{position:absolute;color:#739282;font-size:.72rem;pointer-events:none}.map:before{content:"Север";top:.6rem;left:.6rem}.map:after{content:"Юг";bottom:.6rem;left:.6rem}.map-city{position:absolute;transform:translate(-50%,-50%);border:1px solid #c5a866;background:#243b31;color:#ecddb7;min-width:2rem;min-height:2rem;padding:.18rem .4rem;border-radius:3px;font-size:1.2rem;line-height:1}.map-city.own{color:#cfe8d4;background:#3c5948;border-color:#acc8ad}.map-city.selected{outline:2px solid var(--gold);outline-offset:3px;background:#695a35;z-index:2}.city-list{display:grid;gap:.4rem;max-height:210px;overflow:auto;margin-bottom:1.3rem}.city-item{text-align:left;display:flex;justify-content:space-between;gap:.6rem;background:transparent;border-color:var(--border);font-weight:400;font-size:.85rem;padding:.65rem}.city-item.selected{border-color:var(--gold);background:#3b402e}.city-item small{color:var(--muted);white-space:nowrap}.empty{color:var(--muted);font-size:.88rem;line-height:1.6;padding:1rem 0}.report{border-top:1px solid var(--border);padding:1rem 0;display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem}.report:last-child{padding-bottom:0}.report p{font-size:.85rem;line-height:1.6}.report time{color:var(--muted);font-size:.8rem}.report .result{color:var(--gold);font-weight:500}.report .details{color:var(--muted)}.modules{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.78rem;padding:.5rem 0 2rem}footer{max-width:1280px;padding:1.4rem 2rem;margin:auto;display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--border);font-size:.75rem;color:var(--muted)}[hidden]{display:none!important}
@media(max-width:850px){.auth-layout{gap:2rem}.city-grid,.world-grid{grid-template-columns:1fr}.world-panel>.section-heading{align-items:flex-start;flex-direction:column}.map{aspect-ratio:1.5}.resources>div{padding:0 1rem;gap:.5rem}.resource-symbol{font-size:2rem;width:2rem}}
@media(max-width:580px){main{padding:0 1rem}.masthead{padding:1.2rem 1rem;align-items:flex-start}.brand h1{font-size:1.5rem}.connection{max-width:180px;font-size:.72rem}.crest{font-size:2.2rem}.connection .quiet{font-size:.75rem}.auth-layout{grid-template-columns:1fr;gap:2rem;padding:2rem 0}.intro h2{font-size:2.7rem}.intro .module-line{margin-top:1rem}.auth-panel{max-width:none;padding:1.5rem}.city-heading{align-items:flex-start;flex-direction:column;gap:.6rem}.city-heading h2{font-size:2rem}.resources{gap:.5rem}.resources>div{padding:0 .5rem;gap:0}.resource-symbol{display:none}.resources strong{font-size:1.6rem}.resources .subtle{font-size:.8rem}.resources small{font-size:.67rem}.panel{padding:1.15rem}.building-row{gap:.5rem}.building-row button{padding:.55rem;font-size:.75rem}.building-level{display:block;margin:.2rem 0 0}.report{grid-template-columns:1fr}.map{aspect-ratio:1.1}.map-controls{gap:.5rem}.map-controls .quiet{font-size:.8rem}footer{padding:1.2rem 1rem;flex-direction:column;gap:.4rem}.modules{line-height:1.6}}

/* Longer project title keeps the connection controls readable on narrow screens. */
.brand{min-width:0}.brand>div{min-width:0}.crest{flex-shrink:0}
@media(max-width:580px){.masthead{flex-wrap:wrap}.brand{flex:1 1 100%}.connection{max-width:none;justify-content:flex-start}}
