/* R354 shared shell and workspace components. Optical colour/status surfaces are not restyled. */
:root{--xn-ink:#162e3c;--xn-muted:#526773;--xn-line:#dfe7eb;--xn-canvas:#f5f7f9;--xn-accent:#087f83;--xn-soft:#e8f5f3;--xn-radius:14px}
/* Shared workspace headings: imported identifiers must not push actions off-screen. */
.xn :is(.xn-head,.xn-card-head){flex-wrap:wrap}
.xn :is(.xn-head,.xn-card-head)>div{min-width:0;max-width:100%}
.xn :is(.xn-head,.xn-card-head)>div:not(.xn-actions){flex:1 1 240px;overflow-wrap:anywhere}
.xn :is(.xn-head,.xn-card-head) :is(h1,h2,p){overflow-wrap:anywhere}
.xn :is(.xn-head,.xn-card-head) p:empty{display:none}
@media(max-width:700px){.xn .xn-head>div:not(.xn-actions){flex-basis:auto;width:100%}}
body{font-family:Inter,"Segoe UI",Arial,sans-serif;background:var(--xn-canvas)!important;color:var(--xn-ink)}
#app>aside{background:#fff!important;border-right:1px solid var(--xn-line)!important;box-shadow:none!important}
#app>aside>.brand{padding:8px 10px 22px;border-bottom:1px solid var(--xn-line)}
#app>aside .brand strong{color:var(--xn-ink)!important;font-size:22px!important;letter-spacing:2px}
#app>aside .brand small{font-size:10px!important;letter-spacing:.2px;color:var(--xn-muted)!important}
#app>aside .logo{width:34px!important;height:34px!important}#app>aside .logo svg{width:34px!important;height:34px!important}
#app>aside .nav{margin-top:18px!important}#app>aside .nav button{min-height:40px!important;border:0!important;border-radius:8px!important;background:transparent!important;color:#536974!important;font-size:12px!important;font-weight:550!important;box-shadow:none!important;letter-spacing:0!important;text-transform:none!important}
#app>aside .nav button.active{background:var(--xn-soft)!important;color:#08686b!important;font-weight:700!important;border-left:0!important}
#app>aside .nav button:hover:not(:disabled){background:#f0f5f6!important;color:var(--xn-ink)!important}
#app>aside .nav .navGroupBtn{color:#8a969e!important;font-size:10px!important;text-transform:uppercase!important;letter-spacing:1.1px!important;font-weight:700!important;margin-top:8px!important}
#app>aside .navSection{color:#8a969e!important;font-size:10px!important;letter-spacing:1.2px!important}
#app>aside .nav button svg{width:18px;height:18px;stroke-width:1.6;fill:none;stroke:currentColor}
#app>aside .nav button.navLocked{opacity:.5;cursor:not-allowed}
#app>main>header{height:72px!important;background:#fff!important;border-bottom:1px solid var(--xn-line)!important;box-shadow:none!important;padding:0 28px!important;color:var(--xn-ink)!important}
#app>main>header .search{background:#f7f9fa!important;color:var(--xn-muted)!important;border:1px solid var(--xn-line)!important;border-radius:9px!important;max-width:340px;font-size:12px;cursor:pointer}
#app>main>header button.topIcon{background:transparent!important;border:0!important;box-shadow:none!important;color:#536974!important;border-radius:8px!important}
#app #who{font-size:11px;color:var(--xn-ink)!important}#app .avatar{background:var(--xn-soft)!important;color:#08686b!important;border:0!important}
#content{background:var(--xn-canvas)!important;padding:28px!important}
/* Shared buttons retain optical status classes and existing click handlers. */
#content :is(button.primary,button.secondary,button.xPrimary){font-size:12px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;border-radius:8px!important;box-shadow:0 1px 2px #18374408!important;min-height:38px!important}
#content :is(button.primary,button.xPrimary){background:#087f83!important;border-color:#087f83!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
#content button.secondary{background:#fff!important;border-color:#d8e3e7!important;color:#345662!important;-webkit-text-fill-color:#345662!important}
#content .xAutoRoute{gap:18px!important}#content .xReview{max-height:none!important}#content .xRouteFlow{font-size:12px!important}.xMapStage{background:#f7fafb!important}
.xn,.xn *{box-sizing:border-box;text-shadow:none!important;-webkit-text-fill-color:currentColor!important}
.xn{font-size:13px;color:var(--xn-ink)!important;line-height:1.5;max-width:1600px;margin:0 auto}
.xn h1,.xn h2,.xn h3{color:var(--xn-ink)!important;letter-spacing:-.5px;margin:0}.xn h1{font-size:29px;font-weight:680}.xn h2{font-size:17px}.xn h3{font-size:14px}
.xn p{color:var(--xn-muted)!important;margin:6px 0 0}.xn small{color:var(--xn-muted);font-size:11px}
.xn .xn-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.xn .xn-eyebrow{display:block;font-size:10px;letter-spacing:1.5px;font-weight:750;text-transform:uppercase;color:var(--xn-accent);margin-bottom:8px}
.xn button,.xn .xn-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff!important;color:#31505e!important;border:1px solid #d8e3e7!important;border-radius:8px!important;box-shadow:0 1px 2px #18374406!important;font-size:12px!important;line-height:1.3!important;font-weight:600!important;text-transform:none!important;letter-spacing:0!important;min-height:38px!important;padding:9px 13px!important;cursor:pointer;text-decoration:none}
.xn button:hover{background:#f3f7f8!important;border-color:#a9c4cc!important;transform:none!important}.xn button.xn-primary{background:var(--xn-accent)!important;border-color:var(--xn-accent)!important;color:#fff!important}.xn button.xn-danger{color:#ac3d4b!important;background:#fff6f7!important;border-color:#edcfd4!important}.xn button:disabled{opacity:.5;cursor:not-allowed}
.xn button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;flex:none}
.xn input,.xn select,.xn textarea{width:100%;min-height:40px;background:#fff!important;color:var(--xn-ink)!important;border:1px solid #d6e1e5!important;border-radius:8px!important;font:inherit;padding:9px 11px!important;box-shadow:none!important}.xn textarea{resize:vertical;min-height:88px}.xn input[type=checkbox]{min-height:0;width:16px;height:16px;accent-color:var(--xn-accent);padding:0!important}
.xn :is(input,select,textarea,button,a):focus-visible{outline:3px solid #91d4cf!important;outline-offset:3px}.xn label{color:#3d5663!important;font-size:12px;font-weight:600;margin:0;display:grid;gap:7px}
.xn .xn-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.xn .xn-card{background:#fff;border:1px solid var(--xn-line);border-radius:var(--xn-radius);overflow:hidden;box-shadow:0 3px 9px #213e5003;margin-bottom:18px}
.xn .xn-card-head{padding:20px 22px;border-bottom:1px solid var(--xn-line);display:flex;align-items:center;justify-content:space-between;gap:16px}.xn .xn-card-body{padding:22px}.xn .xn-scroll{overflow:auto}
.xn .xn-toolbar{display:flex;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid var(--xn-line)}.xn .xn-toolbar input{max-width:340px;background:#fafcfc!important}.xn .xn-toolbar select{width:auto;max-width:260px}.xn .xn-toolbar small{margin-left:auto}
.xn .xn-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.xn .xn-stat{background:#fff;border:1px solid var(--xn-line);border-radius:var(--xn-radius);padding:20px 22px}.xn .xn-stat span{display:block;font-size:12px;color:var(--xn-muted)}.xn .xn-stat strong{font-size:28px;font-weight:650;color:var(--xn-ink);display:block;margin-top:8px}.xn .xn-stat small{display:block;margin-top:7px}
.xn table{width:100%;border-collapse:collapse!important;margin:0!important;font-size:12px}.xn thead{background:#fafcfd}.xn th{font-weight:600!important;font-size:11px!important;color:#7a8a94!important;text-transform:none!important;letter-spacing:0!important}.xn td,.xn th{padding:15px 22px!important;border-bottom:1px solid #edf1f4!important;text-align:left!important;vertical-align:middle!important}.xn tbody tr:last-child td{border-bottom:0!important}.xn tbody tr:hover{background:#fbfdfd}.xn td{color:#34515f!important}.xn td b{font-weight:650;color:var(--xn-ink)}.xn td small{display:block;margin-top:3px}
.xn .xn-person{display:flex;align-items:center;gap:12px}.xn .xn-initials{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#edf4f7;color:#4a788c;font-weight:650;flex:none}
.xn .xn-chip{display:inline-flex;align-items:center;border-radius:6px;background:#f0f4f6;color:#637984;padding:4px 8px;font-size:10px;font-weight:650;white-space:nowrap}.xn .xn-chip.good{background:#eaf6ef;color:#28825a}.xn .xn-chip.warn{background:#fff5e3;color:#9c7219}.xn .xn-chip.bad{background:#fceff0;color:#b75661}.xn .xn-chip.role{background:#edf4fb;color:#476e98}
.xn .xn-empty{padding:50px 24px;text-align:center;color:var(--xn-muted)}.xn .xn-empty b{display:block;color:var(--xn-ink);font-size:16px;margin-bottom:7px}.xn .xn-notice{padding:13px 16px;border-radius:9px;background:#eff7f7;color:#406d74;border:1px solid #d4e9e9;margin-bottom:20px;font-size:12px}
.xn .xn-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.xn .xn-wide{grid-column:1/-1}.xn .xn-check{display:flex;align-items:center;gap:9px;font-weight:500}.xn .xn-split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:20px}
dialog.xn{position:fixed;inset:0;width:min(760px,calc(100vw - 32px));max-height:90vh;padding:0;border:1px solid var(--xn-line);border-radius:18px;background:#fff;box-shadow:0 24px 90px #12324640;overflow:auto;color:var(--xn-ink)!important;z-index:200000}dialog.xn::backdrop{background:#16313d60;backdrop-filter:blur(4px)}
dialog.xn .xn-modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 28px;border-bottom:1px solid var(--xn-line)}dialog.xn form{padding:24px 28px}dialog.xn .xn-modal-foot{margin-top:24px;padding-top:18px;border-top:1px solid var(--xn-line);display:flex;justify-content:flex-end;gap:10px}.xn .xn-error{color:#a73746!important;background:#fff3f4;border-radius:8px;padding:12px;margin:14px 0;display:none}.xn .xn-error:not(:empty){display:block}.xn .xn-permissions{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-height:340px;overflow:auto;padding:12px;border:1px solid var(--xn-line);border-radius:8px}
.login{background:#f4f7f9!important;background-image:radial-gradient(ellipse at 20% 30%,#dceeea 0,transparent 50%)!important}.loginbox{background:white!important;border:1px solid var(--xn-line)!important;border-radius:20px!important;padding:36px!important;box-shadow:0 20px 70px #2d526512!important;width:min(460px,94vw)!important;color:var(--xn-ink)!important}.loginbox h2{font-size:25px!important;letter-spacing:-.6px;margin-top:30px!important;color:var(--xn-ink)!important}.loginbox .brand small{font-size:10px!important;color:var(--xn-muted)!important;line-height:1.6}.loginbox .brand strong{color:var(--xn-ink)!important;font-size:23px!important}.loginbox input{background:#fbfcfd!important;color:var(--xn-ink)!important;border:1px solid var(--xn-line)!important;border-radius:8px!important}.loginbox label{font-size:12px!important;color:#506b79!important}.loginbox button.primary{background:var(--xn-accent)!important;border-color:var(--xn-accent)!important;color:#fff!important}.loginbox .xn-login-links{display:flex;justify-content:space-between;margin-top:20px;padding-top:20px;border-top:1px solid var(--xn-line)}.loginbox .xn-login-links button{border:0!important;box-shadow:none!important;background:transparent!important;color:#087b7d!important;padding:3px!important;font-size:12px!important}
@media(max-width:1100px){.xn .xn-stats{grid-template-columns:repeat(2,1fr)}.xn .xn-split{grid-template-columns:1fr}.xn td,.xn th{padding:13px!important}}
@media(max-width:700px){#content{padding:16px!important}.xn .xn-head{align-items:flex-start;flex-direction:column}.xn h1{font-size:24px}.xn .xn-form{grid-template-columns:1fr}.xn .xn-toolbar{flex-wrap:wrap}.xn .xn-permissions{grid-template-columns:1fr}dialog.xn form{padding:20px}.xn .xn-stat{padding:14px}#app>main>header{padding:12px!important;height:auto!important}.xn td:last-child{min-width:110px}}

#app .xn-nav-icon{display:inline-flex;align-items:center;margin-right:10px;width:18px;flex:none}#app>main>header .topIcon svg{width:19px;height:19px}#app .nav button:before{content:none!important}
@media(prefers-reduced-motion:reduce){.logo animateMotion{display:none}.xn *{scroll-behavior:auto!important;transition:none!important}}

/* R354.1: shared light surfaces must not inherit historical dark-shell rules. */
:is(#app,#login).hidden{display:none!important}
dialog.xn{margin:auto}
#app>aside,#app>main>header,.loginbox,#profileMenu{color:var(--xn-ink)!important;-webkit-text-fill-color:currentColor!important}
#app>aside .nav button :is(span,svg,path,rect,circle),#app>main>header .topIcon :is(svg,path,rect,circle){color:inherit!important;-webkit-text-fill-color:currentColor!important}
#app>aside .nav .navGroupBtn{color:#536974!important}
#app>aside .nav .navGroupBtn span{color:inherit!important}
#app>aside .subnav{border-left-color:#dbe5e9!important}
#app>aside .online{color:#217b59!important}
#app>aside .nav button:hover{transform:none!important}
#app>aside .nav button:focus-visible{outline:2px solid #087f83!important;outline-offset:-2px}
#app>main>header{gap:14px;flex-wrap:wrap;height:auto!important;min-height:72px}
#app>main>header .search{flex:1;min-width:150px;width:auto!important}
#app>main>header .accountWrap{display:flex;align-items:center;gap:10px!important;min-width:0;max-width:none;flex-wrap:wrap!important;justify-content:flex-end}
#app>main>header #lang{width:auto!important;max-width:140px}
#app>main>header #r314InboxBtn{background:#e8f5f3!important;color:#08686b!important;border:1px solid #cbe5df!important;border-radius:8px;box-shadow:none!important}
#profileMenu{background:#fff!important;border:1px solid var(--xn-line)!important;box-shadow:0 12px 36px #173b5320!important;max-width:calc(100vw - 24px)}
#profileMenu button{background:#fff!important;color:#31505e!important;border:0!important;min-height:40px}
#profileMenu button:hover{background:#edf6f5!important}
#profileMenu button#out{color:#a73746!important}
.loginbox :is(p,span,small){color:#536974!important;-webkit-text-fill-color:currentColor!important}
.loginbox .error{color:#a73746!important}
.toast{color:#fff!important;max-width:calc(100vw - 32px);z-index:210000}
.toast.bad{color:#fff!important}
#content .xn button:not(.xn-primary):not(.xn-danger),#content .xn .xn-button{background:#fff!important;color:#31505e!important;border:1px solid #d8e3e7!important;-webkit-text-fill-color:currentColor!important}
#content .xn button.xn-primary{background:#087f83!important;color:#fff!important;border-color:#087f83!important;-webkit-text-fill-color:currentColor!important}
#content .xn button.xn-danger{background:#fff6f7!important;color:#a73746!important;border-color:#edcfd4!important;-webkit-text-fill-color:currentColor!important}
#content .xn button :is(span,svg,path){color:inherit!important;-webkit-text-fill-color:currentColor!important}
#content .xn .xn-chip.good{color:#21764f!important}#content .xn .xn-chip.warn{color:#866018!important}#content .xn .xn-chip.bad{color:#a73746!important}
#content .xn [hidden],dialog.xn [hidden]{display:none!important}
#content .xn .xn-recovery-actions{margin-top:20px}
.xn-steps{padding-left:24px;margin:0 0 24px}.xn-steps li{padding:4px 0 16px}.xn-steps li:last-child{padding-bottom:0}
#xnMenuToggle,#xnNavBackdrop{display:none!important}
#app>main>header #r314InboxBtn{font-size:11px!important;width:auto!important;min-width:60px!important;padding:9px 12px!important}
#app>main>header #r314InboxBtn::before{content:none!important}
#content .xn .xn-stat,#content .xn .xn-card{border:1px solid var(--xn-line)!important}
#app>aside .navGroup.hidden{display:none!important}
@media(min-width:1001px){#app>aside .brand>div:last-child{display:block!important}}
@media(max-width:1000px){
 #app{display:block!important;grid-template-columns:none!important}
 #app>aside{display:none!important;position:fixed!important;left:0;top:0;width:260px!important;max-width:85vw;height:100dvh!important;z-index:11001;overflow-y:auto}
 body.xn-nav-open #app>aside{display:flex!important;flex-direction:column}
 #app>aside .brand>div:last-child{display:block!important}
 #app>aside .nav{display:block!important;overflow:auto;flex:1;min-height:0}
 #app>aside .online{position:static!important;margin:12px}
 #app>main>header{display:grid!important;grid-template-columns:52px minmax(0,1fr) auto;align-items:center!important;padding:12px 16px!important;gap:10px}
 #app>main>header #xnMenuToggle{display:inline-flex!important;align-items:center;justify-content:center;min-height:38px!important;min-width:52px!important;border:1px solid var(--xn-line)!important;font-size:13px!important;grid-row:1;grid-column:1}
 body.xn-nav-open #xnNavBackdrop{display:block!important;position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;border:0!important;border-radius:0!important;background:#173b5359!important;box-shadow:none!important;z-index:11000}
 #app>main>header .accountWrap{grid-row:2;grid-column:1/-1;max-width:none!important;width:100%;gap:8px;justify-content:flex-start}
 #app>main>header .search{max-width:none;min-width:0;grid-row:1;grid-column:2}
 #app>main>header #r314InboxBtn{grid-row:1;grid-column:3;margin:0!important}
 #app #who{display:block!important;white-space:normal!important;line-height:1.4;flex:1;min-width:100px}
 #content{width:100%!important;max-width:none!important}
}
@media(max-width:600px){.xn .xn-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.xn .xn-toolbar>*{max-width:100%!important}.xn .xn-card-head{flex-wrap:wrap}.xn .xn-actions{gap:8px}.xn h1{font-size:24px}}
/* R354.2: readable administration, stable dialog actions and complete detail views. */
#app>aside .nav button{font-size:13px!important;line-height:1.4!important;white-space:normal!important;text-align:left!important}
#app>aside .nav .navGroupBtn{font-size:11px!important;color:#526773!important}
#content .xn,dialog.xn{font-size:14px;line-height:1.6}
#content .xn h1{font-size:28px;line-height:1.25;overflow-wrap:anywhere}
#content .xn h2,dialog.xn h2{font-size:19px;line-height:1.4}
#content .xn :is(label,th),dialog.xn label{font-size:13px!important;color:#385362!important;-webkit-text-fill-color:currentColor!important}
#content .xn :is(p,small),dialog.xn :is(p,small){color:#526773!important;-webkit-text-fill-color:currentColor!important}
#content .xn small,dialog.xn small{font-size:12px!important}
#content .xn table{font-size:14px}
#content .xn :is(input,select,textarea),dialog.xn :is(input,select,textarea){font-size:14px!important;line-height:1.5!important;border-color:#aebfc8!important;color:#162e3c!important;-webkit-text-fill-color:currentColor!important}
#content .xn button,dialog.xn button{font-size:13px!important;min-height:42px!important}
#content .xn .xn-chip{font-size:12px;white-space:normal}
#content .xn .xn-stat strong{font-size:26px;line-height:1.3;overflow-wrap:anywhere}
#content .xn .xn-eyebrow,dialog.xn .xn-eyebrow{font-size:11px;color:#08696d!important}
.xn .xn-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0 0 28px}
.xn .xn-detail-grid dt{font-size:12px;color:#526773;margin-bottom:5px}.xn .xn-detail-grid dd{margin:0;font-size:15px;font-weight:600;color:#162e3c;overflow-wrap:anywhere}
.xn .xn-multiline{white-space:pre-wrap;overflow-wrap:anywhere}
.xn .xn-form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;border-top:1px solid #dfe7eb;padding-top:18px}
.xn .xn-company-picker{min-width:220px}
.xn .xn-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.xn .xn-module-choice{display:flex!important;align-items:center;gap:12px!important;padding:14px;border:1px solid #dbe5e9;border-radius:10px;background:#fff;cursor:pointer}
.xn .xn-module-choice:has(input:checked){background:#eef8f6;border-color:#95c7c2}.xn .xn-module-choice input{flex:none}
.xn .xn-module-choice span{min-width:0}.xn .xn-module-choice :is(b,small){display:block;overflow-wrap:anywhere}.xn .xn-module-choice b{color:#163745;font-weight:600}
.xn .xn-settings-actions{display:grid;gap:14px}.xn .xn-settings-actions button{justify-content:flex-start}
.xn .xn-thread{padding:22px}.xn .xn-thread article{padding:18px 20px;border:1px solid #dbe5e9;border-radius:12px;background:#f8fbfc;margin-bottom:16px}.xn .xn-thread article:last-child{margin-bottom:0}.xn .xn-thread-meta{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap}.xn .xn-thread time{font-size:12px;color:#526773}.xn .xn-thread p{color:#294453!important;font-size:15px}
dialog.xn .xn-modal-head{position:sticky;top:0;background:#fff;z-index:2}dialog.xn .xn-modal-foot{position:sticky;bottom:-24px;background:#fff;z-index:2;padding-bottom:14px}.xn .xn-error{white-space:pre-wrap;font-size:14px}
/* Common legacy light form surfaces; leave optical colours and dark diagrams alone. */
#content :is(.panel,.card) > label,#content :is(.panel,.card) > p.hint{font-size:13px!important;color:#486270!important;-webkit-text-fill-color:currentColor!important}
#content input::placeholder,#content textarea::placeholder{color:#607681!important;-webkit-text-fill-color:#607681!important}
@media(max-width:1100px){.xn .xn-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.xn .xn-detail-grid,.xn .xn-module-grid{grid-template-columns:1fr}.xn .xn-stats{gap:10px}.xn .xn-stat strong{font-size:23px!important}.xn .xn-form-actions{align-items:flex-start;flex-direction:column}.xn .xn-company-picker{width:100%}.xn .xn-toolbar small{display:none}dialog.xn .xn-modal-foot{bottom:-20px;flex-wrap:wrap}}
/* Keep form actions in view while long dialog contents scroll independently. */
dialog.xn[open]{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 40px)}
dialog.xn .xn-modal-head{position:static;flex:none}
dialog.xn form{display:flex;flex-direction:column;min-height:0;overflow:hidden;margin:0}
dialog.xn form>.xn-form{min-height:0;overflow:auto;padding:3px 4px 4px;flex:1 1 auto}
dialog.xn .xn-modal-foot{position:static;flex:none;margin-top:18px;padding-top:16px;padding-bottom:0}
dialog.xn form>.xn-error{flex:none;margin-bottom:0}
/* R354.3: explicit notification palette; independent of light legacy panels. */
#xnToastStack{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;width:min(520px,calc(100vw - 40px));max-height:80dvh;overflow:auto;z-index:2147483000;pointer-events:none}
#xnToastStack .toast,.toast{background:#edf9f2!important;color:#17472e!important;-webkit-text-fill-color:currentColor!important;border:1px solid #73ad89!important;opacity:1!important;line-height:1.6!important;text-shadow:none!important}
#xnToastStack .toast.bad,.toast.bad{background:#fff1f2!important;color:#862537!important;-webkit-text-fill-color:currentColor!important;border-color:#c96373!important}
#xnToastStack .toast{position:static!important;display:flex;align-items:flex-start;gap:16px;pointer-events:auto;width:100%;padding:14px 16px!important;box-sizing:border-box;box-shadow:0 8px 24px #19374426!important;font-size:14px!important}
#xnToastStack .toast *,body .toast *{color:inherit!important;-webkit-text-fill-color:currentColor!important;opacity:1!important;text-shadow:none!important}
#xnToastStack .toast>span{flex:1;white-space:pre-wrap;overflow-wrap:anywhere}
#xnToastStack .toast>button{background:transparent!important;border:0!important;box-shadow:none!important;font:24px/1 sans-serif!important;min-height:30px!important;min-width:30px!important;padding:0!important;cursor:pointer}
#content .error:not(:empty),.modalShade .error:not(:empty),.xn .xn-error:not(:empty){background:#fff1f2!important;color:#862537!important;-webkit-text-fill-color:currentColor!important;border:1px solid #e2a9b2;padding:12px 14px!important;border-radius:10px;line-height:1.6}
#content .error *, .modalShade .error *{color:inherit!important;-webkit-text-fill-color:currentColor!important}
/* Fault result: the calculated point is distinct from neighbouring structures. */
#content .xn-fault-point{background:#fff8f7!important;border:1px solid #e8b3ad!important;display:flex;gap:18px;padding:22px;border-radius:14px;color:#243e4d!important;margin:20px 0;scroll-margin-top:24px}
#content .xn-fault-point :is(h3,p,small,span){color:#243e4d!important;-webkit-text-fill-color:currentColor!important}
#content .xn-fault-point h3{font-size:21px!important;margin:6px 0 12px!important}
#content .xn-fault-point small{font-size:11px!important;font-weight:700;letter-spacing:.08em}
#content .xn-fault-point .r353FaultIcon{flex:none;background:#c73549!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-radius:12px;width:44px;height:44px;display:grid;place-items:center;font-size:26px}
#content .xn-fault-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px}
#content .xn-location-link,#content .xn-fault-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px!important;padding:10px 16px!important;border:1px solid #087e83!important;border-radius:9px!important;background:#087e83!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font:600 13px/1.4 system-ui!important;text-decoration:none!important;box-sizing:border-box;cursor:pointer}
#content .xn-fault-actions button,#content .r305FaultCards .xn-location-link{background:#fff!important;color:#086e74!important;-webkit-text-fill-color:#086e74!important}
#content .xn-location-link:hover{filter:brightness(.94)}
#content .xn-location-link:focus-visible,#content .xn-fault-actions button:focus-visible{outline:3px solid #5db1ce;outline-offset:3px}
#content .xn-coordinates{font-variant-numeric:tabular-nums;direction:ltr;font-weight:600}
#content .xn-fault-warning,#content .xn-route-warning{background:#fff7e9!important;border:1px solid #d8b671!important;border-radius:12px;padding:18px;margin:14px 0;color:#634413!important;line-height:1.6}
#content .xn-fault-warning *,#content .xn .xn-route-warning *{color:inherit!important;-webkit-text-fill-color:currentColor!important}
#content .xn-fault-warning select{color:#173b4b!important;-webkit-text-fill-color:#173b4b!important;background:#fff!important}
#content .xn-fault-breakdown{padding:16px;background:#f7fafb;border:1px solid #d8e3e8;border-radius:10px;margin-top:16px}
#content .xn-fault-popup,#content .xn-fault-popup :is(b,p){color:#173b4b!important;-webkit-text-fill-color:currentColor!important;line-height:1.5!important}
#content .xn-fault-popup .xn-location-link{color:#fff!important;-webkit-text-fill-color:#fff!important}
#content .xn-fault-marker{filter:drop-shadow(0 2px 3px #60313d80)}
#content .r305FaultCards article{min-width:0;overflow-wrap:anywhere}#content .r305FaultCards .xn-location-link{margin-top:12px}
/* Route tools use a readable two-column workspace with full-width review. */
#content .xAutoRoute{grid-template-columns:300px minmax(0,1fr)!important;gap:18px!important}
#content .xAutoRoute>.xEndpoints{height:auto!important;min-height:0!important;position:static!important;background:#fff!important}
#content .xAutoRoute>.xRouteMap{min-width:0;min-height:0!important}
#content .xAutoRoute>.xReview{grid-column:1/-1!important;height:auto!important;min-height:0!important;position:static!important;padding:0!important;background:#fff!important;overflow:visible!important}
#content .xReview>header{height:auto!important;padding:22px!important;display:block!important;background:#f7fafb!important}
#content .xReview>header h2{margin:4px 0!important;color:#1a3c50!important}
#content #arResult{padding:20px!important;overflow:visible!important;max-height:none!important}
#content .xn-route-result{display:grid;gap:16px}.xn-route-review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
#content .xn-route-result .xn-card-body{padding:20px}#content .xn-route-result .xn-card{margin:0!important;min-width:0}
#content .xn-route-result h3{font-size:17px!important;color:#183d50!important;margin:0 0 14px!important}
#content .xn-route-result table td{vertical-align:top;overflow-wrap:anywhere}#content .xn-route-result table small{display:block}
#content .xn-route-chain{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:0}
#content .xn-route-chain li{display:flex;gap:12px;padding:0 0 18px;position:relative;min-width:0}
#content .xn-route-chain li>span{width:27px;height:27px;display:grid;place-items:center;flex:none;background:#e3f2f2;border:1px solid #add3d4;border-radius:50%;color:#096e74!important;font-size:12px}
#content .xn-route-chain small,#content .xn-optical-chain small{display:block;color:#56707d!important}#content .xn-route-chain b{overflow-wrap:anywhere}
#content .xn-route-result .xn-text-link{color:#086e74!important;-webkit-text-fill-color:currentColor!important;text-decoration:underline;text-underline-offset:3px;font-size:12px}
#content .xn-optical-chain{padding-left:22px}.xn-optical-chain li{margin-bottom:12px;overflow-wrap:anywhere}
#content .xn-route-missing{border:1px solid #dbcda9;background:#fffdf7;border-radius:12px;padding:18px;min-width:0}
#content .xn-route-missing summary{cursor:pointer;font-weight:600;color:#624c20!important;line-height:1.6}.xn-route-missing .xn-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
#content .xn-route-proposal{padding:14px;border:1px dashed #cbb071;border-radius:10px;margin:12px 0;background:#fffdf8}
#content .xMapStage{min-height:360px!important;background:#f6fafb!important;padding:0!important}#content .xn-route-schematic{width:100%;padding:16px;box-sizing:border-box;min-width:0}#content .xn-route-schematic svg{width:100%;height:auto;background:#f6fafb}
#content .xn-route-schematic svg text{fill:#183d50!important;color:#183d50!important;-webkit-text-fill-color:#183d50!important;text-shadow:0 1px 2px #fff}
#content .xn-map-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#225566}.xn-map-legend span:nth-child(2){color:#356ad3!important}.xn-map-legend span:nth-child(3){color:#9c6115!important}
#content .xAutoRoute .xLegend{display:none!important}
@media(max-width:900px){#content .xAutoRoute{grid-template-columns:1fr!important}.xn-route-review-grid{grid-template-columns:1fr}#content .xReview>header,#content #arResult{padding:14px!important}#content .xn-fault-point{padding:16px}.xn-fault-point .r353FaultIcon{display:none!important}}
#content #r324Map .leaflet-popup-content,#content #r324Map .leaflet-popup-content :is(b,strong,p,small,span){color:#173b4b!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important}
#content #r324Map .leaflet-popup-content button{background:#087e83!important;border:1px solid #087e83!important;color:#fff!important;-webkit-text-fill-color:#fff!important;margin:4px 4px 0 0!important;font-size:12px!important;min-height:36px!important}
