.lan-page{--lan-coral:#f0ae94}.lan-page a{color:var(--mint)}.lan-page button:disabled{opacity:.52}.lan-page input{font:inherit;min-width:0}.lan-page [hidden]{display:none!important}.lan-loading{min-height:80vh;display:grid;place-items:center;color:var(--mint);font-size:15px}.lan-page .shell{max-width:1440px}.lan-page .brand{text-decoration:none;color:inherit}.lan-page .nav-button{text-decoration:none}.lan-page .nav-button span{display:inline}.lan-page .topbar{height:82px}.lan-page .brand-mark{font-size:23px;font-weight:400}.lan-page .hero{min-height:190px}.lan-page .hero h1{max-width:760px}.lan-page .hero p{max-width:670px}.lan-kicker{font:10px monospace;letter-spacing:1.7px;color:var(--mint);text-transform:uppercase}.lan-art{width:138px;height:138px;border:1px solid #345951;border-radius:50%;display:grid;place-items:center;flex-shrink:0;margin:0 28px 0 20px;background:repeating-radial-gradient(circle,transparent 0 21px,#57786d33 22px 23px,transparent 24px 42px);position:relative}.lan-art:after{content:'';position:absolute;inset:18px;background:conic-gradient(from 20deg,transparent 260deg,#98bca52b 359deg);border-radius:50%}.lan-art svg{height:52px;width:52px;z-index:1;color:#a8cbbd}.lan-page .icon-button .icon{width:17px}.lan-status-strip{border:1px solid #36554e;border-radius:8px;padding:12px 16px;background:#19322e;color:#b1cfc2;font-size:12px;line-height:1.65;display:flex;align-items:center;gap:10px;margin:0 0 22px}.lan-status-strip.warning{background:#342920;border-color:#725b40;color:#dfc09e}.lan-status-strip.error{background:#342520;border-color:#805743;color:#efb49d}.lan-status-strip .signal-dot{flex-shrink:0}.lan-status-strip.warning .signal-dot{background:#dfc09e}.lan-status-strip.error .signal-dot{background:#efb49d}.lan-status-strip .small-button{margin-left:auto;white-space:nowrap}.lan-lobby{display:grid;grid-template-columns:1fr 1fr;gap:20px}.lan-card{background:linear-gradient(155deg,#152631,#10202b);border:1px solid #2b3d48;border-radius:12px;padding:27px}.lan-card h2{font-size:23px;font-weight:500;letter-spacing:-.5px;margin:20px 0 12px}.lan-card p{font-size:13px;line-height:1.8;color:#8ba4af;margin:0 0 23px}.lan-card .primary-button{max-width:330px}.lan-card-number{font:11px monospace;color:#8fb1a3;border:1px solid #45645b;border-radius:6px;padding:7px 9px;display:inline-block}.lan-join-form{display:flex;gap:10px;align-items:end}.lan-input-label{display:block;font-size:11px;color:#98adb6;margin-bottom:9px}.lan-code-input{width:100%;max-width:220px;background:#0c1b24;border:1px solid #435f63;border-radius:7px;color:#e3efe9;padding:13px 16px;text-transform:uppercase;letter-spacing:4px;outline-offset:3px;font-family:monospace!important;font-size:19px!important}.lan-code-input:focus{outline:2px solid var(--mint)}.lan-join-form .primary-button{width:auto;padding:16px 22px}.lan-how{display:grid;grid-template-columns:1.05fr 1fr;gap:24px;margin:24px 0 30px;padding:23px 26px;border:1px solid #263c46;border-radius:11px;background:#0e1c26}.lan-how h3{font-size:13px;font-weight:600;margin:0 0 11px;color:#bcd0cb}.lan-how p,.lan-how li{font-size:11px;color:#809ba6;line-height:1.9}.lan-how ol{padding-left:19px;margin:0}.lan-how li{padding-left:4px}.lan-how code,.lan-server-missing code{color:#b9d5c7;background:#152c32;padding:4px 7px;border-radius:4px;font:12px monospace;display:inline-block;user-select:all}.lan-how p{margin:0}.lan-server-missing{padding:23px 25px;border:1px solid #765944;background:#2c261f;border-radius:10px;margin-bottom:24px}.lan-server-missing h2{font-size:19px;margin:0 0 12px;color:#f1c49f;font-weight:500}.lan-server-missing p{font-size:12px;line-height:1.8;color:#cabba8;max-width:800px}.lan-server-missing .small-button{margin-top:16px;min-width:140px}.lan-share{padding:17px 20px;border:1px solid #344f51;border-radius:10px;background:#12262d;margin-bottom:19px;display:grid;grid-template-columns:auto 1fr;gap:10px 26px;align-items:center}.lan-share-code{color:#d1e5db;font:26px monospace;letter-spacing:6px;margin-top:7px}.lan-share-code span{user-select:all}.lan-share-label{font:8px monospace;letter-spacing:1px;color:#829d9e;text-transform:uppercase}.lan-share-right{min-width:0}.lan-share p{font-size:11px;color:#8faaa9;line-height:1.7;margin:9px 0 0}.lan-url-row{display:flex;gap:9px}.lan-share-url{width:100%;background:#0c1c25;border:1px solid #304a54;border-radius:6px;padding:11px;color:#a7c4c4;font:11px monospace!important;text-overflow:ellipsis}.lan-url-row .small-button{flex-shrink:0;padding-inline:14px}.lan-alt-urls{font-size:10px!important;margin-top:6px!important;overflow-wrap:anywhere}.lan-alt-urls a{margin-left:8px}.lan-room-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:3px 0 17px}.lan-role{font:11px monospace;color:#90afa3}.lan-role span{color:#dae6e0}.lan-network{font-size:10px;color:#8da898;display:flex;gap:7px;align-items:center}.lan-network .signal-dot{width:5px;height:5px}.lan-network.offline{color:#e6b095}.lan-network.offline .signal-dot{background:#e6b095}.lan-page .shared-layout{grid-template-columns:minmax(0,1fr) 255px}.lan-page .shared-boards{grid-template-columns:repeat(2,minmax(270px,1fr));gap:16px}.lan-page .shared-turn{margin-bottom:14px;line-height:1.6;min-height:48px}.lan-page .panel-kicker{letter-spacing:1px}.lan-page .panel-title{font-size:17px}.lan-board-note{font-size:10px;color:#809ba3;line-height:1.7;margin:12px 0 0;min-height:18px}.lan-page .fleet-status{margin-bottom:12px}.lan-page .board-footer{padding:15px 17px}.lan-page .cell.lan-own-ship:before{content:'';position:absolute;inset:10% 7%;border:1px solid #a7c6b282;background:#719d919e;border-radius:3px;box-shadow:inset 0 0 0 2px #99bfa01a}.lan-page .cell.sunk:before{border-color:#d59777;background:#95533f70}.lan-page .cell.lan-own-ship.hit:before{background:#9e674a88;border-color:#b78769}.lan-page .cell.placement.lan-own-ship:hover:before{background:#ad6a4caa;border-color:#eca481}.lan-page .cell.lan-own-ship:disabled{opacity:1}.lan-page .cell:disabled{opacity:1}.lan-page .cell.preview-invalid,.lan-page .cell.preview-valid{z-index:2}.lan-page .grid-cover{background:#10232ca6;gap:13px}.lan-page .manual-tools{margin-top:13px}.lan-page .ship-select{flex-direction:column;gap:6px}.lan-page .ship-select small{font-size:9px}.lan-page .ship-select .mini-ship i{width:8px;height:6px}.lan-page .manual-hint{margin-top:11px}.lan-page .panel-controls{margin-top:10px;flex-wrap:wrap}.lan-page .small-button:disabled:hover{border-color:#344852;color:#a8bdc5}.lan-page .side-panel{display:block;grid-column:auto}.lan-page .mission-section{display:block;padding:23px 20px}.lan-page .mission-section .primary-button{margin-top:18px}.lan-page .mission-copy{min-height:0;margin:15px 0}.lan-page .log-section{border-top:1px solid var(--line);border-left:0;padding:20px}.lan-page .log{min-height:0;gap:13px}.lan-page .log-line{display:flex!important;font-size:10px;line-height:1.5}.lan-page .log-counter{white-space:nowrap}.lan-page .log-line strong{font-weight:400}.lan-log-empty{font-size:10px;color:#697f8c;line-height:1.7;margin:13px 0 0}.lan-legend{display:flex;gap:20px;align-items:center;flex-wrap:wrap;color:#748f9b;font-size:10px;margin:18px 0 28px;line-height:1.6}.lan-legend span{display:flex;gap:7px;align-items:center}.lan-legend i{width:10px;height:10px;display:inline-block;border:1px solid #89b8a0;background:#628974;border-radius:2px}.lan-legend .lan-dot{border:0;width:4px;height:4px;border-radius:100%;background:#91a4ab}.lan-legend .lan-hit{color:#e99b7e;font:18px monospace;line-height:10px}.lan-privacy{margin-left:auto;font-size:9px}.lan-page .footer{margin-top:25px;padding:20px 0;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);font:9px monospace;letter-spacing:1px;color:#536e7b}.lan-fatal{padding:40px 24px;text-align:center;border:1px solid #775544;background:#241f1d;border-radius:12px;max-width:850px;margin:24px auto}.lan-fatal h2{font-size:24px;font-weight:500;color:#f2b394}.lan-fatal p{color:#bea797;line-height:1.8;font-size:13px}.lan-fatal .primary-button{max-width:280px;margin:25px auto 0}.lan-result{border:1px solid #426457;background:#18302d;border-radius:10px;padding:22px;margin-bottom:18px}.lan-result.lan-defeat{border-color:#715244;background:#2b2420}.lan-result h2{color:var(--mint);font-weight:500;font-size:25px;margin:8px 0}.lan-result.lan-defeat h2{color:#efb69b}.lan-result p{font-size:12px;color:#9db5ab;line-height:1.7}.lan-result .result-table{margin:17px 0 4px}.lan-result .result-table th{font-weight:400}.lan-result .result-table td{font:13px monospace}.lan-local-shield{position:fixed;inset:0;z-index:18;background:#0b1924f2;backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px;text-align:center}.lan-local-shield .lan-art{width:105px;height:105px;margin:0 0 22px}.lan-local-shield h2{font-size:28px;font-weight:500;margin:0 0 13px}.lan-local-shield p{max-width:430px;font-size:12px;color:#94aab3;line-height:1.8;margin:0 0 24px}.lan-local-shield .primary-button{max-width:230px}.lan-page .modal{max-width:490px}.lan-page .modal-actions .primary-button{flex:1;width:auto}.lan-page .toast{bottom:22px;line-height:1.65}.lan-pending-note{font-size:11px;color:#bdcbaa;line-height:1.7;margin-top:12px}.lan-share-mobile{display:none}
@media(min-width:1600px){.lan-page .shared-layout{grid-template-columns:minmax(0,1fr) 270px}}
@media(max-width:1170px){.lan-page .shared-layout{grid-template-columns:minmax(0,1fr)}.lan-page .side-panel{display:grid;grid-template-columns:1fr 1fr}.lan-page .log-section{border-left:1px solid var(--line);border-top:0}.lan-page .mission-section{padding:21px}.lan-page .status-orbit{margin-top:13px}.lan-page .mission-copy{font-size:11px}.lan-page .side-panel .primary-button{max-width:300px}.lan-privacy{margin-left:0}}
@media(max-width:800px){.lan-page .hero{min-height:172px}.lan-art{width:106px;height:106px;margin-right:0}.lan-card{padding:23px}.lan-card h2{font-size:21px}.lan-card p{font-size:12px}.lan-how{grid-template-columns:1fr;gap:18px}.lan-page .topbar{height:74px}.lan-page .shared-boards .panel-title{font-size:15px}.lan-share{gap:12px 16px}.lan-share-code{font-size:23px;letter-spacing:4px}.lan-page .log-line{font-size:10px}}
@media(max-width:620px){.lan-page .shell{padding:0 14px}.lan-page .topbar{gap:9px;height:68px}.lan-page .brand-name{font-size:11px;letter-spacing:1.4px}.lan-page .brand-sub{font-size:7px;letter-spacing:1.4px}.lan-page .brand-mark{width:30px;height:30px;font-size:20px}.lan-page .brand{gap:8px}.lan-page .top-actions{gap:2px}.lan-page .nav-button{font-size:10px;padding:8px 5px}.lan-page .hero{min-height:173px;padding:23px 0}.lan-page .hero h1{font-size:28px;max-width:370px}.lan-page .hero p{font-size:11px}.lan-page .hero>.lan-art{display:none}.lan-lobby{grid-template-columns:1fr;gap:15px}.lan-card{padding:22px}.lan-card h2{margin-top:14px}.lan-card p{margin-bottom:18px}.lan-card .primary-button{max-width:none}.lan-join-form{gap:8px}.lan-join-form label{flex:1;min-width:0}.lan-code-input{max-width:none;font-size:18px!important;letter-spacing:4px}.lan-join-form .primary-button{padding:15px 20px}.lan-how{padding:20px;margin-top:17px}.lan-status-strip{padding:11px 13px;font-size:11px;align-items:flex-start}.lan-status-strip .signal-dot{margin-top:6px}.lan-server-missing{padding:22px}.lan-share{grid-template-columns:1fr;padding:16px;gap:14px}.lan-share-code{font-size:26px;letter-spacing:5px}.lan-share-label{font-size:8px}.lan-share-code{display:inline-block;margin:0 0 0 13px;vertical-align:middle}.lan-share-right p{font-size:10px}.lan-url-row .small-button{font-size:10px;padding:11px}.lan-page .shared-boards{gap:12px;grid-template-columns:repeat(2,minmax(282px,1fr))}.lan-page .shared-turn{font-size:11px;padding:12px}.lan-page .shared-turn span{margin-left:0;width:100%;font-size:10px}.lan-room-heading{padding-bottom:13px;align-items:flex-start}.lan-role{font-size:10px;line-height:1.7}.lan-network{font-size:9px;white-space:nowrap;margin-top:3px}.lan-page .side-panel{display:block}.lan-page .log-section{border-top:1px solid var(--line);border-left:0}.lan-page .mission-section{padding:20px}.lan-page .status-orbit h2{font-size:14px}.lan-page .mission-copy{font-size:11px;line-height:1.8}.lan-page .side-panel .primary-button{max-width:none;font-size:12px}.lan-page .shared-scroll-note{display:block}.lan-page .manual-hint{font-size:10px}.lan-page .board-footer{padding:16px 13px}.lan-page .panel-head{padding:17px 13px}.lan-page .panel-title{font-size:15px}.lan-page .panel-kicker{font-size:8px}.lan-page .tag{font-size:7px}.lan-page .small-button{font-size:10px;padding:10px 8px}.lan-legend{font-size:9px;gap:16px}.lan-privacy{width:100%;font-size:9px}.lan-page .footer{font-size:8px;letter-spacing:.4px;line-height:1.8;margin-top:18px}.lan-page .footer span:last-child{max-width:145px;text-align:right}.lan-result{padding:18px}.lan-result h2{font-size:24px}.lan-result .result-table{font-size:11px}.lan-result .result-table td{font-size:12px}.lan-status-strip .small-button{padding:6px 8px;font-size:9px}.lan-fatal{padding:30px 19px}.lan-fatal h2{font-size:23px}}
@media(max-width:380px){.lan-page .topbar .nav-button[data-action="lan-back"] span{display:none}.lan-page .brand-name{font-size:10px;letter-spacing:1px}.lan-page .brand-sub{font-size:6px;letter-spacing:1px}.lan-page .topbar .icon-button{width:29px;height:31px}.lan-page .topbar .nav-button{padding-inline:4px}.lan-page .brand{gap:6px}.lan-page .brand-mark{width:28px;height:28px}.lan-code-input{letter-spacing:2px;font-size:17px!important}.lan-share-code{font-size:22px;letter-spacing:3px}}
.lan-page .shared-scroll-note{margin:0 0 12px;line-height:1.7}

/* Invitation controls remain usable on narrow screens. */
.lan-share-code{font-size:18px;letter-spacing:2px;overflow-wrap:anywhere}
.lan-code-input{font-size:14px!important;letter-spacing:1px;min-width:0;width:100%;max-width:none}
.lan-join-form{flex-wrap:wrap}.lan-join-form label{flex:1;min-width:175px}
.lan-lobby.has-invitation .lan-card:last-child{order:-1;border-color:#9ddcc0}
.lan-role{overflow-wrap:anywhere}.lan-room-heading{flex-wrap:wrap}
@media(max-width:620px){.lan-share-code{display:block;margin:8px 0 0;font-size:18px;letter-spacing:2px}.lan-url-row{flex-wrap:wrap}.lan-share-url{min-width:0}.lan-url-row .small-button{width:100%;justify-content:center}.lan-network{white-space:normal}}
