:root{--paper:#eef2f7;--panel:rgba(255,255,255,.78);--white:#fff;--ink:#152036;--graphite:#64748b;--line:#d8e0eb;--fine:#e8edf4;--red:#b83b4b;--s:#2e6f62;--d:#6e4a93;--w:#23507a;--serif:'Instrument Serif',Georgia,serif;--sans:'Plus Jakarta Sans','Segoe UI',system-ui,sans-serif;--mono:'SFMono-Regular',Consolas,monospace}
*{box-sizing:border-box}body{visibility:visible!important;opacity:1!important;font-family:var(--sans);background:var(--bg);color:var(--tx)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}
#auth-ov{position:fixed;inset:0;z-index:9999;background:linear-gradient(135deg,#eef2f7,#e2e9f4);display:flex;align-items:center;justify-content:center}.auth-box{background:#fff;border-radius:22px;padding:40px 48px;max-width:380px;width:90%;text-align:center;box-shadow:0 24px 80px rgba(20,40,100,.18);border:1.5px solid rgba(180,200,220,.3)}.auth-box img{width:54px;border-radius:12px;margin-bottom:18px}.auth-box h2{font-size:20px;font-weight:800;color:var(--tx);margin:0 0 4px}.auth-box p{font-size:13px;color:var(--tx3);margin:0 0 24px}#login-btn{width:100%;padding:11px 24px;background:var(--acc);color:#fff;border:0;border-radius:12px;font-size:14px;font-weight:700}#auth-msg{font-size:12px;color:var(--tx3);margin-top:10px;min-height:16px}
.map-logo-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}.map-logo-link img{width:44px;height:auto;display:block;border-radius:10px;flex-shrink:0}aside .nb{text-decoration:none;color:var(--tx2)}.map-avatar{width:26px;height:26px;border-radius:50%;background:var(--acc);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.map-user-name{font-size:11px;font-weight:600;color:var(--tx2);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.map-signout{font-size:11px;padding:2px 6px;border-radius:5px;border:0;background:none;color:var(--tx3)}
aside{transition:width .22s ease,padding .22s ease,opacity .22s ease;overflow:hidden}.sidebar-collapsed aside:not(.drawer){width:0!important;padding:0!important;opacity:0}.map-topbar{z-index:100!important;gap:14px}.map-topbar-title,.map-topbar-actions{display:flex;align-items:center;gap:10px}.map-topbar-actions{margin-left:auto;min-width:0}#sidebar-toggle{width:34px;height:34px;border-radius:9px;flex-shrink:0;border:1.5px solid var(--border);background:rgba(255,255,255,.7);color:var(--tx2);display:flex;align-items:center;justify-content:center}#sidebar-toggle:hover{background:#fff;border-color:var(--acc);color:var(--acc)}.sidebar-collapsed #sidebar-toggle svg{transform:scaleX(-1)}
.mg-sync-badge{display:inline-flex;align-items:center;gap:6px;height:25px;padding:0 10px;border-radius:999px;border:1px solid #cbd5e1;background:#f8fafc;color:#475569;font-size:11px;font-weight:800;white-space:nowrap}.mg-sync-badge:before{content:'';width:7px;height:7px;border-radius:50%;background:#94a3b8}.mg-sync-badge.online{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.mg-sync-badge.online:before{background:#22c55e}.mg-sync-badge.saving{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.mg-sync-badge.saving:before{background:#3b82f6}.mg-sync-badge.offline{border-color:#fecaca;background:#fef2f2;color:#991b1b}.mg-sync-badge.offline:before{background:#ef4444}
.search{position:relative;width:min(330px,30vw)}.search span{position:absolute;left:11px;top:7px;color:var(--tx3);font-size:18px}.search input{width:100%;padding:8px 10px 8px 34px;border:1.5px solid var(--border);background:#fff;border-radius:9px;outline:0;font-size:12px}.search input:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.tool-btn,.btn{padding:8px 11px;border:1.5px solid var(--border);background:#fff;border-radius:9px;font-size:12px;font-weight:700}.tool-btn:hover,.btn:hover{border-color:var(--acc);color:var(--acc)}.primary{background:var(--acc)!important;border-color:var(--acc)!important;color:#fff!important}.map-content{padding-top:14px!important}.tabs{display:flex;gap:4px;padding:5px;background:rgba(255,255,255,.6);border:1.5px solid var(--border);border-radius:12px;overflow:auto;margin-bottom:18px}.tabs button{white-space:nowrap;padding:8px 11px;border:0;border-radius:8px;background:transparent;color:var(--tx3);font-size:11px;font-weight:700}.tabs button[aria-selected=true]{color:var(--acc);background:#fff;box-shadow:0 1px 5px rgba(30,50,90,.09)}.badge{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:10px;background:var(--red);color:#fff;font:9px var(--mono)}#view{padding:2px 0 70px;max-width:1500px}
.intro{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:17px}.intro h2{font-size:19px;font-weight:800;margin:0 0 4px;color:var(--tx)}.intro p{margin:0;color:var(--tx3);font-size:12px}.legend{display:flex;gap:18px;flex-wrap:wrap;padding:10px 12px;margin-bottom:15px;border:1.5px solid var(--border);background:var(--panel);border-radius:11px;font-size:11px;color:var(--tx3)}.dot{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:2px}.table-wrap{overflow:auto;background:#fff;border:1.5px solid var(--border);border-radius:13px}table{border-collapse:collapse;width:100%}.heat th,.heat td{border:1px solid var(--fine)}.heat th{font-size:10px;font-weight:700}.heat .corner,.heat .subject{position:sticky;left:0;background:#fff;z-index:2;text-align:left;padding:8px 10px;min-width:178px}.heat .domain{padding:6px;color:#fff;letter-spacing:.1em;text-transform:uppercase}.heat .attr{min-width:52px;max-width:68px;padding:7px 3px;vertical-align:bottom}.heat .attr code{display:block;font:11px var(--mono)}.heat .attr small{display:block;color:var(--tx3);font-size:8px;line-height:1.2;margin-top:3px}.cell{height:38px;text-align:center;cursor:pointer;position:relative;font:11px var(--mono)}.cell:hover{outline:2px solid var(--acc);outline-offset:-2px}.cell.empty{background:linear-gradient(to bottom right,transparent 49%,#b83b4b44 50%,transparent 51%)}.cell.l3{color:#fff;font-weight:700}.summary th,.summary td{padding:7px;background:#f8fafc;font:10px var(--mono);text-align:center}.summary .zero{color:var(--red);font-weight:800}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:12px}.card{background:var(--panel);border:1.5px solid var(--border);padding:15px;border-radius:13px}.card.danger{border-left:3px solid var(--red)}.card.strong{border-color:var(--acc);box-shadow:0 2px 0 var(--acc)}.card h3,.card h4{margin:0 0 5px}.card h3{font:22px var(--serif)}.card p{margin:5px 0;color:var(--tx3);font-size:12px}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.tag{padding:2px 6px;border:1px solid var(--border);background:#f8fafc;border-radius:5px;font:10px var(--mono)}.records{display:grid;gap:8px}.record{display:flex;gap:13px;padding:13px 14px;border:1.5px solid var(--border);background:var(--panel);border-radius:12px;cursor:pointer}.record:hover{border-color:var(--acc)}.record .type{flex:0 0 auto;font:9px var(--mono);text-transform:uppercase;color:var(--tx3)}.record h3{margin:0;font-size:13px}.record p{margin:3px 0;color:var(--tx3);font-size:11px}.record.waiting{border-left:3px solid var(--red)}.filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.filters select{padding:7px;border:1.5px solid var(--border);background:#fff;border-radius:8px}.queue{display:grid;gap:9px}.queue-item{padding:15px;background:var(--panel);border:1.5px solid var(--border);border-left:3px solid var(--red);border-radius:12px}.queue-top{display:flex;gap:12px}.queue-top h3{margin:0;font-size:14px}.actions{display:flex;gap:6px;margin-left:auto;align-self:start}.approve{color:var(--s);border-color:var(--s)!important}.reject{color:var(--red);border-color:var(--red)!important}.profile-domain{margin:25px 0 10px;display:flex;align-items:center;gap:8px}.profile-domain h3{font:22px var(--serif);margin:0}
.ai-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.ai-panel{padding:18px;background:var(--panel);border:1.5px solid var(--border);border-radius:14px}.ai-panel h3{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--tx3);margin:0 0 12px}.ai-panel textarea{width:100%;min-height:210px;padding:11px;border:1.5px solid var(--border);border-radius:9px;background:#fff;resize:vertical}.ai-row{display:flex;gap:7px;margin:10px 0}.ai-row select{flex:1;min-width:0;padding:7px;border:1.5px solid var(--border);border-radius:8px;background:#fff}.notice{padding:12px 14px;margin-bottom:15px;border-left:3px solid var(--acc);background:#fff;border-radius:9px;font-size:12px}.proposal{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:13px;margin:8px 0;background:var(--panel);border:1.5px solid var(--border);border-radius:12px}.proposal.low{border-left:3px solid var(--red)}.proposal h4{margin:0}.evidence{font:italic 12px var(--serif);color:var(--tx3)}.meter{height:4px;margin-top:7px;background:var(--border)}.meter i{display:block;height:100%;background:var(--s)}.network{height:580px;border:1.5px solid var(--border);background:#fff;border-radius:14px;overflow:hidden}.network svg{width:100%;height:100%}.network line{stroke:#b8c2c0}.network text{font:10px var(--sans);pointer-events:none}
.db-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.db-stat{background:var(--panel);border:1.5px solid var(--border);border-radius:13px;padding:15px}.db-stat b{display:block;font:30px var(--serif)}.db-stat span{font-size:11px;color:var(--tx3)}.source-card{display:grid;grid-template-columns:1fr auto;gap:12px}.source-card .meta{font:10px var(--mono);color:var(--tx3)}.source-card button{align-self:start}.source-proof{margin-top:9px;padding:9px 10px;border-left:3px solid var(--acc);background:#f8fafc;font-size:11px}.ask-box{display:grid;grid-template-columns:1fr auto;gap:8px}.ask-box input{padding:10px 12px;border:1.5px solid var(--border);border-radius:9px;background:#fff}.ai-answer{margin-top:14px;padding:16px;background:#fff;border:1.5px solid var(--border);border-radius:12px;white-space:pre-wrap}.citation{margin-top:8px;padding:9px;border:1px solid var(--border);border-radius:8px;background:#f8fafc;font-size:11px;cursor:pointer}
.empty-state,.loading{padding:55px 20px;text-align:center;border:1.5px dashed var(--border);border-radius:14px;background:var(--panel);color:var(--tx3)}.drawer-backdrop{position:fixed;inset:0;background:#15203630;z-index:600;opacity:0;visibility:hidden;transition:.2s}.drawer{position:fixed!important;right:0;top:0;bottom:0;width:min(520px,100%)!important;padding:25px!important;background:#fff;z-index:601;overflow:auto!important;transform:translateX(102%);transition:.22s;border-left:1px solid var(--border);opacity:1!important}.drawer.open{transform:none}.drawer-backdrop.open{opacity:1;visibility:visible}.drawer-close{position:absolute;right:15px;top:14px;border:0;background:transparent;font-size:25px}.drawer h2{font:28px var(--serif);margin:0 34px 5px 0}.field{margin:14px 0}.field label{display:block;margin-bottom:4px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3)}.field input,.field select,.field textarea{width:100%;padding:8px;border:1.5px solid var(--border);border-radius:8px;background:#fff}.field textarea{min-height:85px}.check-grid{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}.check-grid select{padding:6px;border:1px solid var(--border)}.form-actions{display:flex;gap:7px;margin-top:20px}.toast{position:fixed;left:50%;bottom:25px;z-index:900;padding:10px 15px;background:var(--tx);color:#fff;border-radius:8px;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.muted{color:var(--tx3)}.spinner{display:inline-block;width:13px;height:13px;border:2px solid var(--border);border-top-color:var(--acc);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media(max-width:1050px){.map-topbar{align-items:flex-start;flex-wrap:wrap}.map-topbar-actions{width:100%;overflow:auto}.search{min-width:220px}.ai-grid{grid-template-columns:1fr}}@media(max-width:700px){.map-topbar-actions .tool-btn:not(.primary){display:none}.map-content{padding:12px!important}.cards,.db-summary{grid-template-columns:1fr}.queue-top{display:block}.actions{margin:10px 0 0}.ai-row{flex-direction:column}.heat .corner,.heat .subject{min-width:135px}}
