:root{--bg:#f5f7fa;--panel:#fff;--text:#17202a;--muted:#667085;--line:#d9e1e8;--nav:#102734;--primary:#176b87;--danger:#b42318;--warn:#b54708;--ok:#157347;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;padding:24px;box-shadow:0 10px 30px rgba(16,24,40,.08)}h1{margin:0 0 6px;font-size:24px}.muted{color:var(--muted);font-size:13px;line-height:1.7}.field{display:grid;gap:5px;margin:12px 0}.field span{font-size:13px;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:9px;background:#fff}.btn{border:1px solid var(--line);background:#fff;border-radius:6px;padding:9px 12px;cursor:pointer}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{background:var(--nav);color:white;padding:20px 14px}.brand{font-size:20px;font-weight:800}.sub{font-size:12px;color:#b8c7d1;margin:5px 0 20px}.nav button{width:100%;text-align:left;background:transparent;border:0;color:#dce7ed;border-radius:6px;padding:10px 12px;margin:3px 0;cursor:pointer}.nav button.active,.nav button:hover{background:#193b4d}.main{padding:22px}.top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.grid{display:grid;gap:14px}.kpis{grid-template-columns:repeat(4,minmax(140px,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px}.kpi .value{font-size:28px;font-weight:800;margin-top:5px}.layout{grid-template-columns:minmax(620px,1fr) 380px}.table{overflow:auto;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;min-width:760px;background:#fff}th,td{padding:10px;border-bottom:1px solid var(--line);font-size:13px;text-align:left;vertical-align:top}th{background:#f0f4f8}.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.ok{background:#dcfce7;color:var(--ok)}.warn{background:#fff2cc;color:var(--warn)}.danger{background:#fee4e2;color:var(--danger)}.view{display:none}.view.active{display:block}.alert{border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:7px;padding:10px;background:#fff;margin-bottom:8px}.alert.danger{border-left-color:var(--danger)}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.form textarea{grid-column:span 2;min-height:70px}.audit{font-size:12px;line-height:1.6;border-bottom:1px solid var(--line);padding:8px 0}@media(max-width:900px){.shell{grid-template-columns:1fr}.kpis,.layout,.form{grid-template-columns:1fr}.form textarea{grid-column:span 1}}
.link.project-link{border:0;background:transparent;color:#176b87;font-weight:800;padding:0;text-align:left;cursor:pointer}.link.project-link:hover{text-decoration:underline}.card table{width:100%;border-collapse:collapse}.card table th{width:110px;background:#f0f4f8;color:#344054}


/* Relationship intelligence layer */
.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.profile-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.profile-head h2{margin:8px 0 4px;font-size:24px;line-height:1.2}
.value.small{font-size:20px;line-height:1.25;word-break:break-word}
.people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.people-grid.wide{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.mini-profile,.profile-card{border:1px solid #d8e2e7;background:#fff;border-radius:8px;padding:12px;min-width:0}
.profile-card h3{margin:0 0 6px;font-size:17px;line-height:1.25}
.profile-card p{margin:10px 0;color:#30424d;line-height:1.55}
.metric-line{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;color:#30424d;font-size:13px}
.metric-line span{background:#f3f7f8;border:1px solid #dce8ec;border-radius:999px;padding:4px 8px;white-space:nowrap}
.chip{display:inline-flex;align-items:center;border:1px solid #d8e2e7;background:#f6fafb;border-radius:999px;padding:4px 8px;margin:3px 4px 3px 0;font-size:13px;color:#263840;max-width:100%;word-break:break-word}
.timeline{display:grid;gap:10px}
.timeline-item{border-left:3px solid #176b87;background:#f7fbfc;padding:10px 12px;border-radius:6px}
.timeline-item p{margin:6px 0;color:#31454f;line-height:1.5}
.link{appearance:none;border:0;background:transparent;color:#176b87;font:inherit;font-weight:700;padding:0;cursor:pointer;text-align:left;line-height:1.4;word-break:break-word}
.link:hover{text-decoration:underline}
table .link{font-size:14px}
.card h3{font-size:15px;margin:14px 0 8px;color:#263840}
.table table{width:100%;border-collapse:collapse;table-layout:auto}
th,td{vertical-align:top}
.badge.ok{background:#e9f7ef;color:#116b3a;border:1px solid #bde4cb}
.badge.warn{background:#fff7e6;color:#8a5a00;border:1px solid #f2d28a}
.badge.danger{background:#fff0f0;color:#a33030;border:1px solid #efb2b2}
@media (max-width: 760px){.profile-head{align-items:flex-start}.people-grid,.people-grid.wide{grid-template-columns:1fr}.top-actions{width:100%}.top-actions .btn{flex:1}.metric-line span{white-space:normal}.value.small{font-size:17px}}


/* Closure workbench layer */
.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:8px}
.module-card{border:1px solid #d8e2e7;background:#fff;border-radius:8px;padding:12px;min-width:0}
.module-card h3{margin:0 0 8px;font-size:16px;color:#172f3a;line-height:1.25}
.module-card p{margin:0 0 10px;color:#38515c;line-height:1.5;font-size:14px}
.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.profile-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.profile-head h2{margin:8px 0 4px;font-size:24px;line-height:1.2}
.value.small{font-size:19px;line-height:1.2;word-break:break-word}
.people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.people-grid.wide{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.profile-card{border:1px solid #d8e2e7;background:#fff;border-radius:8px;padding:12px;min-width:0}
.profile-card h3{margin:0 0 6px;font-size:17px;line-height:1.25}
.profile-card p{margin:10px 0;color:#30424d;line-height:1.55}
.metric-line{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;color:#30424d;font-size:13px}
.metric-line span{background:#f3f7f8;border:1px solid #dce8ec;border-radius:999px;padding:4px 8px;white-space:nowrap}
.chip{display:inline-flex;align-items:center;border:1px solid #d8e2e7;background:#f6fafb;border-radius:999px;padding:4px 8px;margin:3px 4px 3px 0;font-size:13px;color:#263840;max-width:100%;word-break:break-word}
.link{appearance:none;border:0;background:transparent;color:#176b87;font:inherit;font-weight:700;padding:0;cursor:pointer;text-align:left;line-height:1.4;word-break:break-word}
.link:hover{text-decoration:underline}
.table{overflow:auto;max-width:100%}
.table table{width:100%;border-collapse:collapse;table-layout:auto}
th,td{vertical-align:top}
th{white-space:nowrap}
td{line-height:1.45}
.badge.ok{background:#e9f7ef;color:#116b3a;border:1px solid #bde4cb}
.badge.warn{background:#fff7e6;color:#8a5a00;border:1px solid #f2d28a}
.badge.danger{background:#fff0f0;color:#a33030;border:1px solid #efb2b2}
.nav button{line-height:1.25;text-align:left}
@media (max-width: 760px){.profile-head{align-items:flex-start}.people-grid,.people-grid.wide,.module-grid{grid-template-columns:1fr}.top-actions{width:100%}.top-actions .btn{flex:1}.metric-line span{white-space:normal}.value.small{font-size:17px}}


/* SaaS security phase 1 */
.main{position:relative;overflow:hidden}
.screen-watermark{position:fixed;inset:0;pointer-events:none;z-index:9999;width:100vw;height:100vh;user-select:none;mix-blend-mode:multiply}
@media print{.screen-watermark{opacity:.2}.btn,.nav{display:none!important}}

.nav-group{margin:12px 0 14px}.nav-group-title{font-size:11px;color:#8fb1c1;text-transform:none;letter-spacing:0;margin:12px 8px 5px;font-weight:800}.nav-group button{font-size:13px;padding:8px 10px}.nav-group button+button{margin-top:2px}

.domain-tabs{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:14px;display:flex;gap:12px;align-items:center;overflow:auto}.domain-tabs-title{font-size:13px;font-weight:800;color:var(--primary);white-space:nowrap}.domain-tabs-row{display:flex;gap:8px;flex-wrap:wrap}.domain-tab{border:1px solid var(--line);background:#f8fafc;border-radius:6px;padding:7px 10px;cursor:pointer;color:var(--text);font-size:13px}.domain-tab.active,.domain-tab:hover{background:var(--primary);border-color:var(--primary);color:#fff}

.card.clickable,.module-card.clickable,.alert.clickable{cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.card.clickable:hover,.module-card.clickable:hover,.alert.clickable:hover{border-color:#176b87;box-shadow:0 8px 22px rgba(23,107,135,.12);transform:translateY(-1px)}
.card.clickable:focus,.module-card.clickable:focus,.alert.clickable:focus{outline:3px solid rgba(23,107,135,.22);outline-offset:2px}
.drill-hint{margin-top:8px;font-size:12px;font-weight:800;color:#176b87}
.section-gap{height:14px}

.entry-panel{border-left:4px solid #176b87}.entry-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.entry-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:12px}.entry-btn{height:auto;text-align:left;display:flex;flex-direction:column;gap:5px;align-items:flex-start;white-space:normal;line-height:1.35}.entry-btn b{font-size:14px}.entry-btn span{font-size:12px;color:#49606b;font-weight:500}.entry-btn:hover span{color:#49606b}

.entry-plus-row{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;min-width:44px}.entry-plus{width:34px;height:34px;border-radius:50%;border:1px solid #176b87;background:#fff;color:#176b87;font-size:24px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:800}.entry-plus:hover{background:#176b87;color:#fff;box-shadow:0 6px 18px rgba(23,107,135,.18)}.entry-plus:focus{outline:3px solid rgba(23,107,135,.22);outline-offset:2px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.form-field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#263840}.form-field.full{margin-top:12px}.form-field span{font-weight:800}.form-field b{color:#a33030}.form-field small{color:#6b7c86;line-height:1.35}.form-field input,.form-field select,.form-field textarea{border:1px solid #cfdde3;border-radius:6px;padding:9px 10px;font:inherit;background:#fff;color:#172f3a;min-width:0}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:3px solid rgba(23,107,135,.16);border-color:#176b87}.form-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:14px}.save-toast{margin-top:14px;border:1px solid #bde4cb;background:#e9f7ef;color:#116b3a;border-radius:8px;padding:10px 12px;font-weight:800}.entry-head{align-items:flex-start}.entry-panel .muted{max-width:760px}
