
:root{--bg:#071117;--panel:#0d1f2a;--panel2:#112b37;--text:#edf7fa;--muted:#b8ced8;--soft:#86a0ab;--line:rgba(255,255,255,.11);--accent:#54dccf;--accent2:#7aa2ff;--good:#6ee7a7;--warn:#f2bd5b;--bad:#ff7d88;--shadow:0 24px 70px rgba(0,0,0,.38);--r:18px;--r2:28px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 18% -10%,rgba(84,220,207,.14),transparent 34%),radial-gradient(circle at 85% 8%,rgba(122,162,255,.13),transparent 28%),var(--bg);color:var(--text);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button,.button{border:1px solid rgba(84,220,207,.36);background:linear-gradient(180deg,rgba(84,220,207,.2),rgba(84,220,207,.08));color:var(--text);padding:.66rem .9rem;border-radius:999px;font-weight:850;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:transform .13s ease,border-color .13s ease,background .13s ease}button:hover,.button:hover{transform:translateY(-1px);border-color:rgba(84,220,207,.68);background:rgba(84,220,207,.18)}button.secondary,.button.secondary{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.055);color:#d6e9ef}button.danger{border-color:rgba(255,125,136,.36);background:rgba(255,125,136,.11)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.wrap{width:min(1440px,calc(100vw - 34px));margin:0 auto}.topbar{position:sticky;top:0;z-index:20;background:rgba(7,17,23,.88);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.topbar-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;align-items:center;gap:.72rem;font-weight:950;letter-spacing:-.03em}.logo{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:radial-gradient(circle at 35% 20%,#dcfffb,var(--accent) 45%,#0a5b62);box-shadow:0 0 26px rgba(84,220,207,.34);color:#05232a}.global-nav{display:flex;gap:.42rem;align-items:center;flex-wrap:wrap}.global-nav a{padding:.45rem .62rem;border-radius:999px;color:var(--muted);font-weight:750}.global-nav a:hover,.global-nav a.active{background:rgba(84,220,207,.12);color:var(--text)}.strip{background:rgba(0,0,0,.18);border-bottom:1px solid rgba(255,255,255,.07)}.strip-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.55rem;padding:.68rem 0}.strip-cell{padding:.55rem .68rem;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);min-width:0}.strip-cell strong{display:block;font-size:.68rem;color:var(--soft);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.strip-cell span{font-weight:850;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-good{color:var(--good)}.status-warn{color:var(--warn)}.status-bad{color:var(--bad)}.hero{padding:2.2rem 0 1.25rem}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.8fr);gap:1.1rem;align-items:stretch}.hero h1{font-size:clamp(2rem,4.8vw,4.8rem);line-height:.94;margin:.25rem 0 .8rem;letter-spacing:-.055em}.lede{font-size:1.08rem;color:#c4d6dd;max-width:82ch}.eyebrow{color:var(--accent);font-weight:900;text-transform:uppercase;letter-spacing:.14em;font-size:.76rem}.panel,.card{background:linear-gradient(180deg,rgba(20,45,58,.92),rgba(11,28,38,.94));border:1px solid rgba(255,255,255,.1);border-radius:var(--r2);box-shadow:var(--shadow)}.panel{padding:1rem}.card{padding:1rem;border-radius:var(--r)}.panel h2,.card h3{margin-top:0}.layout{display:grid;grid-template-columns:310px minmax(0,1fr) 360px;gap:1rem;align-items:start;margin:1rem 0 2rem}.layout.two{grid-template-columns:330px minmax(0,1fr)}.layout.wide{grid-template-columns:minmax(0,1fr) 380px}.left-rail,.right-rail{position:sticky;top:135px}.grid{display:grid;gap:1rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.service-grid,.persona-grid,.doc-grid,.library-grid,.resource-grid,.bulletin-grid,.thread-grid,.message-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.85rem}.service-card,.persona-card,.item-card,.thread-card,.message-card,.bulletin-card,.doc-card,.node-detail{position:relative;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.045);border-radius:20px;padding:.95rem;transition:transform .14s ease,border-color .14s ease,background .14s ease}.clickable{cursor:pointer}.clickable:hover,.service-card:hover,.persona-card:hover,.item-card:hover,.thread-card:hover,.message-card:hover,.bulletin-card:hover,.doc-card:hover{transform:translateY(-1px);border-color:rgba(84,220,207,.42);background:rgba(84,220,207,.08)}.selected{border-color:rgba(84,220,207,.65)!important;background:rgba(84,220,207,.12)!important}.service-card h3,.item-card h3,.thread-card h3,.message-card h3,.doc-card h3{margin:.15rem 0 .35rem}.meta-row{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}.pill,.badge{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);border-radius:999px;padding:.24rem .5rem;font-size:.74rem;color:#cce0e7;font-weight:800}.badge.good{color:#baffd5;border-color:rgba(110,231,167,.28);background:rgba(110,231,167,.08)}.badge.warn{color:#ffe1a8;border-color:rgba(242,189,91,.28);background:rgba(242,189,91,.08)}.badge.bad{color:#ffc4ca;border-color:rgba(255,125,136,.28);background:rgba(255,125,136,.08)}.badge.info{color:#caeaff;border-color:rgba(122,162,255,.28);background:rgba(122,162,255,.08)}.muted{color:var(--muted)}.fineprint{color:var(--soft);font-size:.86rem}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:rgba(0,0,0,.26);padding:.15rem .35rem;border-radius:7px;color:#d9f6ff}.field{display:grid;gap:.35rem;margin:.62rem 0}.field label{font-size:.75rem;color:var(--soft);font-weight:900;text-transform:uppercase;letter-spacing:.08em}.field input,.field textarea,.field select{width:100%;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.13);border-radius:15px;color:var(--text);padding:.72rem .78rem;font:inherit}.field textarea{min-height:110px;resize:vertical}.button-row{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:.75rem}.event-console{height:280px;overflow:auto;background:#061017;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:.75rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem}.event-line{padding:.38rem .1rem;border-bottom:1px solid rgba(255,255,255,.06);color:#b9ced7}.event-line strong{color:#e8f3f7}.event-line.warn{color:#ffe1a8}.event-line.bad{color:#ffc4ca}.event-line.good{color:#baffd5}.posture{display:grid;gap:.45rem}.posture-row{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid rgba(255,255,255,.07);padding:.45rem 0}.posture-row span:first-child{color:var(--soft)}.reader{min-height:320px}.reader h2{margin-top:.15rem}.body-box,.thread-body,.mail-body,.doc-body,.preview-box{white-space:pre-wrap;color:#d3e4ea;background:rgba(0,0,0,.16);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:1rem}.tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.tab-button{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:var(--muted);padding:.5rem .72rem;border-radius:999px;cursor:pointer;font-weight:850}.tab-button.active{background:rgba(84,220,207,.14);border-color:rgba(84,220,207,.4);color:var(--text)}.filter-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin:.75rem 0}.filter-row input,.filter-row select{min-width:220px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.12);border-radius:999px;color:var(--text);padding:.62rem .82rem}.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:.8rem 0}.kpi{padding:.85rem;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09)}.kpi strong{display:block;font-size:1.45rem}.kpi span{color:var(--soft);font-size:.86rem}.tour-list{display:grid;gap:.48rem}.tour-item{display:flex;gap:.65rem;align-items:flex-start;padding:.7rem;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);border-radius:15px}.tour-item.done{border-color:rgba(110,231,167,.24);background:rgba(110,231,167,.07)}.node-map{position:relative;height:560px;overflow:hidden;background:radial-gradient(circle at 35% 30%,rgba(84,220,207,.14),transparent 32%),radial-gradient(circle at 80% 60%,rgba(122,162,255,.12),transparent 28%),#08141c;border:1px solid rgba(255,255,255,.1);border-radius:30px}.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:40px 40px}.svg-links{position:absolute;inset:0;width:100%;height:100%}.svg-links line{stroke:rgba(140,190,210,.28);stroke-width:2}.svg-links line.active{stroke:var(--accent);stroke-width:4;filter:drop-shadow(0 0 8px rgba(84,220,207,.8))}.node-dot{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);transform:translate(-50%,-50%);width:25px;height:25px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 7px rgba(84,220,207,.11),0 0 25px rgba(84,220,207,.55);border:2px solid #dffff9;cursor:pointer;z-index:3}.node-dot.warning,.node-dot.concept{background:var(--warn);box-shadow:0 0 0 7px rgba(242,189,91,.12),0 0 25px rgba(242,189,91,.55)}.node-dot.offline{background:var(--bad);box-shadow:0 0 0 7px rgba(255,125,136,.12),0 0 25px rgba(255,125,136,.55)}.node-label{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1% + 22px);transform:translateX(-50%);font-size:.75rem;color:#cfe4ea;background:rgba(0,0,0,.34);padding:.2rem .42rem;border-radius:8px;white-space:nowrap;z-index:4}.route-readout{border:1px solid rgba(84,220,207,.24);background:rgba(84,220,207,.08);border-radius:18px;padding:.8rem}.footer{border-top:1px solid rgba(255,255,255,.08);padding:1.5rem 0 2rem;background:rgba(0,0,0,.18);margin-top:2rem}.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1rem}.caution{border:1px solid rgba(242,189,91,.28);background:rgba(242,189,91,.08);border-radius:20px;padding:.9rem}.empty{color:var(--soft);font-style:italic}.hidden{display:none!important}@media (max-width:1180px){.hero-grid,.layout,.layout.two,.layout.wide{grid-template-columns:1fr}.left-rail,.right-rail{position:relative;top:auto}.strip-grid{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.wrap{width:min(100vw - 22px,1440px)}.strip-grid,.grid.two,.grid.three,.grid.four,.kpi-row,.footer-grid{grid-template-columns:1fr}.node-map{height:430px}.global-nav{font-size:.82rem}.topbar-inner{align-items:flex-start;flex-direction:column}.hero{padding-top:1.2rem}}


/* Sprint 04 local-launch polish: explicit high-contrast native controls. */
html { color-scheme: dark; }
.field input,.field textarea,.field select,.filter-row input,.filter-row select {
  background-color:#07141b;
  color:#f4fbff;
  border-color:rgba(180,220,232,.28);
  caret-color:#54dccf;
}
.field select:focus,.filter-row select:focus,.field input:focus,.field textarea:focus,.filter-row input:focus {
  outline:2px solid rgba(84,220,207,.55);
  outline-offset:2px;
}
.field select option,.filter-row select option {
  background:#07141b;
  color:#f4fbff;
}
.field select option:checked,.filter-row select option:checked {
  background:#145e65;
  color:#ffffff;
}
@media (forced-colors: active) {
  .field select option,.filter-row select option { forced-color-adjust:auto; }
}


/* Sprint 05 polish: design tokens, splitters, selectors, breadcrumbs, toasts */
:root{
  --bg-0:#061014;--bg-1:#071b20;--bg-2:#0b2730;--panel-strong:rgba(15,52,63,.96);
  --line-strong:rgba(135,255,240,.32);--accent-soft:rgba(45,240,220,.18);--focus:0 0 0 3px rgba(84,220,207,.24);
  --left-panel:280px;--right-panel:420px;
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,.choice-button:focus-visible{outline:none;box-shadow:var(--focus);}
select{background:#0b2730!important;color:#ecfeff!important;border-color:rgba(135,255,240,.28)!important;}
.module-toolbar{margin:1rem 0;position:relative;z-index:4}.toolbar-line{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between}.toolbar-line h2{margin-bottom:.15rem}.filter-row{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.filter-row input{min-width:min(380px,100%);flex:1 1 260px}.breadcrumb-line{margin-top:.65rem;color:#b8ced8;font-size:.9rem}.breadcrumb-line strong{color:#ecfeff}.event-panel{margin:1rem 0 2rem}.inner-panel{box-shadow:none;border-radius:18px}.app-panels{margin:1rem 0;min-height:560px}.app-panels-3{display:grid;grid-template-columns:var(--left-panel) 8px minmax(360px,1fr) 8px var(--right-panel);gap:0;align-items:stretch}.app-panels .panel{min-width:0;overflow:auto;max-height:calc(100vh - 210px);border-radius:0}.app-panels .panel-left{border-radius:28px 0 0 28px}.app-panels .panel-right{border-radius:0 28px 28px 0}.app-panels .panel-main{border-radius:0;box-shadow:none}.splitter{cursor:col-resize;background:linear-gradient(180deg,rgba(45,240,220,.08),rgba(45,240,220,.25),rgba(45,240,220,.08));border-left:1px solid rgba(135,255,240,.12);border-right:1px solid rgba(135,255,240,.12);position:relative;z-index:3;touch-action:none}.splitter::after{content:'';position:absolute;inset:44% 2px;border-radius:999px;background:rgba(236,254,255,.28);box-shadow:0 0 12px rgba(84,220,207,.25)}.splitter:hover,.splitter.is-dragging{background:rgba(45,240,220,.34);box-shadow:0 0 18px rgba(45,240,220,.24)}.is-dragging-page{cursor:col-resize;user-select:none}.app-panels.left-collapsed{grid-template-columns:0 8px minmax(360px,1fr) 8px var(--right-panel)}.app-panels.right-collapsed{grid-template-columns:var(--left-panel) 8px minmax(360px,1fr) 8px 0}.app-panels.left-collapsed.right-collapsed{grid-template-columns:0 8px minmax(360px,1fr) 8px 0}.app-panels.left-collapsed .panel-left,.app-panels.right-collapsed .panel-right{padding:0;overflow:hidden;border-width:0}.choice-control{position:relative;min-width:210px;display:inline-block}.choice-button{width:100%;justify-content:space-between;border-radius:16px;text-align:left}.choice-button::after{content:'▾';opacity:.8}.choice-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);display:none;z-index:45;background:linear-gradient(180deg,rgba(14,43,54,.98),rgba(7,22,30,.98));border:1px solid rgba(135,255,240,.2);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.48);padding:.4rem;max-height:280px;overflow:auto}.choice-control.open .choice-menu{display:grid;gap:.25rem}.choice-menu button{border-radius:12px;justify-content:flex-start;background:transparent;border-color:transparent;color:#e8fbff;width:100%;font-weight:750}.choice-menu button:hover,.choice-menu button.selected{background:rgba(84,220,207,.14);border-color:rgba(84,220,207,.26);transform:none}.toast-region{position:fixed;right:18px;bottom:18px;z-index:80;display:grid;gap:.55rem;width:min(420px,calc(100vw - 36px));pointer-events:none}.toast{pointer-events:auto;border:1px solid rgba(135,255,240,.22);background:linear-gradient(180deg,rgba(14,43,54,.98),rgba(7,22,30,.98));border-radius:18px;padding:.75rem .9rem;box-shadow:0 20px 60px rgba(0,0,0,.42);color:#ecfeff;animation:toast-in .15s ease-out}.toast.good{border-color:rgba(110,231,167,.35)}.toast.warn{border-color:rgba(242,189,91,.35)}.toast.bad{border-color:rgba(255,125,136,.35)}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.node-list-card{display:block}.status-dot{width:.7rem;height:.7rem;border-radius:999px;display:inline-block;background:var(--accent);box-shadow:0 0 14px rgba(84,220,207,.45)}.status-dot.warning{background:var(--warn)}.status-dot.offline{background:var(--bad)}.preview-box{white-space:pre-wrap}.mail-body,.thread-body,.body-box,.doc-body{white-space:pre-wrap}.app-panels .thread-grid,.app-panels .message-grid,.app-panels .library-grid,.app-panels .doc-grid{grid-template-columns:1fr}.node-map .svg-links line.active{stroke-width:1.4;filter:drop-shadow(0 0 5px rgba(84,220,207,.7));animation:pulse-route 1.4s ease-in-out infinite}@keyframes pulse-route{0%,100%{opacity:.75}50%{opacity:1}}
@media (max-width:1100px){.app-panels-3{display:grid;grid-template-columns:1fr;gap:1rem}.splitter{display:none}.app-panels .panel,.app-panels .panel-left,.app-panels .panel-right,.app-panels .panel-main{border-radius:28px;max-height:none}.toolbar-line{display:grid}.choice-control{width:100%}.filter-row input{min-width:100%}}


/* 20260521 mobile compatibility patch */
img, video, canvas, svg { max-width: 100%; height: auto; }
a, button, input, select, textarea { touch-action: manipulation; }
button, .button, .choice-button, .small-button, .mode-tab, .guide-chip, .chip-button, .doc-button, .id-pill-button { min-height: 44px; }
input, select, textarea { font-size: 16px; }
pre, code, .event-console, .table-scroll, .data-table { max-width: 100%; overflow-x: auto; }
.github-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.github-grid article { border: 1px solid rgba(255,255,255,.12); border-radius: 18px; padding: 18px; background: rgba(255,255,255,.045); }
.fineprint { color: var(--muted, #aab6cb); font-size: .92rem; line-height: 1.55; }
@media (max-width: 860px) {
  body { overflow-x: hidden; }
  .section-shell { width: min(100% - 24px, var(--max-width, 1180px)); padding-left: 0; padding-right: 0; }
  .hero-grid, .footer-grid, .portal-grid, .boundary-card, .contact-grid, .layout, .grid, .workbench-grid, .command-bar, .dashboard-shell, .operator-grid, .retroweb-shell, .retro-grid { grid-template-columns: 1fr !important; }
  .hero, .section-shell, .panel, .portal-card, .hero-card, .boundary-card, .doc-card { border-radius: 18px; }
  .portal-actions, .hero-actions, .button-row, .doc-actions { flex-direction: column; align-items: stretch; }
  .portal-actions .button, .hero-actions .button, .button-row .button, .button-row button, .doc-actions .button { width: 100%; justify-content: center; text-align: center; }
  .site-header, .topbar, .command-bar, .aisop-bridge { position: static !important; }
  .site-nav, .global-nav, .unified-nav, .aisop-bridge__nav, .mode-tabs { overflow-x: auto; flex-wrap: nowrap; justify-content: flex-start; padding-bottom: 6px; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
  .site-nav a, .global-nav a, .unified-nav a, .aisop-bridge__nav a { white-space: nowrap; }
  .hero-copy h1, .section-heading h1, .section-heading h2 { overflow-wrap: anywhere; }
  .kpi-row, .service-grid, .persona-grid, .github-grid { grid-template-columns: 1fr !important; }
  .right-rail, aside, .explorer-panel, .reader-panel { min-width: 0; }
  table { display: block; max-width: 100%; overflow-x: auto; white-space: nowrap; }
}
@media (max-width: 560px) {
  .hero-copy h1 { font-size: clamp(2rem, 11vw, 3.2rem); }
  .section-heading h1 { font-size: clamp(1.9rem, 9vw, 2.8rem); }
  .section-heading h2 { font-size: clamp(1.6rem, 8vw, 2.3rem); }
  .hero-lede, .lede { font-size: 1rem; }
  .hero-card, .portal-card, .panel, .boundary-card { padding: 16px !important; }
  .aisop-bridge__inner, .unified-sitebar-inner, .topbar-inner { gap: 10px; }
  .brand-copy span, .aisop-bridge__brand span:last-child { white-space: normal; }
  audio, video { width: 100%; }
}
