/* Shared visual language with innovation and research: light surfaces, violet accents. */
:root {
  --page:#f7f7f9; --surface:#fff; --line:#e3e1e9; --text:#252331;
  --muted:#777382; --red:#765fa6; --red-soft:#f0ebf7;
  --purple:#765fa6; --shadow:none;
}
html { font-family:"Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif; }
body { min-width:0; }
button,input,select,textarea { font-family:inherit; }
button { transition:background .15s, border-color .15s, color .15s; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:2px solid #9178bc; outline-offset:3px; }
.sidebar { background:#fff; color:var(--muted); border-right:1px solid var(--line); padding:28px 12px 20px; }
.brand { border:0; height:56px; margin-bottom:22px; padding:0 12px; gap:11px; }
.brand-mark { width:38px; height:38px; border-radius:10px; background:var(--purple); box-shadow:none; }
.brand-mark .icon, .primary .icon { filter:brightness(0) invert(1); }
.brand-title { color:var(--text); font-size:15px; font-weight:700; }
.brand-subtitle { color:var(--muted); font-size:10px; letter-spacing:.05em; }
.nav { gap:7px; }
.nav-section-title { margin:18px 12px 4px; color:#aaa2b3; font-size:10px; font-weight:700; letter-spacing:.12em; }
.nav-item { min-height:45px; border:0; border-radius:9px; color:#625e70; font-size:14px; font-weight:400; }
.nav-item:hover { background:#f7f4fb; color:var(--purple); }
.nav-item.active { color:#6e50a4; background:#eee8f7; font-weight:600; }
.nav-item.active .icon { filter:sepia(.4) saturate(2) hue-rotate(205deg); }
.nav-item .nav-badge { color:#765fa6; background:#f0ebf7; font-weight:500; }
.presence { background:transparent; color:var(--muted); line-height:1.8; padding:10px 2px; }
.presence b { color:var(--purple); }
.sidebar .profile { border:0; border-top:1px solid var(--line); border-radius:0; padding:18px 10px 0; }
.sidebar .profile strong { color:var(--text); font-weight:500; }
.sidebar .profile small { color:var(--muted); line-height:1.6; }
.sidebar .profile .icon { filter:sepia(.2) saturate(.4); }
.main { background:var(--page); }
.primary { background:var(--purple); box-shadow:none; font-weight:600; }
.primary:hover { background:#624b90; }
.outline-light { color:var(--purple); border:1px solid #dcd3e9; background:#fff; }
.outline-light:hover { background:#f4effa; }
.hero { min-height:260px; color:var(--text); background:#f0edf5; border:1px solid #e4deed; border-radius:14px; }
.hero::after { background:none; border:1px solid #d9cee7; opacity:.7; width:360px; height:220px; right:36px; bottom:-110px; }
.hero h1 { font-size:30px; line-height:1.45; }
.hero p { color:#81778c; }
.eyebrow { color:var(--purple); }
.metric-grid { gap:0; border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; }
.metric { min-height:120px; border:0; border-radius:0; box-shadow:none; }
.metric + .metric { border-left:1px solid var(--line); }
.metric-value { font-family:inherit; color:var(--text); }
.metric-label { color:var(--muted); }
.metric-foot { color:#8b8596; }
.panel { box-shadow:none; }
.panel h2 { color:var(--text); font-weight:600; }
.more { color:var(--purple); font-size:12px; }
.project-list { margin-top:12px; }
.project-row { width:100%; min-height:70px; padding:12px 0; border:0; border-bottom:1px solid var(--line); background:transparent; display:flex; align-items:center; gap:12px; text-align:left; }
.project-row:last-child { border-bottom:0; }
.project-row:hover,.project-table-row:hover { background:#faf8fd; }
.project-mark { width:32px; height:32px; border-radius:8px; display:grid; place-items:center; flex:none; color:var(--purple); background:#f0ebf7; }
.project-copy { min-width:0; flex:1; }
.project-copy strong,.project-table-title strong { display:block; color:var(--text); font-size:13px; font-weight:600; }
.project-copy small,.project-table-title small { display:block; margin-top:5px; overflow:hidden; color:#8b8596; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.ticket-status.review { color:#9a7242; background:#fbf4e8; }
.employee-summary { min-height:190px; padding:24px 12px 10px; text-align:center; }
.employee-orb { width:58px; height:58px; margin:0 auto 14px; border-radius:16px; display:grid; place-items:center; color:var(--purple); background:#f0ebf7; }
.employee-summary strong { color:var(--text); font-size:14px; font-weight:600; }
.employee-summary p { margin:8px 0 17px; color:var(--muted); font-size:12px; }
.employee-progress { display:block; height:8px; overflow:hidden; border-radius:8px; background:#f0edf4; }
.employee-progress i { display:block; width:62%; height:100%; border-radius:8px; background:#9b84bd; }
.employee-summary small { display:block; margin-top:10px; color:#9991a1; font-size:11px; }
.flow-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-top:18px; }
.flow-card { min-height:136px; padding:15px; border:1px solid var(--line); border-radius:10px; background:#fff; position:relative; text-align:left; }
.flow-card:hover { border-color:#cbbbe0; background:#fbf9fd; }
.flow-num { position:absolute; top:12px; right:13px; color:#d8d1df; font-size:12px; }
.flow-icon { width:30px; height:30px; margin-bottom:18px; border-radius:8px; display:grid; place-items:center; color:var(--purple); background:#f0ebf7; }
.flow-card strong { display:block; color:var(--text); font-size:13px; font-weight:600; }
.flow-card small { display:block; margin-top:7px; color:var(--muted); font-size:11px; line-height:1.6; }
.page-tabs { border-color:var(--line); }
.page-tab.active { color:var(--purple); border-color:var(--purple); }
.page-tab b { margin-left:4px; color:#aaa0b6; font-size:10px; font-weight:500; }
.filter-input,.filter-select { border-color:var(--line); }
.filter-input:focus { border-color:var(--purple); box-shadow:0 0 0 3px #eee8f6; }
.project-table { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:#fff; }
.project-head,.project-table-row { display:grid; grid-template-columns:minmax(360px,1.6fr) 160px 190px 120px; gap:18px; align-items:center; }
.project-head { min-height:42px; padding:0 18px; color:#8b8596; background:#faf9fc; font-size:11px; }
.project-table-row { width:100%; min-height:82px; padding:0 18px; border:0; border-top:1px solid var(--line); background:#fff; text-align:left; }
.project-table-title { min-width:0; display:grid; grid-template-columns:32px minmax(0,1fr); align-items:center; column-gap:11px; }
.project-table-title small { grid-column:2; }
.stage-label { display:inline-flex; width:max-content; padding:5px 8px; border-radius:5px; color:var(--purple); background:#f0ebf7; font-size:10px; }
.role-large { padding:7px 10px; }
.approval-grid,.employee-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.approval-card,.employee-card { padding:21px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.approval-head,.employee-card-head,.employee-device,.employee-card-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.approval-card h2,.employee-card h2 { margin:17px 0 8px; color:var(--text); font-size:17px; font-weight:600; }
.approval-card p { min-height:40px; color:var(--muted); font-size:12px; line-height:1.7; }
.approval-meta { display:flex; gap:20px; margin-top:19px; color:#978fa2; font-size:11px; }
.approval-meta span,.employee-device span { display:inline-flex; align-items:center; gap:5px; }
.approval-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; }
.ghost-btn { border-color:var(--line); color:#70657f; background:#fff; }
.employee-card-head { justify-content:flex-start; }
.employee-icon { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; color:var(--purple); background:#f0ebf7; }
.employee-card h2 { margin:0; font-size:14px; }
.employee-card-head small { display:block; margin-top:5px; color:var(--muted); font-size:11px; }
.online-dot { margin-left:auto; padding:4px 8px; border-radius:999px; font-size:10px; color:#4d8a70; background:#edf7f1; }
.online-dot::before { content:""; display:inline-block; width:5px; height:5px; margin-right:5px; border-radius:50%; background:#60b486; }
.online-dot.offline { color:#958b9f; background:#f5f3f6; }
.online-dot.offline::before { background:#b8b0be; }
.employee-task { margin:21px 0; color:var(--muted); font-size:12px; }
.employee-task strong { color:var(--text); font-weight:500; }
.employee-device { padding:12px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:#81778c; font-size:11px; }
.employee-card-foot { margin-top:14px; color:#9a91a2; font-size:10px; }
.employee-card-foot .more { padding:0; }
.artifact-list { display:grid; }
.artifact-row { width:100%; min-height:70px; padding:10px 4px; border-bottom:1px solid var(--line); background:#fff; display:grid; grid-template-columns:34px minmax(0,1fr) 70px auto; gap:12px; align-items:center; text-align:left; }
.artifact-row:last-child { border-bottom:0; }
.artifact-row:hover { background:#faf8fd; }
.artifact-icon { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; color:var(--purple); background:#f0ebf7; }
.artifact-row strong,.artifact-row small { display:block; }
.artifact-row strong { color:var(--text); font-size:12px; font-weight:600; }
.artifact-row small { margin-top:4px; color:var(--muted); font-size:10px; }
.artifact-action { display:inline-flex; align-items:center; justify-content:center; min-width:64px; height:30px; padding:0 10px; border:1px solid #d8cae8; border-radius:7px; color:var(--purple); background:#faf8fd; text-decoration:none; font-size:11px; white-space:nowrap; }
.artifact-action:hover { color:#fff; border-color:var(--purple); background:var(--purple); }
.timeline { position:relative; margin:10px 8px; padding-left:26px; }
.timeline::before { content:""; position:absolute; top:8px; bottom:8px; left:6px; width:1px; background:#e1dbe9; }
.timeline-item { position:relative; display:flex; gap:17px; padding:0 0 26px; }
.timeline-dot { position:absolute; left:-24px; top:3px; width:13px; height:13px; border:3px solid #f0ebf7; border-radius:50%; background:var(--purple); }
.timeline-dot.submitted { background:#c39b5b; }.timeline-dot.processing { background:#8a72b3; }.timeline-dot.done { background:#68a486; }
.timeline-item small,.timeline-item strong,.timeline-item p { display:block; }
.timeline-item small { color:#a098aa; font-size:10px; }.timeline-item strong { margin-top:5px; color:var(--text); font-size:13px; font-weight:600; }.timeline-item p { margin-top:6px; color:var(--muted); font-size:12px; }
.detail-flow { display:flex; align-items:center; gap:8px; margin:20px 0 26px; color:#aaa2b0; font-size:11px; }
.detail-flow span { padding:7px 9px; border-radius:6px; background:#f5f3f7; }.detail-flow span.active { color:var(--purple); background:#f0ebf7; }.detail-flow i { flex:1; height:1px; background:#e1dbe9; }
.upload-box { min-height:52px; border:1px dashed #d5cae1; border-radius:8px; color:#887b96; background:#faf8fc; }
.login-fallback { width:min(520px,calc(100% - 32px)); margin:120px auto; padding:42px; border:1px solid var(--line); border-radius:16px; background:#fff; text-align:center; }.login-fallback p { color:var(--muted); margin:14px 0 24px; }
@media (max-width: 900px) { .flow-grid { grid-template-columns:repeat(2,1fr); }.approval-grid,.employee-grid { grid-template-columns:1fr; }.project-head,.project-table-row { grid-template-columns:minmax(250px,1fr) 120px 130px; }.project-head > :last-child,.project-table-row > :last-child { display:none; } }
.profile { border:0; border-top:1px solid var(--line); border-radius:0; padding:18px 10px 0; }
.avatar { background:#eee8f6; color:#765fa6; font-weight:500; }
.profile strong { color:var(--text); font-weight:500; }
.profile small { color:var(--muted); line-height:1.6; }
.topbar { min-height:72px; height:auto; padding:16px 28px; gap:20px; }
.page-label { min-width:90px; font-size:14px; font-weight:500; color:#62596f; }
.global-search { width:340px; min-width:100px; background:#faf9fc; border-color:var(--line); border-radius:8px; }
.global-search input { flex:1; width:100%; min-width:0; border:0; outline:0; box-shadow:none; background:transparent; color:var(--text); font-size:12px; }
.global-search input::placeholder { color:#8a8596; }
.global-search kbd { color:#928a9e; border-color:var(--line); }
.top-actions { gap:14px; flex-shrink:0; }
.user-menu { max-width:330px; border-color:var(--line); color:#686073; font-size:11px; }
.user-menu > span:nth-child(2) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.role { color:var(--purple); background:#f0ebf7; }
.primary { background:var(--purple); border-radius:8px; height:40px; font-weight:500; box-shadow:none; white-space:nowrap; }
.primary:hover { background:#624b90; }
.workspace { padding:42px 40px 64px; }
.container { max-width:1200px; min-width:0; }
.hero { background:transparent; border:0; color:var(--text); padding:0 0 30px; min-height:156px; border-radius:0; gap:24px; }
.hero::after, .view-hero::after { display:none; }
.eyebrow { color:var(--purple); font-size:10px; font-weight:500; letter-spacing:.17em; margin-bottom:13px; }
.hero h1 { font-size:32px; font-weight:700; line-height:1.45; letter-spacing:-.03em; }
.hero p { color:var(--muted); font-size:12px; line-height:1.9; margin-top:12px; }
.hero-actions { flex-shrink:0; }
.outline-light { height:40px; color:var(--purple); border-color:#dcd3e9; background:#fff; border-radius:8px; white-space:nowrap; }
.outline-light:hover { background:#eee8f7; }
.hero-actions .outline-light:first-child { color:#fff; background:var(--purple); border-color:var(--purple); }
.hero-actions .outline-light:first-child .icon { filter:brightness(0) invert(1); }
.metric-grid { margin-top:0; gap:0; border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; }
.metric { border:0 !important; border-radius:0; background:transparent; box-shadow:none; min-height:126px; padding:22px; }
.metric-grid .metric + .metric { border-left:1px solid var(--line) !important; }
.metric-label { color:var(--muted); font-size:12px; gap:8px; }
.metric-label .metric-icon { background:#f2eef8; width:26px; height:26px; border-radius:7px; }
.metric-value { color:var(--text); font-family:inherit; font-size:30px; line-height:1.2; font-weight:600; letter-spacing:-.03em; font-variant-numeric:tabular-nums; margin-top:10px; }
.metric-foot { font-size:11px; color:#8b8596; margin-top:7px; }
.panel-grid { margin-top:24px; gap:20px; grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr); }
.panel { padding:24px; border-radius:12px; box-shadow:none; min-width:0; }
.panel h2 { color:var(--text); font-size:15px; font-weight:600; }
.more { font-size:12px; color:var(--purple); padding:4px; }
.empty { min-height:278px; }
.empty-art { width:64px; height:64px; background:#f3eff8; border:0; }
.empty-art .icon { width:28px; height:28px; }
.empty strong { font-size:14px; font-weight:500; }
.empty p { color:var(--muted); font-size:12px; }
.empty .primary { margin-top:12px; }
.bars { margin-top:25px; }
.bar-row { grid-template-columns:90px minmax(0,1fr) 24px; color:#767080; }
.bar-track { background:#f2f0f5; }
.bar-fill { background:#9580b6; }
.deadline { background:#faf9fc; border-color:#e6dfef; border-radius:9px; }
.deadline strong { font-size:13px; font-weight:500; color:#71677d; }
.page-heading { margin-bottom:28px; gap:20px; }
.page-heading h1 { font-size:27px; font-weight:650; }
.page-heading p { color:var(--muted); font-size:12px; line-height:1.8; }
.page-tabs { gap:25px; overflow-x:auto; scrollbar-width:thin; }
.page-tab { color:#80798c; white-space:nowrap; }
.page-tab.active { color:var(--purple); border-color:var(--purple); font-weight:600; }
.filters { flex-wrap:wrap; gap:10px; }
.filter-input,.filter-select { height:40px; font-size:12px; border-color:var(--line); color:#686172; }
.filter-input:focus { border-color:var(--purple); }
.filter-pills { flex-wrap:wrap; }
.filter-pill { border-color:var(--line); color:#797080; padding:8px 13px; }
.filter-pill.active { color:var(--purple); background:#f0ebf7; border-color:#d8cce9; }
.ticket-table { overflow-x:auto; box-shadow:none; }
.ticket-head,.ticket-row { min-width:960px; grid-template-columns:60px 110px minmax(190px,1fr) 110px 110px 80px 95px 100px; gap:10px; }
.ticket-head { background:#f5f3f8; color:#867e92; height:44px; }
.ticket-row { background:#fff; min-height:76px; }
.ticket-row:hover { background:#faf8fd; }
.ticket-title strong { color:var(--text); font-weight:550; }
.dept-chip { font-style:normal; }
.customer-card,.directory-card,.dept-card { box-shadow:none; border-color:var(--line); border-radius:12px; padding:20px; }
.customer-card h3,.directory-card h3 { color:var(--text); font-size:14px; font-weight:600; }
.customer-card p,.directory-card p,.dept-card p { color:var(--muted); font-size:12px; }
.customer-card .customer-meta { flex-wrap:wrap; gap:8px; }
.directory-grid,.dept-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.directory-card { display:flex; flex-direction:column; align-items:flex-start; }
.directory-card .start { display:inline-flex; position:static; width:auto; margin-top:16px; height:34px; padding:0 12px; }
.directory-card .sla { margin-top:auto; }
.dept-color { background:#9a84bb; }
.service-icon { color:var(--purple); background:#f0ebf7; }
.dept-link { color:var(--purple); }
.dept-stat strong { font-family:inherit; }
.view-hero { background:#eee9f5; color:#4d405d; padding:30px; border:1px solid #e3ddec; }
.view-hero p { color:#796e88; max-width:580px; }
.view-hero strong { color:var(--purple); }
.stats-cards .metric { border:1px solid var(--line) !important; border-radius:12px; background:#fff; }
.chart-grid { grid-template-columns:1fr 1fr; }
.compare-table th,.compare-table td { color:#777080; }
.modal { background:rgba(35,29,46,.38); backdrop-filter:blur(3px); }
.modal-card { border:1px solid var(--line); border-radius:16px; padding:28px; box-shadow:0 20px 70px #28203226; }
.modal-head h2 { display:flex; align-items:center; gap:10px; font-weight:600; font-size:20px; }
.field label { color:#6a6175; font-size:12px; }
.field input,.field select,.field textarea { border-color:var(--line); background:#fcfbfd; color:var(--text); padding:12px; font-size:13px; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:#9c85bc; box-shadow:0 0 0 3px #eee8f6; }
.ghost-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; white-space:nowrap; border-color:var(--line); color:#70657f; }
.filter-select[data-action] { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.funnel { width:100%; gap:9px; text-align:left; font-weight:500; }
.funnel span:nth-child(n) { width:100%; height:40px; padding:0 16px; justify-items:start; clip-path:none; border-radius:7px; background:#f4eff9; color:#765fa6; }
.funnel span:first-child { background:#faf5e9; color:#957634; }
.funnel span:nth-child(2) { background:#eef2f8; color:#657e9e; }
.funnel span:nth-child(4) { background:#edf5f1; color:#5b8571; }
.funnel span:nth-child(5) { background:#f2f1f4; color:#817a88; }
.comment-form textarea { min-width:0; border-color:var(--line); }
.detail-description,.comment { background:#faf9fc; }
.research-report { margin: 4px 0 18px; border: 1px solid #ece7f1; border-radius: 12px; overflow: hidden; background:#fff; }
.report-banner { padding: 17px 18px; border-bottom: 1px solid #eeeaf2; background: linear-gradient(135deg, #fbf8ff, #fffdf9); }
.report-kicker { color:#9b83ba; font: 700 10px/1.2 "DM Mono", monospace; letter-spacing:.16em; }
.report-banner h3 { margin:8px 0 0; color:#2f263a; font-size:18px; }
.report-banner p { margin:6px 0 0; color:#948a9e; font-size:11px; }
.report-section { padding: 15px 18px 3px; }
.report-section + .report-section { border-top:1px solid #f0edf3; }
.report-section h3 { margin:0 0 10px; color:#4a3a5b; font-size:13px; }
.report-subsection { margin: 0 0 14px; }
.report-subsection h4 { margin:0 0 7px; color:#8d7a9e; font-size:11px; font-weight:700; }
.report-rows { display:grid; gap:0; }
.report-row { display:grid; grid-template-columns:110px 1fr; gap:14px; padding:8px 0; border-bottom:1px solid #f2eff5; font-size:12px; line-height:1.55; }
.report-row:last-child { border-bottom:0; }
.report-row span { color:#978da1; }
.report-row strong { color:#3b3245; font-weight:500; white-space:pre-wrap; overflow-wrap:anywhere; }
.report-empty { margin:0 0 12px; color:#a69cab; font-size:12px; }
.raw-report { margin: 7px 18px 18px; border:1px solid #eeeaf2; border-radius:8px; background:#fbfafd; }
.raw-report summary { padding:9px 11px; color:#897b96; cursor:pointer; font-size:11px; }
.raw-report pre { max-height:220px; overflow:auto; margin:0; padding:11px; border-top:1px solid #eeeaf2; color:#71657d; font:11px/1.6 "DM Mono", monospace; white-space:pre-wrap; word-break:break-word; }
.approval-summary { min-height:44px; color:#756b80; line-height:1.7; }
.toast { background:#51405f; }
@media (min-width:901px) and (max-width:1300px) {
  .topbar .user-menu { display:none; }
  .workspace { padding:30px 26px 50px; }
  .hero { align-items:flex-start; flex-direction:column; gap:20px; }
  .metric-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .metric:nth-child(4),.metric:nth-child(5) { display:block; }
  .metric { padding:17px 12px; }
  .metric-label { font-size:11px; }
  .metric-label .metric-icon { display:none; }
}
@media (min-width:641px) and (max-width:900px) {
  .sidebar { padding:20px 8px; }
  .brand { padding:0; }
  .workspace { padding:26px 22px; }
  .hero { flex-direction:column; align-items:flex-start; }
  .hero-actions { display:flex; }
  .directory-grid,.dept-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .panel-grid,.chart-grid { grid-template-columns:1fr; }
  .metric-grid .metric { border-bottom:1px solid var(--line) !important; }
  .metric-grid .metric:nth-child(odd) { border-left:0 !important; }
  .metric-grid .metric:last-child { grid-column:1/-1; border-bottom:0 !important; }
  .page-heading { flex-wrap:wrap; gap:12px; }
  .ticket-head,.ticket-row { min-width:960px; }
  .ticket-head > :nth-child(n),.ticket-row > :nth-child(n) { display:block; }
}
@media (max-width:640px) {
  .sidebar { padding:0; height:64px; min-height:64px; position:sticky; top:0; border:0; border-bottom:1px solid var(--line); }
  .sidebar .brand { display:none; }
  .nav { width:100%; gap:3px; padding:7px; }
  .nav-item { min-width:63px; height:48px; padding:6px 8px; gap:4px; }
  .nav-item > span:not(.nav-badge) { font-size:10px; }
  .topbar,.topbar.compact { padding:12px 16px; gap:10px; }
  .global-search,.topbar.compact .global-search { flex:1 1 100%; width:100%; height:38px; }
  .topbar .primary { height:36px; font-size:12px; }
  .workspace { padding:26px 16px 40px; }
  .hero { align-items:flex-start; flex-direction:column; gap:0; padding:0 0 25px; }
  .hero h1 { font-size:27px; }
  .hero p { font-size:12px; }
  .hero-actions { display:flex; width:100%; flex-wrap:wrap; gap:8px; margin-top:18px; }
  .hero-actions button { flex:1; justify-content:center; padding:0 10px; }
  .metric-grid { gap:0 !important; }
  .metric { padding:18px; min-height:116px; }
  .metric-label { font-size:12px; }
  .metric-value { font-size:29px; }
  .metric-foot { font-size:11px; }
  .panel-grid { margin-top:16px; gap:16px; }
  .panel { padding:20px; }
  .empty { min-height:230px; }
  .page-heading h1 { font-size:25px; }
  .page-tabs { gap:22px; }
  .filter-pills { gap:6px; }
  .filter-pill { padding:7px 10px; }
  .directory-toolbar input { width:100%; min-width:0; }
  .directory-grid,.dept-grid,.customer-grid { grid-template-columns:1fr; }
  .directory-card .start { display:flex; }
  .view-hero { padding:23px; }
  .modal { padding:12px; }
  .modal-card { padding:21px; max-height:calc(100dvh - 24px); }
  .form-grid { grid-template-columns:1fr; }
  .field input,.field select,.field textarea { font-size:16px; }
  .panel:has(.compare-table) { overflow-x:auto; }
}
.permission-note { padding:12px 14px; background:#f3eff8; color:#6e598f; border-radius:10px; line-height:1.7; font-size:13px; }
.assignment-summary { line-height:1.8; }
.audit-list { max-height:260px; overflow:auto; }
.audit-entry { border-bottom:1px solid var(--line); padding:12px 0; font-size:13px; }
.audit-entry small { display:block; color:var(--muted); margin-top:5px; }
.audit-entry p { margin:8px 0 0; line-height:1.7; }
#assignment-form { padding:16px; border:1px solid var(--line); border-radius:12px; margin:16px 0; }
#member-search { width:100%; padding:10px; margin:12px 0; border:1px solid var(--line); border-radius:8px; }
.assignment-members { max-height:220px; overflow:auto; margin-bottom:12px; }
.assignment-member { display:flex; align-items:center; gap:10px; padding:9px; cursor:pointer; }
.assignment-member[hidden] { display:none; }
.assignment-member input { width:18px; height:18px; accent-color:#7861a8; }
.assignment-member small { display:block; color:var(--muted); margin-top:4px; }
.detail-actions { flex-wrap:wrap; }
.field-help { display:block; margin-top:8px; color:#8b8497; font-size:12px; }
.attachment-list { display:grid; gap:8px; margin:12px 0 18px; }
.attachment-row { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid #e8e2f0; border-radius:10px; color:#4e4361; text-decoration:none; background:#fbfafd; }
.attachment-row span { flex:1; font-size:13px; }
.attachment-row small { color:#958ca4; font-size:11px; }
.detail-artifact-list { display:grid; gap:8px; margin:12px 0 18px; }
.detail-artifact { display:flex; align-items:center; gap:10px; padding:11px 12px; border:1px solid #e8e2f0; border-radius:10px; background:#fbfafd; }
.detail-artifact .artifact-icon { flex:0 0 30px; }
.detail-artifact-copy { min-width:0; flex:1; }
.detail-artifact-copy strong,.detail-artifact-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.detail-artifact-copy strong { color:#4e4361; font-size:13px; }
.detail-artifact-copy small { margin-top:4px; color:#958ca4; font-size:11px; }
.artifact-view-button { height:32px; padding:0 11px; font-size:11px; text-decoration:none; }
.detail-delivery { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:14px 0 18px; padding:13px 14px; border:1px solid #d9c9ea; border-radius:11px; background:#faf7fd; }
.detail-delivery strong,.detail-delivery small { display:block; }
.detail-delivery strong { color:#4e3b6c; font-size:13px; }
.detail-delivery small { margin-top:4px; color:#897b9b; font-size:11px; }
.detail-delivery-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.empty-delivery { justify-content:flex-start; }
.project-row-end { display:flex; align-items:center; gap:9px; margin-left:auto; }
.project-result-hint { display:inline-flex; align-items:center; gap:4px; color:#7359a2; font-size:11px; white-space:nowrap; }
.error-banner { display:flex; align-items:center; gap:12px; margin-bottom:18px; padding:12px 16px; border:1px solid #efd5d5; border-radius:10px; background:#fff8f8; color:#a55454; }
.intake-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); gap:18px; margin-bottom:18px; }
.intake-status { min-height:260px; }
.intake-hero { display:flex; align-items:center; gap:16px; padding:24px 0; }
.intake-hero strong { color:#2c2439; font-size:18px; }
.intake-hero p { margin:8px 0 0; color:#81798c; line-height:1.7; font-size:13px; }
.intake-endpoint { display:flex; align-items:center; justify-content:space-between; padding:13px 15px; border:1px solid #e8e1ef; border-radius:10px; background:#fbfafd; }
.intake-endpoint small { color:#887f96; }
.intake-endpoint code { color:#654d8c; font-size:12px; }
.intake-note { margin-top:13px; color:#81798c; font-size:12px; line-height:1.7; }
.rule-list { display:grid; gap:0; }
.rule-list > div { display:grid; grid-template-columns:34px 1fr; column-gap:10px; padding:14px 0; border-bottom:1px solid #eeeaf2; }
.rule-list > div:last-child { border-bottom:0; }
.rule-list span { grid-row:span 2; width:28px; height:28px; display:grid; place-items:center; border-radius:9px; background:#f0ebf7; color:#7359a2; font-size:11px; }
.rule-list strong { color:#382d48; font-size:13px; }
.rule-list small { color:#938a9e; font-size:11px; margin-top:4px; }
.modal-kicker { display:block; margin-top:5px; color:#958ba1; font-size:11px; }
@media (max-width:900px) { .intake-grid { grid-template-columns:1fr; } }
