:root{color-scheme:dark;--bg:#16151d;--panel:#22212e;--text:#f3e9da;--muted:#b2a9ba;--accent:#a8e5b0;--line:#5a5366;--link:#e9c58b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;background-image:radial-gradient(#6d64792c 1px,transparent 1px);background-size:18px 18px}.shell{width:min(920px,calc(100% - 32px));margin:30px auto 70px}header{padding:28px 0 22px}h1{font-size:clamp(2rem,7vw,4.4rem);letter-spacing:-.07em;line-height:1.1;margin:.3em 0}h1 span{color:var(--accent)}.cursor{animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}h2{font-size:1.05rem;letter-spacing:.04em;color:var(--accent);margin:0 0 10px}.eyebrow,.muted,footer{color:var(--muted)}.eyebrow{font-size:.8rem}.panel{border:1px solid var(--line);background:var(--panel);padding:22px;margin:18px 0;box-shadow:5px 5px 0 #0d0d12}.controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}input,button{font:inherit;padding:11px 14px;border:1px solid var(--line)}input{flex:1;min-width:160px;background:#14141b;color:var(--text)}button{background:var(--accent);color:#11191a;font-weight:800;cursor:pointer}button:hover{filter:brightness(1.1)}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--link);outline-offset:3px}.neighborhood{max-width:500px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:20px 0 12px}.cell{aspect-ratio:1.25;background:#181821;color:var(--text);border:1px dashed var(--line);padding:7px;display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:0;overflow-wrap:anywhere;text-align:center;font-size:clamp(.65rem,2vw,.9rem)}.cell.occupied{border-style:solid;border-color:var(--link)}.cell.selected{background:#344b3c;border:2px solid var(--accent)}.cell:disabled{opacity:.35;cursor:not-allowed}.cell span{font-size:.7rem;color:var(--muted)}.legend{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.75rem;margin-bottom:17px}.list{display:grid;gap:10px;margin-top:15px}.entry{border-top:1px dashed var(--line);padding-top:10px}.entry strong{color:var(--accent)}a{color:var(--link);overflow-wrap:anywhere}a:hover{text-decoration:none}.tag{display:inline-block;border:1px solid var(--line);padding:0 5px;margin:3px;font-size:.72rem}.notice{color:var(--muted);font-size:.82rem}footer{font-size:.75rem;padding:22px 0}@media(max-width:500px){.panel{padding:15px}.cell{padding:4px}.legend{gap:9px}}

/* Phase 1.1: selected space & visual hierarchy */
:root { --pink:#ed80c3; }
.panel > h2 { border-bottom:2px solid var(--line); padding-bottom:9px; margin-bottom:14px; }
.selected-panel { border-color:var(--accent); }
.selected-header { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.selected-coord { margin:0; font-size:clamp(2rem,6vw,3.4rem); line-height:1.15; color:var(--text); letter-spacing:-.05em; }
.status-chip { border:1px solid var(--line); padding:3px 9px; font-size:.73rem; font-weight:bold; }
.status-occupied { color:var(--accent); border-color:var(--accent); }
.status-unlisted { color:var(--muted); }
.selected-name { font-size:1.3rem; font-weight:800; color:var(--link); margin:12px 0 4px; }
.selected-description { color:var(--muted); margin:9px 0 12px; }
.selected-tags { margin:10px 0; }
.selected-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.selected-actions a { border:1px solid var(--line); padding:7px 10px; font-size:.85rem; }
.selected-actions .primary-link { color:var(--bg); background:var(--accent); border-color:var(--accent); font-weight:800; }
.relation-group { border:1px solid var(--line); border-left:3px solid var(--pink); padding:12px 15px; background:#1b1a25; min-width:0; }
.relation-title { color:var(--pink); margin:0 0 10px; font-size:1rem; line-height:1.5; text-transform:uppercase; letter-spacing:.02em; }
.relation-count { color:var(--muted); font-size:.85rem; }
.relation-group .entry { padding:9px 0 0; margin-top:8px; }
.relation-group .entry .entry { padding:9px 0 0; }
.relation-group .coordinate-label { color:var(--link); }
#patterns.list { gap:18px; }

/* Phase 1.2: author attribution */
.selected-author { margin:0 0 12px; color:var(--pink); font-size:.88rem; letter-spacing:.04em; }
.selected-author strong { color:var(--text); }
.entry-author { color:var(--pink); font-size:.78rem; margin-top:2px; }
.cell .cell-author { display:block; max-width:100%; color:var(--pink); font-size:clamp(.55rem,1.5vw,.75rem); font-weight:500; line-height:1.3; margin-top:5px; overflow-wrap:anywhere; }
