:root{
  font-family:'Noto Sans KR','Malgun Gothic',system-ui,sans-serif;color-scheme:dark;
  --bg:#0d1620;--surface:#111e29;--surface-2:#162634;--surface-3:#1b303d;--line:#2b4350;
  --text:#eaf0ed;--muted:#9cb0b7;--gold:#e4ba75;--gold-dim:#886e48;--mint:#8bd8c5;--ink:#0c1217;
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-width:300px}
button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}
button:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.app{min-height:100vh;display:flex;flex-direction:column}.topbar{height:auto;min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 29px;background:#101c26;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:14px;min-width:250px}.brand-mark{width:48px;height:48px;border:1px solid var(--gold-dim);border-radius:14px;display:grid;place-items:center;color:var(--gold);font-size:30px;box-shadow:inset 0 0 0 5px #152733}
.brand-eyebrow{letter-spacing:.16em;font-size:10px;font-weight:700;color:var(--gold)}.brand-version{color:var(--muted)}h1{margin:2px 0 0;font-size:22px;letter-spacing:-.06em;font-weight:700}
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.demo-chip,.user-chip{font-size:11px;padding:7px 10px;border-radius:6px;border:1px solid var(--line);white-space:nowrap}.demo-chip{color:var(--gold);background:#282417;border-color:#675637}.user-chip{color:var(--muted)}
select,.text-input,textarea{background:#11212d;border:1px solid #36505d;color:var(--text);border-radius:8px}select{padding:10px 12px;min-width:156px;max-width:210px}.btn{border-radius:8px;padding:10px 14px;font-size:12px;font-weight:700;border:1px solid var(--line);transition:background .15s,transform .15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--gold);border-color:var(--gold);color:#1e211e}.btn-primary:hover{background:#f1c889}.btn-secondary{background:var(--surface-2);color:var(--text)}.btn-secondary:hover{background:#243b48}.btn-quiet{background:transparent;border:1px solid #39515c;color:var(--muted)}
.layout{display:grid;grid-template-columns:224px minmax(360px,1fr) minmax(312px,365px);flex:1;min-height:calc(100vh - 129px)}
.sidebar{border-right:1px solid var(--line);background:#0e1b25;padding:29px 16px 22px;display:flex;flex-direction:column}
.side-heading{font-size:10px;letter-spacing:.18em;color:#748c96;font-weight:800;padding:0 12px;margin-bottom:14px}.side-heading-lower{margin-top:40px}
.nav-list{display:grid;gap:6px}.nav-item{display:flex;align-items:center;text-align:left;gap:11px;width:100%;border:1px solid transparent;border-radius:9px;background:transparent;color:#b4c6cb;padding:12px;font-size:13px;font-weight:600}.nav-item span{width:23px;color:#8caab3;font-size:17px}.nav-item:hover{background:var(--surface-2)}.nav-item.is-active{color:#f0d29c;background:linear-gradient(90deg,#3b3326,#1c2931);border-color:#614f32}.nav-item.is-active span{color:var(--gold)}
.record-overview{padding:17px 13px;background:#162735;border:1px solid #2c414c;border-radius:10px}.record-name{font-size:14px;font-weight:800;margin-bottom:3px;word-break:break-word}.record-date{color:var(--muted);font-size:10px}.stat-list{margin-top:18px;display:grid;gap:11px}.stat-row{display:flex;align-items:baseline;justify-content:space-between;color:var(--muted);font-size:12px}.stat-row strong{font-size:18px;color:var(--text)}
.side-actions{display:grid;margin-top:22px;gap:4px}.text-action{border:0;background:transparent;text-align:left;color:#b4c4cb;padding:8px 10px;font-size:11px;border-radius:5px}.text-action:hover{background:#203441;color:var(--text)}.danger{color:#d8a29a}.side-foot{margin-top:auto;padding:25px 10px 0;font-size:10px;line-height:1.8;color:#738991}
.main{background:radial-gradient(ellipse at 45% 0%,#19303a 0%,transparent 46%),#0e1b25;padding:34px;min-width:0}.main-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:.17em;color:var(--gold);font-weight:800}.main-title{font-size:25px;letter-spacing:-.055em;margin:8px 0 10px}.main-sub{font-size:12px;line-height:1.8;color:var(--muted);max-width:600px;margin:0}.pill{display:inline-flex;align-items:center;padding:7px 11px;border:1px solid #385461;border-radius:100px;background:#192f3b;color:#a8c1c7;font-size:11px;white-space:nowrap}.panel{border:1px solid #2d4653;background:linear-gradient(180deg,#172a36,#11222e);border-radius:14px;overflow:hidden}.panel-pad{padding:22px}.panel-title{margin:0;font-size:14px;font-weight:700}.panel-desc{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.7}.section-title{font-size:14px;font-weight:700;margin:28px 0 13px}.notice{padding:13px 15px;background:#182c37;border:1px solid #385260;color:#c0d1d4;font-size:12px;border-radius:8px;line-height:1.75;margin-bottom:20px}
.map-shell{background:radial-gradient(circle at 35% 40%,#1d3742 0%,#132732 60%);border:1px solid #36515d;border-radius:13px;padding:24px;position:relative}.map-grid{min-height:375px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(100px,1fr));gap:14px}.map-cell{border:1px dashed #395460;background:#132834;border-radius:11px;padding:12px;text-align:left;position:relative;display:flex;flex-direction:column;justify-content:space-between;min-width:0}.map-cell.is-known{border-style:solid;border-color:#5b735e;background:linear-gradient(150deg,#203e3e,#162b36);color:#e7f3ed}.map-cell.is-current{box-shadow:0 0 0 2px var(--gold);border-color:var(--gold)}.map-cell.is-unknown{color:#647e89;cursor:default}.map-symbol{color:var(--gold);font-size:20px}.map-name{font-size:12px;font-weight:700;word-break:keep-all}.map-cell.is-unknown .map-name{font-weight:400}.map-meta{font-size:9px;letter-spacing:.08em;opacity:.7;margin-top:5px}
.map-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-top:16px;color:#91a7ae;font-size:10px}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:100%;margin-right:7px;background:var(--gold)}.legend-dot.unknown{background:#415c68}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:13px}.card{background:#182e3b;border:1px solid #34515e;border-radius:12px;padding:18px;text-align:left;min-height:130px;color:var(--text);display:flex;flex-direction:column;gap:8px;transition:background .15s,border-color .15s}.card:hover,.card.is-current{background:#243f4c;border-color:var(--gold-dim)}.card-type{font-size:10px;letter-spacing:.1em;color:var(--mint)}.card-name{font-size:15px;font-weight:800}.card-sub{font-size:11px;line-height:1.65;color:#adc0c6}.filter-row{display:flex;align-items:center;gap:10px;margin-bottom:16px}.text-input{padding:11px 14px;width:100%;outline:none}.empty{padding:25px;border:1px dashed #3f5a64;border-radius:10px;color:var(--muted);font-size:12px;line-height:1.8}.event-tag{color:var(--gold)}
.inspector{background:#14232e;border-left:1px solid var(--line);padding:29px 24px;min-width:0;overflow:auto}.inspector-top{margin-bottom:26px}.inspector-type{font-size:10px;color:var(--mint);letter-spacing:.13em;font-weight:800}.inspector-name{font-size:23px;letter-spacing:-.05em;margin:9px 0}.inspector-class{font-size:10px;color:#839da6;margin:6px 0 18px}.inspector-summary{font-size:12px;color:#b7c8ca;line-height:1.85;margin:0}.inspector-section{border-top:1px solid #35505a;padding-top:20px;margin-top:21px}.inspector-section h3{font-size:13px;margin:0 0 14px;font-weight:800;display:flex;align-items:center;justify-content:space-between}.mini-count{font-size:10px;color:#8aa0a8;font-weight:500}.fact{padding:13px 14px;border:1px solid #344e5b;background:#182d39;border-radius:9px;margin-bottom:9px}.fact-title{font-size:12px;font-weight:700;display:flex;justify-content:space-between;gap:8px}.fact-state{font-size:9px;color:var(--gold);white-space:nowrap}.fact-state.known{color:var(--mint)}.fact-state.locked{color:#829ba5}.fact-text{font-size:12px;line-height:1.8;color:#bbcccf;margin:10px 0 0}.fact-action{margin-top:12px;padding:7px 9px;background:#274540;border:1px solid #4e7b71;color:#cce9e0;font-size:11px;border-radius:6px}.relation{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 0;border-bottom:1px solid #2c4450}.relation:last-child{border-bottom:0}.relation small{display:block;color:#8ca5ad;font-size:10px;margin-bottom:3px}.relation strong{font-size:12px}.relation button{padding:7px 10px;background:#253e4c;border:1px solid #476575;color:#d7e6eb;border-radius:6px;font-size:10px;white-space:nowrap}.relation button:hover{background:#305263}
.note-input{width:100%;padding:12px;min-height:90px;resize:vertical;font-size:12px;line-height:1.7}.note-buttons{display:flex;justify-content:flex-end;margin-top:8px}.memo{border:1px solid #35515c;background:#192e3a;border-radius:8px;padding:13px;margin-top:12px}.memo-body{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.memo-foot{display:flex;justify-content:space-between;gap:10px;margin-top:11px;color:#8aa0a8;font-size:10px}.memo-foot button{border:0;background:none;color:#aec1c6;font-size:10px;padding:2px 4px}.memo-foot button:hover{color:white}.memo-list{display:grid;gap:12px}.memo-summary{font-size:11px;color:var(--gold);margin-bottom:8px}.memo-block{background:#182d39;border:1px solid #3b5865;border-radius:10px;padding:16px}.memo-block p{font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.memo-block button{margin-top:8px}
.statusbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 23px;border-top:1px solid var(--line);background:#101a24;color:#8ca4ad;font-size:10px;line-height:1.5}.statusbar>div{display:flex;align-items:center;gap:8px}.live-dot{height:7px;width:7px;border-radius:50%;background:var(--mint);display:inline-block}.toast{display:none;position:fixed;right:22px;bottom:50px;max-width:340px;background:#442d2b;border:1px solid #aa7264;padding:13px 17px;border-radius:8px;color:#ffe6d9;z-index:20;font-size:12px;line-height:1.6;box-shadow:0 12px 30px #0006}.toast.show{display:block}.loading{padding:24px;color:var(--muted);font-size:13px}
@media(max-width:1230px){.layout{grid-template-columns:190px minmax(330px,1fr) 315px}.main{padding:25px}.inspector{padding:24px 18px}.sidebar{padding:23px 12px}}
@media(max-width:950px){.topbar{align-items:flex-start;flex-wrap:wrap}.layout{grid-template-columns:195px minmax(0,1fr)}.inspector{grid-column:2;border-left:0;border-top:1px solid var(--line)}.main{min-height:480px}.sidebar{grid-row:1/3}.toolbar{justify-content:flex-start}}
@media(max-width:650px){.topbar{padding:15px}.brand{min-width:0}.brand-mark{width:42px;height:42px}.toolbar{gap:7px}.toolbar select{max-width:160px}.layout{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:12px 14px}.sidebar .side-heading,.sidebar .record-overview,.sidebar .side-actions,.sidebar .side-foot{display:none}.nav-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.nav-item{justify-content:center;text-align:center;flex-direction:column;gap:3px;font-size:10px;padding:9px 2px}.main{padding:20px 14px;min-height:0}.main-title{font-size:22px}.inspector{padding:22px 17px}.map-shell{padding:10px}.map-grid{gap:7px;min-height:310px;grid-template-rows:repeat(3,minmax(90px,1fr))}.map-cell{padding:8px}.map-name{font-size:10px}.map-symbol{font-size:15px}.statusbar{padding:9px 14px}.statusbar>span{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
