/* Semantic identity: text/code/icon remain visible alongside color. */
.visual-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle}
[data-area="MV"]{--area-color:#c44731;}
[data-area="FI"]{--area-color:#22834c;}
[data-area="ID"]{--area-color:#ad397e;}
[data-area="LS"]{--area-color:#087f91;}
[data-area="OP"]{--area-color:#a46c06;}
[data-area="RH"]{--area-color:#b94465;}
[data-asset="MV-01"]{--asset-color:#b8462b;}
[data-asset="MV-02"]{--asset-color:#da623c;}
[data-asset="FI-01"]{--asset-color:#258142;}
[data-asset="FI-02"]{--asset-color:#429d60;}
[data-asset="ID-01"]{--asset-color:#aa357a;}
[data-asset="ID-02"]{--asset-color:#c5599b;}
[data-asset="LS-01"]{--asset-color:#087e91;}
[data-asset="LS-02"]{--asset-color:#329eb0;}
[data-asset="OP-01"]{--asset-color:#a17010;}
[data-asset="OP-02"]{--asset-color:#c39722;}
[data-asset="RH-01"]{--asset-color:#b6405f;}
[data-asset="RH-02"]{--asset-color:#d46b89;}
[data-area].area-tile,[data-area].project-tile,[data-area].project-card,[data-area].game-turn-banner{border-top:4px solid var(--area-color)}
.area-identity,.asset-identity{display:inline-flex;gap:7px;align-items:center}.area-identity>.visual-icon,.area-identity>.icon{background:var(--area-color);color:white;padding:5px;width:30px;height:30px;border-radius:8px}.asset-identity>.visual-icon,.asset-identity>.icon,[data-asset]>.visual-icon,[data-asset]>.icon{background:var(--asset-color);color:white;padding:4px;width:27px;height:27px;border-radius:6px}.asset-production[data-asset]{border-left:4px solid var(--asset-color)}
.turn-announcement{position:fixed;inset:16% auto auto 50%;transform:translateX(-50%);width:min(640px,calc(100vw - 28px));z-index:1000;background:var(--surface,#fff);color:var(--ink,var(--text,#183230));border:2px solid var(--area-color);border-top-width:8px;border-radius:20px;padding:26px;box-shadow:0 20px 100px #0008;animation:turn-enter .3s ease-out}.turn-announcement>p{font-size:12px;line-height:1.5}.turn-announcement h2{font-size:28px;margin:15px 0;display:flex;gap:12px;align-items:center}.turn-announcement h2 svg{width:35px;height:35px}.turn-announcement button{min-height:44px;min-width:130px;border-radius:8px;border:1px solid var(--area-color);padding:10px 20px;background:var(--area-color);color:white;cursor:pointer;font:inherit}.announcement-resources{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.announcement-resource{border:1px solid currentColor;border-radius:12px;padding:15px;display:flex;align-items:center;flex-direction:column;gap:5px;animation:resource-enter .45s both}.announcement-resource strong{font-size:32px}.announcement-resource span{font-size:12px}.announcement-resource.resource-time{color:#b998ff;background:#341663}.announcement-resource.resource-personnel{color:#b5d0ff;background:#173868}.announcement-resource.resource-capital{color:#ffdab5;background:#62350e}
.project-tile.can-contribute,.project-card.can-contribute{outline:2px solid var(--teal);outline-offset:-2px}.contribution-hint{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--teal);margin:0}.contribution-hint:before{content:'↗';font-size:16px}
@keyframes turn-enter{from{opacity:0;transform:translate(-50%,15px)}to{opacity:1;transform:translate(-50%,0)}}@keyframes resource-enter{from{opacity:0;transform:translateY(14px) scale(.9)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.turn-announcement,.announcement-resource{animation:none!important}}[data-motion=reduced] .turn-announcement,[data-motion=reduced] .announcement-resource{animation:none!important}

.asset-production[data-asset] .asset-icon{background:var(--asset-color);color:white}.turn-announcement{max-height:80dvh;overflow:auto}@media(max-width:500px){.turn-announcement{padding:18px;inset-block-start:10%}.turn-announcement h2{font-size:22px}.announcement-resource{padding:10px 4px}.announcement-resource strong{font-size:27px}}

.turn-announcement:not([data-area]){--area-color:#3d7a70}

/* App surfaces use --ink; the independent projector uses --text. */
.turn-announcement>h2,.turn-announcement>p{color:inherit}.turn-announcement button:focus-visible{outline:3px solid currentColor;outline-offset:3px}

.turn-announcement .notice-action{display:inline-flex;align-items:center;min-height:44px;padding:10px 15px;margin:0 10px 6px 0;border:1px solid var(--area-color);background:var(--area-color);color:#fff;border-radius:8px;text-decoration:none;font-size:14px}.turn-announcement .notice-action:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.announcement-delivery{display:grid;gap:10px;margin:16px 0 20px}.delivery-line{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:10px}.delivery-identity{display:flex;align-items:center;gap:8px;min-width:0;padding:10px;border:1px solid color-mix(in srgb,var(--area-color) 35%,transparent);border-radius:9px;background:color-mix(in srgb,var(--area-color) 10%,transparent);font-size:13px;line-height:1.4;overflow-wrap:anywhere}.delivery-identity .visual-icon{color:var(--asset-color,var(--area-color));width:24px;height:24px}.delivery-arrow{text-align:center;font-size:25px;font-weight:700}@media(max-width:500px){.delivery-line{gap:5px;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr)}.delivery-identity{padding:7px;gap:5px;font-size:11px}.delivery-identity .visual-icon{width:19px;height:19px}}
.delivery-identity>.visual-icon{background:var(--asset-color,var(--area-color));color:#fff;border-radius:6px;padding:4px;flex-shrink:0}
.training-benefits{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:11px;line-height:1.25;margin-top:7px}.training-benefits>span:first-child{font-weight:600}.training-none{opacity:.7;font-size:10px}.training-discount{display:inline-flex;align-items:center;gap:4px;padding:3px 5px;border-radius:5px;color:#fff;white-space:nowrap}.training-discount.resource-time{background:#6d28d9}.training-discount.resource-personnel{background:#3730a3}.training-discount.resource-capital{background:#85421b}.training-discount>.visual-icon{width:14px;height:14px;stroke:currentColor;background:transparent;padding:0}.training-discount b{font-size:11px}.training-discount>span{font-size:9px}
.area-dock .training-benefits{margin:0;gap:4px;font-size:9px}.area-dock .training-discount{padding:2px 4px;gap:3px}.area-dock .training-discount>.visual-icon{width:11px;height:11px}.area-dock .training-discount b{font-size:10px}.area-dock .training-none{font-size:9px}
@media(min-width:801px) and (max-height:850px){.area-dock .area-tile{gap:3px}.area-dock .training-benefits{font-size:8px}.area-dock .training-discount{padding:1px 3px}.area-dock .training-discount b{font-size:9px}.area-dock .training-none{font-size:8px}}
.area-urgent-marker{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:23px;height:23px;border-radius:50%;background:#fff0bd;color:#854800;border:1px solid #c78a20;vertical-align:middle;margin-left:4px}.area-urgent-marker>.visual-icon{width:16px;height:16px;padding:0;stroke:currentColor;background:transparent}.urgency-announcement{border-color:#c78a20!important}.urgency-announcement h2>.visual-icon{color:#b87908}.area-dock .area-urgent-marker{width:18px;height:18px;margin-left:auto}.area-dock .area-urgent-marker>.visual-icon{width:13px;height:13px}.area-dock .has-urgency .area-title>span:not(.area-urgent-marker){min-width:0}.area-dock .has-urgency .area-title{flex-wrap:nowrap}
.incident-guide ol{padding-left:22px;line-height:1.6}.incident-guide p{margin-bottom:0}.incident-next-step{padding:12px 14px;background:var(--surface-2,var(--canvas,#edf3ef));border-left:3px solid #bd811f;border-radius:7px;line-height:1.5}.incident-requirements{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}.incident-requirements li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:9px}.incident-requirements .asset-identity{min-width:0}.incident-requirements small{display:block;font-size:11px;line-height:1.4}.incident-stock{text-align:right;font-size:12px;flex-shrink:0}.incident-contribution{padding:16px;border:1px solid var(--line);border-radius:10px;margin-top:15px}.incident-contribution h4{margin:0}.game-action-nav .incident-action{border-color:#bd811f;background:#fff1c9;color:#633c05;font-weight:700}.incident-action>.visual-icon{width:17px;height:17px}.incident-routes .incident-route{display:flex;flex-direction:column;gap:5px}.incident-route form{margin-top:auto}@media(max-width:550px){.incident-requirements li{align-items:flex-start;flex-direction:column;gap:5px}.incident-stock{text-align:left}}
.incident-guide{display:block!important}.incident-guide>strong{display:block}.incident-guide ol{margin:10px 0}.incident-guide p{font-size:12px}
.board-incident-detail+.board-incident-detail{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.board-incident-detail .area-identity{gap:5px;line-height:1.4}.board-incident-detail .area-identity>.visual-icon{width:17px;height:17px;flex-shrink:0}.board-incident-route{margin:10px 0;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.board-incident-route>strong{font-size:12px;line-height:1.4}.board-incident-assets{list-style:none;padding:0;margin:7px 0;display:grid;gap:7px}.board-incident-assets li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:center}.board-incident-assets .asset-identity{font-size:11px;gap:5px;line-height:1.35;min-width:0}.board-incident-assets .asset-identity>span{overflow-wrap:anywhere}.board-incident-assets .visual-icon{width:20px;height:20px;padding:3px;flex-shrink:0}.board-incident-assets li>strong{font-size:12px}.board-incident-assets li>small{grid-column:1/-1;font-size:10px}.board-urgent .incident-route-status{font-size:11px;font-weight:600}.incident-routes.route-decided{grid-template-columns:minmax(0,1fr)}
/* Compact projector urgency: preserve route, ownership and exact progress. */
#board-urgent{padding:10px 12px}
#board-urgent .board-incident-detail>h3{margin:4px 0;font-size:13px;line-height:1.2}
#board-urgent .board-incident-detail>.area-identity{margin:4px 0;font-size:10px;line-height:1.25}
#board-urgent .board-incident-detail>.eyebrow{font-size:8px;letter-spacing:.8px}
#board-urgent .board-incident-route{margin:6px 0;padding:7px 8px}
#board-urgent .board-incident-route>strong{display:block;font-size:11px;line-height:1.25}
#board-urgent .board-incident-assets{margin:5px 0;gap:5px}
#board-urgent .board-incident-assets li{grid-template-columns:minmax(0,1fr) auto;gap:1px 6px}
#board-urgent .board-incident-assets .asset-identity{font-size:10px;gap:5px;line-height:1.2}
#board-urgent .board-incident-assets .visual-icon{width:18px;height:18px;padding:3px}
#board-urgent .board-incident-assets li>strong{font-size:11px;grid-column:2;grid-row:1/3;align-self:center}
#board-urgent .board-incident-assets li>small{grid-column:1;font-size:9px;line-height:1.2;margin-left:23px}
#board-urgent .board-incident-route>small{display:block;font-size:9px;line-height:1.2}
#board-urgent .board-incident-detail>small{display:block;font-size:9px;line-height:1.3}
#board-urgent .incident-route-status{margin:5px 0;font-size:10px;line-height:1.3}
#board-urgent .board-incident-assets li{grid-template-columns:minmax(0,1fr) auto auto;gap:4px}
#board-urgent .board-incident-assets li>.incident-source-area{grid-column:2;grid-row:1;margin:0;font-size:9px;font-weight:700;padding:2px 3px;border-radius:3px;background:var(--surface);white-space:nowrap}
#board-urgent .board-incident-assets li>strong{grid-column:3;grid-row:1}
#board-urgent .board-incident-assets .asset-identity{font-size:10px}
.project-state-badges{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.project-new-badge{display:inline-flex;align-items:center;justify-content:center;background:#fff0b8;color:#704600;border:1px solid #d3a64a;border-radius:4px;padding:3px 6px;font-size:10px;font-weight:750;line-height:1.2;white-space:nowrap}
.project-tile .project-new-badge{font-size:9px;padding:3px 5px}.project-tile .tile-head{flex-wrap:wrap;row-gap:4px}

.special-ability{border-top:4px solid var(--area-color);background:color-mix(in srgb,var(--area-color) 6%,var(--surface))}.skill-section-title{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.skill-section-title>.icon{color:var(--area-color);width:24px;height:24px}.skill-unlock-count{font-size:11px;color:var(--muted);font-weight:500}.skill-heading{display:flex;align-items:center;gap:11px;margin:10px 0}.skill-symbol{display:grid;place-items:center;width:45px;height:45px;flex-shrink:0;background:var(--asset-color,var(--area-color));color:white;border-radius:12px}.skill-symbol>.icon{width:26px;height:26px}.skill-heading strong{display:block;font-size:17px;line-height:1.25}.skill-heading .eyebrow{font-size:9px}.skill-effect-label{display:block;font-size:11px;color:var(--muted);margin-top:4px}.ability-choice{border:1px solid color-mix(in srgb,var(--area-color) 45%,var(--line));border-top:4px solid var(--area-color);background:color-mix(in srgb,var(--area-color) 7%,var(--surface))}.ability-choice .button,.special-ability form>button{border-color:var(--area-color)}.skill-state{display:inline-flex;gap:5px;align-items:center;border-radius:7px;border:1px solid var(--line);padding:5px 8px;font-size:11px;font-weight:600;line-height:1.3;margin:5px 0;background:var(--surface);color:var(--ink,var(--text))}.skill-state>.icon,.skill-state>.visual-icon{width:16px;height:16px}.skill-state.ready{border-color:var(--area-color,#43805b);background:color-mix(in srgb,var(--area-color,#43805b) 15%,var(--surface))}.skill-state.cooling{border-color:#a47a24;background:color-mix(in srgb,#c18a20 16%,var(--surface))}.skill-state.locked{color:var(--muted)}@media(max-width:650px){.skill-heading strong{font-size:15px}.skill-symbol{width:38px;height:38px}.skill-section-title{font-size:16px}}

/* Auto-dismiss notice clock; forms and decision dialogs remain manual. */
.turn-announcement .notice-countdown{position:relative;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--surface,#fff);color:var(--area-color,var(--teal));display:grid;place-items:center;cursor:pointer;box-shadow:none;margin:0}.notice-countdown svg{position:absolute;inset:0;width:44px;height:44px;transform:rotate(-90deg);fill:none;stroke-width:3}.notice-countdown .countdown-track{stroke:currentColor;opacity:.18}.notice-countdown .countdown-progress{stroke:currentColor;stroke-dasharray:100;stroke-linecap:round}.notice-countdown span{font-size:13px;font-weight:700}.notice-footer{display:flex;align-items:center;gap:12px;margin-top:12px}.turn-announcement .notice-footer>button{margin:0}.notice-footer .notice-countdown{flex:0 0 44px}.notice-countdown:focus-visible{outline:3px solid currentColor;outline-offset:3px}
