/* ══════════════════════════════════════════
   XBrief Design v5 — Unified & Consistent
   Single card style · consistent fonts · clean colors
   ══════════════════════════════════════════ */

:root {
  --bg:          #fafafa;
  --surface:     #ffffff;
  --sidebar:     #0f172a;
  --sbar-hover:  #1e293b;
  --sbar-active: #1e3a5f;
  --sbar-text:   #94a3b8;
  --sbar-bright: #e2e8f0;
  --primary:     #3b82f6;
  --primary-hv:  #2563eb;
  --primary-bg:  #eff6ff;
  --accent:      #8b5cf6;
  --text:        #18181b;
  --text2:       #52525b;
  --text3:       #a1a1aa;
  --border:      #e4e4e7;
  --hover:       #f4f4f5;
  --danger:      #ef4444;
  --danger-bg:   #fef2f2;
  --success:     #22c55e;
  --success-bg:  #f0fdf4;
  --warning:     #f59e0b;
  --warning-bg:  #fffbeb;
  --radius:      6px;
  --font:        -apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI','PingFang SC','Microsoft YaHei','Helvetica Neue',sans-serif;
  --font-mono:   'SF Mono','Fira Code','Cascadia Code','Consolas',monospace;
}

*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:var(--font);font-size:13px;font-weight:400;
  background:var(--bg);color:var(--text);line-height:1.5;
  min-height:100vh;-webkit-font-smoothing:antialiased;
}

/* ═══ LOGIN ═══ */
#login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;}
.login-card{background:var(--surface);padding:44px 44px;border-radius:16px;width:400px;max-width:100%;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.04),0 12px 48px rgba(0,0,0,.08);}
.login-card h1{font-size:23px;font-weight:700;color:var(--text);margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:9px;line-height:1.2;}
.login-card h1 span{color:var(--primary);}
.brand-mark{width:30px;height:30px;border-radius:7px;display:inline-block;vertical-align:middle;}
.login-brand-copy{margin-bottom:28px;}
.login-subtitle{font-size:13px;font-weight:500;color:var(--text2);line-height:1.5;}
.login-ai-line{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;font-size:11px;color:#71717a;line-height:1.4;}
.login-ai-line span{display:inline-flex;align-items:center;justify-content:center;height:18px;padding:0 6px;border-radius:4px;background:var(--primary-bg);color:var(--primary-hv);font-size:10px;font-weight:700;}
.login-card form{display:grid;gap:14px;}
.login-card label{display:block;text-align:left;font-size:12px;font-weight:600;color:var(--text2);margin-bottom:5px;}
.login-card input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:var(--font);color:var(--text);background:var(--surface);margin:0;transition:all .15s;}
.login-card input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg);}
.login-card button{width:100%;padding:10px 16px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;height:40px;}
.login-card button:hover{background:var(--primary-hv);}
.login-hint{margin-top:20px;font-size:12px;color:var(--text3);}

/* ── Skeleton Screen ── */
.skeleton-box{animation:skeleton-pulse 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--border) 25%,var(--hover) 50%,var(--border) 75%);background-size:200% 100%;border-radius:var(--radius);}
.skeleton-title{height:18px;width:40%;margin-bottom:12px;border-radius:4px;}
.skeleton-text{height:14px;width:100%;margin-bottom:8px;border-radius:4px;}
.skeleton-text.short{width:60%;}
.skeleton-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:12px;}
.skeleton-table-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);}
.skeleton-table-cell{height:14px;flex:1;border-radius:4px;}
.skeleton-table-cell.actions{flex:0 0 80px;}
@keyframes skeleton-pulse{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

/* ── Error Boundary ── */
.error-boundary{padding:40px 24px;text-align:center;max-width:480px;margin:0 auto;}
.error-boundary .error-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;margin:0 auto 14px;border:1px solid var(--danger);border-radius:50%;font-size:22px;font-weight:700;color:var(--danger);}
.error-boundary h3{font-size:18px;font-weight:600;color:var(--text);margin-bottom:8px;}
.error-boundary p{color:var(--text2);font-size:14px;margin-bottom:20px;line-height:1.6;}
.error-boundary .error-detail{background:var(--bg);padding:12px;border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;color:var(--danger);text-align:left;margin-bottom:16px;word-break:break-all;}
.error-boundary .error-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.error-boundary .error-actions button{padding:8px 16px;border-radius:var(--radius);font-size:13px;cursor:pointer;border:1px solid var(--border);background:var(--surface);}
.error-boundary .error-actions button.primary{background:var(--primary);color:#fff;border-color:var(--primary);}

/* ── Page Loading State ── */
.page-loading{padding:40px 20px;}
.page-loading .skeleton-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;}
.page-loading .skeleton-header .skeleton-title{width:120px;height:24px;}
.page-loading .skeleton-header .skeleton-actions{width:80px;height:32px;}
.page-loading .skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.page-loading .skeleton-list .skeleton-table-row{padding:12px 0;}

/* ═══ SHELL ═══ */
#app-shell{display:flex;min-height:100vh;}
#sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:949;}
#sidebar{width:112px;min-width:112px;background:var(--sidebar);color:var(--sbar-text);display:flex;flex-direction:column;transition:width .15s;user-select:none;}
.sidebar-brand{padding:12px 8px;display:flex;align-items:center;gap:6px;}
.brand-icon{width:22px;height:22px;border-radius:6px;display:block;flex-shrink:0;}
.brand-text{font-size:13px;font-weight:700;color:#f1f5f9;}
#sidebar-collapse{background:none;border:none;color:var(--sbar-text);cursor:pointer;font-size:13px;padding:4px 6px;border-radius:4px;margin-left:auto;width:24px;height:26px;}
#sidebar-collapse:hover{background:var(--sbar-hover);color:#fff;}
#sidebar-close{display:none;}
#sidebar-nav{flex:1;padding:0 5px;overflow-y:auto;}
.nav-item{display:flex;align-items:center;gap:6px;padding:6px 10px;margin-bottom:2px;border-radius:6px;font-size:12px;font-weight:450;color:var(--sbar-text);text-decoration:none;height:32px;cursor:pointer;}
.nav-item:hover{background:var(--sbar-hover);color:var(--sbar-bright);}
.nav-item.active{background:var(--sbar-active);color:#fff;font-weight:500;}
.nav-icon{font-size:14px;width:17px;text-align:center;opacity:.8;flex-shrink:0;}
.nav-section-label{font-size:9px;font-weight:600;color:rgba(148,163,184,.45);text-transform:uppercase;letter-spacing:.8px;padding:8px 7px 3px;margin-top:2px;user-select:none;}

/* ═══ MENU GROUPS ═══ */
.nav-group{margin-bottom:1px;}
.nav-group-header{display:flex;align-items:center;gap:6px;padding:7px 10px;cursor:pointer;border-radius:6px;font-size:12px;font-weight:600;color:var(--sbar-bright);letter-spacing:0;user-select:none;transition:background .15s;}
.nav-group-header:hover{background:var(--sbar-hover);}
.nav-group-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.nav-group-arrow{font-size:10px;opacity:.6;flex-shrink:0;transition:transform .2s;}
.nav-group-body{transition:max-height .2s ease;overflow:hidden;}
.nav-group-body .nav-item{padding-left:14px;}
#sidebar.collapsed .nav-group-header{justify-content:center;padding:7px 0;}
#sidebar.collapsed .nav-group-title,#sidebar.collapsed .nav-group-arrow{display:none;}
#sidebar.collapsed .nav-group-body{display:none!important;}
.sidebar-footer{padding:8px;border-top:1px solid rgba(255,255,255,.06);font-size:12px;display:flex;flex-direction:column;gap:7px;}
#current-user-display{color:var(--sbar-text);font-size:12px;}
#logout-btn,#sidebar-password-btn{background:transparent;border:none;color:var(--sbar-text);padding:4px 0;cursor:pointer;font-size:12px;font-family:var(--font);text-align:left;opacity:.7;}
#logout-btn:hover,#sidebar-password-btn:hover{opacity:1;color:var(--sbar-bright);}
#sidebar.collapsed{width:52px;min-width:52px;}
#sidebar.collapsed .brand-text,#sidebar.collapsed .nav-item span:not(.nav-icon),#sidebar.collapsed #current-user-display,#sidebar.collapsed #logout-btn,#sidebar.collapsed #sidebar-password-btn{display:none;}
#sidebar.collapsed #sidebar-collapse{display:block;}
#sidebar.collapsed .nav-item{justify-content:center;padding:7px 0;}
#sidebar.collapsed .sidebar-brand{justify-content:center;padding:14px 0;}

/* ═══ MAIN ═══ */
#main-content{flex:1;display:flex;flex-direction:column;min-width:0;}
#topbar{padding:0 24px;height:48px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;}
#menu-toggle{display:none;background:none;border:none;font-size:20px;cursor:pointer;color:var(--text);}
#topbar h2{font-size:13px;font-weight:600;color:var(--text);}
#topbar-back{background:none;border:none;color:var(--primary);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px;}
#topbar-back:hover{background:var(--hover);}
.topbar-actions{display:flex;align-items:center;gap:8px;}
#topbar-user{font-size:12px;color:var(--text2);margin-right:4px;}
#topbar-logout-btn{background:none;border:1px solid var(--border);color:var(--text2);padding:3px 10px;border-radius:4px;cursor:pointer;font-size:12px;}
#topbar-logout-btn:hover{background:var(--hover);}
.api-status{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--text3);opacity:.8;}
.api-status.is-online{background:var(--success);}
.api-status.is-offline{background:var(--danger);}
#page-container{flex:1;padding:20px 24px;overflow-y:auto;}

/* ═══ BUTTONS — unified size ═══ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 12px;border-radius:var(--radius);font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;border:1px solid transparent;white-space:nowrap;height:28px;line-height:1;}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary);}
.btn-primary:hover{background:var(--primary-hv);}
.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border);}
.btn-secondary:hover{background:var(--hover);}
.btn-danger{background:none;color:var(--danger);border-color:var(--danger-bg);}
.btn-danger:hover{background:var(--danger-bg);}
.btn-sm{padding:3px 8px;font-size:11px;height:24px;}
.btn:disabled{opacity:.58;cursor:not-allowed;}
.btn-primary:disabled:hover{background:var(--primary);}
.btn-secondary:disabled:hover{background:var(--surface);}
.btn-danger:disabled:hover{background:none;}

/* ═══ PAGE TOOLBARS ═══ */
.page-header{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap;}
.page-header h3{font-size:15px;font-weight:650;color:var(--text);}
.page-header-split{justify-content:space-between;}
.page-header-actions-only{justify-content:flex-start;}
.page-header-actions,.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.filter-input,.filter-select{height:32px;padding:5px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;font-family:var(--font);color:var(--text);background:var(--surface);}
.filter-input{width:200px;max-width:100%;}
.filter-select{max-width:160px;}
.filter-input:focus,.filter-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-bg);}
.filter-summary{min-height:18px;margin:-4px 0 10px;color:var(--text3);font-size:12px;}
.loading{padding:40px 20px;text-align:center;color:var(--text3);font-size:13px;}
.form-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;}
.form-panel h3{font-size:15px;font-weight:650;margin-bottom:14px;}
.form-panel form>.btn,.form-panel form>.btn+button{margin-top:4px;}
.muted-note{margin-top:12px;font-size:11px;color:var(--text3);}

/* ═══ FORMS ═══ */
.form-group{margin-bottom:12px;}
.form-group label{display:block;font-size:12px;font-weight:600;color:var(--text2);margin-bottom:4px;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;font-family:var(--font);color:var(--text);background:var(--surface);}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-bg);}
.form-group textarea{resize:vertical;min-height:80px;}
.form-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:12px;}
.form-actions>.btn-danger:first-child,.modal-footer>.btn-danger:first-child{margin-right:auto;}

/* ═══ TABLE ═══ */
.data-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;line-height:1.28;}
.data-table th{padding:5px 7px;text-align:left;font-size:11px;font-weight:600;color:var(--text3);background:var(--bg);border-bottom:1px solid var(--border);white-space:nowrap;}
.data-table td{padding:5px 7px;font-size:12px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;}
.data-table tr:last-child td{border-bottom:none;}
.data-table tr:hover td{background:var(--hover);}
.col-title{min-width:160px;max-width:none;white-space:normal;word-break:break-word;}
.col-content{min-width:160px;max-width:none;white-space:normal;}
.col-nowrap{white-space:nowrap;}
.col-narrow{width:1%;white-space:nowrap;}
.col-actions{width:1%;white-space:nowrap;min-width:116px;}
.col-preview{min-width:120px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.data-table .row-actions{flex-wrap:nowrap;width:auto;gap:4px;}
.data-table .row-actions .btn{flex:0 0 auto;height:22px;min-width:34px;padding:2px 7px;font-size:11px;}
.data-table .col-actions{min-width:116px;}

/* Tab navigation */
.tab-nav{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border);}
.tab-btn{padding:8px 16px;border:none;background:none;font-size:13px;cursor:pointer;transition:all .15s;}
.tab-btn:hover{color:var(--primary);}
.tab-btn.active{font-weight:600;color:var(--primary);border-bottom:2px solid var(--primary);}

/* Card grid for material kits */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.list-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px;cursor:pointer;transition:all .15s;}
.list-card:hover{border-color:var(--primary);box-shadow:0 2px 8px rgba(0,0,0,.08);}
.list-card-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:6px;}
.list-card-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--text3);}
.list-card-meta span:not(:last-child)::after{content:'·';margin-left:8px;}
.list-card-desc{font-size:12px;color:var(--text2);margin-top:8px;line-height:1.4;}

/* Project table — PC optimized */
.project-table{table-layout:auto;width:100%;}
.project-table thead th{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.3px;padding:7px 10px;white-space:nowrap;}
.project-table tbody td{padding:9px 10px;border-bottom:1px solid #f0f0f0;vertical-align:top;}
.project-table tbody tr{transition:background .12s;cursor:pointer;}
.project-table tbody tr:hover td{background:#fafcff;}
.project-table tbody tr:hover td:first-child{border-left:2px solid var(--primary);padding-left:8px;}
.project-table .col-title{width:auto;min-width:160px;}
.project-table .col-actions{width:1%;min-width:116px;white-space:nowrap;}
.project-table .project-description-cell{
  max-width:300px;
  color:var(--text2);
  font-size:13px;
  line-height:1.5;
  white-space:normal;
  overflow:hidden;
  text-overflow:ellipsis;
  overflow-wrap:anywhere;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.project-table .task-link{font-weight:600;font-size:13px;color:var(--text);cursor:pointer;text-decoration:none;}
.project-table .task-link:hover{color:var(--primary);}
.data-table .row-actions{gap:6px;}
.data-table .row-actions .btn{padding:3px 10px;font-size:11px;height:26px;border-radius:5px;}

/* Patent module */
.patent-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.patent-summary span{display:inline-flex;align-items:baseline;gap:4px;padding:5px 9px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:12px;color:var(--text2);}
.patent-summary strong{font-size:15px;color:var(--text);}
.patent-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;}
.patent-table{table-layout:fixed;}
.patent-table th:nth-child(1){width:13%;}
.patent-table th:nth-child(2){width:27%;}
.patent-table th:nth-child(3){width:8%;}
.patent-table th:nth-child(4){width:13%;}
.patent-table th:nth-child(5){width:11%;}
.patent-table th:nth-child(6){width:10%;}
.patent-table th:nth-child(7){width:13%;}
.patent-name-cell,.patent-product-cell{white-space:normal;overflow-wrap:anywhere;}
.patent-name-cell strong{display:block;line-height:1.35;}
.patent-name-cell small{display:block;margin-top:2px;color:var(--text3);font-size:11px;line-height:1.35;}
.patent-number-cell{font-size:11px;white-space:normal;overflow-wrap:anywhere;}
.patent-add-row input,.patent-add-row select{height:28px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;background:var(--surface);}
.patent-legend{margin-top:8px;font-size:11px;color:var(--text3);}
.patent-mobile-list{display:none;}
.empty-inline{padding:16px;text-align:center;color:var(--text3);font-size:12px;}

/* ═══ BADGES ═══ */
.badge-pill{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:500;white-space:nowrap;}
.badge-pill.status-done,.badge-pill.status-active,.badge-pill.status-completed{background:var(--success-bg);color:#16a34a;}
.badge-pill.status-in_progress{background:var(--primary-bg);color:var(--primary);}
.badge-pill.status-delayed{background:var(--warning-bg);color:#d97706;}
.badge-pill.status-blocked{background:var(--danger-bg);color:var(--danger);}
.badge-pill.status-todo{background:var(--bg);color:var(--text3);}
.badge-pill.status-urgent{background:var(--warning-bg);color:#d97706;}
.badge-pill.status-cancelled,.badge-pill.status-archived{background:var(--bg);color:var(--text3);}

/* ═══ MODAL ═══ */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:500;padding:20px;overflow-y:auto;}
@media(max-height:700px){.modal-overlay{padding:10px;align-items:flex-start;}}
.modal{background:var(--surface);border-radius:10px;box-shadow:0 8px 40px rgba(0,0,0,.12);width:600px;max-width:100%;display:flex;flex-direction:column;overflow:hidden;max-height:85vh;}
@media(max-width:768px){.modal{margin-top:0;width:100vw;max-width:100vw;min-height:100vh;height:auto;border-radius:0;}}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);flex-shrink:0;}
.modal-header h3{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding-right:8px;}
.modal-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text3);padding:4px 8px;border-radius:4px;flex-shrink:0;}
.modal-close:hover{background:var(--hover);color:var(--text);}
.modal-body{padding:18px;overflow-y:auto;flex:1;min-height:0;}
.detail-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;flex-wrap:wrap;min-width:0;}
.detail-header h2{font-size:16px;font-weight:600;flex:1;min-width:0;}
/* ═══ TOAST ═══ */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:8px 18px;border-radius:var(--radius);font-size:13px;font-weight:500;z-index:600;box-shadow:0 4px 20px rgba(0,0,0,.15);background:var(--text);color:#fff;}

/* ═══ EMPTY ═══ */
.empty-state{text-align:center;padding:48px 20px;color:var(--text3);font-size:13px;}
.empty-state p{margin-bottom:10px;}
.empty-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:8px;}

/* ═══ UNIFIED CARD ═══ */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);}
.card-title{font-size:12px;font-weight:600;margin-bottom:8px;color:var(--text);}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px;flex:1;min-width:120px;}
.stat-label{font-size:11px;color:var(--text2);margin-bottom:2px;}
.stat-val{font-size:22px;font-weight:700;color:var(--text);}
.list-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin-bottom:6px;min-width:0;}
.list-card.clickable{cursor:pointer;}
.list-card:hover{border-color:#d4d4d8;box-shadow:0 1px 4px rgba(15,23,42,.05);}
.list-card-title{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.list-card-meta{font-size:11px;color:var(--text3);margin-top:2px;}
.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:9px 10px;cursor:pointer;min-width:0;}
.task-card:hover{border-color:#d4d4d8;}
.task-card-top{display:flex;align-items:center;gap:6px;}
.task-card-title{font-size:13px;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.task-card-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text3);margin-top:2px;}
.task-card-info{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.task-card-actions{display:flex;align-items:center;gap:4px;margin-top:4px;}
.task-page-toolbar{display:grid;gap:8px;margin-bottom:6px;}
.task-page-primary,.task-page-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.task-page-primary{justify-content:space-between;}
.task-page-primary .filter-chip-group{flex:1;}
.task-page-primary .product-filter-chip span{margin-left:3px;color:var(--text3);font-size:10px;}
.task-page-filters .filter-input{flex:1 1 180px;min-width:150px;}
.task-page-filters .filter-select{flex:0 1 138px;min-width:104px;}
.task-attention-strip{margin:6px 0 10px;}
.task-attention-strip .is-danger strong{color:var(--danger);}
.task-agenda{display:grid;gap:12px;}
.task-agenda-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;}
.task-agenda-group>header{min-height:36px;display:flex;align-items:center;justify-content:space-between;padding:5px 10px;border-bottom:1px solid var(--border);background:var(--bg);}
.task-agenda-group>header>div{display:flex;align-items:baseline;gap:7px;}
.task-agenda-group>header strong{font-size:12px;color:var(--text);}
.task-agenda-group>header span{font-size:10px;color:var(--text3);}
.task-agenda-group>header>b{min-width:22px;text-align:right;color:var(--text2);font-size:11px;}
.task-agenda-overdue>header{border-left:3px solid var(--danger);}
.task-agenda-week>header{border-left:3px solid #d97706;}
.task-agenda-row{display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:58px;padding:6px 9px;border-bottom:1px solid var(--border);cursor:pointer;}
.task-agenda-row:last-child{border-bottom:0;}
.task-agenda-row:hover{background:var(--hover);}
.task-agenda-date{display:grid;gap:1px;color:var(--text2);white-space:nowrap;}
.task-agenda-date b{font-size:12px;}
.task-agenda-date small{font-size:9px;color:var(--text3);}
.task-agenda-date.is-overdue b,.task-agenda-date.is-overdue small{color:var(--danger);}
.task-agenda-date.is-muted b{font-weight:500;color:var(--text3);}
.task-agenda-main{display:grid;gap:4px;min-width:0;}
.task-agenda-title{display:flex;align-items:center;gap:6px;min-width:0;}
.task-agenda-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;}
.task-agenda-title .badge-pill{flex:none;}
.task-agenda-context{display:flex;align-items:center;gap:9px;min-width:0;color:var(--text3);font-size:10px;}
.task-agenda-context>span{min-width:0;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.task-project-meta{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:360px;}
.task-project-meta>b{display:inline-grid;place-items:center;min-width:20px;height:18px;border:1px solid var(--border);border-radius:3px;color:var(--text2);font-size:9px;}
.task-project-meta>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2);}
.task-project-meta>em{flex:none;font-style:normal;}
.task-project-meta.is-muted{color:var(--text3);}
.task-agenda-actions{display:flex;align-items:center;gap:4px;}
.task-agenda-actions select{max-width:76px;height:26px;border:1px solid var(--border);cursor:pointer;font:10px var(--font);appearance:auto;}
.task-priority-urgent{color:var(--danger);border-color:#fecaca;background:#fff7f7;}
.task-priority-high{color:#92400e;border-color:#fde68a;background:#fffbeb;}
.task-priority-medium,.task-priority-low{color:var(--text2);border-color:var(--border);background:var(--bg);}

/* Card grid — responsive columns */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:8px;align-items:start;}
.ideas-grid{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:8px;align-items:start;}
.idea-card{cursor:pointer;min-width:0;transition:border-color .15s,box-shadow .15s,background .15s;}
.idea-card:hover{box-shadow:0 1px 4px rgba(15,23,42,.06);}
.idea-header{cursor:pointer;}
.idea-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.idea-title-wrap{flex:1;min-width:0;}
.idea-index{color:var(--text2);font-size:12px;font-weight:500;margin-right:4px;}
.idea-title{font-size:13px;font-weight:600;color:var(--text);}
.idea-preview{font-size:12px;color:var(--text3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.idea-meta{display:flex;gap:6px;align-items:center;flex-shrink:0;color:var(--text3);font-size:11px;white-space:nowrap;}
.idea-closed-note{font-size:11px;color:var(--text3);margin-top:2px;}
.idea-body{display:none;padding:12px 0 0;border-top:1px solid var(--border);margin-top:8px;min-width:0;}
.idea-tags{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-bottom:10px;}
.idea-text,.idea-analysis-text{font-size:13px;line-height:1.6;white-space:pre-wrap;color:var(--text);overflow-wrap:anywhere;}
.idea-text{margin-bottom:12px;}
.idea-analysis{margin-bottom:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);}
.idea-analysis-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;}
.idea-analysis-head.no-content{margin-bottom:0;}
.idea-analysis-head strong{font-size:13px;font-weight:600;color:var(--text);}
.idea-analysis-placeholder{font-size:13px;color:var(--text3);}
.idea-reference{font-size:13px;line-height:1.55;color:var(--text2);margin-bottom:12px;overflow-wrap:anywhere;}
.idea-card.expanded .idea-preview{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.idea-card.expanded .idea-body{display:block;}
.idea-card.expanded .idea-body>.row-actions{border-top:1px solid var(--border);padding-top:10px;}
@media(min-width:900px){
  .idea-card.expanded .idea-body{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);
    gap:0 14px;
  }
  .idea-card.expanded .idea-tags,
  .idea-card.expanded .idea-reference,
  .idea-card.expanded .idea-body>.row-actions{grid-column:1/-1;}
  .idea-card.expanded .idea-text{grid-column:1;margin-bottom:12px;}
  .idea-card.expanded .idea-analysis{grid-column:2;grid-row:2 / span 2;align-self:start;}
}

/* ═══ SPACES ═══ */
.space-page{max-width:980px;margin:0 auto;}
.space-entry-card{display:flex;align-items:center;gap:12px;}
.space-entry-index{font-size:11px;color:var(--text3);min-width:28px;flex-shrink:0;}
.space-entry-main{flex:1;min-width:0;}
.space-entry-meta{display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.space-entry-meta span{flex-shrink:0;}
.space-entry-actions{flex-shrink:0;flex-wrap:nowrap;width:auto;}
.space-entry-deleted{opacity:.58;}
.space-entry-deleted .space-entry-main{text-decoration:line-through;font-size:12px;color:var(--text2);}
.space-deleted{margin-top:18px;padding-top:12px;border-top:1px solid var(--border);}
.space-deleted-title{font-size:11px;color:var(--text3);margin-bottom:8px;}
.space-detail-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:14px;}
.space-detail-title{min-width:0;text-align:center;}
.space-detail-title h3{font-size:16px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.space-title-input{font-size:15px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius);padding:5px 8px;width:100%;max-width:360px;outline:none;font-family:var(--font);}
.space-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;min-width:0;}
.space-select{height:24px;padding:2px 6px;border-radius:var(--radius);border:1px solid var(--border);font-size:11px;max-width:120px;background:var(--surface);font-family:var(--font);}
.space-select.compact{max-width:100px;}
.space-detail-shell{max-width:900px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.space-editor{width:100%;min-height:420px;padding:16px;border:0;font-size:13px;font-family:var(--font-mono);line-height:1.7;resize:vertical;background:var(--surface);color:var(--text);outline:none;}
.space-preview{min-height:320px;padding:18px;font-size:14px;line-height:1.75;overflow-wrap:anywhere;}
.space-preview table{width:100%;display:block;overflow-x:auto;}
.space-preview img{max-width:100%;height:auto;}
.space-save-status{text-align:center;font-size:11px;margin:8px 0 12px;}

/* ═══ MEMO ═══ */
.memo-grid{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:8px;}
.memo-card{cursor:default;}
.memo-card-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px;cursor:pointer;font-size:11px;color:var(--text3);min-width:0;}
.memo-card-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.memo-index{color:var(--text2);font-weight:500;margin-right:4px;}
.memo-closed-label{flex-shrink:0;}
.memo-mobile-order{display:none;align-items:center;gap:4px;margin-left:auto;}
.memo-mobile-order .btn{width:30px;min-width:30px;padding:0;}
.memo-preview{font-size:12px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:14px;}
.memo-body{min-width:0;}
.memo-content{font-size:13px;line-height:1.55;white-space:pre-wrap;margin-bottom:7px;overflow-wrap:anywhere;}
.memo-tags{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-bottom:6px;}
.memo-context-row{display:flex;align-items:center;min-height:24px;margin:-1px 0 6px;}
.memo-project-slot{display:inline-flex;max-width:100%;min-width:0;}
.memo-project-tag{display:inline-block;max-width:100%;height:24px;padding:2px 7px;border:1px solid #bfdbfe;border-radius:4px;background:#eff6ff;color:#1d4ed8;font:11px var(--font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;}
.memo-project-tag:hover{border-color:#93c5fd;background:#dbeafe;}
.memo-project-tag.is-empty{border-style:dashed;border-color:var(--border);background:var(--surface);color:var(--text3);}
.memo-project-select{width:min(260px,100%);height:28px;padding:3px 24px 3px 7px;border:1px solid var(--primary);border-radius:4px;background:var(--surface);color:var(--text);font:11px var(--font);}
.memo-card.drag-over{border-top:2px solid var(--primary);}

/* Status dot */
.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.dot.status-todo{background:var(--text3);}
.dot.status-in_progress{background:var(--primary);}
.dot.status-blocked{background:var(--danger);}
.dot.status-done{background:var(--success);}
.dot.status-cancelled{background:var(--text3);opacity:.4;}
.dot-done{background:var(--success);}.dot-active{background:var(--primary);}.dot-pending{background:var(--text3);}.dot-blocked{background:var(--danger);}

/* ═══ DASHBOARD ═══ */
.workspace-summary-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);overflow:hidden;}
.workspace-summary-strip>div{display:flex;align-items:baseline;justify-content:center;gap:7px;min-width:0;padding:10px 8px;border-right:1px solid var(--border);}
.workspace-summary-strip>div:last-child{border-right:0;}
.workspace-summary-strip strong{font-size:18px;line-height:1;color:var(--text);}
.workspace-summary-strip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--text3);}
.workspace-summary-strip .is-risk strong{color:var(--danger);}
.workspace-overview-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:10px;align-items:start;}
.workspace-panel,.workspace-footprint{min-width:0;border:1px solid var(--border);border-radius:6px;background:var(--surface);}
.workspace-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:9px 11px;border-bottom:1px solid var(--border);}
.workspace-panel-head>div{min-width:0;}
.workspace-panel-head h3{margin:0;font-size:13px;font-weight:650;color:var(--text);}
.workspace-panel-head p{margin:2px 0 0;font-size:10px;color:var(--text3);}
.text-action{padding:2px 0;border:0;background:transparent;color:var(--primary);font:11px var(--font);white-space:nowrap;cursor:pointer;}
.text-action:hover{text-decoration:underline;}
.workspace-tabs{display:flex;gap:4px;padding:7px 10px;border-bottom:1px solid var(--border);overflow-x:auto;}
.workspace-tab{height:27px;padding:0 9px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text2);font:11px var(--font);white-space:nowrap;cursor:pointer;}
.workspace-tab:hover{background:var(--hover);}
.workspace-tab.active{border-color:var(--border);background:var(--bg);color:var(--text);font-weight:600;}
.workspace-task-list,.workspace-project-list{display:grid;}
.workspace-task-row{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:48px;padding:7px 11px;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left;color:var(--text);font-family:var(--font);cursor:pointer;}
.workspace-task-row:last-child{border-bottom:0;}
.workspace-task-row:hover,.workspace-project-row:hover{background:var(--hover);}
.workspace-task-copy{display:block;min-width:0;}
.workspace-task-copy strong,.workspace-task-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.workspace-task-copy strong{font-size:12px;font-weight:600;}
.workspace-task-copy small{margin-top:2px;font-size:10px;color:var(--text3);}
.workspace-task-side{text-align:right;font-size:10px;color:var(--text2);white-space:nowrap;}
.workspace-task-side small{display:block;margin-top:2px;color:var(--text3);}
.workspace-task-side.is-risk{color:var(--danger);font-weight:600;}
.workspace-project-row{display:grid;grid-template-columns:minmax(130px,1fr) 82px minmax(130px,1.2fr) auto;align-items:center;gap:10px;min-height:55px;padding:8px 11px;border-bottom:1px solid var(--border);cursor:pointer;}
.workspace-project-row:last-child{border-bottom:0;}
.workspace-project-main,.workspace-project-main strong,.workspace-project-main small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.workspace-project-main strong{font-size:12px;font-weight:600;}
.workspace-project-main small{margin-top:2px;font-size:10px;color:var(--text3);}
.workspace-project-progress{display:flex;align-items:center;gap:6px;}
.workspace-project-progress>span{width:48px;height:5px;overflow:hidden;border-radius:3px;background:var(--bg);}
.workspace-project-progress i{display:block;height:100%;background:var(--success);}
.workspace-project-progress small{font-size:9px;color:var(--text3);white-space:nowrap;}
.workspace-project-detail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--text2);}
.workspace-project-detail.is-risk{color:var(--danger);font-weight:600;}
.workspace-empty{padding:30px 12px;text-align:center;font-size:11px;color:var(--text3);}
.workspace-footprint{margin-top:10px;}
.workspace-footprint .workspace-panel-head{min-height:44px;}
.workspace-footprint-items{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
.workspace-footprint-items button{display:flex;align-items:baseline;justify-content:center;gap:6px;min-width:0;padding:10px 6px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--text);font-family:var(--font);cursor:pointer;}
.workspace-footprint-items button:last-child{border-right:0;}
.workspace-footprint-items button:hover{background:var(--hover);}
.workspace-footprint-items strong{font-size:14px;}
.workspace-footprint-items span{font-size:10px;color:var(--text3);}
.dm-stats{display:flex;gap:0;margin-bottom:12px;}
.dm-stat{flex:1;text-align:center;padding:6px 4px;background:var(--surface);border:1px solid var(--border);border-right:none;}
.dm-stat:last-child{border-right:1px solid var(--border);}
.dm-stat:first-child{border-radius:var(--radius) 0 0 var(--radius);}
.dm-stat:last-child{border-radius:0 var(--radius) var(--radius) 0;}
.dm-stat-num{font-size:15px;font-weight:700;color:var(--text);line-height:1;}
.dm-stat-label{font-size:10px;color:var(--text3);margin-top:1px;}
.dm-stat.dm-warn .dm-stat-num{color:#d97706;}
.dm-stat.dm-danger .dm-stat-num{color:var(--danger);}
.dm-section-hd{font-size:11px;font-weight:600;color:var(--text3);margin:10px 0 4px;}
.quick-launch{margin-bottom:12px;}
.quick-launch-hd{display:flex;align-items:center;justify-content:space-between;margin-top:0;}
.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:8px;}
.quick-card{display:flex;align-items:center;gap:11px;min-width:0;min-height:68px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 13px;font-family:var(--font);cursor:pointer;color:var(--text);}
.quick-card:hover{border-color:#d4d4d8;box-shadow:0 1px 4px rgba(15,23,42,.06);}
.quick-icon{width:32px;height:32px;border-radius:8px;background:#eef4ff;color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:700;}
.quick-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.quick-main strong{font-size:13px;font-weight:650;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.quick-main small{font-size:11px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.dm-prj{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.dm-prj-hd{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--border);}
.dm-prj-hd:hover{background:var(--hover);}
.dm-prj-hd strong{font-size:12px;}
.dm-prj-owner{font-size:11px;color:var(--text3);}
.dm-prj-arrow{font-size:11px;color:var(--text3);margin-left:auto;}
.dm-prj-ms{display:flex;flex-direction:column;}
.dm-prj-ms{display:flex;flex-wrap:wrap;}
.dm-ms-item{display:flex;align-items:center;gap:6px;padding:5px 10px;cursor:pointer;text-decoration:none;color:inherit;font-size:11px;}
.dm-ms-item:hover{background:var(--hover);}
.dm-ms-name{font-size:12px;font-weight:500;white-space:nowrap;}
.dm-ms-date{font-size:10px;color:var(--text2);white-space:nowrap;}
.dm-ms-date.actual{color:var(--success);}
.dm-dot-s{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0;}
.dm-ms-risk{background:var(--danger-bg);}

/* Risk badges */
.risk-low{color:var(--text3);background:var(--bg);font-size:10px;font-weight:500;padding:0 4px;border-radius:3px;}
.risk-medium{color:#d97706;background:var(--warning-bg);font-size:10px;font-weight:500;padding:0 4px;border-radius:3px;}
.risk-high{color:var(--danger);background:var(--danger-bg);font-size:10px;font-weight:500;padding:0 4px;border-radius:3px;}
.risk-critical{color:#991b1b;background:#fee2e2;font-size:10px;font-weight:600;padding:0 4px;border-radius:3px;}

/* ═══ TASK DETAIL ═══ */
.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:6px;}
@media(max-width:768px){.detail-grid{grid-template-columns:repeat(2,1fr);gap:6px;}}
@media(max-width:400px){.detail-grid{grid-template-columns:1fr 1fr;gap:4px;}}
.detail-desc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin-bottom:0;white-space:pre-wrap;color:var(--text2);overflow-wrap:anywhere;font-size:13px;line-height:1.6;max-height:none;}
.detail-item{padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);min-width:0;}
.detail-item label{display:block;font-size:10px;color:var(--text3);margin-bottom:3px;text-transform:uppercase;letter-spacing:.3px;}
.detail-item .value{font-size:13px;font-weight:500;color:var(--text);overflow-wrap:break-word;}
.detail-item select.value,.detail-item select{font-size:12px;padding:2px 4px;border-radius:4px;border:1px solid var(--border);background:var(--surface);font-family:var(--font);max-width:100%;outline:none;}
.detail-item select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-bg);}
.priority-low{color:var(--text3);}
.priority-medium{color:var(--text2);}
.priority-high{color:#d97706;}
.priority-urgent{color:var(--danger);font-weight:600;}
.comment-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px;max-height:280px;overflow-y:auto;}
@media(max-width:768px){.comment-list{max-height:none;}}
.comment-item{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);padding:8px 10px;color:var(--text2);white-space:pre-wrap;font-size:12px;line-height:1.5;}
.comment-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--text3);font-size:11px;margin-bottom:4px;}
.comment-meta strong{color:var(--text);font-size:12px;}
.comment-type{background:var(--bg);border-radius:4px;padding:1px 5px;color:var(--text2);font-size:10px;}
.type-progress{background:var(--primary-bg);color:var(--primary);}
.type-status_change{background:var(--warning-bg);color:#d97706;}
.comment-form{display:flex;align-items:center;gap:6px;margin-top:8px;}
.comment-form input{flex:1;height:32px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font);font-size:13px;}
.comment-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-bg);}

/* Detail pills */
.dm-detail-status{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.dm-detail-pill{font-size:11px;font-weight:600;padding:1px 7px;border-radius:4px;}
.dm-detail-pill.status-pending{background:var(--bg);color:var(--text3);}
.dm-detail-pill.status-in_progress{background:var(--primary-bg);color:var(--primary);}
.dm-detail-pill.status-completed{background:var(--success-bg);color:#16a34a;}
.dm-detail-pill.status-blocked{background:var(--danger-bg);color:var(--danger);}
.dm-detail-pill.overdue{background:var(--danger-bg);color:var(--danger);}
.dm-detail-date{font-size:11px;color:var(--text2);}
.dm-empty{text-align:center;padding:24px;color:var(--text3);font-size:13px;}

/* Milestone page */
.ms-section{margin-top:24px;}
.ms-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.ms-section-header h3{font-size:14px;font-weight:600;color:var(--text);}
/* ═══ SETTINGS ═══ */
.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;}
.settings-page{max-width:920px;}
.settings-section h3{font-size:14px;font-weight:600;margin-bottom:8px;color:var(--text);}
.settings-section pre{line-height:1.5;font-size:11px;}
.settings-section td,.settings-section th{font-size:12px;}
.settings-section code{background:var(--bg);padding:1px 5px;border-radius:3px;font-size:11px;}
.token-display{background:var(--bg);padding:10px 14px;border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;word-break:break-all;color:var(--text2);}
.settings-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px;}
.settings-section-head h3{margin-bottom:3px;}
.settings-section-head p,.settings-storage-note{margin:0;color:var(--text3);font-size:11px;line-height:1.6;}
.settings-dictionary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;}
.settings-dictionary-field{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;gap:2px 10px;min-width:0;}
.settings-dictionary-field>span{grid-row:1 / span 2;font-size:12px;font-weight:650;color:var(--text);}
.settings-dictionary-field>small{min-width:0;color:var(--text3);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.settings-dictionary-field>input{min-width:0;width:100%;height:32px;padding:5px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface);font-size:11px;color:var(--text);}
.settings-dictionary-field>input[readonly]{background:var(--bg);color:var(--text2);}
.settings-storage-note{margin-top:12px;}
@media(max-width:720px){
  .settings-dictionary-grid{grid-template-columns:1fr;}
  .settings-dictionary-field{grid-template-columns:96px minmax(0,1fr);}
  .settings-section-head{align-items:stretch;flex-direction:column;}
}

/* ═══ MEMO ═══ */
.memo-closed{opacity:.5;}

/* ═══ PROJECT CARDS (mobile) ═══ */
.project-card-list{display:none;flex-direction:column;gap:8px;}
.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;cursor:pointer;min-width:0;}
.project-card:hover{border-color:#d4d4d8;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.project-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px;}
.project-card-name{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;}
.project-card-desc{font-size:12px;color:var(--text2);line-height:1.45;margin-bottom:8px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.project-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--text3);}
.project-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.project-card-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;}

/* ═══ MILESTONE GRID ═══ */
.ms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:10px;align-items:start;}
.ms-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:border-color .15s,box-shadow .15s;}
.ms-card:hover{border-color:#c7d2fe;box-shadow:0 2px 8px rgba(59,130,246,.08);}
.ms-card.ms-risk{border-left:3px solid var(--danger);padding-left:13px;}
.ms-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.ms-stage{font-size:11px;color:var(--text3);font-weight:500;background:var(--bg);padding:2px 8px;border-radius:4px;}
.ms-risk-badge{font-size:10px;font-weight:500;padding:1px 6px;border-radius:3px;}
.ms-name{font-size:14px;font-weight:600;color:var(--text);line-height:1.3;}
.ms-status-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ms-date{font-size:11px;color:var(--text3);}
.ms-tasks-bar{height:5px;background:#e5e7eb;border-radius:3px;overflow:hidden;margin:2px 0;}
.ms-tasks-progress{height:100%;border-radius:3px;transition:width .4s ease;}
.ms-tasks-info{font-size:11px;color:var(--text2);font-weight:500;}
.ms-actions{display:flex;align-items:center;gap:6px;margin-top:2px;padding-top:4px;border-top:1px solid var(--border);}

/* ═══ RESPONSIVE ═══ */
@media(min-width:769px) and (max-width:1024px){
  #sidebar{width:112px;min-width:112px;}
  #page-container{padding:14px 16px;}
  #topbar{padding:0 16px;}
  .data-table th,.data-table td{padding:5px 7px;font-size:12px;}
  .project-table .col-title{width:20%;}
  .project-table .col-content{width:36%;}
  .ms-grid{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:8px;}
  .ms-card{padding:10px 12px;gap:8px;}
  .reg-hero{grid-template-columns:1fr;}
  .reg-kpi-grid,.reg-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .reg-detail-grid{grid-template-columns:1fr;}
  .reg-stage-row{grid-template-columns:1fr 1fr;gap:6px;}
  .reg-task-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .reg-detail-head{flex-direction:column;}
  .reg-detail-actions{width:100%;justify-content:flex-end;}
}
@media(max-width:768px){
  #app-shell{flex-direction:column;}
  #menu-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius);}
  #menu-toggle:hover{background:var(--hover);}
  #sidebar{position:fixed;top:0;left:0;bottom:0;width:164px;min-width:164px;z-index:950;transform:translateX(-100%);transition:transform .2s;box-shadow:4px 0 24px rgba(0,0,0,.15);}
  #sidebar.open{transform:translateX(0);}
  #sidebar-overlay.show{display:block;}
  #sidebar.collapsed{display:none;}
  #sidebar-nav{padding:0 4px;}
  .sidebar-brand{padding:10px 7px;}
  .nav-group-header{padding:6px 8px;}
  .nav-item{height:30px;padding:5px 8px;}
  .nav-group-body .nav-item{padding-left:12px;}
  .sidebar-footer{padding:7px;}
  #main-content{width:100%;}
  #topbar{padding:0 12px;height:48px;position:sticky;top:0;z-index:100;}
  #topbar-user,#topbar-changepwd-btn,#topbar-logout-btn,.api-status{display:none;}
  .topbar-actions{gap:4px;margin-left:auto;}
  #page-container{padding:12px 10px;overflow-x:hidden;}
  .data-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;border-radius:var(--radius);}
  .data-table th,.data-table td{padding:6px 8px;font-size:12px;}
  .col-title{min-width:140px;max-width:none;}
  .col-content{min-width:140px;max-width:none;}
  /* Project list: hide table, show cards on mobile */
  .project-table{display:none;}
  .project-card-list{display:flex;}
  .project-table-wrap{overflow-x:auto;margin-bottom:12px;}
  .project-table-wrap .data-table{width:auto;min-width:800px;}
  .project-card-head{align-items:flex-start;}
  .project-card-meta{flex-direction:column;align-items:flex-start;gap:2px;}
  .product-toolbar{align-items:stretch;}
  .product-summary-strip,.product-filter-chips{width:100%;}
  .product-summary-strip{overflow-x:auto;padding-bottom:2px;}
  .product-toolbar-actions{width:100%;margin-left:0;}
  .product-toolbar-actions .btn{flex:1;white-space:nowrap;}
  .product-table-wrap{display:none;}
  .plc-development-guide{flex-direction:column;gap:8px;}
  .plc-development-guide>div:first-child{min-width:0;}
  .plc-development-guide .plc-stage-strip{width:100%;}

  /* Project detail - mobile */
  .detail-header{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px;}
  .detail-header h2{font-size:14px;width:100%;}
  .detail-header .btn{align-self:flex-start;}
  .detail-desc{font-size:12px;line-height:1.5;padding:10px 12px;}
  .detail-item{padding:8px 10px;}
  .ms-grid{grid-template-columns:1fr;gap:6px;}
  .ms-card{padding:10px 12px;gap:6px;}
  .ms-card-top{flex-wrap:wrap;}
  .ms-section-header{flex-direction:column;align-items:flex-start;gap:8px;}
  .ms-section-header h3{font-size:13px;}
  .ms-section-header .btn{width:100%;justify-content:center;}
  .login-card{padding:32px 24px;border-radius:14px;}
  .modal{width:100vw;max-width:100vw;max-height:100vh;height:100vh;border-radius:0;}
  .modal-body{padding:16px;}
  .toast{left:12px;right:12px;bottom:12px;transform:none;}
  .dm-prj-ms{flex-direction:column;}
  .dm-ms-item{min-width:100%;border-right:none;}
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
  .quick-card{display:flex;align-items:center;gap:8px;padding:10px 9px;min-height:60px;}
  .quick-icon{width:30px;height:30px;font-size:16px;}
  .quick-main strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .quick-main small{display:block;font-size:10px;line-height:1.25;}
  .card-grid,.memo-grid,.ideas-grid{grid-template-columns:1fr;}
  .comment-form{align-items:stretch;flex-direction:column;}
  .comment-form .btn{width:100%;}
  .filter-input,.filter-select{width:100%;max-width:none;}
  .btn-sm{height:30px;padding:5px 10px;font-size:12px;min-width:44px;}
  .badge-pill{padding:4px 9px;font-size:12px;}
  .task-card{padding:10px 12px;}
  .task-card-meta{flex-wrap:wrap;gap:6px;}
  .task-card-info{min-width:0;}
  .page-header{flex-direction:column;align-items:stretch;}
  .page-header-split{justify-content:flex-start;}
  .page-header-actions,.row-actions{width:100%;}
  .page-header-actions .btn,.row-actions .btn{flex:1;}
  .page-header .btn{justify-content:center;}
  .patent-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
  .patent-summary span{padding:7px 9px;}
  .patent-filters{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
  .patent-filters select:first-child{grid-column:1 / -1;}
  .patent-table-wrap{display:none;}
  .patent-mobile-list{display:flex;flex-direction:column;gap:8px;}
  .patent-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 11px;}
  .patent-card-main{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
  .patent-card-main strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere;}
  .patent-card-meta{display:flex;flex-wrap:wrap;gap:5px 9px;margin-top:6px;font-size:11px;color:var(--text2);}
  .patent-card-sub{margin-top:5px;font-size:11px;color:var(--text3);overflow-wrap:anywhere;}
  .patent-card .row-actions{margin-top:8px;width:100%;}
  .patent-card .row-actions .btn{flex:1;}
  .patent-legend{display:none;}
  .form-panel{padding:16px 14px;border-left:none;border-right:none;border-radius:0;margin-left:-10px;margin-right:-10px;max-width:none!important;}
  .space-page{max-width:none;}
  .space-entry-card{
    display:grid;
    grid-template-columns:24px minmax(0,1fr) auto;
    align-items:center;
    gap:6px;
    padding:9px 10px;
  }
  .space-entry-index{min-width:auto;padding-top:0;grid-column:1;}
  .space-entry-main{grid-column:2;min-width:0;}
  .space-entry-actions{grid-column:3;width:auto;flex-wrap:nowrap;}
  .space-entry-actions .btn{flex:0 0 auto;min-width:40px;padding:4px 8px;}
  .space-entry-meta{gap:6px;font-size:11px;}
  .space-entry-deleted{grid-template-columns:minmax(0,1fr) auto;opacity:.62;}
  .space-entry-deleted .space-entry-main{grid-column:1;}
  .space-entry-deleted .space-entry-actions{grid-column:2;}
  .space-detail-header{grid-template-columns:1fr;align-items:stretch;}
  .space-detail-title{text-align:left;order:-1;}
  .space-detail-title h3{white-space:normal;}
  .space-detail-actions{justify-content:flex-start;width:100%;}
  .space-detail-actions .btn,.space-detail-actions .space-select{flex:1 1 auto;min-width:96px;}
  .space-detail-shell{border-left:none;border-right:none;border-radius:0;margin-left:-10px;margin-right:-10px;}
  .space-preview{padding:14px;font-size:13px;line-height:1.7;}
  .space-editor{min-height:360px;padding:14px;}
  .memo-card-head{align-items:center;flex-wrap:nowrap;}
  .memo-card-meta{white-space:nowrap;}
  .memo-mobile-order{display:flex;}
  .memo-preview{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
  .memo-card .row-actions{width:100%;}
  .data-table .row-actions{width:auto;flex-wrap:nowrap;}
  .data-table .row-actions .btn{flex:0 0 auto;min-width:34px;}
  /* Ideas cards: wrap header + feasibility on mobile */
  .idea-header-row{flex-wrap:wrap;}
  .idea-meta{white-space:normal;}
  .idea-analysis-head{align-items:stretch;flex-direction:column;}
  .idea-analysis-head .row-actions{width:100%;}
  .idea-card .idea-body{overflow-wrap:break-word;word-break:break-word;}
  .plc-guide-summary{align-items:flex-start;padding:10px;}
  .plc-guide-hint{padding-top:2px;}
  .plc-stage-strip{padding:0 10px 10px;}
  .plc-table{min-width:680px;}
}
@media(max-width:400px){
  #page-container{padding:10px 6px;}
  #topbar{padding:0 8px;}
  .login-card{padding:24px 18px;}
  .quick-card{padding:10px 8px;gap:7px;}
  .quick-main strong{font-size:11px;}
  .quick-main small{display:none;}
}
.memo-card.drag-over { border-top: 2px solid var(--primary); }

/* ── Idea version management ── */
.idea-version-badge{cursor:pointer;font-size:11px;color:var(--primary);background:var(--hover);padding:1px 6px;border-radius:10px;white-space:nowrap;}
.idea-version-badge:hover{background:var(--primary);color:#fff;}
.idea-version-history{position:absolute;right:0;top:100%;z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.1);min-width:180px;max-height:200px;overflow-y:auto;}
.idea-version-item{cursor:pointer;display:flex;justify-content:space-between;padding:6px 10px;font-size:12px;color:var(--text);border-bottom:1px solid var(--border);}
.idea-version-item:last-child{border-bottom:none;}
.idea-version-item:hover{background:var(--hover);}
.idea-analysis-head{position:relative;}
.idea-refine{margin-top:8px;display:flex;gap:4px;}
.idea-refine input{flex:1;font-size:12px;}

/* Expanded idea card — article layout */
.idea-card.expanded .idea-body { display: block; }
.idea-card.expanded .idea-preview { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.idea-section { margin-bottom: 16px; }
.idea-section-title { font-size: 14px; font-weight: 600; color: var(--text); margin-bottom: 8px; display: flex; align-items: center; gap: 8px; }
.idea-analysis-section { background: var(--hover); border-radius: 8px; padding: 14px; }
.idea-analysis-controls { display: flex; align-items: center; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.idea-saved-links{font-size:11px;color:var(--text3);margin-top:2px;padding-left:14px;}
.idea-saved-links a{color:var(--primary);text-decoration:none;}
.idea-saved-links a:hover{text-decoration:underline;}
.idea-saved-del{cursor:pointer;color:var(--text3);margin-left:6px;font-weight:bold;}
.idea-saved-del:hover{color:#e74c3c;}

/* ═══ WORK MODULE ═══ */
.work-tabs{display:flex;gap:0;margin-bottom:12px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;}
.work-tabs::-webkit-scrollbar{display:none;}
.work-tab,.work-subtab{appearance:none;border:0;background:transparent;color:var(--text2);font-family:var(--font);cursor:pointer;white-space:nowrap;}
.work-tab{height:36px;padding:0 18px;border-bottom:2px solid transparent;font-size:13px;}
.work-tab:hover{color:var(--text);background:var(--hover);}
.work-tab.active{color:var(--primary-hv);border-bottom-color:var(--primary);font-weight:600;}
/* Chip filter for roadmaps */
.rm-chip-group{display:flex;gap:4px;align-items:center;flex-wrap:wrap;}
.rm-chip{display:inline-flex;align-items:center;height:26px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text2);font-size:12px;cursor:pointer;font-family:var(--font);transition:all .12s;white-space:nowrap;}
.rm-chip:hover{border-color:var(--primary);color:var(--primary);}
.rm-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;}
.btn-ghost{background:transparent;border:1px solid transparent;color:var(--text3);}
.btn-ghost:hover{background:var(--hover);color:var(--primary);border-color:var(--border);}

.work-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.work-toolbar-actions{display:flex;align-items:center;gap:6px;margin-left:auto;}
.roadmap-toolbar{align-items:flex-start;}
.rm-filter-panel{flex:1;min-width:0;}
.rm-filter-panel>summary{display:none;}
.rm-filter-body{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.rm-toolbar-label{font-size:11px;color:var(--text3);white-space:nowrap;}
.work-view-menu{position:relative;font-size:12px;color:var(--text2);}
.work-view-toggle{height:30px;display:flex;align-items:center;padding:0 9px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;font-size:12px;color:var(--text2);}
.work-view-drop{position:absolute;z-index:20;top:34px;right:0;min-width:110px;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.1);}
.work-view-menu label{display:flex;align-items:center;gap:6px;padding:4px;white-space:nowrap;cursor:pointer;}
.work-view-tabs button{transition:background .15s;}
.bg-l1-group{transition:box-shadow .15s;}
.bg-l1-group:hover{box-shadow:0 1px 4px rgba(0,0,0,.05);}
.bg-l1-head:hover{background:var(--surface)!important;}
.bg-l1-body table th,.bg-l1-body table td{white-space:nowrap;}
.bg-l1-body table input[type=number]::-webkit-outer-spin-button,
.bg-l1-body table input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.bg-l1-body table input[type=number]{-moz-appearance:textfield;}
.work-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.work-metric{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px;}
.work-metric>div:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.work-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:6px;}
.plc-guide{margin-bottom:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden;}
.plc-guide-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;cursor:pointer;list-style:none;}
.plc-guide-summary::-webkit-details-marker{display:none;}
.plc-guide-summary strong{display:block;font-size:14px;color:var(--text);}
.plc-guide-summary small{display:block;margin-top:2px;font-size:11px;font-weight:400;color:var(--text3);}
.plc-guide-hint{font-size:11px;color:var(--primary);white-space:nowrap;}
.plc-stage-strip{display:flex;gap:6px;overflow-x:auto;padding:0 12px 10px;scrollbar-width:none;}
.plc-stage-strip::-webkit-scrollbar{display:none;}
.plc-chip{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;}
.plc-table{border-left:0;border-right:0;border-radius:0;min-width:760px;}
.plc-note{margin:10px 12px 12px;font-size:11px;color:var(--text3);line-height:1.5;padding:8px 10px;background:var(--bg);border-radius:6px;}
.product-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.product-summary-strip{display:flex;align-items:center;gap:14px;margin-right:auto;font-size:11px;color:var(--text3);}
.product-summary-strip span{white-space:nowrap;}
.product-summary-strip strong{font-size:14px;color:var(--text);margin-right:2px;}
.product-toolbar-actions{display:flex;align-items:center;gap:6px;}
.product-filter-chips{order:3;width:100%;display:flex;gap:6px;align-items:center;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;}
.product-filter-chips::-webkit-scrollbar{display:none;}
.product-filter-row{order:3;width:100%;display:flex;align-items:center;gap:8px;min-width:0;}
.product-filter-row>span{width:30px;flex:0 0 30px;color:var(--text3);font-size:11px;}
.product-filter-row .product-filter-chips{order:initial;width:auto;min-width:0;flex:1;}
.product-filter-chip{height:27px;flex:0 0 auto;padding:0 9px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text2);font-size:11px;cursor:pointer;}
.product-filter-chip span{margin-left:3px;color:var(--text3);}
.product-filter-chip:hover{border-color:var(--text3);color:var(--text);}
.product-filter-chip.active{border-color:var(--text);background:var(--text);color:var(--surface);}
.product-filter-chip.active span{color:inherit;opacity:.75;}
.product-mobile-group-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px;padding:0 10px 7px;}
.product-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:6px;}
.product-group-table{width:100%;min-width:1320px;border:0;border-radius:0;}
.product-group-table th,.product-group-table td{vertical-align:middle;}
.product-group-table .product-name-col{width:280px;min-width:250px;}
.product-group-table .product-market-col{width:190px;min-width:175px;max-width:220px;}
.product-group-table .product-model-col{width:92px;min-width:82px;max-width:100px;}
.product-group-table .product-owner-col{width:78px;min-width:70px;max-width:88px;}
.product-group-table .product-line-col{width:68px;min-width:68px;max-width:76px;}
.product-group-table .product-category-col{width:132px;min-width:132px;}
.product-group-table .product-stage-col{width:76px;min-width:76px;max-width:82px;}
.product-group-table .product-dev-status-col{width:82px;min-width:82px;max-width:92px;}
.product-group-table .product-date-col{width:86px;min-width:86px;max-width:94px;white-space:nowrap;}
.product-group-table .product-note-col{width:105px;min-width:90px;max-width:105px;}
.product-group-table .product-stage{display:block;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.product-development-status{display:inline-flex;align-items:center;min-height:22px;padding:1px 7px;border:1px solid var(--border);border-radius:3px;background:var(--bg);color:var(--text2);font-size:10px;white-space:nowrap;}
.development-development,.development-validation,.development-release_pending{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8;}
.development-continuous{border-color:#bbf7d0;background:#f0fdf4;color:#166534;}
.development-paused{border-color:#fed7aa;background:#fff7ed;color:#9a3412;}
.development-no_task,.development-not_started{color:var(--text3);}
.plc-development-guide{display:flex;align-items:flex-start;gap:16px;padding:12px 14px;border-top:1px solid var(--border);}
.plc-development-guide>div:first-child{min-width:160px;}
.plc-development-guide strong,.plc-development-guide span{display:block;}
.plc-development-guide>div:first-child span{margin-top:3px;color:var(--text3);font-size:10px;line-height:1.45;}
.plc-development-guide .plc-stage-strip{flex:1;padding:0;}
.product-group-table .product-line-col select{width:100%;min-width:0;}
.product-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.product-form-row-three{grid-template-columns:repeat(3,minmax(0,1fr));}
.form-hint{display:block;margin-top:4px;color:var(--text3);font-size:10px;line-height:1.4;}
.compact-row-actions{display:flex!important;flex-wrap:nowrap!important;white-space:nowrap;min-width:max-content;}
.material-library-table th:last-child,.material-library-table td:last-child,
.pricing-flat-table th:last-child,.pricing-flat-table td:last-child{width:96px;min-width:96px;white-space:nowrap;}
.project-sortable{cursor:pointer;user-select:none;white-space:nowrap;}
.project-sortable span{color:var(--primary);font-size:9px;}
.milestone-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.milestone-toolbar-actions{display:flex;gap:6px;margin-left:auto;}
.milestone-summary{margin-bottom:8px;}
.milestone-table{min-width:920px;}
.milestone-table td:first-child{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.milestone-name-link{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;}
.milestone-risk{font-size:10px;font-weight:650;white-space:nowrap;}
.milestone-card-list{display:none;gap:8px;}
.milestone-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:10px;}
.milestone-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.milestone-card-head strong,.milestone-card-head span{display:block;}
.milestone-card-head strong{font-size:13px;}
.milestone-card-head div>span{margin-top:2px;font-size:10px;color:var(--text3);}
.milestone-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:9px 0;}
.milestone-card-grid span{font-size:9px;color:var(--text3);}
.milestone-card-grid b{display:block;margin-top:2px;font-size:11px;color:var(--text);font-weight:600;}
.rd-overview-summary{margin-bottom:8px;}
.rd-overview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;}
.rd-overview-filters{display:flex;align-items:center;gap:7px;min-width:0;}
.rd-product-picker{position:relative;width:210px;max-width:38vw;}
.rd-product-picker>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;height:32px;padding:0 9px;border:1px solid var(--border);border-radius:5px;background:var(--surface);font-size:11px;color:var(--text);cursor:pointer;list-style:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rd-product-picker>summary::-webkit-details-marker{display:none;}
.rd-product-picker>summary::after{content:'⌄';flex:0 0 auto;color:var(--text3);font-size:13px;}
.rd-product-picker[open]>summary{border-color:#bfdbfe;box-shadow:0 0 0 2px var(--primary-bg);}
.rd-product-picker-panel{position:absolute;z-index:30;top:37px;left:0;width:260px;max-width:min(86vw,320px);padding:7px;border:1px solid var(--border);border-radius:6px;background:var(--surface);box-shadow:0 8px 24px rgba(15,23,42,.12);}
.rd-product-picker-options{display:grid;max-height:260px;overflow-y:auto;}
.rd-product-picker-options label{display:flex;align-items:center;gap:8px;min-width:0;padding:7px 6px;border-radius:4px;font-size:11px;color:var(--text);cursor:pointer;}
.rd-product-picker-options label:hover{background:var(--hover);}
.rd-product-picker-options input{width:15px;height:15px;margin:0;accent-color:var(--primary);}
.rd-product-picker-options span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rd-product-picker-actions{display:flex;justify-content:flex-end;gap:6px;padding-top:7px;border-top:1px solid var(--border);}
.rd-overview-toolbar .filter-chip-group{display:flex;gap:5px;}
.rd-overview-toolbar .product-filter-chip.active{border-color:#bfdbfe;background:var(--primary-bg);color:var(--primary);font-weight:600;}
.rd-overview-table{min-width:1160px;table-layout:fixed;}
.rd-overview-table th:nth-child(1){width:230px;}
.rd-overview-table th:nth-child(2){width:220px;}
.rd-overview-table th:nth-child(3){width:58px;}
.rd-overview-table th:nth-child(4){width:78px;}
.rd-overview-table th:nth-child(5){width:72px;}
.rd-overview-table th:nth-child(7){width:90px;}
.rd-overview-table td:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rd-project-link{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;}
.rd-milestone-strip{display:flex;gap:0;overflow-x:auto;padding:1px 0;}
.rd-milestone-item{display:grid;grid-template-columns:8px minmax(0,1fr);align-items:start;gap:6px;flex:0 0 150px;min-width:0;padding:4px 9px;border:0;border-right:1px solid var(--border);border-radius:0;background:transparent;text-align:left;cursor:pointer;}
.rd-milestone-item:first-child{padding-left:0;}
.rd-milestone-item:last-child{border-right:0;}
.rd-milestone-item:hover{background:var(--hover);}
.rd-status-dot{display:block;width:7px;height:7px;margin-top:3px;border-radius:50%;background:var(--text3);}
.rd-milestone-item.status-in_progress .rd-status-dot{background:var(--primary);}
.rd-milestone-item.status-completed .rd-status-dot{background:var(--success);}
.rd-milestone-item.status-delayed .rd-status-dot{background:#d97706;}
.rd-milestone-item.status-blocked .rd-status-dot{background:var(--danger);}
.rd-milestone-copy,.rd-milestone-copy b,.rd-milestone-copy small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rd-milestone-copy b{font-size:10px;color:var(--text);font-weight:600;}
.rd-milestone-copy small{margin-top:2px;font-size:9px;color:var(--text3);}
.rd-no-milestone{font-size:10px;color:var(--text3);}
.rd-progress>div{height:5px;overflow:hidden;border-radius:3px;background:var(--bg);}
.rd-progress>div>span{display:block;height:100%;background:var(--success);}
.rd-progress small{display:block;margin-top:3px;font-size:9px;color:var(--text3);}
.rd-overview-cards{display:none;gap:8px;}
.rd-overview-card{padding:11px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);}
.rd-overview-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px;}
.rd-overview-card-head>div{min-width:0;}
.rd-overview-card-head strong,.rd-overview-card-head span{display:block;}
.rd-overview-card-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;}
.rd-overview-card-head div span{margin-top:2px;font-size:10px;color:var(--text3);}
.rd-card-milestones{margin:9px 0;}
.rd-overview-card>.btn{width:100%;}
.patent-main-tabs{margin-bottom:8px;}
.patent-plan-table{min-width:1120px;}
.patent-plan-table td:first-child,.patent-plan-table td:nth-child(2){max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.patent-plan-table th:nth-child(3),.patent-plan-table td:nth-child(3){width:110px;}
.patent-plan-cards{display:none;gap:8px;}
.patent-plan-card{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:10px;}
.patent-plan-card>div{grid-column:1/-1;}
.patent-plan-card>div strong,.patent-plan-card>div span{display:block;}
.patent-plan-card>div strong{font-size:13px;}
.patent-plan-card>div span{margin-top:2px;font-size:10px;color:var(--text3);}
.patent-plan-card label{font-size:9px;color:var(--text3);}
.patent-plan-card input,.patent-plan-card select{display:block;width:100%;height:32px;margin-top:3px;padding:5px 7px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:12px var(--font);}
.patent-plan-card .patent-plan-action,.patent-plan-card>button{grid-column:1/-1;}
.product-sortable{cursor:pointer;user-select:none;white-space:nowrap;}
.product-sortable:hover{background:var(--hover);color:var(--text);}
.product-sortable span{font-size:9px;color:var(--primary);}
.product-group-row{background:var(--bg);cursor:pointer;}
.product-group-row:hover{background:var(--hover);}
.product-group-row td{font-size:11px;color:var(--text2);border-top:1px solid var(--border);}
.product-group-row .product-name-col{display:flex;align-items:center;gap:7px;}
.product-group-row strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:12px;}
.product-group-row small{margin-left:auto;color:var(--text3);white-space:nowrap;}
.product-cell-ellipsis{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.product-group-toggle{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text2);font-size:15px;line-height:1;cursor:pointer;}
.product-variant-row td{font-size:12px;background:var(--surface);}
.product-variant-row:focus{outline:2px solid var(--primary);outline-offset:-2px;}
.product-variant-row .product-name-col{padding-left:42px;}
.product-variant-label{font-size:10px;color:var(--text3);white-space:nowrap;}
.product-variant-row select{width:100%;height:28px;padding:2px 24px 2px 6px;border:1px solid var(--border);border-radius:4px;background:var(--surface);font-size:11px;color:var(--text);}
.product-stage{display:inline-flex;align-items:center;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:600;white-space:nowrap;}
.product-note-ellipsis{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:help;}
.product-group-cards{gap:8px;}
.product-mobile-group{overflow:hidden;border:1px solid var(--border);border-radius:6px;background:var(--surface);}
.product-mobile-group-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:0;background:var(--surface);text-align:left;color:var(--text);cursor:pointer;}
.product-mobile-group-head span{min-width:0;}
.product-mobile-group-head strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;}
.product-mobile-group-head small{display:block;margin-top:3px;color:var(--text3);font-size:10px;font-weight:400;}
.product-mobile-group-head b{font-size:18px;font-weight:400;color:var(--text2);}
.product-mobile-variant{padding:10px 12px;border-top:1px solid var(--border);background:var(--bg);}
.product-mobile-variant-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.product-mobile-variant-head a{font-size:13px;font-weight:650;color:var(--primary);cursor:pointer;}
.product-mobile-variant-head span{font-size:10px;color:var(--text3);}
.product-mobile-market{margin:-2px 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text2);}
.product-mobile-fields{display:grid;grid-template-columns:1fr 1fr;gap:7px 10px;margin-bottom:8px;font-size:11px;color:var(--text2);}
.product-mobile-fields label{grid-column:1/-1;display:flex;align-items:center;gap:8px;}
.product-mobile-fields select{flex:1;min-width:0;height:30px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);padding:3px 7px;}
.product-mobile-fields span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cooperation-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.cooperation-mobile-add{display:none;}
.cooperation-table{min-width:1380px;}
.cooperation-table th:first-child{min-width:180px;}
.cooperation-table th:nth-child(2){min-width:210px;}
.cooperation-table th:nth-child(5),.cooperation-table th:nth-child(8){min-width:150px;}
.cooperation-table th:nth-child(9){min-width:150px;}
.cooperation-table input,.cooperation-table select{width:100%;min-width:0;}
.cooperation-stacked-fields{display:grid;gap:4px;}
.cooperation-card-list{display:none;gap:8px;}
.cooperation-card{padding:11px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);}
.cooperation-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.cooperation-card-head>div{min-width:0;}
.cooperation-card-head strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--text);}
.cooperation-card-head small{display:block;margin-top:2px;font-size:10px;color:var(--text3);}
.cooperation-status{flex:0 0 auto;padding:2px 7px;border:1px solid var(--border);border-radius:4px;font-size:10px;color:var(--text2);background:var(--bg);}
.cooperation-card-product{margin:8px 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;color:var(--text);}
.cooperation-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;font-size:11px;color:var(--text2);}
.cooperation-card-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cooperation-card-note{margin-top:7px;padding-top:7px;border-top:1px solid var(--border);font-size:11px;line-height:1.45;color:var(--text2);}
.cooperation-card .row-actions{margin-top:9px;justify-content:flex-end;}
.cooperation-form{max-width:640px;margin:0 auto;}
.project-flat-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.project-quick-filters{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.quick-filter-tags{display:flex;align-items:center;gap:5px;overflow-x:auto;padding-bottom:1px;}
.quick-filter-tag{height:28px;padding:0 9px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text2);font-size:11px;white-space:nowrap;cursor:pointer;}
.quick-filter-tag span{margin-left:3px;color:var(--text3);}
.quick-filter-tag.active{border-color:var(--primary);background:var(--primary-bg);color:var(--primary);}
.project-quick-filters>input{box-sizing:border-box;width:220px;height:30px;padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);font-size:12px;}
.project-flat-table{min-width:1240px;table-layout:fixed;}
.project-flat-table th:nth-child(1){width:220px;}
.project-flat-table th:nth-child(2){width:210px;}
.project-flat-table th:nth-child(3){width:68px;}
.project-flat-table th:nth-child(4){width:76px;}
.project-flat-table th:nth-child(5){width:88px;}
.project-flat-table th:nth-child(6){width:76px;}
.project-flat-table th:nth-child(7){width:250px;}
.project-flat-table th:nth-child(8){width:240px;}
.project-flat-table input,.project-flat-table select{width:100%;min-width:0;}
.project-readonly-value{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text2);}
strong.project-readonly-value{font-size:12px;color:var(--text);}
.project-flat-table tr.is-editing td{background:#fbfdff;}
.project-flat-table th:last-child,.project-flat-table td:last-child{position:sticky;right:0;z-index:3;background:var(--surface);box-shadow:-1px 0 0 var(--border);}
.project-flat-table th:last-child{z-index:4;background:var(--bg);}
.project-flat-table .flat-data-row:hover td:last-child{background:#fbfdff;}
.project-product-picker{position:relative;width:100%;}
.project-product-picker>summary{box-sizing:border-box;width:100%;height:28px;padding:5px 22px 4px 7px;overflow:hidden;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);font-size:11px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;list-style:none;}
.project-product-picker>summary::-webkit-details-marker{display:none;}
.project-product-picker>summary::after{content:'▾';position:absolute;right:7px;color:var(--text3);}
.project-product-options{position:absolute;z-index:20;top:31px;left:0;display:grid;gap:2px;box-sizing:border-box;width:max-content;min-width:220px;max-width:340px;max-height:240px;padding:6px;overflow:auto;border:1px solid var(--border);border-radius:5px;background:var(--surface);box-shadow:0 8px 20px rgba(15,23,42,.12);}
.project-product-options label{display:flex;align-items:center;gap:7px;padding:5px 6px;border-radius:3px;color:var(--text2);font-size:11px;white-space:normal;cursor:pointer;}
.project-product-options label:hover{background:var(--hover);}
.project-product-options input{flex:0 0 auto;width:14px!important;height:14px!important;min-width:14px!important;}
.task-owner-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.task-owner-row select,.task-owner-row input{width:100%;}
.project-flat-cards{display:none;gap:8px;}
.project-flat-card{padding:11px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);}
.project-flat-card>div:first-child{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.project-flat-card strong{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:var(--text);}
.project-flat-card span,.project-flat-card small{font-size:10px;color:var(--text3);}
.project-flat-card p{margin:7px 0 4px;font-size:11px;color:var(--text2);}
.project-flat-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.project-flat-card .row-actions{margin-top:8px;justify-content:flex-end;}
.project-mobile-add{display:none;}
.project-detail-header{justify-content:space-between;}
.project-detail-header>div:first-child{display:flex;align-items:center;gap:8px;min-width:0;}
.project-detail-header h2{flex:0 1 auto;}
.project-detail-summary{display:flex;align-items:center;gap:0;margin:0 0 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);overflow-x:auto;}
.project-detail-summary span{padding:7px 14px;border-right:1px solid var(--border);white-space:nowrap;font-size:11px;color:var(--text3);}
.project-detail-summary span:last-child{border-right:0;}
.project-detail-summary strong{margin-right:4px;font-size:13px;color:var(--text);}
.ms-section-actions{display:flex;align-items:center;gap:8px;}
.view-segment{display:flex;padding:2px;border:1px solid var(--border);border-radius:5px;background:var(--bg);}
.view-segment button{height:24px;padding:0 10px;border:0;border-radius:3px;background:transparent;color:var(--text2);font:inherit;font-size:11px;cursor:pointer;}
.view-segment button.active{background:var(--surface);color:var(--text);font-weight:650;box-shadow:0 1px 2px rgba(15,23,42,.08);}
.ms-timeline{border:1px solid var(--border);border-radius:6px;background:var(--surface);overflow:hidden;}
.ms-timeline-item{display:grid;grid-template-columns:120px minmax(200px,1fr) 110px auto;align-items:center;gap:12px;padding:9px 11px;border-bottom:1px solid var(--border);}
.ms-timeline-item:last-child{border-bottom:0;}
.ms-timeline-item:hover{background:#fbfdff;}
.ms-timeline-date strong,.ms-timeline-date span{display:block;white-space:nowrap;}
.ms-timeline-date strong{font-size:12px;color:var(--text);}
.ms-timeline-date span{margin-top:2px;font-size:10px;color:var(--text3);}
.ms-timeline-main{min-width:0;}
.ms-timeline-title{display:flex;align-items:center;gap:6px;min-width:0;}
.ms-timeline-title>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text);}
.ms-timeline-main p{margin:3px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--text3);}
.ms-risk-text{white-space:nowrap;}
.ms-timeline-progress button{padding:0;border:0;background:transparent;color:var(--text2);font-size:10px;cursor:pointer;}
.ms-timeline-progress button:hover{color:var(--primary);}
.ms-timeline-progress>div{height:3px;margin-top:4px;overflow:hidden;border-radius:2px;background:var(--bg);}
.ms-timeline-progress>div>span{display:block;height:100%;background:var(--primary);}
.ms-timeline-actions{display:flex;align-items:center;gap:5px;}
.ms-tree-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:6px;background:var(--surface);}
.ms-tree-table{width:100%;min-width:900px;border-collapse:collapse;table-layout:fixed;font-size:11px;}
.ms-tree-table th,.ms-tree-table td{padding:7px 9px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;}
.ms-tree-table th{background:var(--bg);color:var(--text3);font-size:10px;font-weight:650;}
.ms-tree-table th:first-child{width:32%;}
.ms-tree-table th:nth-child(2){width:110px;}
.ms-tree-table th:nth-child(3){width:90px;}
.ms-tree-table th:nth-child(4){width:100px;}
.ms-tree-table th:nth-child(5){width:92px;}
.ms-tree-table th:nth-child(6){width:85px;}
.ms-tree-table th:last-child{width:130px;}
.ms-tree-table tbody tr:last-child td{border-bottom:0;}
.ms-tree-project td{background:#fafafa;font-weight:600;}
.ms-tree-task td{background:#fcfcfd;color:var(--text2);}
.ms-tree-label{display:flex;align-items:center;min-width:0;}
.ms-tree-label.level-node{padding-left:16px;}
.ms-tree-label.level-task{padding-left:42px;}
.ms-tree-label.level-task>span{margin-right:6px;color:var(--text3);}
.ms-tree-toggle{flex:0 0 22px;width:22px;height:22px;padding:0;border:0;background:transparent;color:var(--text3);cursor:pointer;}
.ms-tree-toggle:disabled{cursor:default;}
.ms-tree-link{min-width:0;overflow:hidden;padding:2px 0;border:0;background:transparent;color:var(--text);font:inherit;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;}
.ms-tree-link:hover{color:var(--primary);text-decoration:underline;}
.research-flat-toolbar,.pricing-flat-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.research-flat-filters{display:flex;align-items:center;gap:6px;margin-left:auto;}
.research-flat-table{min-width:1260px;table-layout:fixed;}
.research-flat-table th:nth-child(1){width:170px;}
.research-flat-table th:nth-child(2){width:150px;}
.research-flat-table th:nth-child(3){width:165px;}
.research-flat-table th:nth-child(4){width:70px;}
.research-flat-table th:nth-child(5){width:120px;}
.research-flat-table th:nth-child(6){width:110px;}
.research-flat-table th:nth-child(7){width:110px;}
.research-flat-table th:nth-child(8){width:115px;}
.research-flat-table th:nth-child(9){width:70px;}
.research-flat-table th:nth-child(10){width:100px;}
.research-flat-table th:nth-child(11){width:80px;}
.research-flat-table input,.research-flat-table select,.pricing-flat-table input,.pricing-flat-table select{width:100%;min-width:0;}
.research-flat-table th:last-child,.research-flat-table td:last-child{position:sticky;right:0;z-index:3;background:var(--surface);box-shadow:-1px 0 0 var(--border);}
.research-flat-table th:last-child{z-index:4;background:var(--bg);}
.research-flat-table .flat-data-row:hover td:last-child{background:#fbfdff;}
.research-stack{display:grid;gap:4px;}
.research-flat-cards,.pricing-flat-cards{display:none;gap:8px;}
.research-flat-card,.pricing-flat-card{padding:11px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);}
.research-flat-card>div:first-child,.pricing-flat-card>div:first-child{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.research-flat-card strong,.pricing-flat-card strong{font-size:13px;color:var(--text);}
.research-flat-card span,.pricing-flat-card span{font-size:10px;color:var(--text3);}
.research-flat-card h4{margin:7px 0 3px;font-size:12px;color:var(--text);}
.research-flat-card p{margin:0 0 5px;font-size:11px;color:var(--text2);}
.research-flat-card small,.pricing-flat-card small{display:block;font-size:10px;color:var(--text3);}
.research-flat-card .row-actions{margin-top:8px;justify-content:flex-end;}
.research-mobile-add{display:none;}
.pricing-flat-table{min-width:1080px;}
.pricing-flat-table th:first-child{min-width:240px;}
.pricing-flat-table th:nth-child(2),.pricing-flat-table th:nth-child(7){min-width:150px;}
.pricing-flat-card b{display:block;margin:9px 0 5px;font-size:18px;color:var(--text);}
.pricing-flat-card>button{margin-top:9px;width:100%;}
.pricing-mobile-add{width:100%;}
@media(max-width:768px){
  .workspace-summary-strip{grid-template-columns:repeat(3,minmax(0,1fr));}
  .workspace-summary-strip>div{border-bottom:1px solid var(--border);}
  .workspace-summary-strip>div:nth-child(3n){border-right:0;}
  .workspace-summary-strip>div:nth-last-child(-n+3){border-bottom:0;}
  .workspace-overview-grid{grid-template-columns:1fr;}
  .workspace-project-row{grid-template-columns:minmax(0,1fr) 72px auto;}
  .workspace-project-detail{grid-column:1/3;}
  .workspace-footprint-items{grid-template-columns:repeat(4,minmax(0,1fr));}
  .workspace-footprint-items button{border-bottom:1px solid var(--border);}
  .workspace-footprint-items button:nth-child(4n){border-right:0;}
  .workspace-footprint-items button:nth-last-child(-n+3){border-bottom:0;}
  .cooperation-toolbar{align-items:center;flex-wrap:wrap;}
  .cooperation-toolbar .product-summary-strip{overflow-x:auto;padding-bottom:2px;}
  .cooperation-mobile-add{display:inline-flex;margin-left:auto;}
  .cooperation-table-wrap{display:none;}
  .cooperation-card-list{display:grid;}
  .project-flat-toolbar{align-items:center;flex-wrap:wrap;}
  .project-flat-toolbar .product-summary-strip{overflow-x:auto;padding-bottom:2px;}
  .project-quick-filters{align-items:stretch;flex-direction:column;}
  .project-quick-filters>input{width:100%;}
  .project-mobile-add{display:inline-flex;margin-left:auto;}
  .project-flat-wrap{display:none;}
  .project-flat-cards{display:grid;}
  .project-detail-header{align-items:stretch;}
  .project-detail-header>div:first-child{width:100%;}
  .project-detail-header>.row-actions{width:100%;}
  .project-detail-summary{margin-bottom:9px;}
  .project-detail-summary span{padding:6px 10px;}
  .ms-section{margin-top:16px;}
  .ms-section-header{width:100%;align-items:stretch;}
  .ms-section-actions{width:100%;align-items:stretch;}
  .ms-section-actions .view-segment{flex:1;}
  .ms-section-actions .view-segment button{flex:1;}
  .ms-section-actions>.btn{width:auto;flex:0 0 auto;}
  .ms-timeline-item{grid-template-columns:88px minmax(0,1fr);gap:7px 9px;padding:9px;}
  .ms-timeline-main p{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
  .ms-timeline-progress{grid-column:1/2;}
  .ms-timeline-actions{grid-column:2/3;justify-content:flex-end;}
  .ms-tree-wrap{margin-right:-10px;}
  .task-page-primary{align-items:stretch;}
  .task-page-primary .filter-chip-group{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;}
  .task-page-primary>.btn{width:100%;}
  .task-page-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
  .task-page-filters .filter-input{grid-column:1/-1;width:100%;min-width:0;}
  .task-page-filters .filter-select{width:100%;min-width:0;}
  .task-page-filters>.btn{width:100%;}
  .task-attention-strip{width:100%;overflow-x:auto;}
  .task-agenda-row{grid-template-columns:55px minmax(0,1fr);gap:7px;align-items:start;padding:8px;}
  .task-agenda-date{padding-top:2px;}
  .task-agenda-context{display:grid;gap:3px;}
  .task-agenda-context>span,.task-project-meta{max-width:100%;}
  .task-agenda-actions{grid-column:1/-1;justify-content:flex-end;padding-top:2px;}
  .task-agenda-actions select{margin-right:auto;}
  .task-project-meta>em{display:none;}
  .version-workflow-guide{flex-wrap:wrap;}
  .task-owner-row{grid-template-columns:1fr;}
  .research-flat-toolbar{align-items:stretch;}
  .research-flat-toolbar .product-summary-strip{width:100%;overflow-x:auto;}
  .research-flat-filters{width:100%;margin-left:0;}
  .research-flat-filters select{flex:1;min-width:0!important;}
  .research-mobile-add{display:inline-flex;}
  .research-flat-wrap,.pricing-flat-wrap{display:none;}
  .research-flat-cards,.pricing-flat-cards{display:grid;}
  .pricing-flat-toolbar .product-summary-strip{width:100%;overflow-x:auto;}
  .milestone-toolbar{align-items:stretch;}
  .milestone-toolbar .filter-select{flex:1;min-width:calc(50% - 4px);}
  .milestone-toolbar-actions{width:100%;margin-left:0;}
  .milestone-toolbar-actions .btn{flex:1;}
  .milestone-summary{overflow-x:auto;flex-wrap:nowrap;}
  .milestone-table-wrap{display:none;}
  .milestone-card-list{display:grid;}
  .rd-overview-summary{overflow-x:auto;flex-wrap:nowrap;}
  .rd-overview-toolbar{align-items:stretch;flex-wrap:wrap;}
  .rd-overview-filters{width:100%;align-items:stretch;}
  .rd-product-picker{flex:1;width:auto;max-width:none;min-width:0;}
  .rd-product-picker-panel{position:fixed;top:auto;right:12px;bottom:12px;left:12px;width:auto;max-width:none;}
  .rd-overview-toolbar .filter-chip-group{flex:0 0 auto;}
  .rd-overview-toolbar .product-filter-chip{height:32px;}
  .rd-overview-toolbar>.btn{margin-left:auto;}
  .rd-overview-table-wrap{display:none;}
  .rd-overview-cards{display:grid;}
  .rd-milestone-strip{display:grid;overflow:visible;}
  .rd-milestone-item{width:100%;padding:6px 0;border-right:0;border-bottom:1px solid var(--border);}
  .rd-milestone-item:last-child{border-bottom:0;}
  .patent-plan-wrap{display:none;}
  .patent-plan-cards{display:grid;}
  .product-form-row,.product-form-row-three{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .workspace-summary-strip>div{display:block;text-align:center;padding:9px 4px;}
  .workspace-summary-strip span{display:block;margin-top:3px;}
  .workspace-project-row{grid-template-columns:minmax(0,1fr) auto;}
  .workspace-project-progress{justify-content:flex-end;}
  .workspace-project-detail{grid-column:1/-1;}
  .workspace-project-row>.text-action{display:none;}
  .workspace-footprint-items{grid-template-columns:repeat(3,minmax(0,1fr));}
  .workspace-footprint-items button:nth-child(4n){border-right:1px solid var(--border);}
  .workspace-footprint-items button:nth-child(3n){border-right:0;}
  .workspace-footprint-items button:nth-last-child(-n+3){border-bottom:1px solid var(--border);}
  .workspace-footprint-items button:last-child{border-bottom:0;}
}
.work-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.work-template-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;}
.form-group small{display:block;margin-top:4px;color:var(--text3);font-size:10px;line-height:1.4;}
.work-field-head{display:flex!important;align-items:center;justify-content:space-between;gap:8px;}
.budget-sheet{margin-bottom:12px;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--surface);}
.budget-sheet-head{padding:8px 10px;background:var(--hover);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;}
.budget-sheet-total{margin-left:auto;font-size:11px;white-space:nowrap;}
.funding-method-note{margin:0 0 12px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text2);font-size:11px;line-height:1.5;}
.funding-topbar{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap;}
.funding-topbar-meta{font-size:11px;color:var(--text2);}
.funding-page-tabs{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.funding-page-tab{padding:5px 12px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text);cursor:pointer;font-size:12px;}
.funding-page-tab.active{background:var(--text);border-color:var(--text);color:#fff;}
.funding-decision-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:12px;margin-bottom:14px;}
.funding-decision-main,.funding-insight-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;}
.funding-eyebrow{font-size:11px;color:var(--text2);margin-bottom:4px;}
.funding-primary-value{font-size:28px;font-weight:750;line-height:1.15;color:var(--text);}
.funding-primary-sub{font-size:12px;color:var(--text2);line-height:1.5;margin-top:5px;}
.funding-hero-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;}
.funding-mini-metric{border:1px solid var(--border);border-radius:6px;padding:8px;background:var(--bg);}
.funding-mini-label{font-size:10px;color:var(--text3);margin-bottom:3px;}
.funding-mini-value{font-size:15px;font-weight:700;color:var(--text);line-height:1.25;}
.funding-insight-list{display:grid;gap:8px;}
.funding-insight{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px;padding:8px;border-radius:6px;background:var(--bg);}
.funding-insight strong{font-size:12px;color:var(--text);}
.funding-insight span{font-size:12px;color:var(--text2);line-height:1.45;}
.funding-section-title{font-size:13px;font-weight:700;margin:0 0 8px;color:var(--text);}
.funding-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:14px;}
.funding-assumption-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;}
.funding-scenario-row{display:flex;gap:6px;align-items:center;margin-bottom:12px;flex-wrap:wrap;}
.funding-scenario-row .funding-page-tab{padding:4px 10px;font-size:11px;}
.funding-quarter-chart{height:170px;border:1px solid var(--border);border-radius:6px;background:linear-gradient(180deg,var(--surface),var(--bg));overflow:hidden;}
.funding-quarter-chart svg{display:block;width:100%;height:100%;}
.funding-quarter-axis,.funding-quarter-values{display:grid;grid-template-columns:repeat(12,minmax(34px,1fr));gap:2px;margin-top:5px;font-size:9px;color:var(--text3);overflow-x:auto;}
.funding-quarter-axis span,.funding-quarter-values span{text-align:center;white-space:nowrap;}
.funding-quarter-values{font-weight:600;color:var(--text2);}
.funding-assumptions-panel{padding:14px;margin-bottom:12px;}
.funding-decision-hero-main{grid-template-columns:1fr 1fr;}
.funding-evidence-card{padding:14px;margin-bottom:16px;}
.funding-cash-chart-card{padding:14px;margin-bottom:12px;}
.funding-cash-chart{height:260px;border:1px solid var(--border);border-radius:6px;background:linear-gradient(180deg,var(--surface),var(--bg));overflow:hidden;}
.funding-cash-chart svg{display:block;width:100%;height:100%;}
.funding-cash-axis{display:grid;grid-template-columns:repeat(12,minmax(34px,1fr));gap:2px;margin-top:5px;padding:0 20px 0 46px;box-sizing:border-box;font-size:9px;color:var(--text3);}
.funding-cash-axis span{text-align:center;white-space:nowrap;}
.funding-chart-legend{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:2px 0 10px;font-size:10px;color:var(--text2);}
.funding-chart-legend span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;}
.funding-chart-legend i{display:inline-block;width:8px;height:8px;border-radius:999px;}
.funding-decision-lower{display:grid;grid-template-columns:1.3fr .7fr;gap:12px;align-items:start;}
.funding-keypoint-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));}
.funding-action-plan{padding:14px;margin-bottom:16px;}
.funding-action-plan ol{margin:0;padding-left:18px;display:grid;gap:8px;}
.funding-action-plan li{font-size:12px;color:var(--text2);line-height:1.55;}
.funding-action-plan strong{color:var(--text);}
.funding-evidence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;}
.funding-evidence-list{display:grid;gap:8px;margin-top:10px;}
.funding-evidence-item{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);}
.funding-evidence-item span{display:block;font-size:10px;color:var(--text3);margin-bottom:3px;}
.funding-evidence-item strong{display:block;font-size:15px;line-height:1.25;}
.funding-evidence-item small{display:block;margin-top:3px;font-size:10px;color:var(--text2);line-height:1.4;}
.funding-warning-list{display:grid;gap:6px;margin-bottom:12px;}
.funding-warning{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:6px;font-size:11px;line-height:1.45;}
.funding-warning.danger{background:#fef2f2;color:#991b1b;}
.funding-warning.warning{background:#fffbeb;color:#92400e;}
.funding-warning b{white-space:nowrap;}
.funding-use-row{display:grid;grid-template-columns:70px minmax(120px,1fr) 40px 80px;gap:8px;align-items:center;margin-bottom:6px;font-size:11px;}
.funding-use-row>div{height:7px;background:var(--hover);border-radius:999px;overflow:hidden;}
.funding-use-row i{display:block;height:100%;background:var(--primary);border-radius:999px;}
.funding-use-row b{text-align:right;}
.funding-use-row em{text-align:right;color:var(--text2);font-style:normal;}

/* Registration dashboard */
.reg-hero{display:grid;grid-template-columns:minmax(280px,1fr) minmax(360px,1.2fr);gap:14px;align-items:stretch;margin-bottom:14px;}
.reg-main-tabs{margin-bottom:10px;}
.reg-portfolio-kpis{margin-bottom:10px;}
.reg-overview-table{min-width:1060px;}
.reg-overview-table td:first-child{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reg-overview-cards{display:none;gap:8px;}
.reg-overview-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:10px;cursor:pointer;}
.reg-overview-card>div{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.reg-overview-card strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reg-overview-card p{margin:6px 0 3px;font-size:11px;color:var(--text2);line-height:1.45;}
.reg-overview-card>span{font-size:10px;color:var(--text3);}
.reg-hero-main,.reg-panel,.reg-form-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;}
.reg-eyebrow{font-size:11px;color:var(--text3);margin-bottom:4px;}
.reg-hero-title{font-size:18px;font-weight:750;color:var(--text);line-height:1.25;}
.reg-hero-sub{font-size:12px;color:var(--text2);line-height:1.55;margin-top:6px;max-width:560px;}
.reg-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.reg-kpi{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;}
.reg-kpi span,.reg-kpi small{display:block;color:var(--text3);font-size:10px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reg-kpi strong{display:block;margin:3px 0;font-size:17px;font-weight:750;color:var(--text);line-height:1.22;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reg-toolbar{align-items:center;}
.reg-task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(480px,1fr));gap:14px;}
.reg-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;}
.reg-card:hover{background:#fbfdff;border-color:#cbd5e1;box-shadow:0 4px 14px rgba(15,23,42,.05);}
.reg-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px;}
.reg-card-title-wrap{min-width:0;}
.reg-card-title{font-size:14px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reg-card-meta{font-size:11px;color:var(--text3);line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reg-card-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2px 12px;margin-bottom:10px;padding:8px 10px;background:var(--bg);border-radius:var(--radius);}
.reg-card-stat{font-size:11px;color:var(--text3);line-height:1.5;}
.reg-card-stat strong{display:block;font-weight:600;color:var(--text);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reg-card-bars{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:6px;}
.reg-card-actions{display:flex;justify-content:flex-end;margin-top:8px;}
.reg-budget-plan{margin-top:10px;}
.reg-budget-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:8px 0 10px;}
.reg-budget-summary>div{padding:9px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);}
.reg-budget-summary span,.reg-budget-product small{display:block;color:var(--text3);font-size:9px;}
.reg-budget-summary strong{display:block;margin-top:2px;color:var(--text);font-size:13px;}
.reg-budget-table{min-width:880px;}
.reg-budget-table th:first-child{width:190px;}
.reg-budget-table th:nth-child(2){width:70px;}
.reg-budget-table th:last-child{width:90px;}
.reg-budget-product strong{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reg-budget-total{font-weight:700;color:var(--text);}
.reg-budget-note{margin:8px 0 0;color:var(--text3);font-size:10px;line-height:1.5;}
.reg-card-current{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;align-items:center;margin-bottom:9px;font-size:12px;}
.reg-card-current span{color:var(--text3);}
.reg-card-current strong{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reg-progress-row{margin-top:8px;}
.reg-progress-row>div{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:11px;color:var(--text3);}
.reg-progress-row b{font-weight:650;color:var(--text2);}
.reg-progress-row i{display:block;height:6px;background:var(--hover);border-radius:999px;overflow:hidden;}
.reg-progress-row em{display:block;height:100%;background:var(--primary);border-radius:999px;}
.reg-stage-strip{display:flex;gap:2px;margin:10px 0 8px;height:6px;border-radius:999px;overflow:hidden;background:var(--hover);}
.reg-stage-strip span{flex:1;min-width:10px;background:#e4e4e7;}
.reg-stage-strip .status-completed{background:var(--success);}
.reg-stage-strip .status-in_progress{background:var(--primary);}
.reg-stage-strip .status-delayed{background:var(--danger);}
.reg-stage-strip.muted{opacity:.55;}
.reg-card-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;font-size:11px;color:var(--text3);}
.reg-card-facts b{font-weight:600;color:var(--text2);}
.reg-pill{display:inline-flex;align-items:center;justify-content:center;height:20px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap;}
.reg-pill.ok{background:var(--success-bg);color:#15803d;}
.reg-pill.warning{background:var(--warning-bg);color:#b45309;}
.reg-pill.danger{background:var(--danger-bg);color:#dc2626;}
.reg-pill.info{background:var(--primary-bg);color:var(--primary-hv);}
.reg-pill.neutral{background:var(--hover);color:var(--text2);}
.reg-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;}
.reg-detail-title{display:flex;align-items:center;gap:12px;min-width:0;flex:1;flex-wrap:wrap;}
.reg-detail-title h3{font-size:16px;font-weight:750;color:var(--text);line-height:1.25;}
.reg-detail-title p{font-size:11px;color:var(--text3);line-height:1.45;margin-top:2px;}
.reg-detail-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.reg-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;}
.reg-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);gap:14px;align-items:start;}
.reg-panel-main{min-width:0;}
.reg-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.reg-section-head h3{font-size:13px;font-weight:700;color:var(--text);}
.reg-section-head span{font-size:11px;color:var(--text3);line-height:1.45;}
.reg-stage-list{display:grid;gap:10px;}
.reg-stage-item{padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);}
.reg-stage-item-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;gap:8px;}
.reg-stage-item-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.reg-stage-item-title strong{font-size:13px;color:var(--text);}
.reg-stage-status{font-size:11px;padding:2px 8px;border-radius:3px;white-space:nowrap;}
.reg-stage-order-label{font-size:12px;color:var(--text3);white-space:nowrap;}
.reg-stage-item-dates{display:flex;gap:16px;font-size:12px;color:var(--text2);margin-bottom:8px;flex-wrap:wrap;}
.reg-stage-item-budget{display:flex;gap:16px;font-size:12px;flex-wrap:wrap;}
.reg-stage-item-budget b{font-weight:600;}
.reg-stage-budget .is-danger{color:var(--danger);}
.reg-stage-budget .is-ok{color:var(--success);}
.reg-focus-block{padding:9px 0;border-bottom:1px solid var(--border);}
.reg-focus-block:last-child{border-bottom:none;padding-bottom:0;}
.reg-focus-block span{display:block;font-size:10px;color:var(--text3);margin-bottom:4px;}
.reg-focus-block p{font-size:12px;color:var(--text2);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;}
.reg-form-shell{max-width:1200px;margin:0 auto;}
.reg-form-section-head{margin-top:4px;padding-top:14px;border-top:1px solid var(--border);}
.reg-stage-editor{display:grid;gap:8px;margin-bottom:16px;}
.reg-stage-row{display:grid;grid-template-columns:minmax(140px,1.2fr) repeat(3,minmax(130px,.8fr)) minmax(80px,.6fr) minmax(80px,.6fr) minmax(90px,.7fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);}
.reg-stage-row input,.reg-stage-row select{width:100%;height:30px;padding:5px 7px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;font-family:var(--font);background:var(--surface);}
.reg-stage-row .btn{height:30px;}
.reg-note-grid{margin-top:4px;}
.reg-form-shell .work-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.reg-form-shell .work-form-grid .form-group:nth-child(1),
.reg-form-shell .work-form-grid .form-group:nth-child(2){grid-column:span 2;}
.budget-detail-table{min-width:900px;font-size:11px;}
.budget-detail-table th,.budget-detail-table td{border-bottom:1px solid var(--border);}
.budget-detail-table .num-cell{text-align:right;font-variant-numeric:tabular-nums;}
.budget-item-row{display:flex;gap:4px;align-items:center;flex-wrap:wrap;padding:4px 0;border-bottom:1px solid #f0f0f0;font-size:11px;}
.budget-item-row select,.budget-item-row input{font-size:10px;}
.budget-monthly-inputs input::-webkit-outer-spin-button,
.budget-monthly-inputs input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.budget-monthly-inputs input[type=number]{-moz-appearance:textfield;}
.work-subtabs{display:flex;gap:2px;margin-bottom:12px;border-bottom:1px solid var(--border);}
.work-subtab{height:32px;padding:0 12px;border-bottom:2px solid transparent;font-size:12px;}
.work-subtab.active{color:var(--primary-hv);border-bottom-color:var(--primary);font-weight:600;}
.work-empty-inline{padding:16px;text-align:center;color:var(--text3);border:1px dashed var(--border);border-radius:0 0 6px 6px;}
.personnel-topbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.personnel-tabs{display:flex;gap:2px;border:1px solid var(--border);border-radius:var(--radius);padding:2px;background:var(--surface);}
.personnel-tabs button{height:26px;padding:0 12px;border:0;border-radius:4px;background:transparent;color:var(--text2);font-size:12px;font-family:var(--font);cursor:pointer;}
.personnel-tabs button.active{background:var(--text);color:#fff;font-weight:650;}
.personnel-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;min-width:0;}
.personnel-kpi span,.personnel-kpi small{display:block;font-size:10px;color:var(--text3);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.personnel-kpi strong{display:block;font-size:17px;font-weight:750;line-height:1.25;color:var(--text);margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.personnel-add-line{display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,1.2fr) 110px auto;gap:6px;align-items:center;margin-bottom:10px;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);}
.personnel-add-line select{height:30px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;font-family:var(--font);background:var(--surface);min-width:0;}
.personnel-add-line select option{font-size:11px;white-space:normal;word-break:break-all;}
.personnel-add-line{margin:0;padding:10px 12px;border-left:0;border-right:0;border-top:0;border-radius:0;background:#fbfbfc;}
.personnel-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);}
.personnel-table{width:100%;min-width:820px;border-collapse:collapse;font-size:11px;}
.personnel-table th,.personnel-table td{padding:6px 7px;border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;}
.personnel-table th{position:sticky;top:0;z-index:3;background:var(--bg);font-size:10px;font-weight:700;color:var(--text3);}
.personnel-table tbody tr{cursor:pointer;}
.personnel-table tbody tr:hover td{background:#fbfdff;}
.personnel-table tbody tr.is-selected td{background:var(--primary-bg);}
.personnel-inline-detail-row>td{padding:0!important;background:var(--surface)!important;white-space:normal!important;text-align:left!important;}
.personnel-inline-detail-row:hover>td{background:var(--surface)!important;}
.personnel-inline-detail-row .personnel-detail-panel{margin:0;border:0;border-radius:0;}
.person-name-cell{position:sticky;left:0;z-index:4;background:var(--surface);min-width:142px;text-align:left!important;}
.person-action-cell{position:sticky;right:0;z-index:4;background:var(--surface);min-width:98px;}
.personnel-name{font-size:12px;font-weight:700;color:var(--text);}
.personnel-meta{font-size:10px;color:var(--text3);line-height:1.45;}
.personnel-name-line{display:flex;align-items:baseline;gap:6px;min-width:0;}
.personnel-name-line .personnel-name,.personnel-name-line .personnel-meta{white-space:nowrap;}
.personnel-legend{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:7px 0 12px;font-size:10px;color:var(--text3);}
.personnel-legend span{display:inline-flex;align-items:center;gap:5px;}
.personnel-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;}
.personnel-legend .ok{background:var(--success);}
.personnel-legend .warn{background:var(--warning);}
.personnel-legend .over{background:var(--danger);}
.personnel-mobile-list{display:none;}
.personnel-mobile-card,.personnel-mobile-add{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;}
.personnel-mobile-card.is-selected{border-color:#b8cdf8;}
.personnel-mobile-head{display:flex;align-items:center;justify-content:space-between;padding:10px 11px 7px;}
.personnel-mobile-head strong,.personnel-mobile-head span{display:block;}
.personnel-mobile-head strong{font-size:13px;color:var(--text);}
.personnel-mobile-head span{margin-top:2px;font-size:10px;color:var(--text3);}
.personnel-mobile-months{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.personnel-mobile-months>div{padding:6px;text-align:center;border-right:1px solid var(--border);border-bottom:1px solid var(--border);}
.personnel-mobile-months>div:nth-child(4n){border-right:0;}
.personnel-mobile-months>div:nth-last-child(-n+4){border-bottom:0;}
.personnel-mobile-months small,.personnel-mobile-months b{display:block;line-height:1.35;}
.personnel-mobile-months small{font-size:9px;color:var(--text3);}
.personnel-mobile-months b{margin-top:2px;font-size:12px;font-weight:700;}
.personnel-mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;}
.personnel-mobile-detail{border-top:1px solid var(--border);}
.personnel-mobile-add{padding:10px;}
.personnel-mobile-add>strong{display:block;margin-bottom:7px;font-size:12px;}
.personnel-mobile-add-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.personnel-mobile-add input,.personnel-mobile-add select{width:100%;height:32px;padding:5px 7px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:12px var(--font);min-width:0;}
.personnel-mobile-add-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;}
.personnel-mobile-add-foot span{font-size:10px;color:var(--text3);}
.product-retired-label{display:block;margin-top:3px;font-size:9px;color:var(--text3);}
.personnel-detail-panel{padding:0;overflow:hidden;margin-top:12px;}
.personnel-detail-head{padding:10px 12px;background:var(--bg);border-bottom:1px solid var(--border);font-weight:600;font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:10px;}
.personnel-detail-head strong{display:block;font-size:13px;color:var(--text);line-height:1.3;}
.personnel-detail-head span{display:block;margin-top:2px;font-size:10px;color:var(--text3);font-weight:400;}
.personnel-matrix-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.personnel-matrix{width:100%;min-width:840px;border-collapse:collapse;font-size:11px;}
.personnel-matrix th,.personnel-matrix td{padding:5px 6px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:center;white-space:nowrap;}
.personnel-matrix th{background:var(--surface);font-size:10px;font-weight:700;color:var(--text3);}
.personnel-matrix .project-col{position:sticky;left:0;z-index:3;min-width:230px;text-align:left;background:var(--surface);display:table-cell;}
.personnel-matrix .project-col span{display:inline-block;max-width:190px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;}
.personnel-matrix .quick-col{position:sticky;left:230px;z-index:3;min-width:86px;background:var(--surface);}
.personnel-matrix .quick-col select{width:74px;height:26px;padding:3px 5px;border:1px solid var(--border);border-radius:var(--radius);font-size:11px;background:var(--surface);}
.personnel-matrix .alloc-cell{cursor:pointer;font-weight:650;}
.personnel-matrix .alloc-cell:hover{background:var(--primary-bg);}
.personnel-matrix .total-row td{background:var(--bg);font-weight:700;}
.personnel-add-row input,.personnel-add-row select{width:100%;height:28px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;font-family:var(--font);background:var(--surface);}
.personnel-add-controls{display:grid;grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) auto;gap:6px;align-items:center;}
.personnel-add-controls span{font-size:11px;color:var(--text3);white-space:nowrap;}
.personnel-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px;}
.personnel-stat-note{margin:0 0 10px;padding:6px 9px;border-left:2px solid var(--primary);background:var(--primary-bg);font-size:10px;color:var(--text2);}
.personnel-stat-group{margin-top:12px;}
.personnel-stat-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px;}
.personnel-stat-group-head strong{font-size:13px;color:var(--text);}
.personnel-stat-group-head span{font-size:10px;color:var(--text3);}
.personnel-stat-sections{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(520px,1.35fr);gap:10px;}
.personnel-investment-sections{grid-template-columns:repeat(2,minmax(0,1fr));}
.personnel-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.personnel-stat-card h3{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:700;padding:10px 12px;border-bottom:1px solid var(--border);}
.personnel-stat-card h3 small{color:var(--text3);font-size:10px;font-weight:500;}
.personnel-stat-card table{width:100%;border-collapse:collapse;font-size:12px;}
.personnel-stat-card th,.personnel-stat-card td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left;}
.personnel-stat-card th{font-size:10px;color:var(--text3);background:var(--bg);font-weight:700;}
.personnel-stat-card td:not(:first-child),.personnel-stat-card th:not(:first-child){text-align:right;}
.personnel-stat-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.personnel-capacity-card table{min-width:440px;}
.personnel-workload-card table{min-width:500px;}
.personnel-person-card table{min-width:620px;}
.personnel-workload-card td:first-child,.personnel-person-card td:first-child{max-width:220px;}
.personnel-stat-name{display:block;min-width:0;line-height:1.4;white-space:normal;overflow-wrap:anywhere;}
.personnel-project-investment-card td:first-child{width:46%;max-width:none;}
.alloc-ok{color:var(--success);}
.alloc-warn{color:var(--warning);}
.alloc-over{color:var(--danger);font-weight:750;}
.alloc-empty{color:var(--text3);}
.alloc-select{width:62px;height:26px;padding:3px 5px;border:1px solid var(--border);border-radius:var(--radius);font-size:11px;background:var(--surface);}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;border-radius:4px;background:transparent;color:var(--text3);cursor:pointer;font-size:17px;}
.icon-btn:hover{background:var(--danger-bg);color:var(--danger);}
.rm-title-cell{position:sticky;left:0;z-index:2;min-width:100px;max-width:150px;text-align:center;word-break:break-word;white-space:normal!important;}
.rm-category-head,.rm-category-cell{position:sticky;left:0;z-index:3;width:76px;min-width:76px;max-width:76px;background:var(--surface);border-right:1px solid var(--border);text-align:center;}
.rm-category-cell{padding:8px 6px;vertical-align:middle;font-size:12px;font-weight:650;color:var(--text2);word-break:break-word;}
.rm-table.has-rm-category .rm-title-cell{left:76px;}
.rm-row-meta{margin-top:3px;font-size:9px;line-height:1.3;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rm-progress-compact{height:3px;margin-top:5px;border-radius:2px;background:var(--border);overflow:hidden;}
.rm-progress-compact span{display:block;height:100%;background:var(--primary);}
.rm-period-progress{display:flex;align-items:center;gap:6px;margin-bottom:5px;}
.rm-period-progress>div{height:4px;flex:1;background:var(--border);border-radius:3px;overflow:hidden;}
.rm-period-progress>div span{display:block;height:100%;background:var(--primary);}
.rm-period-progress strong{width:30px;text-align:right;font-size:10px;color:var(--text2);}
.rm-quarter-progress-edit{display:grid;grid-template-columns:auto minmax(90px,1fr) 34px;align-items:center;gap:8px;margin-bottom:8px;color:var(--text2);font-size:11px;}
.rm-quarter-auto-bar{height:5px;background:var(--border);border-radius:3px;overflow:hidden;}
.rm-quarter-auto-bar span{display:block;height:100%;background:var(--primary);}
.rm-quarter-progress-edit strong{text-align:right;color:var(--primary);font-size:11px;}
.rm-auto-progress{font-size:22px;font-weight:700;color:var(--primary);line-height:1.2;}
.rm-progress-info{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:3px;border:1px solid var(--text3);border-radius:50%;color:var(--text3);font-size:9px;font-weight:700;cursor:help;vertical-align:1px;}
.project-category-select{display:grid;grid-template-columns:auto minmax(120px,1fr);align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--border);font-size:11px;color:var(--text2);}
.project-category-select select{min-width:0;}
.material-kit-detail-row>td{padding:0 8px 10px!important;background:var(--surface2);}
.material-kit-detail-row[hidden]{display:none;}
.material-kit-detail-row .inline-detail-panel{margin:0;border-top:0;border-radius:0 0 6px 6px;}
.rm-cell-version{margin-bottom:4px;padding-bottom:3px;border-bottom:1px solid var(--border);font-size:10px;font-weight:650;color:var(--text);}
.rm-milestone{display:flex;align-items:center;gap:5px;min-width:0;margin:0 0 3px;color:var(--text2);}
.rm-milestone-dot{box-sizing:border-box;flex:0 0 7px;width:7px;height:7px;border:1.5px solid #94a3b8;border-radius:50%;background:transparent;}
.rm-milestone-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rm-ms-status{flex:0 0 auto;font-size:9px;color:var(--text3);}
.rm-milestone-pending .rm-ms-status{color:#64748b;}
.rm-milestone-in_progress .rm-milestone-dot{border-color:#2563eb;background:#2563eb;}
.rm-milestone-in_progress .rm-ms-status{color:#2563eb;}
.rm-milestone-completed .rm-milestone-dot{border-color:#16a34a;background:#16a34a;}
.rm-milestone-completed .rm-ms-status{color:#15803d;}
.rm-desc-hint{display:none;font-size:10px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;}
@media(max-width:768px){.rm-desc-hint{display:none;}}
.rm-action-cell{position:sticky;right:0;z-index:2;background:var(--surface);min-width:100px;}
.ms-quarter{min-height:52px;display:flex;flex-direction:column;gap:5px;}
.ms-edit-row{display:grid;grid-template-columns:minmax(120px,1fr) 82px 28px;gap:6px;align-items:center;background:var(--hover);padding:6px 8px;border-radius:4px;}
.ms-empty{font-size:10px;color:var(--text3);padding:12px;text-align:center;width:100%;}

/* ═══ ALLOCATION MATRIX ═══ */
.alloc-grid { overflow-x: auto; }
.alloc-table { border-collapse: collapse; width: 100%; min-width: 800px; }
.alloc-table th, .alloc-table td {
  border: 1px solid var(--border); padding: 4px 6px;
  font-size: 11px; text-align: center; min-width: 52px;
}
.alloc-table th { background: var(--hover); font-weight: 600; position: sticky; top: 0; }
.alloc-table .alloc-cell { cursor: pointer; transition: background .15s; }
.alloc-table .alloc-cell:hover { background: var(--primary-bg); }
.alloc-table .alloc-ok { color: var(--success); }
.alloc-table .alloc-warn { color: var(--warning); }
.alloc-table .alloc-over { color: var(--danger); font-weight: 600; }
.alloc-table .alloc-total { font-weight: 600; background: var(--hover); }

.rm-table { border-radius: 8px; }
.rm-row:hover td { background: #fafcff; }
.rm-row td:first-child { border-right: 1px solid var(--border); }
@media (max-width: 768px) {
  .rm-table th, .rm-table td { padding: 6px 10px !important; font-size: 11px !important; }
  .rm-table .rm-period-cell{min-width:160px!important;}
  .rm-category-head,.rm-category-cell{width:60px;min-width:60px;max-width:60px;padding-left:4px!important;padding-right:4px!important;}
  .rm-table.has-rm-category .rm-title-cell{left:60px;}
  .rm-title-cell{width:96px!important;min-width:96px!important;max-width:96px!important;padding-left:5px!important;padding-right:5px!important;}
  .rm-action-cell{min-width:76px!important;padding-left:4px!important;padding-right:4px!important;}
  .work-tab{flex:1;padding:0 12px;}
  .work-toolbar{align-items:stretch;}
  .work-toolbar>.filter-select{flex:1;min-width:105px;}
  .work-toolbar-actions{width:100%;margin-left:0;justify-content:flex-end;}
  .rm-filter-panel{flex-basis:100%;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);}
  .rm-filter-panel>summary{display:flex;align-items:center;justify-content:space-between;height:34px;padding:0 10px;color:var(--text2);font-size:12px;cursor:pointer;list-style:none;}
  .rm-filter-panel>summary::-webkit-details-marker{display:none;}
  .rm-filter-panel>summary::after{content:'+';font-size:16px;color:var(--text3);}
  .rm-filter-panel[open]>summary{border-bottom:1px solid var(--border);}
  .rm-filter-panel[open]>summary::after{content:'-';}
  .rm-filter-body{align-items:flex-start;padding:8px;gap:6px;}
  .roadmap-toolbar .rm-toolbar-label{width:100%;}
  .roadmap-toolbar .rm-chip-group,.roadmap-toolbar #rm-year-checks{width:100%;flex-wrap:nowrap!important;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;}
  .roadmap-toolbar .rm-chip-group::-webkit-scrollbar,.roadmap-toolbar #rm-year-checks::-webkit-scrollbar{display:none;}
  .roadmap-toolbar .work-toolbar-actions{display:grid;grid-template-columns:1fr 1fr 1.2fr;}
  .roadmap-toolbar .work-toolbar-actions .btn{width:100%;padding-left:6px;padding-right:6px;}
  .work-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .work-metric>div:last-child{font-size:17px!important;}
  .personnel-topbar{align-items:stretch;}
  .personnel-tabs{width:100%;}
  .personnel-tabs button{flex:1;}
  .personnel-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .personnel-stat-sections,.personnel-investment-sections{grid-template-columns:1fr;}
  .personnel-stat-group-head{align-items:flex-start;flex-direction:column;gap:2px;}
  .personnel-capacity-card table{min-width:0;table-layout:fixed;font-size:10px;}
  .personnel-capacity-card th,.personnel-capacity-card td{padding:6px 3px;}
  .personnel-capacity-card th:first-child{width:86px;}
  .personnel-add-line{grid-template-columns:1fr 1fr;}
  .personnel-add-line button{grid-column:1 / -1;}
  .personnel-add-controls{grid-template-columns:1fr 1fr;}
  .personnel-add-controls span{grid-column:1 / -1;}
  .personnel-table{min-width:760px;}
  .personnel-mobile-list{display:grid;gap:8px;}
  .personnel-detail-head{align-items:flex-start;flex-direction:column;}
  .personnel-detail-head>div:last-child{display:flex;gap:6px;flex-wrap:wrap;}
  .personnel-matrix{min-width:820px;}
  .budget-sheet-head{align-items:flex-start;flex-wrap:wrap;}
  .budget-sheet-total{order:3;width:100%;margin-left:0;white-space:normal;line-height:1.6;}
  .work-form-grid{grid-template-columns:1fr;gap:0;}
  .budget-detail-table{min-width:720px;}
  .funding-decision-hero{grid-template-columns:1fr;}
  .funding-hero-metrics{grid-template-columns:1fr;}
  .funding-insight{grid-template-columns:1fr;gap:3px;}
  .funding-quarter-axis,.funding-quarter-values{grid-template-columns:repeat(12,42px);}
  .funding-decision-hero-main{grid-template-columns:1fr;}
  .funding-decision-lower{grid-template-columns:1fr;}
  .funding-cash-chart-card{overflow-x:auto;}
  .funding-cash-chart{height:230px;min-width:640px;}
  .funding-cash-axis{min-width:640px;grid-template-columns:repeat(12,42px);padding-left:46px;padding-right:20px;}
  .funding-use-row{grid-template-columns:64px minmax(96px,1fr) 34px 70px;gap:5px;}
  .reg-hero{grid-template-columns:1fr;}
  .reg-kpi-grid,.reg-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .reg-task-grid{grid-template-columns:1fr;}
  .reg-detail-head{flex-direction:column;}
  .reg-detail-actions{width:100%;justify-content:flex-end;}
  .reg-detail-grid{grid-template-columns:1fr;}
  .reg-stage-item{padding:10px;}
  .reg-stage-item-head{flex-direction:column;align-items:flex-start;gap:4px;}
  .reg-stage-item-dates{flex-direction:column;gap:4px;}
  .reg-stage-item-budget{flex-direction:column;gap:4px;}
  .reg-stage-row{grid-template-columns:1fr;gap:8px;}
  .reg-stage-row input:first-child{grid-column:1 / -1;}
  .reg-stage-row .btn{grid-column:1 / -1;}
  .reg-card-facts{grid-template-columns:repeat(2,minmax(0,1fr));}
  .reg-budget-summary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .reg-form-shell .work-form-grid{grid-template-columns:1fr;}
  .reg-form-shell .work-form-grid .form-group:nth-child(1),
  .reg-form-shell .work-form-grid .form-group:nth-child(2){grid-column:span 1;}
  .reg-overview-wrap{display:none;}
  .reg-overview-cards{display:grid;}
  .budget-item-row{gap:2px;}
  .budget-item-row [data-bit-name]{width:100px!important;}
  .budget-item-row select{width:70px!important;}
  .budget-monthly-group{max-width:100%!important;}
  .bg-l1-group{font-size:11px;}
  .bg-l1-head{padding:6px 8px!important;}
  .bg-l1-body table{font-size:9px;}
  .bg-l1-body table th,.bg-l1-body table td{padding:2px!important;}
  .bg-l1-body table input{width:48px!important;font-size:9px!important;}
  .budget-sheet{overflow-x:auto;}
  .budget-sheet .budget-sheet-head{border-radius:0!important;}
}

/* Print/PDF export */
@media print {
  #sidebar, #topbar, .work-tabs, .work-subtabs, .page-header, .btn { display: none !important; }
  #main-content { margin: 0; padding: 0; }
  #page-container { padding: 10px; }
  .rm-table { border: 1px solid #000; font-size: 10px; }
  .rm-table th, .rm-table td { padding: 4px 6px !important; border: 1px solid #ccc !important; }
}

/* Milestone editor - wider quarters on mobile */
@media (max-width: 768px) {
  .stat-card{min-width:45%;flex:0 0 45%;padding:8px 10px;}
  .stat-val{font-size:17px!important;}
  .work-view-tabs button{font-size:10px!important;padding:4px 8px!important;}
  .bg-l1-head{font-size:11px!important;}
  .bg-l1-head span{font-size:10px!important;}
  .bg-l1-subtotal{font-size:10px!important;}
  .budget-sheet-head>div{width:100%;}
  .budget-sheet-head>button{margin-left:auto;}
  .ms-edit-row { grid-template-columns:minmax(100px,1fr) 76px 28px; }
  .ms-edit-row input { min-width: 100px; }
}

@media (max-width: 400px) {
  .stat-card{min-width:100%;flex:0 0 100%;}
  .work-view-tabs button{font-size:9px!important;padding:3px 6px!important;}
}


/* Roadmap edit form - 2-column responsive */
.rm-edit-layout { display: flex; gap: 20px; }
.rm-edit-left { width: 260px; flex-shrink: 0; }
@media (max-width: 768px) {
  .rm-edit-layout { flex-direction: column; }
  .rm-edit-left { width: 100% !important; }
}

/* Full-width form panel */
.form-panel { width: 100%; box-sizing: border-box; }

/* ═══ Dashboard v7 — Module Cards ═══ */
.dash-module-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 8px 0;
}
@media (max-width: 768px) {
  .dash-module-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 400px) {
  .dash-module-grid { grid-template-columns: 1fr; }
}

.dash-module-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  font-size: 13px;
  transition: box-shadow .15s, border-color .15s;
  text-align: left;
  font-family: var(--font);
  color: var(--text);
}
.dash-module-card:hover {
  border-color: var(--primary);
  box-shadow: 0 2px 8px rgba(59,130,246,.1);
}
.dash-module-icon { font-size: 22px; flex-shrink: 0; }
.dash-module-name {
  font-weight: 600;
  color: var(--text);
  flex-shrink: 0;
}
.dash-module-count {
  margin-left: auto;
  font-size: 12px;
  color: var(--text3);
  background: var(--hover);
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 500;
  white-space: nowrap;
}

/* Todo list in dashboard */
.dash-todo-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.dash-todo-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  text-decoration: none;
  color: var(--text);
  transition: border-color .15s;
  font-size: 13px;
}
.dash-todo-item:hover { border-color: var(--primary); }
.dash-todo-title { flex: 1; font-weight: 500; }
.dash-todo-project {
  font-size: 11px;
  color: var(--accent, var(--primary));
  background: var(--primary-bg);
  padding: 1px 6px;
  border-radius: 4px;
}
.dash-todo-date {
  font-size: 11px;
  color: var(--text3);
  white-space: nowrap;
}

/* ═══ IDEAS - 全屏详情页（类似空间页面布局）═══ */
.idea-detail-page{width:100%;max-width:1280px;margin:0 auto;}
.idea-detail-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:14px;}
.idea-detail-title{min-width:0;text-align:left;}
.idea-detail-title h3{font-size:16px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.idea-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;min-width:0;}
.idea-detail-shell{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.idea-detail-section{border-bottom:1px solid var(--border);padding:14px 16px;}
.idea-detail-section:last-child{border-bottom:none;}
.idea-detail-section-title{font-size:14px;font-weight:600;margin:0 0 8px;color:var(--text);}
.idea-detail-section-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;}
.idea-detail-section-row .idea-detail-section-title{margin-bottom:0;}
.idea-detail-content{font-size:13px;line-height:1.7;white-space:pre-wrap;color:var(--text);overflow-wrap:anywhere;}
.idea-detail-content.idea-analysis-text{line-height:1.8;}
.idea-detail-textarea{font-size:12px;width:100%;height:40px;resize:vertical;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-family:var(--font);box-sizing:border-box;color:var(--text);background:var(--surface);}
.idea-detail-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-bg);}
.idea-detail-controls{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap;}
.idea-detail-meta{padding:10px 16px 14px;display:flex;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--text3);align-items:center;}
.idea-detail-meta .badge-pill{font-size:10px;}
.idea-version-history{border:1px solid var(--border);border-radius:4px;overflow:hidden;max-height:200px;overflow-y:auto;}

/* ═══ IDEAS - 分栏布局（AI结果 + 手动编辑）═══ */
.idea-feasibility-split{display:flex;gap:12px;margin-bottom:8px;}
.idea-feasibility-left,.idea-feasibility-right{flex:1;min-width:0;}
.idea-feasibility-left{border:1px solid var(--border);border-radius:6px;overflow:hidden;}
.idea-feasibility-right{border:1px solid var(--border);border-radius:6px;overflow:hidden;}
.idea-feasibility-pane-head{display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;background:var(--hover);border-bottom:1px solid var(--border);}
.idea-feasibility-pane-head .btn{margin-left:auto;}
.idea-feasibility-ai{padding:10px;font-size:13px;line-height:1.7;overflow-wrap:anywhere;max-height:400px;overflow-y:auto;}
.idea-feasibility-ai h3{font-size:14px;margin:10px 0 4px;}
.idea-feasibility-ai p{margin:4px 0;}
.idea-feasibility-ai ul,.idea-feasibility-ai ol{padding-left:18px;margin:4px 0;}
.idea-feasibility-ai li{margin:2px 0;}
.idea-feasibility-ai strong{font-weight:600;}
.idea-edit-toolbar{display:flex;align-items:center;gap:2px;padding:4px 6px;background:var(--bg);border-bottom:1px solid var(--border);flex-wrap:wrap;}
.idea-edit-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:26px;border:0;border-radius:4px;background:transparent;color:var(--text);cursor:pointer;font-size:13px;font-family:var(--font);}
.idea-edit-btn:hover{background:var(--hover);}
.idea-edit-btn b{font-size:14px;}
.idea-edit-sep{width:1px;height:16px;background:var(--border);margin:0 4px;display:inline-block;}
.idea-edit-area{min-height:180px;padding:8px 10px;font-size:13px;line-height:1.6;color:var(--text);outline:none;overflow-wrap:anywhere;overflow-y:auto;max-height:360px;}
.idea-edit-area:focus{box-shadow:inset 0 0 0 1px var(--primary);}
.idea-edit-area p{margin:4px 0;}
.idea-edit-area ul,.idea-edit-area ol{padding-left:18px;margin:4px 0;}
.idea-edit-area li{margin:2px 0;}
.idea-edit-area [style*="bold"]{font-weight:600;}
.idea-edit-area h3{font-size:15px;margin:10px 0 4px;font-weight:600;}

@media(max-width:768px){
  .idea-feasibility-split{flex-direction:column;}
  .idea-feasibility-left,.idea-feasibility-right{max-height:none;}
  .idea-edit-area{min-height:140px;max-height:240px;}
  .idea-detail-page{max-width:none;}
  .idea-detail-header{grid-template-columns:1fr;align-items:stretch;}
  .idea-detail-title{text-align:left;order:-1;}
  .idea-detail-title h3{white-space:normal;}
  .idea-detail-actions{justify-content:flex-start;width:100%;}
  .idea-detail-shell{border-left:none;border-right:none;border-radius:0;margin-left:-10px;margin-right:-10px;}
  .idea-detail-section{padding:12px;}
  .idea-detail-meta{padding:10px 12px 14px;}
  .idea-detail-section-row{align-items:flex-start;flex-direction:column;}
}

/* ═══ EXPERIMENTS - 产前实时 AI 原型 ═══ */
.experiment-hub{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.experiment-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:220px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-family:var(--font);text-align:left;cursor:pointer;}
.experiment-card:hover,.experiment-card.active{border-color:var(--primary);box-shadow:0 4px 16px rgba(59,130,246,.12);}
.experiment-card span{font-size:12px;color:var(--primary);font-weight:650;}
.experiment-card strong{font-size:14px;}
.experiment-card small{font-size:11px;color:var(--text3);line-height:1.5;}

.ob-screen{--ob-bg:#060b12;--ob-panel:#101720;--ob-panel2:#151d27;--ob-border:rgba(255,255,255,.08);--ob-text:#f8fafc;--ob-muted:#aab3c2;--ob-dim:#707986;--ob-green:#43d843;--ob-blue:#2f6df2;--ob-red:#ff473d;--ob-yellow:#ffd84d;width:100%;box-sizing:border-box;padding:8px;background:linear-gradient(180deg,#050a11,#081018);color:var(--ob-text);border-radius:10px;font-family:var(--font);box-shadow:0 14px 35px rgba(15,23,42,.18);}
.ob-screen *{box-sizing:border-box;}
.ob-top{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(210px,.7fr) minmax(160px,.45fr);gap:8px;margin-bottom:8px;}
.ob-top>section,.ob-current,.ob-side>section,.ob-checklist,.ob-actions{background:linear-gradient(145deg,var(--ob-panel),#0c131c);border:1px solid var(--ob-border);border-radius:8px;}
.ob-progress{display:grid;grid-template-columns:190px minmax(180px,1fr);grid-template-rows:auto 1fr auto;align-items:center;gap:6px 18px;padding:18px 22px;}
.ob-label,.ob-card-title{font-size:15px;font-weight:700;color:var(--ob-text);}
.ob-card-title span{font-size:12px;font-weight:500;color:var(--ob-muted);}
.ob-progress-main{grid-row:2 / 4;display:flex;align-items:baseline;gap:8px;}
.ob-progress-main strong{font-size:56px;line-height:1;color:var(--ob-green);}
.ob-progress-main span{font-size:32px;font-weight:700;color:var(--ob-text);}
.ob-bar{height:10px;border-radius:99px;background:#26303d;overflow:hidden;}
.ob-bar i{display:block;height:100%;border-radius:inherit;background:var(--ob-green);}
.ob-muted{font-size:14px;color:var(--ob-muted);}
.ob-muted b{display:inline-block;width:1px;height:14px;background:var(--ob-border);margin:0 16px;vertical-align:-2px;}
.ob-score{padding:18px 22px;display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--ob-border);}
.ob-score-main{display:flex;align-items:baseline;gap:8px;margin-top:14px;color:var(--ob-green);}
.ob-score-main strong{font-size:58px;line-height:1;}
.ob-score-main span{font-size:20px;font-weight:700;}
.ob-score-scale{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:16px 24px;}
.ob-score-scale div{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;font-size:16px;color:var(--ob-muted);}
.ob-score-scale b{font-size:18px;}
.ob-score-scale .good{color:var(--ob-green);}
.ob-score-scale .ok{color:var(--ob-yellow);}
.ob-score-scale .bad{color:var(--ob-red);}

.ob-main{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(300px,1fr);gap:8px;margin-bottom:8px;}
.ob-current{padding:18px 24px;min-height:350px;}
.ob-slice-title{font-size:38px;line-height:1.15;font-weight:800;margin:10px 0 22px;letter-spacing:0;}
.ob-current-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:30px;align-items:center;}
.ob-head-visual{position:relative;width:280px;height:180px;}
.ob-head-outline{position:absolute;left:16px;top:18px;width:165px;height:148px;border:4px solid rgba(248,250,252,.68);border-right-width:3px;border-bottom-color:rgba(248,250,252,.55);border-radius:50% 52% 46% 45%;transform:rotate(-6deg);}
.ob-head-outline:before{content:"";position:absolute;left:-30px;top:72px;width:58px;height:76px;border-left:4px solid rgba(248,250,252,.68);border-bottom:4px solid rgba(248,250,252,.68);border-radius:26px 0 0 34px;transform:rotate(15deg);}
.ob-head-outline:after{content:"";position:absolute;left:-22px;top:122px;width:82px;height:52px;border-left:4px solid rgba(248,250,252,.68);border-bottom:4px solid rgba(248,250,252,.68);border-radius:0 0 0 28px;}
.ob-brain-ring{position:absolute;left:78px;top:73px;width:98px;height:64px;border:8px solid rgba(67,216,67,.9);border-left-color:transparent;border-right-color:transparent;border-radius:50%;filter:drop-shadow(0 0 16px rgba(67,216,67,.45));}
.ob-brain-line{position:absolute;height:8px;border-radius:99px;background:rgba(67,216,67,.92);box-shadow:0 0 16px rgba(67,216,67,.45);}
.ob-brain-line.a{left:102px;top:92px;width:34px;transform:rotate(-18deg);}
.ob-brain-line.b{left:135px;top:111px;width:42px;transform:rotate(70deg);}
.ob-quality{display:flex;align-items:center;gap:18px;min-width:0;}
.ob-check{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:var(--ob-green);color:#07100a;font-size:44px;font-weight:800;flex:0 0 auto;}
.ob-quality strong{display:block;font-size:34px;line-height:1.15;color:var(--ob-green);font-weight:800;margin-bottom:12px;}
.ob-quality p{margin:0;color:var(--ob-muted);font-size:17px;line-height:1.7;}
.ob-quality i{display:inline-block;width:1px;height:16px;background:var(--ob-border);margin:0 12px;vertical-align:-2px;}
.ob-tip{max-width:520px;margin:22px 0 0 330px;padding:16px 18px;border-radius:8px;background:rgba(255,255,255,.045);color:var(--ob-muted);font-size:17px;line-height:1.65;}
.ob-tip span{margin-right:10px;color:var(--ob-text);font-weight:650;}
.ob-side{display:flex;flex-direction:column;gap:8px;min-width:0;}
.ob-alert,.ob-knowledge{padding:18px 20px;}
.ob-alert-card{display:grid;grid-template-columns:54px minmax(0,1fr);gap:4px 14px;width:100%;margin-top:18px;padding:18px;border:1px solid rgba(255,71,61,.32);border-radius:8px;background:linear-gradient(135deg,rgba(255,71,61,.18),rgba(255,71,61,.07));color:var(--ob-text);font-family:var(--font);text-align:left;cursor:pointer;}
.ob-alert-card:hover{border-color:rgba(255,71,61,.56);}
.ob-alert-card b{grid-row:1 / 5;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--ob-red);color:#160606;font-size:34px;font-weight:850;}
.ob-alert-card strong{font-size:18px;color:var(--ob-red);}
.ob-alert-card span,.ob-alert-card em{font-size:15px;color:var(--ob-muted);font-style:normal;line-height:1.55;}
.ob-alert-card em{margin-top:5px;color:var(--ob-text);}
.ob-alert-card em:before{content:"建议：";color:var(--ob-yellow);font-weight:700;margin-right:5px;}
.ob-kg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;}
.ob-kg-grid button{height:86px;border:1px solid var(--ob-border);border-radius:8px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(67,216,67,.08));color:var(--ob-text);font-family:var(--font);cursor:pointer;}
.ob-kg-grid button:hover{border-color:rgba(67,216,67,.45);}
.ob-kg-grid strong{font-size:14px;}
.ob-more{width:100%;margin-top:10px;height:38px;border:1px solid rgba(148,163,184,.28);border-radius:6px;background:rgba(255,255,255,.045);color:var(--ob-muted);font-family:var(--font);cursor:pointer;}

.ob-checklist{padding:14px 20px;margin-bottom:8px;}
.ob-scan-list{display:grid;grid-template-columns:repeat(13,minmax(70px,1fr));gap:12px;margin-top:14px;}
.ob-scan-list button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:74px;border:0;background:transparent;color:var(--ob-muted);font-family:var(--font);cursor:pointer;}
.ob-scan-list b{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:3px solid rgba(148,163,184,.35);border-radius:50%;font-size:17px;font-weight:800;color:var(--ob-text);}
.ob-scan-list .done b{background:linear-gradient(135deg,#34c947,#2e963b);border-color:transparent;color:#fff;font-size:24px;}
.ob-scan-list .current b{background:#102315;border-color:var(--ob-green);box-shadow:0 0 0 3px rgba(67,216,67,.2);color:var(--ob-green);}
.ob-scan-list span{font-size:13px;color:var(--ob-text);white-space:nowrap;}
.ob-actions{display:grid;grid-template-columns:160px minmax(200px,1fr) 180px 260px;gap:10px;align-items:center;padding:10px 16px;}
.ob-actions span{color:var(--ob-dim);font-size:15px;text-align:center;}
.ob-plain,.ob-live-btn,.ob-next{height:46px;border-radius:7px;font-family:var(--font);font-weight:700;cursor:pointer;}
.ob-plain{border:0;background:transparent;color:var(--ob-muted);text-align:left;}
.ob-live-btn{border:1px solid rgba(67,216,67,.45);background:rgba(67,216,67,.1);color:var(--ob-green);}
.ob-next{border:0;background:linear-gradient(135deg,#2f72f3,#1e54d7);color:#fff;font-size:18px;}

.ob-live-panel{position:fixed;inset:0;z-index:1000;align-items:center;justify-content:center;padding:22px;background:rgba(2,6,12,.78);backdrop-filter:blur(8px);}
.ob-live-shell{width:min(980px,100%);border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#080d14;color:#f8fafc;box-shadow:0 24px 80px rgba(0,0,0,.45);overflow:hidden;}
.ob-live-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1);}
.ob-live-head strong{font-size:17px;}
.ob-live-head button{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#f8fafc;border-radius:6px;padding:7px 12px;cursor:pointer;}
.ob-live-body{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;padding:16px;}
.ob-ultrasound{position:relative;height:430px;border-radius:8px;background:radial-gradient(ellipse at 50% 52%,rgba(225,231,235,.68) 0 10%,rgba(132,144,153,.46) 11% 23%,rgba(40,49,58,.55) 24% 42%,rgba(5,10,16,.92) 43% 100%);overflow:hidden;border:1px solid rgba(255,255,255,.1);}
.ob-ultrasound:before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 50% 50%,rgba(255,255,255,.05) 0 2px,transparent 2px 8px);opacity:.35;}
.ob-scan-sweep{position:absolute;inset:-60% 46% -40% 46%;background:linear-gradient(90deg,transparent,rgba(67,216,67,.42),transparent);animation:obSweep 2.4s linear infinite;transform-origin:center;}
@keyframes obSweep{from{transform:rotate(-28deg);}to{transform:rotate(28deg);}}
.ob-target-box{position:absolute;border:2px solid var(--ob-green);border-radius:6px;color:var(--ob-green);font-size:13px;font-weight:750;padding:5px 8px;background:rgba(0,0,0,.28);}
.ob-target-box.one{left:46%;top:39%;}
.ob-target-box.two{left:35%;top:55%;}
.ob-measure-line{position:absolute;left:48%;top:45%;width:95px;height:2px;background:var(--ob-yellow);transform:rotate(18deg);box-shadow:0 0 8px rgba(255,216,77,.6);}
.ob-live-body aside{padding:14px;border-radius:8px;background:rgba(255,255,255,.055);color:#cbd5e1;line-height:1.65;}
.ob-live-body aside b{display:block;color:#43d843;font-size:17px;margin-bottom:8px;}
.ob-live-body aside span{display:block;margin-top:14px;color:#7f8b9b;font-size:12px;}

@media(max-width:1100px){
  .ob-top{grid-template-columns:1fr 220px;}
  .ob-score-scale{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);padding:12px 18px;}
  .ob-main{grid-template-columns:1fr;}
  .ob-current-grid{grid-template-columns:250px minmax(0,1fr);}
  .ob-tip{margin-left:280px;}
  .ob-scan-list{overflow-x:auto;grid-template-columns:repeat(13,78px);padding-bottom:4px;}
  .ob-actions{grid-template-columns:120px minmax(0,1fr) 170px 230px;}
}
@media(max-width:768px){
  .experiment-card{width:100%;min-width:0;}
  .ob-screen{border-radius:0;margin:-10px;padding:6px;}
  .ob-top,.ob-main,.ob-progress,.ob-current-grid,.ob-actions,.ob-live-body{grid-template-columns:1fr;}
  .ob-progress,.ob-score,.ob-score-scale,.ob-current,.ob-alert,.ob-knowledge,.ob-checklist{padding:14px;}
  .ob-progress-main strong,.ob-score-main strong{font-size:44px;}
  .ob-progress-main span{font-size:26px;}
  .ob-score-main{margin-top:8px;}
  .ob-score-scale{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
  .ob-score-scale div{grid-template-columns:1fr;gap:2px;text-align:center;font-size:13px;}
  .ob-slice-title{font-size:28px;margin-bottom:12px;}
  .ob-current{min-height:0;}
  .ob-head-visual{width:220px;height:150px;margin:0 auto;}
  .ob-head-outline{transform:scale(.78) rotate(-6deg);transform-origin:left top;}
  .ob-brain-ring{left:66px;top:60px;transform:scale(.82);transform-origin:left top;}
  .ob-brain-line.a{left:86px;top:76px;}
  .ob-brain-line.b{left:113px;top:94px;}
  .ob-quality{gap:12px;align-items:flex-start;}
  .ob-check{width:54px;height:54px;font-size:34px;}
  .ob-quality strong{font-size:26px;}
  .ob-quality p{font-size:14px;}
  .ob-quality i{margin:0 7px;}
  .ob-tip{margin:14px 0 0;font-size:14px;}
  .ob-alert-card{grid-template-columns:44px minmax(0,1fr);padding:14px;}
  .ob-alert-card b{width:40px;height:40px;font-size:28px;}
  .ob-kg-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
  .ob-kg-grid button{height:64px;}
  .ob-kg-grid strong{font-size:12px;}
  .ob-scan-list{display:flex;overflow-x:auto;gap:10px;}
  .ob-scan-list button{flex:0 0 64px;min-height:68px;}
  .ob-actions span{text-align:left;}
  .ob-plain,.ob-live-btn,.ob-next{width:100%;text-align:center;}
  .ob-live-panel{padding:10px;}
  .ob-ultrasound{height:300px;}
}
@media(max-width:420px){
  .ob-kg-grid{grid-template-columns:1fr;}
  .ob-actions{gap:8px;}
  .ob-slice-title{font-size:24px;}
  .ob-quality{flex-direction:column;}
}

/* ═══ 研发运营规范 Standards ═══ */
.standards-page{max-width:1200px;margin:0 auto;padding:0 16px;}
.std-intro{background:var(--primary-bg);border:1px solid #bfdbfe;border-radius:var(--radius);padding:14px 16px;margin-bottom:16px;font-size:13px;color:#1e40af;line-height:1.7;}
.std-quick-links{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px;}
.std-quick-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:12px;}
.std-quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;}
.std-quick-btn{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:12px;color:var(--text);text-align:left;transition:all .15s;}
.std-quick-btn:hover{background:var(--hover);border-color:var(--primary);}
.std-quick-icon{font-size:18px;}
.std-search-box{display:flex;gap:8px;margin-bottom:16px;}
.std-search-box input{flex:1;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;background:var(--surface);}
.std-search-box input:focus{outline:none;border-color:var(--primary);}
.std-layout{display:grid;grid-template-columns:260px 1fr;gap:20px;min-height:500px;}
.std-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;height:fit-content;position:sticky;top:16px;}
.std-nav-category{margin-bottom:4px;}
.std-nav-header{display:flex;align-items:center;gap:6px;padding:8px 10px;cursor:pointer;font-size:13px;font-weight:600;color:var(--text);border-radius:var(--radius);user-select:none;}
.std-nav-header:hover{background:var(--hover);}
.std-nav-arrow{font-size:10px;color:var(--text3);width:12px;}
.std-nav-items{padding-left:18px;}
.std-nav-item{padding:7px 10px;font-size:12px;color:var(--text2);cursor:pointer;border-radius:var(--radius);margin-bottom:2px;transition:all .15s;}
.std-nav-item:hover{background:var(--hover);color:var(--text);}
.std-nav-item.active{background:var(--primary-bg);color:var(--primary-hv);font-weight:500;}
.std-nav-item.std-search-match{background:#fef3c7;color:#92400e;}
.std-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px 28px;min-height:500px;}
.std-doc h1{font-size:20px;font-weight:700;color:var(--text);margin-bottom:12px;}
.std-doc-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:11px;color:var(--text3);padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:20px;}
.std-doc-body h3{font-size:15px;font-weight:650;color:var(--text);margin:24px 0 10px;}
.std-doc-body h4{font-size:13px;font-weight:600;color:var(--text);margin:16px 0 8px;}
.std-doc-body p{font-size:13px;color:var(--text2);line-height:1.8;margin-bottom:10px;}
.std-doc-body ul,.std-doc-body ol{font-size:13px;color:var(--text2);line-height:1.8;margin:8px 0 12px 20px;}
.std-doc-body li{margin-bottom:4px;}
.std-process-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);}
.std-process-table{width:100%;min-width:760px;border-collapse:collapse;font-size:12px;}
.std-process-table th,.std-process-table td{padding:9px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;line-height:1.5;}
.std-process-table th{background:var(--bg);color:var(--text2);font-size:11px;}
.std-process-table tbody tr:last-child td{border-bottom:0;}
.std-highlight{background:var(--primary-bg);border-left:3px solid var(--primary);padding:12px 16px;margin:14px 0;font-size:13px;color:#1e40af;line-height:1.7;border-radius:0 var(--radius) var(--radius) 0;}
.std-roadmap-type{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin:10px 0;}
.std-roadmap-type h4{font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px;}
.std-roadmap-type p{font-size:12px;color:var(--text2);margin:0;}
@media(max-width:768px){
  .std-layout{grid-template-columns:1fr;}
  .std-sidebar{position:static;}
  .std-quick-grid{grid-template-columns:1fr;}
  .std-content{padding:16px;}
}

/* ═══ 科研合作 Research ═══ */
.research-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.research-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:all .15s;}
.research-card:hover{border-color:var(--primary);box-shadow:0 2px 8px rgba(0,0,0,.06);}
.research-card.research-expiring{border-color:var(--warning);}
.research-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.research-status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;}
.research-status-active{background:var(--success-bg);color:var(--success);}
.research-status-done{background:var(--primary-bg);color:var(--primary-hv);}
.research-status-terminated{background:var(--danger-bg);color:var(--danger);}
.research-status-renewal{background:var(--warning-bg);color:var(--warning);}
.research-expire-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;background:var(--warning-bg);color:var(--warning);}
.research-name{font-size:14px;font-weight:600;color:var(--text);margin-bottom:6px;}
.research-partner{font-size:12px;color:var(--text2);margin-bottom:8px;}
.research-meta{font-size:11px;color:var(--text3);margin-bottom:6px;}
.research-ethics{font-size:11px;color:var(--text2);}
.research-detail{max-width:800px;}
.research-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}
.research-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px;}
.research-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;}
.research-section h4{font-size:13px;font-weight:600;color:var(--text);margin-bottom:12px;}
.research-info-table{width:100%;font-size:12px;border-collapse:collapse;}
.research-info-table td{padding:6px 0;border-bottom:1px solid var(--border);}
.research-info-table td:first-child{color:var(--text2);width:80px;}
.research-info-table tr:last-child td{border-bottom:none;}
.research-content{font-size:13px;color:var(--text2);line-height:1.7;}
.research-meta-footer{font-size:11px;color:var(--text3);margin-top:16px;padding-top:12px;border-top:1px solid var(--border);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:640px){.form-row{grid-template-columns:1fr;}}
.btn-icon{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;}
.btn-icon[disabled]{opacity:0.3;cursor:not-allowed;}
.btn-icon[disabled]:hover{background:transparent;color:var(--text3);border-color:transparent;}
tr.drag-sorting{opacity:0.5;background:var(--hover)!important;}
tr.drag-over{outline:2px dashed var(--primary);outline-offset:-2px;background:var(--primary-bg)!important;}
tr[data-id]{cursor:grab;}
tr[data-id]:active{cursor:grabbing;}

/* ═══ Compact editable modules: versions and materials ═══ */
.module-tabbar{display:flex;align-items:center;gap:0;margin-bottom:10px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;}
.module-tabbar::-webkit-scrollbar{display:none;}
.module-tabbar>button:not(.module-tab-action){height:36px;padding:0 16px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text2);font:500 13px var(--font);white-space:nowrap;cursor:pointer;}
.module-tabbar>button.active{color:var(--primary-hv);border-bottom-color:var(--primary);font-weight:650;}
.module-tabbar .module-tab-action{margin-left:auto;margin-bottom:5px;}
.compact-toolbar{min-height:34px;display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.compact-hint{font-size:11px;color:var(--text3);}
.version-view-segment{flex:0 0 auto;}
.version-view-segment+ .compact-hint{flex:1;min-width:180px;}
.flat-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);}
.flat-edit-table{width:100%;min-width:860px;border-collapse:collapse;font-size:11px;}
.flat-edit-table th,.flat-edit-table td{padding:6px 7px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;white-space:nowrap;}
.flat-edit-table th{height:30px;background:var(--bg);color:var(--text3);font-size:10px;font-weight:700;position:sticky;top:0;z-index:2;}
.flat-edit-table tbody tr:last-child td{border-bottom:0;}
.flat-edit-table .flat-data-row{cursor:pointer;}
.flat-edit-table .flat-data-row:hover td{background:#fbfdff;}
.flat-edit-table .flat-data-row.is-selected td{background:var(--primary-bg);}
.flat-edit-table td small{display:block;max-width:180px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;color:var(--text3);font-size:10px;font-weight:400;}
.flat-edit-table .flat-description{max-width:260px;overflow:hidden;text-overflow:ellipsis;}
.flat-edit-table input,.flat-edit-table select,.flat-edit-table textarea{width:100%;min-width:68px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:12px var(--font);}
.flat-edit-table input,.flat-edit-table select{height:28px;}
.flat-edit-table textarea{resize:vertical;line-height:1.4;}
.flat-add-row td{background:#fbfbfc;}
.flat-muted-row td{color:var(--text3);background:#fcfcfd;}
.flat-empty{text-align:center!important;color:var(--text3);padding:24px!important;}
.inline-detail-panel{margin-top:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;}
.inline-detail-head{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:var(--bg);border-bottom:1px solid var(--border);}
.inline-detail-head strong{display:block;font-size:13px;color:var(--text);}
.inline-detail-head span{display:block;margin-top:2px;font-size:10px;color:var(--text3);}
.inline-detail-panel>.flat-table-wrap{border:0;border-radius:0;}
.material-config-table{min-width:1240px;}
.material-config-table .material-spec-cell{min-width:210px;white-space:normal;}
.material-spec-list{display:grid;gap:2px;margin:0;}
.material-spec-list>div{display:grid;grid-template-columns:minmax(56px,.7fr) minmax(90px,1.3fr);gap:6px;}
.material-spec-list dt{color:var(--text3);font-weight:500;}
.material-spec-list dd{margin:0;color:var(--text);word-break:break-word;}
.material-config-foot{display:flex;gap:18px;flex-wrap:wrap;padding:8px 10px;border-top:1px solid var(--border);font-size:11px;color:var(--text2);}
.muted{color:var(--text3);}
.flat-cell-sub{display:block;margin-top:2px;color:var(--text3);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.version-summary-table{min-width:1510px;table-layout:fixed;}
.version-summary-table th:nth-child(1){width:118px;}
.version-summary-table th:nth-child(2){width:106px;}
.version-summary-table th:nth-child(3){width:72px;}
.version-summary-table th:nth-child(4){width:94px;}
.version-summary-table th:nth-child(5){width:104px;}
.version-summary-table th:nth-child(6){width:350px;}
.version-summary-table th:nth-child(7){width:104px;}
.version-summary-table th:nth-child(8){width:70px;}
.version-summary-table th:nth-child(9){width:52px;}
.version-summary-table th:nth-child(10){width:340px;}
.version-group-row td{padding:0!important;background:var(--bg)!important;}
.version-group-row button{display:flex;align-items:center;gap:7px;width:100%;min-height:34px;padding:6px 10px;border:0;background:transparent;color:var(--text);font:12px var(--font);text-align:left;cursor:pointer;}
.version-group-row button:hover{background:var(--hover);}
.version-group-row button>span{width:12px;color:var(--text3);}
.version-group-row button>strong{font-size:12px;}
.version-group-row button>small{color:var(--text3);font-size:10px;}
.version-major-group-row td:first-child{background:var(--surface)!important;}
.version-major-group-row button{padding-left:15px;background:#fcfcfd;}
.version-child-row td:first-child{padding-left:22px;}
.version-workflow-guide{display:flex;align-items:center;gap:7px;margin:0 0 8px;padding:6px 9px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text2);font-size:10px;}
.version-workflow-guide strong{margin-right:3px;color:var(--text);font-size:11px;}
.version-workflow-guide i{color:var(--text3);font-style:normal;}
.version-release-summary{display:grid;grid-template-columns:auto minmax(320px,1fr) auto;align-items:center;gap:12px;margin-bottom:8px;padding:7px 9px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);}
.version-release-metrics{display:flex;align-items:center;gap:12px;white-space:nowrap;color:var(--text3);font-size:10px;}
.version-release-metrics strong{margin-right:3px;color:var(--text);font-size:13px;}
.version-release-route{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;color:var(--text2);font-size:10px;white-space:nowrap;overflow:hidden;}
.version-release-route i{color:var(--text3);font-style:normal;}
.version-release-panel{margin:12px 0 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;}
.version-release-panel-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:12px 14px;}
.version-release-panel-head h3{margin:0;font-size:14px;}
.version-release-panel-head p{margin:3px 0 0;color:var(--text3);font-size:11px;}
.release-progress-value{text-align:right;}
.release-progress-value strong,.release-progress-value span{display:block;}
.release-progress-value strong{font-size:18px;color:var(--text);}
.release-progress-value span{font-size:9px;color:var(--text3);}
.release-progress-track{height:3px;background:var(--bg);}
.release-progress-track span{display:block;height:100%;background:var(--primary);}
.zentao-consistency{padding:12px 14px;border-top:1px solid var(--border);background:var(--bg);}
.zentao-consistency-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
.zentao-consistency-head strong,.zentao-consistency-head span{display:block;}
.zentao-consistency-head strong{font-size:12px;}
.zentao-consistency-head span{margin-top:2px;color:var(--text3);font-size:10px;}
.zentao-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.zentao-fields label{display:grid;gap:4px;color:var(--text2);font-size:10px;}
.zentao-fields input,.zentao-fields select{box-sizing:border-box;width:100%;height:30px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:11px var(--font);}
.release-consistency-result{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px;}
.release-consistency{padding:2px 6px;border-radius:3px;background:var(--surface);color:var(--text3);font-size:9px;}
.release-consistency.matched{background:var(--success-bg);color:#15803d;}
.release-consistency.mismatch{background:var(--danger-bg);color:var(--danger);}
.release-process-table{min-width:1380px;}
.release-process-table th:nth-child(1){width:70px;}
.release-process-table th:nth-child(2){width:170px;}
.release-process-table th:nth-child(3){width:90px;}
.release-process-table th:nth-child(4){width:130px;}
.release-process-table th:nth-child(5){width:260px;}
.release-process-table th:nth-child(6),.release-process-table th:nth-child(7){width:120px;}
.release-process-table th:nth-child(8){width:280px;}
.release-process-table td:nth-child(2) strong{display:block;font-size:11px;}
.release-step-status{display:inline-flex;padding:2px 6px;border-radius:3px;background:var(--bg);color:var(--text2);font-size:10px;}
.release-step-status.done{background:var(--success-bg);color:#15803d;}
.release-step-status.in_progress{background:var(--primary-bg);color:var(--primary-hv);}
.release-step-status.blocked{background:var(--danger-bg);color:var(--danger);}
.version-release-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-top:1px solid var(--border);color:var(--text3);font-size:10px;}
.version-product-cell{max-width:140px;overflow:hidden;text-overflow:ellipsis;}
.version-roadmap-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.version-milestone-summary{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2);}
.version-inline-detail-row>td{padding:0!important;background:var(--surface)!important;white-space:normal!important;text-align:left!important;}
.version-inline-detail-row:hover>td{background:var(--surface)!important;}
.version-inline-detail-row .inline-detail-panel{margin:0;border:0;border-radius:0;}
.feature-flat-table{min-width:1260px;}
.feature-milestone-cell{white-space:normal!important;}
.feature-milestone-cell span,.feature-milestone-cell small{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.feature-milestone-cell small{margin-top:2px;color:var(--text3);font-size:9px;}
.version-notes-cell{white-space:normal!important;}
.version-notes-compact{display:grid;gap:2px;min-width:420px;}
.version-notes-compact>div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:7px;line-height:1.45;}
.version-notes-compact strong{color:var(--text3);font-size:10px;font-weight:600;}
.version-notes-compact span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2);}
.version-add-note{color:var(--text3);white-space:normal!important;}
.version-row-actions{flex-wrap:nowrap;}
.version-notes-editor{padding-bottom:12px;}
.version-notes-organizer{display:grid;grid-template-columns:minmax(140px,190px) minmax(260px,1fr) auto;gap:10px;align-items:center;margin:12px 14px 0;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);}
.version-notes-organizer>div strong{display:block;color:var(--text);font-size:12px;}
.version-notes-organizer>div span{display:block;margin-top:3px;color:var(--text3);font-size:10px;line-height:1.45;}
.version-notes-organizer textarea{box-sizing:border-box;width:100%;min-height:76px;padding:7px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:12px/1.5 var(--font);resize:vertical;}
.version-notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;}
.version-notes-grid label{display:grid;gap:5px;color:var(--text2);font-size:12px;font-weight:600;}
.version-notes-grid label:last-child{grid-column:1/-1;}
.version-notes-grid textarea{box-sizing:border-box;width:100%;min-height:86px;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:12px/1.55 var(--font);resize:vertical;}
.version-notes-entry{margin-top:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;}
.version-notes-entry-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg);}
.version-notes-entry-head>div:first-child strong{display:block;font-size:13px;color:var(--text);}
.version-notes-entry-head>div:first-child span{display:block;margin-top:2px;font-size:10px;color:var(--text3);}
.version-notes-mode{display:flex;align-items:center;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--surface);}
.version-notes-mode button{height:28px;padding:0 12px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--text2);font-size:11px;cursor:pointer;}
.version-notes-mode button:last-child{border-right:0;}
.version-notes-mode button.active{background:var(--text);color:var(--surface);}
.version-notes-ai-hint{padding:8px 14px 12px;color:var(--text3);font-size:10px;text-align:right;}
.version-notes-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:0 14px;}
.version-notes-actions span{margin-right:auto;color:var(--text3);font-size:11px;}
.version-legacy-note{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;margin:0 14px 12px;padding:8px 10px;background:var(--bg);color:var(--text2);font-size:11px;line-height:1.55;}
.version-notes-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);}
.version-notes-detail>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;font-size:12px;line-height:1.55;}
.version-notes-detail>div:last-child{grid-column:1/-1;}
.version-notes-detail strong{color:var(--text3);font-weight:600;}
.version-notes-detail span{white-space:pre-wrap;word-break:break-word;}
.version-form-panel{max-width:760px!important;}
.work-lock-state{display:inline-flex;align-items:center;margin:0 4px;padding:1px 6px;border:1px solid var(--border);border-radius:3px;background:var(--bg);color:var(--text3);font-size:10px;line-height:18px;white-space:nowrap;}
.version-plan-intake,.version-plan-block{border:1px solid var(--border);background:var(--surface);}
.version-plan-intake{padding:14px;margin-bottom:14px;}
.version-plan-intake-grid{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:12px;}
.version-plan-intake label,.version-plan-version-head label,.version-plan-notes label{display:grid;gap:5px;color:var(--text2);font-size:12px;}
.version-plan-source{grid-row:span 2;}
.version-plan-guidance{margin:8px 0 0;color:var(--text3);font-size:12px;}
.version-plan-preview-head,.version-plan-version-head,.version-plan-features-head{display:flex;align-items:center;gap:10px;}
.version-plan-preview-head{justify-content:space-between;margin:12px 0 8px;}
.version-plan-preview-head span,.version-plan-features-head span{margin-left:8px;color:var(--text3);font-size:12px;}
.task-batch-list{border:1px solid var(--border);background:var(--surface);}
.task-batch-row{padding:12px 14px;border-bottom:1px solid var(--border);}
.task-batch-row:last-child{border-bottom:0;}
.task-batch-row-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.task-batch-row-head strong{font-size:12px;color:var(--text2);}
.task-batch-fields{display:grid;grid-template-columns:minmax(220px,2fr) minmax(130px,1fr) 90px 100px 140px minmax(180px,1.4fr);gap:8px;}
.task-batch-fields label{display:grid;align-content:start;gap:4px;color:var(--text2);font-size:11px;}
.task-batch-fields input,.task-batch-fields select,.task-batch-fields textarea{width:100%;min-width:0;padding:5px 7px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:12px var(--font);}
.task-batch-fields input,.task-batch-fields select:not([multiple]){height:30px;}
.task-batch-fields textarea{resize:vertical;line-height:1.4;}
.task-batch-fields select[multiple]{min-height:58px;}
.task-batch-fields small{color:var(--text3);font-size:10px;}
.task-batch-description{grid-column:1/-1;}
.version-plan-block{padding:12px;margin-bottom:10px;}
.version-plan-version-head{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(140px,1fr) 140px auto;}
.version-plan-notes{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px;margin:12px 0;overflow-x:auto;}
.version-plan-notes textarea{min-width:150px;}
.version-plan-features-head{margin:8px 0 6px;}
.version-plan-features-head .btn{margin-left:auto;}
.version-plan-feature-table input{min-width:90px;}
.version-tracking-toolbar{flex-wrap:wrap;}
.tracking-incomplete-filter,.implemented-check{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.implemented-check{color:var(--text2);cursor:pointer;}
.implemented-check input{width:16px;height:16px;}
.version-tracking-table .cell-ellipsis{max-width:360px;overflow:hidden;text-overflow:ellipsis;}
select:disabled{cursor:not-allowed;opacity:.72;background:var(--bg);}
@media(max-width:768px){
  .module-tabbar{margin-bottom:8px;}
  .module-tabbar>button:not(.module-tab-action){flex:1;padding:0 12px;}
  .module-tabbar .module-tab-action{flex:0 0 auto;}
  .compact-toolbar{min-height:30px;align-items:flex-start;flex-wrap:wrap;}
  .compact-toolbar .filter-select{min-width:130px;}
  .compact-hint{line-height:28px;}
  .version-view-segment+ .compact-hint{order:5;flex:0 0 100%;width:100%;min-width:0;line-height:18px;}
  .version-release-summary{grid-template-columns:1fr auto;gap:8px;}
  .version-release-metrics{grid-column:1/-1;justify-content:space-between;gap:5px;}
  .version-release-route{justify-content:flex-start;overflow-x:auto;}
  .version-release-panel-head{grid-template-columns:1fr auto;}
  .version-release-panel-head>.btn{grid-column:1/-1;justify-self:start;}
  .zentao-consistency-head{align-items:flex-start;flex-direction:column;}
  .zentao-fields{grid-template-columns:1fr;}
  .version-release-actions{align-items:flex-start;flex-direction:column;}
  .flat-edit-table{min-width:820px;}
  .version-summary-table{min-width:1300px;}
  .package-summary-table{min-width:980px;}
  .material-library-table{min-width:980px;}
  .material-kit-summary{min-width:1060px;}
  .inline-detail-head{align-items:flex-start;flex-direction:column;}
  .inline-detail-head .row-actions{width:100%;overflow-x:auto;flex-wrap:nowrap;}
  .version-notes-grid,.version-notes-detail{grid-template-columns:1fr;}
  .version-notes-entry-head{align-items:flex-start;flex-direction:column;}
  .version-notes-mode{width:100%;}
  .version-notes-mode button{flex:1;}
  .version-notes-organizer{grid-template-columns:1fr;margin:10px;}
  .version-notes-organizer .btn{justify-self:end;}
  .version-notes-grid label:last-child,.version-notes-detail>div:last-child{grid-column:auto;}
  .version-notes-actions{align-items:flex-end;flex-direction:column;}
  .version-notes-actions span{margin-right:0;}
  .version-plan-intake-grid,.version-plan-version-head{grid-template-columns:1fr;}
  .version-plan-notes{grid-template-columns:repeat(5,minmax(180px,1fr));}
  .version-plan-preview-head{align-items:flex-start;}
  .task-batch-fields{grid-template-columns:1fr 1fr;}
  .task-batch-title,.task-batch-nodes,.task-batch-description{grid-column:1/-1;}
}
@media(max-width:600px){
  .task-batch-row{padding:10px;}
  .task-batch-fields{grid-template-columns:1fr;}
  .task-batch-title,.task-batch-nodes,.task-batch-description{grid-column:auto;}
  .task-batch-intake .form-actions{align-items:stretch;}
  .task-batch-intake .form-actions .btn{flex:1;}
}
/* Compact relation controls */
.meeting-project-chip {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text2);
  border-radius: 4px;
  padding: 3px 7px;
  margin-left: 8px;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  cursor: pointer;
}

.task-node-picker {
  display: grid;
  gap: 4px;
  max-height: 190px;
  overflow: auto;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--surface);
}
.task-node-picker.disabled { opacity: .55; min-height: 38px; }
.task-node-option {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 7px 8px;
  border-radius: 4px;
  cursor: pointer;
}
.task-node-option:hover { background: var(--hover); }
.task-node-option input { margin-top: 3px; }
.task-node-option span { display: grid; gap: 2px; min-width: 0; }
.task-node-option strong { font-size: 12px; font-weight: 600; }
.task-node-option small { color: var(--text3); font-size: 10px; }
.ms-tree-unlinked small { margin-left: 6px; color: var(--text3); font-size: 10px; }

.patent-select-col { width: 32px; min-width: 32px; text-align: center; }
.patent-list-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  color: var(--text3);
  font-size: 11px;
}

.quality-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.compact-stats, .quality-filters { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.compact-stats span { color: var(--text2); font-size: 11px; }
.compact-stats strong { color: var(--text); font-size: 14px; margin-right: 3px; }
.quality-filters select { min-width: 110px; }
.quality-table { min-width: 920px; }
.quality-table th:first-child { width: 210px; }
.quality-table th:nth-child(2) { width: 105px; }
.quality-table th:nth-child(3) { width: 100px; }
.quality-table th:nth-child(4) { width: 125px; }
.quality-table th:nth-child(5) { width: 105px; }
.quality-table th:last-child { width: 128px; }
.table-sort-button {
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.table-sort-button.active { color: var(--primary); }
.person-load-link {
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--primary);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.person-project-timeline { min-width: 0; }
#task-modal.person-timeline-modal { width: min(1180px, calc(100vw - 48px)); }
.person-timeline-legend { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; color: var(--text3); font-size: 11px; }
.person-timeline-scroll { overflow-x: auto; }
.person-project-timeline table { width: 100%; min-width: 880px; border-collapse: collapse; table-layout: fixed; }
.person-project-timeline th, .person-project-timeline td { border: 1px solid var(--border); padding: 7px 4px; text-align: center; font-size: 11px; }
.person-project-timeline th:first-child { width: 180px; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person-project-timeline td.has-effort { background: var(--primary-bg); color: var(--primary); font-weight: 600; }
.person-project-timeline td.is-over, .person-project-timeline .is-over { background: var(--danger-bg); color: var(--danger); font-weight: 700; }
.person-timeline-total { background: var(--surface2); font-weight: 700; }

@media (max-width: 768px) {
  #task-modal.person-timeline-modal { width: 100vw; max-width: 100vw; }
  .project-flat-card strong { font-size: 12px; }
  .project-flat-card span,
  .project-flat-card p,
  .project-detail-header,
  .ms-tree-table,
  .ms-timeline { font-size: 11px; }
  .meeting-project-chip { max-width: 92px; }
  .reg-stage-row { grid-template-columns: minmax(130px, 1fr) repeat(2, minmax(116px, 1fr)); }
  .reg-stage-row > * { font-size: 11px; }
  .quality-toolbar { align-items: flex-start; flex-direction: column; }
  .quality-filters { width: 100%; }
  .quality-filters select { flex: 1; min-width: 0; }
  .quality-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* Project portfolio fields */
.project-filter-groups { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.project-priority { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 22px; border: 1px solid var(--border); border-radius: 4px; font-weight: 700; font-size: 11px; color: var(--text2); }
.project-priority-a { border-color: #dc2626; color: #b91c1c; background: #fff7f7; }
.project-priority-b { border-color: #d97706; color: #92400e; background: #fffbeb; }
.quick-filter-tag.priority-a.active { border-color: #dc2626; color: #b91c1c; background: #fff7f7; }
.quick-filter-tag.priority-b.active { border-color: #d97706; color: #92400e; background: #fffbeb; }

/* Product attributes */
.product-type-label { display: inline-flex; margin-left: 6px; padding: 1px 5px; border: 1px solid var(--border); border-radius: 4px; font-size: 10px; font-weight: 500; color: var(--text2); vertical-align: middle; }

/* Compact material kit columns */
.material-kit-summary { min-width: 1060px; table-layout: fixed; }
.material-kit-summary th:nth-child(1) { width: 150px; }
.material-kit-summary th:nth-child(2) { width: 105px; }
.material-kit-summary th:nth-child(3) { width: 76px; }
.material-kit-summary th:nth-child(4) { width: 64px; }
.material-kit-summary th:nth-child(5) { width: 88px; }
.material-kit-summary th:nth-child(6) { width: 90px; }
.material-kit-summary th:nth-child(7) { width: 78px; }
.material-kit-summary th:nth-child(8) { width: 64px; }
.material-kit-summary th:nth-child(9) { width: 300px; }
.material-kit-summary td:first-child strong,
.material-kit-summary td:first-child small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Trademark registration */
.trademark-table { min-width: 1180px; }
.trademark-table th:nth-child(1) { width: 48px; }
.trademark-table th:nth-child(2) { width: 130px; }
.trademark-table th:nth-child(3) { width: 120px; }
.trademark-table th:nth-child(4) { width: 70px; }
.trademark-table th:nth-child(5) { min-width: 300px; }
.trademark-service-cell { max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trademark-reminder { white-space: nowrap; color: var(--text2); }
.trademark-reminder.is-warning, .trademark-card b.is-warning { color: #b45309; }
.trademark-reminder.is-expired, .trademark-card b.is-expired { color: var(--danger); }
.trademark-card-list { display: none; }
.trademark-card { border-bottom: 1px solid var(--border); padding: 12px 2px; }
.trademark-card > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.trademark-card p, .trademark-card small { display: block; margin: 5px 0; color: var(--text2); }
.trademark-card small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Sortable operational tables */
.milestone-sortable, .reg-budget-sortable { cursor: pointer; user-select: none; white-space: nowrap; }
.milestone-sortable:hover, .reg-budget-sortable:hover { background: var(--hover); }
.milestone-sortable span, .reg-budget-sortable span { font-size: 9px; color: var(--primary); }

/* Roadmap presentation mode for clean PPT screenshots */
.roadmap-capture-header { display: none; }
body.roadmap-capture-mode { background: #fff; }
body.roadmap-capture-mode #sidebar,
body.roadmap-capture-mode #topbar,
body.roadmap-capture-mode .roadmap-toolbar { display: none !important; }
body.roadmap-capture-mode #app-shell,
body.roadmap-capture-mode #main-content { display: block; min-height: 100vh; width: 100%; }
body.roadmap-capture-mode #page-container { padding: 18px 22px; background: #fff; overflow: visible; }
body.roadmap-capture-mode .roadmap-capture-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin: 0 0 16px; padding-bottom: 12px; border-bottom: 2px solid #111827; }
body.roadmap-capture-mode .roadmap-capture-header span { display: block; margin-bottom: 3px; font-size: 10px; font-weight: 700; color: #2563eb; }
body.roadmap-capture-mode .roadmap-capture-header h2 { margin: 0; font-size: 22px; line-height: 1.25; color: #111827; }
body.roadmap-capture-mode .roadmap-capture-header p { margin: 4px 0 0; font-size: 11px; color: #6b7280; }
body.roadmap-capture-mode .roadmap-table-scroll { width: 100%; overflow: visible !important; }
body.roadmap-capture-mode .rm-table { width: 100% !important; min-width: 0 !important; table-layout: fixed; border-color: #d1d5db !important; box-shadow: none; }
body.roadmap-capture-mode .rm-table th { background: #f3f4f6 !important; color: #111827 !important; }
body.roadmap-capture-mode .rm-table td { border-color: #e5e7eb !important; }
body.roadmap-capture-mode .rm-table .rm-period-cell { width: auto !important; min-width: 0 !important; max-width: none !important; padding-left: 5px !important; padding-right: 5px !important; }
body.roadmap-capture-mode .rm-table .rm-milestone-name { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.25; }
body.roadmap-capture-mode .rm-table.rm-cols-many th,
body.roadmap-capture-mode .rm-table.rm-cols-many td { padding: 4px !important; font-size: 9px !important; }
body.roadmap-capture-mode .rm-table.rm-cols-many .rm-title-cell { width: 86px !important; min-width: 86px !important; max-width: 86px !important; }
body.roadmap-capture-mode .rm-table.rm-cols-many .rm-category-head,
body.roadmap-capture-mode .rm-table.rm-cols-many .rm-category-cell { width: 58px !important; min-width: 58px !important; max-width: 58px !important; }
body.roadmap-capture-mode .rm-table.rm-cols-many.has-rm-category .rm-title-cell { left: 58px; }
body.roadmap-capture-mode .rm-action-cell { display: none !important; }
body.roadmap-capture-mode .rm-row-meta { color: #6b7280; }

@media print {
  body.roadmap-capture-mode .roadmap-capture-exit { display: none; }
}

@media (max-width: 768px) {
  .trademark-table-wrap { display: none; }
  .trademark-card-list { display: block; }
}
