:root{--lenovo-red:#e60012;--lenovo-red-dark:#b8000e;--lenovo-red-light:#ff2d3d;--bg:#f3f4f6;--bg-card:#fff;--border:#e5e7eb;--border-light:#f3f4f6;--text:#111827;--text-secondary:#6b7280;--text-muted:#9ca3af;--danger:#ef4444;--danger-bg:#fef2f2;--success:#10b981;--success-bg:#ecfdf5;--warning:#f59e0b;--warning-bg:#fffbeb;--brand-bg:#fef2f2;--accent-blue:#3b82f6;--accent-blue-bg:#dbeafe;--accent-blue-text:#1e40af;--accent-orange:#f97316;--accent-orange-bg:#ffedd5;--accent-orange-text:#9a3412;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #0000000a;--shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f, 0 1px 3px #0000000a;--shadow-lg:0 12px 28px #00000014, 0 4px 8px #0000000a;--transition:.18s cubic-bezier(.4,0,.2,1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}#root{flex-direction:column;min-height:100vh;display:flex}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input{font-family:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topnav{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:100;align-items:center;gap:36px;height:58px;padding:0 28px;display:flex;position:sticky;top:0}.topnav-brand{align-items:center;gap:10px;text-decoration:none;display:flex}.topnav-logo{background:var(--lenovo-red);color:#fff;letter-spacing:-.5px;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;font-weight:800;display:flex}.topnav-brand-text{color:var(--lenovo-red);letter-spacing:-.3px;font-size:19px;font-weight:700}.user-chip{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 4px;transition:background .15s,border-color .15s;display:flex}.user-chip:hover{background:#f9fafb;border-color:#d1d5db}.user-chip-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:13px;font-weight:600;overflow:hidden}.user-menu{border:1px solid var(--border);z-index:120;background:#fff;border-radius:12px;width:240px;animation:.14s menuIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 28px #0000001f}@keyframes menuIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:16px;display:flex}.user-menu-name{color:var(--text);font-size:15px;font-weight:700}.user-menu-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.user-menu-item{width:100%;color:var(--text);cursor:pointer;text-align:left;border:none;border-top:1px solid var(--border-light);background:#fff;align-items:center;gap:8px;padding:11px 16px;font-size:13px;font-weight:500;display:flex}.user-menu-item:hover{background:#f5f7fa}.topnav-links{flex:1;gap:2px;display:flex}.topnav-link{color:var(--text-secondary);transition:all var(--transition);border-radius:8px;padding:7px 16px;font-size:13.5px;font-weight:500;position:relative}.topnav-link:hover{color:var(--text);background:#f9fafb}.topnav-link.active{background:var(--brand-bg);color:var(--lenovo-red);font-weight:600}.main-content{flex:1;width:100%;max-width:1480px;margin:0 auto;padding:28px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:24px;display:flex}.page-header-left h1{letter-spacing:-.3px;color:var(--text);font-size:26px;font-weight:700}.page-header-left p{color:var(--text-secondary);margin-top:2px;font-size:13.5px}.btn{border-radius:var(--radius-sm);transition:all var(--transition);white-space:nowrap;letter-spacing:-.1px;align-items:center;gap:7px;padding:9px 18px;font-size:13.5px;font-weight:600;display:inline-flex}.btn-primary{background:var(--lenovo-red);color:#fff;box-shadow:0 1px 2px #e6001240}.btn-primary:hover{background:var(--lenovo-red-dark);transform:translateY(-.5px);box-shadow:0 2px 6px #e6001259}.btn-secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:#f9fafb;border-color:#d1d5db}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:5px 12px;font-size:12px}.btn-ghost{color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--transition);justify-content:center;align-items:center;padding:6px 8px;display:inline-flex}.btn-ghost:hover{color:var(--text);background:#f3f4f6}.btn-icon{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);width:34px;height:34px;color:var(--text-secondary);transition:all var(--transition);justify-content:center;align-items:center;padding:0;font-size:15px;display:inline-flex}.btn-icon:hover{color:var(--text);background:#f9fafb;border-color:#d1d5db}.btn-icon:disabled{opacity:.35;cursor:not-allowed}.spinner{border:2.5px solid var(--border);border-top-color:var(--lenovo-red);border-radius:50%;width:22px;height:22px;margin:40px auto;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.project-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;display:grid}.project-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-sm);padding:22px 24px}.project-card:hover{box-shadow:var(--shadow-md);border-color:#fecaca;transform:translateY(-1px)}.project-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:14px;display:flex}.project-card-name{letter-spacing:-.2px;font-size:17px;font-weight:700}.proj-lock-badge{vertical-align:middle;align-items:center;margin-left:6px;font-size:12.5px;display:inline-flex}.project-card-budget{color:var(--success);background:var(--success-bg);border-radius:20px;padding:3px 10px;font-size:13px;font-weight:600}.project-card-meta{color:var(--text-secondary);gap:18px;margin-bottom:16px;font-size:13px;display:flex}.project-card-footer{border-top:1px solid var(--border-light);justify-content:space-between;align-items:center;padding-top:14px;display:flex}.view-toggle{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);gap:2px;padding:3px;display:inline-flex}.view-toggle button{width:34px;height:30px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:15px;line-height:1;display:inline-flex}.view-toggle button:hover{color:var(--text);background:#f3f4f6}.view-toggle button.active{background:var(--lenovo-red);color:#fff}.project-table-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.project-table{border-collapse:collapse;width:100%}.project-table th,.project-table td{text-align:left;border-bottom:1px solid var(--border-light);padding:13px 20px;font-size:13.5px}.project-table thead th{color:var(--text-secondary);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;background:#fafbfc;font-size:12px;font-weight:600}.project-table tbody tr{cursor:pointer;transition:background .15s}.project-table tbody tr:hover td{background:#fefafa}.project-table tbody tr:last-child td{border-bottom:none}.project-table-name{color:var(--text);font-weight:600}.project-table-budget{color:var(--success);background:var(--success-bg);white-space:nowrap;border-radius:20px;padding:2px 9px;font-size:12.5px;font-weight:600}.avatar-stack{align-items:center;display:flex}.avatar{background:linear-gradient(135deg, var(--lenovo-red), var(--lenovo-red-dark));color:#fff;border:2px solid var(--bg-card);width:30px;height:30px;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;margin-left:-6px;font-size:11px;font-weight:700;display:flex}.avatar:first-child{margin-left:0}.avatar-more{color:var(--text-muted);margin-left:6px;font-size:12px}.card-date{color:var(--text-muted);font-size:12px}.empty-state{text-align:center;color:var(--text-secondary);padding:80px 24px}.empty-state-icon{background:var(--brand-bg);border-radius:16px;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;font-size:28px;display:flex}.empty-state-title{color:var(--text);margin-bottom:6px;font-size:18px;font-weight:700}.empty-state-desc{margin-bottom:22px;font-size:14px}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000073;justify-content:center;align-items:center;padding:20px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-lg);animation:.2s slideUp;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h2{letter-spacing:-.2px;font-size:17px;font-weight:700}.modal-body{padding:22px 24px}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px;display:flex}.form-group{margin-bottom:18px}.form-label{color:var(--text);margin-bottom:5px;font-size:13px;font-weight:600;display:block}.form-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;transition:all var(--transition);background:var(--bg-card);color:var(--text);padding:9px 13px;font-size:14px}.form-input:focus{border-color:var(--lenovo-red);outline:none;box-shadow:0 0 0 3px #e6001212}.form-input::placeholder{color:var(--text-muted)}.form-error{color:var(--danger);margin-top:4px;font-size:12px;display:block}.member-input-row{gap:8px;margin-bottom:8px;display:flex}.member-input-row .form-input{flex:1}.tag-list{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--brand-bg);color:var(--lenovo-red);border-radius:20px;align-items:center;gap:5px;padding:4px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.tag-remove{color:var(--lenovo-red);opacity:.5;font-size:15px;line-height:1}.tag-remove:hover{opacity:1}.back-link{color:var(--text-secondary);transition:color var(--transition);align-items:center;gap:5px;margin-bottom:18px;font-size:13.5px;font-weight:500;display:inline-flex}.back-link:hover{color:var(--text)}.detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:22px;display:flex}.detail-title h1{letter-spacing:-.3px;margin-bottom:4px;font-size:26px;font-weight:700}.detail-meta{color:var(--text-secondary);gap:18px;font-size:13px;display:flex}.detail-actions{align-items:center;gap:8px;display:flex}.budget-pill{background:var(--success-bg);color:#065f46;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:13.5px;font-weight:600;display:inline-flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:18px 20px}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11.5px;font-weight:600}.stat-value{letter-spacing:-.3px;font-size:24px;font-weight:700}.stat-value.warning{color:var(--warning)}.stat-value.danger{color:var(--danger)}.stat-value.success{color:var(--success)}.month-grid-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden}.grid-toolbar{border-bottom:1px solid var(--border);background:#fafbfc;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.grid-toolbar-title{letter-spacing:-.1px;font-size:14.5px;font-weight:700}.grid-nav{align-items:center;gap:8px;display:flex}.grid-nav-range{color:var(--text-secondary);text-align:center;min-width:130px;font-size:12px;font-weight:500}.grid-scroll{scrollbar-width:thin;scrollbar-color:#d1d5db transparent;overflow-x:auto}.grid-scroll::-webkit-scrollbar{height:5px}.grid-scroll::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.grid-table{border-collapse:collapse;width:100%}.grid-table th,.grid-table td{text-align:center;border-bottom:1px solid var(--border-light);padding:10px 8px;font-size:13px}.grid-table thead th{color:var(--text-secondary);white-space:nowrap;z-index:1;background:#fafbfc;font-weight:600;position:sticky;top:0}.grid-table th.row-label{text-align:left;z-index:2;background:#fafbfc;min-width:170px;padding-left:18px;position:sticky;left:0}.grid-table td.row-label{text-align:left;background:var(--bg-card);z-index:1;vertical-align:middle;padding-left:18px;font-weight:500;position:sticky;left:0}.grid-table tbody tr:hover td{background:#fefafa}.month-col{min-width:82px}.month-col.current,.month-col.current thead :scope{background:#fef2f2}.hours-cell{padding:5px 6px!important}.hours-input{text-align:center;width:62px;transition:all var(--transition);color:var(--text);background:0 0;border:1px solid #0000;border-radius:5px;padding:5px 6px;font-size:13px;font-weight:500}.hours-input:hover{border-color:var(--border);background:#fafbfc}.hours-input:focus{border-color:var(--lenovo-red);background:#fff;outline:none;box-shadow:0 0 0 3px #e600120f}.hours-input.filled{color:var(--text);font-weight:600}.hours-input.filled:hover{border-color:var(--border)}.total-cell{font-size:12.5px;font-weight:700;background:#fafbfc!important}.grand-total-cell{font-size:12.5px;font-weight:700;background:#f3f4f6!important}.person-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition);margin-bottom:14px;overflow:hidden}.person-card:hover{box-shadow:var(--shadow-md)}.person-card-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition);background:#fafbfc;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.person-card-header:hover{background:#fef2f2}.person-info{align-items:center;gap:12px;display:flex}.person-avatar{background:linear-gradient(135deg, var(--lenovo-red), var(--lenovo-red-dark));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:13px;font-weight:700;display:flex}.person-name{letter-spacing:-.1px;font-size:15px;font-weight:600}.person-summary{color:var(--text-secondary);font-size:12.5px}.person-expand{color:var(--text-muted);font-size:12px;transition:transform .2s}.person-expand.open{transform:rotate(180deg)}.confirm-overlay{z-index:1100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:390px;box-shadow:var(--shadow-lg);padding:24px}.confirm-dialog h3{margin-bottom:6px;font-size:16px;font-weight:700}.confirm-dialog p{color:var(--text-secondary);margin-bottom:20px;font-size:13.5px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.toast-container{z-index:2000;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{border-radius:var(--radius-sm);box-shadow:var(--shadow-md);color:#fff;padding:12px 20px;font-size:13.5px;font-weight:500;animation:.2s slideIn}.toast.success{background:var(--success)}.toast.error{background:var(--danger)}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.dash-kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:24px;display:grid}.dash-kpi{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:20px 22px}.dash-kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:600}.dash-kpi-value{letter-spacing:-.4px;font-size:28px;font-weight:700}.dash-kpi-unit{color:var(--text-muted);letter-spacing:0;font-size:14px;font-weight:500}.dash-kpi-value.kpi-red{color:var(--lenovo-red)}.dash-kpi-value.kpi-green{color:var(--success)}.dash-kpi-value.kpi-amber{color:var(--warning)}.dash-section{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;display:grid}@media (width<=900px){.dash-section{grid-template-columns:1fr}}.dash-panel{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden}.dash-panel-title{border-bottom:1px solid var(--border);background:#fafbfc;padding:14px 20px;font-size:14px;font-weight:700}.dash-panel-body{padding:16px 20px}.dash-bar-item{align-items:center;gap:12px;margin-bottom:12px;display:flex}.dash-bar-item:last-child{margin-bottom:0}.dash-bar-label{white-space:nowrap;text-overflow:ellipsis;width:120px;font-size:13px;font-weight:500;overflow:hidden}.dash-bar-track{background:#f3f4f6;border-radius:6px;flex:1;height:22px;position:relative;overflow:hidden}.dash-bar-fill{border-radius:6px;height:100%;transition:width .4s}.dash-bar-fill.safe{background:#bbf7d0}.dash-bar-fill.warn{background:#fde68a}.dash-bar-fill.danger{background:#fecaca}.dash-bar-value{text-align:right;width:70px;font-size:12px;font-weight:600}.dash-month-list{align-items:flex-end;gap:4px;height:120px;display:flex}.dash-month-bar-wrap{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.dash-month-bar{background:var(--lenovo-red);border-radius:4px 4px 0 0;width:100%;max-width:40px;min-height:4px;transition:height .3s}.dash-month-label{color:var(--text-muted);margin-top:4px;font-size:10px}.rate-input{border:1px solid var(--border);text-align:center;width:72px;transition:all var(--transition);background:var(--bg-card);color:var(--text);border-radius:5px;padding:5px 8px;font-size:13px;font-weight:600}.rate-input:focus{border-color:var(--accent,#3b82f6);outline:none;box-shadow:0 0 0 3px #3b82f61f}.rate-input.filled{background:var(--surface-2);color:var(--text);border-color:var(--border)}.role-badge{letter-spacing:.03em;border-radius:20px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.role-badge.admin{color:var(--lenovo-red);background:#fef2f2}.role-badge.dt{color:#2563eb;background:#eff6ff}.cost-cell{color:var(--text);font-size:12.5px;font-weight:600}.cost-cell.positive{color:var(--success)}.form-select{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;transition:all var(--transition);background:var(--bg-card);color:var(--text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding:9px 32px 9px 13px;font-size:14px}.form-select:focus{border-color:var(--lenovo-red);outline:none;box-shadow:0 0 0 3px #e6001212}@media (width<=768px){.topnav{gap:16px;padding:0 16px}.main-content{padding:18px}.project-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.detail-header{flex-direction:column}}.settings-table{border-collapse:collapse;width:100%}.settings-table th,.settings-table td{text-align:left;border-bottom:1px solid var(--border-light);padding:12px 16px;font-size:13.5px}.settings-table thead th{color:var(--text-secondary);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;background:#fafbfc;font-size:12px;font-weight:600}.settings-table tbody tr:hover td{background:#fefafa}.settings-inline-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;max-width:180px;transition:all var(--transition);background:var(--bg-card);color:var(--text);padding:5px 10px;font-size:13px}.settings-inline-input:focus{border-color:var(--lenovo-red);outline:none;box-shadow:0 0 0 3px #e6001212}.group-filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.group-chip{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);transition:all var(--transition);cursor:pointer;border-radius:20px;padding:5px 14px;font-size:12.5px;font-weight:500}.group-chip:hover{color:var(--lenovo-red);border-color:#fecaca}.group-chip.active{background:var(--brand-bg);color:var(--lenovo-red);border-color:#fecaca;font-weight:600}.group-tag{color:#2563eb;vertical-align:middle;letter-spacing:.02em;background:#eff6ff;border-radius:10px;margin-left:6px;padding:1px 8px;font-size:10px;font-weight:600;display:inline-block}.group-edit-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fafbfc;margin-bottom:10px;padding:14px}.group-edit-header{align-items:center;gap:12px;margin-bottom:10px;font-size:14px;display:flex}.group-edit-members{flex-wrap:wrap;gap:8px;display:flex}.group-member-check{cursor:pointer;border:1px solid var(--border);background:var(--bg-card);transition:all var(--transition);-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.group-member-check:hover{border-color:#fecaca}.group-member-check.checked{background:var(--brand-bg);color:var(--lenovo-red);border-color:#fecaca}.group-member-check input[type=checkbox]{display:none}.invite-note{color:var(--text-muted);border-radius:var(--radius-sm);background:#f9fafb;margin-top:4px;padding:8px 12px;font-size:12px;line-height:1.4}.role-badge.it{color:#7c3aed;background:#f3e8ff}.dash-chart-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;display:grid}@media (width<=900px){.dash-chart-row{grid-template-columns:1fr}}.dash-chart-body{height:300px;padding:16px 20px;position:relative}.dash-chart-body canvas{width:100%!important;height:100%!important}.perm-check{cursor:pointer;border:1px solid var(--border);background:var(--bg-card);width:24px;height:24px;transition:all var(--transition);-webkit-user-select:none;user-select:none;color:var(--text-muted);border-radius:4px;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:inline-flex}.perm-check:hover{border-color:#c4b5fd}.perm-check.checked{color:#7c3aed;background:#f3e8ff;border-color:#c4b5fd}.perm-check input[type=checkbox]{display:none}.grid-table th.row-label,.grid-table td.row-label{white-space:nowrap;text-overflow:ellipsis;width:200px;min-width:200px;max-width:200px;left:0;overflow:hidden}.grid-table th.type-col,.grid-table td.type-col{width:112px;min-width:112px;left:200px}.grid-table th.rate-col,.grid-table td.rate-col{border-right:1px solid var(--border);width:112px;min-width:112px;left:312px}.grid-table th.row-label,.grid-table td.row-label,.grid-table th.type-col,.grid-table td.type-col,.grid-table th.rate-col,.grid-table td.rate-col{z-index:2;position:sticky}.grid-table thead th.row-label,.grid-table thead th.type-col,.grid-table thead th.rate-col{z-index:3;background:#fafbfc!important}.grid-table tbody td.row-label,.grid-table tbody td.type-col,.grid-table tbody td.rate-col{background:var(--bg-card)!important}.grid-table tbody tr:hover td.row-label{background:#fef2f2!important}.grid-table tbody tr:hover td.type-col,.grid-table tbody tr:hover td.rate-col{background:#fefafa!important}.grid-table th.md-col,.grid-table td.md-col{border-left:1px solid var(--border);width:96px;min-width:96px;right:96px}.grid-table th.cost-col,.grid-table td.cost-col{width:96px;min-width:96px;right:0}.grid-table th.md-col,.grid-table td.md-col,.grid-table th.cost-col,.grid-table td.cost-col{z-index:2;position:sticky}.grid-table thead th.md-col,.grid-table thead th.cost-col{z-index:3;background:#fafbfc!important}.grid-table tbody td.md-col{background:#fafbfc!important}.grid-table tbody td.cost-col{background:var(--bg-card)!important}.grid-table tbody tr:hover td.md-col{background:#fafbfc!important}.grid-table tbody tr:hover td.cost-col{background:#fefafa!important}.grid-table tbody td.grand-total-cell.md-col,.grid-table tbody td.grand-total-cell.cost-col{background:#f3f4f6!important}.mspo-badge{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.cr-budget-panel{margin-top:2px}.cr-draft-note{background:var(--warning-bg);color:#92400e;border-radius:var(--radius);border:1px solid #fde68a;margin-bottom:14px;padding:10px 14px;font-size:13px;font-weight:500}.cr-add-row{margin:12px 0}.cr-add-form{align-items:center;gap:8px;display:flex}.cr-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition);margin-bottom:14px;overflow:hidden}.cr-card:hover{box-shadow:var(--shadow-md)}.cr-card-header{border-bottom:1px solid var(--border-light);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fafbfc;align-items:center;gap:10px;padding:12px 16px;display:flex}.cr-no{color:var(--lenovo-red);flex:none;font-size:13px;font-weight:700}.cr-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.cr-status{border-radius:999px;flex:none;padding:2px 10px;font-size:11px;font-weight:700}.cr-status.approved{background:var(--success-bg);color:#166534;border:1px solid #bbf7d0}.cr-status.draft{background:var(--warning-bg);color:#92400e;border:1px solid #fde68a}.cr-cost{flex:none;font-weight:700}.cr-cost-sub{color:var(--text-muted);flex:none;margin-right:4px;font-size:11px}.cr-card-body{padding:12px 16px}.cr-progress-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition);margin-bottom:14px;overflow:hidden}.cr-progress-card.open{box-shadow:var(--shadow-md)}.cr-progress-head{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition);background:#fafbfc;border-bottom:1px solid #0000;align-items:center;gap:10px;padding:12px 16px;display:flex}.cr-progress-head:hover{background:#f3f4f6}.cr-progress-card.open .cr-progress-head{border-bottom-color:var(--border-light)}.cr-progress-summary{color:var(--text-secondary);border:1px solid var(--border);background:#fff;border-radius:999px;flex:none;padding:2px 10px;font-size:12px;font-weight:600}.cr-caret{color:var(--text-muted);flex:none;width:14px;font-size:12px}.empty-state{text-align:center;color:var(--text-muted);background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--radius);padding:30px;font-size:14px}.cr-resource-add{margin-bottom:14px}.cr-resource-add-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.cr-resource-combo{width:100%;max-width:460px;display:block;position:relative}.cr-resource-input-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);transition:border-color var(--transition), box-shadow var(--transition);align-items:center;display:flex;position:relative}.cr-resource-input-wrap:focus-within{border-color:var(--lenovo-red);box-shadow:0 0 0 3px var(--brand-bg)}.cr-resource-icon{color:var(--text-muted);flex:none;padding:0 10px 0 12px;font-size:14px}.cr-resource-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:9px 28px 9px 0;font-size:13px}.cr-resource-input::placeholder{color:var(--text-muted)}.cr-resource-clear{color:#6b7280;cursor:pointer;background:#e5e7eb;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.cr-resource-clear:hover{color:#374151;background:#d1d5db}.cr-resource-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:30;max-height:320px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.cr-resource-section{padding:2px 0}.cr-resource-section+.cr-resource-section{border-top:1px solid var(--border-light);margin-top:4px;padding-top:6px}.cr-resource-section-title{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);padding:4px 8px 6px;font-size:10px;font-weight:700}.cr-resource-item{text-align:left;border-radius:var(--radius-sm);width:100%;transition:background var(--transition);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;display:flex}.cr-resource-item:hover{background:#f3f4f6}.cr-resource-item-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.cr-resource-item-type{text-transform:uppercase;border-radius:999px;flex:none;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:700}.cr-resource-item-type.Internal{color:#1e40af;background:#dbeafe}.cr-resource-item-type.External{color:#9a3412;background:#ffedd5}.cr-resource-item-rate{color:var(--text-muted);text-align:right;flex:none;min-width:58px;font-size:11px}.cr-resource-item-new{color:var(--lenovo-red);font-size:13px;font-weight:500}.cr-resource-item-new:hover{background:var(--brand-bg)}.cr-resource-new-icon{background:var(--brand-bg);border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;display:inline-flex}.cr-resource-empty{text-align:center;color:var(--text-muted);padding:14px 10px;font-size:12px}.budget-cat-panel{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:20px;overflow:hidden}.budget-cat-header{cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border);background:#fafbfc;justify-content:space-between;align-items:center;padding:12px 18px;font-size:13.5px;font-weight:600;display:flex}.budget-cat-header:hover{background:#fef2f2}.budget-cat-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;padding:16px 18px;display:grid}.budget-cat-item{border-radius:var(--radius-sm);background:#f9fafb;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.budget-cat-label{color:var(--text-secondary);font-weight:500}.budget-cat-value{color:var(--text);font-weight:700}.budget-cat-total{border-top:1px solid var(--border);background:#fef2f2;justify-content:space-between;align-items:center;padding:10px 18px;font-size:14px;font-weight:700;display:flex}.budget-form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.budget-form-total{border-radius:var(--radius-sm);color:var(--lenovo-red);background:#fef2f2;justify-content:space-between;margin-top:12px;padding:10px 14px;font-size:14px;font-weight:700;display:flex}.actual-md-cell{color:var(--text-secondary);text-align:center;background:#fafbfc;border:1px dashed #d1d5db;border-radius:4px;min-width:36px;margin-top:2px;padding:2px 6px;font-size:12px}.actual-md-input{text-align:center;width:52px;transition:all var(--transition);color:var(--text-secondary);background:#fafbfc;border:1px dashed #d1d5db;border-radius:4px;padding:3px 4px;font-size:12px}.actual-md-input:hover{background:#fff;border-color:#9ca3af}.actual-md-input:focus{border-color:var(--lenovo-red);color:var(--text);background:#fff;border-style:solid;outline:none;box-shadow:0 0 0 2px #e600120f}.actual-md-input.filled{color:var(--success);background:#f0fdf4;border-style:solid;border-color:#bbf7d0;font-weight:600}.user-badge{letter-spacing:.02em;text-transform:lowercase;color:#2563eb;vertical-align:middle;background:#3b82f61f;border:1px solid #3b82f64d;border-radius:9px;flex-shrink:0;justify-content:center;align-self:center;align-items:center;height:18px;padding:0 7px;font-size:10px;font-weight:700;line-height:1;display:inline-flex;position:relative;top:-1px}.resource-badge{letter-spacing:.03em;border-radius:20px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.resource-badge.internal{color:#2563eb;background:#eff6ff}.resource-badge.external{color:#ea580c;background:#fff7ed}.resource-filter-bar{gap:8px;margin-bottom:14px;display:flex}.resource-filter-chip{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500}.resource-filter-chip:hover{color:var(--text);border-color:#d1d5db}.resource-filter-chip.active.internal{color:#2563eb;background:#eff6ff;border-color:#93c5fd;font-weight:600}.resource-filter-chip.active.external{color:#ea580c;background:#fff7ed;border-color:#fdba74;font-weight:600}.toggle-row{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:12px;display:flex}.toggle-switch{width:36px;height:20px;transition:background var(--transition);cursor:pointer;background:#d1d5db;border-radius:10px;position:relative}.toggle-switch.on{background:var(--lenovo-red)}.toggle-switch:after{content:"";width:16px;height:16px;transition:transform var(--transition);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.toggle-switch.on:after{transform:translate(16px)}.stat-card.subtle{border:1px dashed var(--border);background:#fafbfc}.stat-value.int-cost{color:#2563eb}.stat-value.ext-cost{color:#ea580c}.pa-bar-row{align-items:center;gap:10px;margin-bottom:8px;display:flex}.pa-bar-label{width:60px;color:var(--text-muted);font-size:11px;font-weight:500}.pa-bar-track{background:#f3f4f6;border-radius:4px;flex:1;height:18px;position:relative;overflow:hidden}.pa-bar-planned{background:var(--lenovo-red);opacity:.7;z-index:2;border-radius:4px;height:100%;position:absolute;top:0;left:0}.pa-bar-actual{background:var(--success);opacity:.8;z-index:1;border-radius:4px;height:100%;position:absolute;top:0;left:0}.pa-bar-value{text-align:right;width:55px;color:var(--text-secondary);font-size:11px;font-weight:600}.dash-chart-row-3{grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:24px;display:grid}@media (width<=1200px){.dash-chart-row-3{grid-template-columns:1fr 1fr}}@media (width<=768px){.dash-chart-row-3{grid-template-columns:1fr}}.resource-type-select{border:1px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;appearance:none;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:600}.resource-type-select.Internal{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.resource-type-select.External{background:var(--accent-orange);border-color:var(--accent-orange);color:#fff}.resource-type-select option{color:#1f2937;background:#fff}.resource-type-select:focus{border-color:var(--lenovo-red);outline:none}.login-page{background:linear-gradient(135deg,#fef2f2 0%,#f3f4f6 50%,#eef2ff 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:420px;padding:40px 36px}.login-header{text-align:center;margin-bottom:28px}.login-logo{background:var(--lenovo-red);color:#fff;border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:16px;font-size:26px;font-weight:800;display:inline-flex}.login-header h1{color:var(--text);margin-bottom:4px;font-size:22px;font-weight:700}.login-header p{color:var(--text-muted);font-size:13px}.login-error{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-sm);border:1px solid #fecaca;margin-bottom:16px;padding:10px 14px;font-size:13px}.login-form{flex-direction:column;gap:16px;display:flex}.login-form .form-group label{color:var(--text-secondary);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.login-form .form-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;transition:all var(--transition);background:var(--bg-card);padding:10px 14px;font-size:14px}.login-form .form-input:focus{border-color:var(--lenovo-red);outline:none;box-shadow:0 0 0 3px #e600121a}.login-form .form-input.input-error{border-color:var(--danger)}.login-form .form-error{color:var(--danger);margin-top:3px;font-size:11px}.login-btn{width:100%;margin-top:4px;padding:12px;font-size:15px;font-weight:600}.login-footer{text-align:center;border-top:1px solid var(--border-light);margin-top:20px;padding-top:16px}.login-footer p{color:var(--text-muted);font-size:13px}.link-btn{color:var(--lenovo-red);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.link-btn:hover{color:var(--lenovo-red-dark)}.detail-tabs{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;gap:2px;margin-bottom:16px;padding:3px;display:inline-flex}.detail-tab{color:var(--text-secondary);transition:all var(--transition);border-radius:7px;padding:7px 18px;font-size:13px;font-weight:600}.detail-tab:hover{color:var(--text);background:var(--bg)}.detail-tab.active{background:var(--lenovo-red);color:#fff;box-shadow:var(--shadow-sm)}.progress-view{flex-direction:column;gap:16px;display:flex}.progress-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px 20px}.progress-overview-title{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.progress-overview-title strong{font-size:15px}.progress-overview-title span{color:var(--text-muted);font-size:12px}.phase-stepper{align-items:flex-start;padding:4px 0 8px;display:flex}.phase-node{min-width:0;transition:all var(--transition);background:0 0;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:4px 2px;display:flex;position:relative}.phase-node:not(:disabled):hover{background:var(--bg)}.phase-node:disabled{cursor:not-allowed;opacity:.75}.phase-dot{border:2px solid var(--border);background:var(--bg-card);width:26px;height:26px;color:var(--text-muted);transition:all var(--transition);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.phase-dot.done{background:var(--success);border-color:var(--success);color:#fff}.phase-dot.active{background:var(--lenovo-red);border-color:var(--lenovo-red);color:#fff}.phase-dot.locked{background:var(--bg);color:var(--text-muted)}.phase-node.selected .phase-dot{box-shadow:0 0 0 3px #e600122e}.phase-label{color:var(--text-secondary);text-align:center;text-transform:uppercase;letter-spacing:.2px;word-break:break-word;font-size:10px;font-weight:600;line-height:1.25}.phase-node.done .phase-label{color:var(--success)}.phase-node.active .phase-label{color:var(--lenovo-red)}.phase-connector{background:var(--border);border-radius:2px;flex:1;min-width:6px;height:2px;margin-top:16px}.phase-node.done+.phase-connector,.phase-node.active+.phase-connector{background:#d1fae5}.phase-detail-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.phase-detail-card.done{border-color:#bbf7d0}.phase-detail-header{border-bottom:1px solid var(--border-light);background:var(--bg);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.phase-detail-title{align-items:center;gap:10px;display:flex}.phase-detail-title strong{font-size:15px}.badge{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.badge-green{background:var(--success-bg);color:#065f46;border:1px solid #bbf7d0}.badge-red{background:var(--brand-bg);color:var(--lenovo-red-dark);border:1px solid #fecaca}.badge-gray{background:var(--border);color:var(--text-secondary);border:1px solid var(--border)}.done-toggle{border:1.5px solid var(--border);color:var(--text-secondary);background:var(--bg-card);transition:all var(--transition);border-radius:8px;padding:6px 14px;font-size:12.5px;font-weight:600}.done-toggle:hover{border-color:var(--success);color:var(--success)}.done-toggle.on{background:var(--success);border-color:var(--success);color:#fff}.phase-detail-body{padding:14px 20px 16px}.phase-field{align-items:center;gap:12px;margin-bottom:6px;display:flex}.phase-field label{color:var(--text-secondary);min-width:80px;font-size:12.5px;font-weight:600}.date-input{border:1px solid var(--border);background:var(--bg-card);color:var(--text);transition:border-color var(--transition);border-radius:7px;outline:none;padding:5px 10px;font-size:13px}.date-input:focus{border-color:var(--lenovo-red)}.date-input:disabled{background:var(--bg);color:var(--text-muted);cursor:not-allowed}.date-sm{padding:3px 8px;font-size:12px}.signoff-block{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px}.signoff-toggle{color:var(--text-secondary);border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:13px;font-weight:600;display:inline-flex}.signoff-toggle:hover{background:var(--bg)}.signoff-caret{color:var(--text-muted);font-size:11px}.signoff-list{flex-direction:column;gap:6px;margin-top:8px;display:flex}.signoff-row{border:1px solid var(--border);background:var(--bg-card);border-radius:8px;align-items:center;gap:10px;padding:7px 12px;display:flex}.signoff-row.done{background:var(--success-bg);border-color:#bbf7d0}.signoff-check{border:2px solid var(--border);background:var(--bg-card);color:#fff;width:20px;height:20px;transition:all var(--transition);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.signoff-check:hover{border-color:var(--success)}.signoff-check.on{background:var(--success);border-color:var(--success)}.signoff-label{flex:1;font-size:13px;font-weight:600}.signoff-row.done .signoff-label{color:#065f46}.phase-hint{color:var(--text-muted);margin-top:10px;font-size:12px}.phase-hint.success{color:var(--success);font-weight:600}.progress-board{flex-direction:column;gap:10px;display:flex}.progress-board-header{justify-content:space-between;align-items:baseline;display:flex}.progress-board-header strong{font-size:15px}.progress-board-header span{color:var(--text-muted);font-size:12px}.board-columns{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=1100px){.board-columns{grid-template-columns:repeat(2,1fr)}}.board-col{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);min-height:120px;box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.board-col-header{border-bottom:1px solid var(--border-light);align-items:center;gap:7px;padding:10px 14px;display:flex}.board-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.board-col-header strong{flex-shrink:0;font-size:13px}.board-count{color:var(--text-muted);background:var(--bg);border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:700}.board-add-btn{background:var(--bg);width:22px;height:22px;color:var(--text-secondary);transition:all var(--transition);border-radius:6px;margin-left:auto;font-size:14px;line-height:1}.board-add-btn:hover{background:var(--lenovo-red);color:#fff}.board-col-body{flex-direction:column;gap:8px;min-height:60px;padding:10px;display:flex}.board-card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:all var(--transition);border-radius:9px;padding:9px 11px}.board-card:hover{box-shadow:var(--shadow-md);border-color:#d1d5db}.board-card-title{word-break:break-word;white-space:pre-wrap;font-size:13px;font-weight:600;line-height:1.4}.board-card-meta{margin-top:5px}.eta{color:var(--text-secondary);font-size:11.5px;font-weight:600}.eta.overdue{color:var(--danger)}.board-card-footer{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.status-dots{align-items:center;gap:6px;display:flex}.status-dot{border:2px solid var(--border);width:14px;height:14px;transition:all var(--transition);background:0 0;border-radius:50%}.status-dot:hover{transform:scale(1.2)}.status-dot.active{border-width:2px}.board-del-btn{width:20px;height:20px;color:var(--text-muted);opacity:0;transition:all var(--transition);border-radius:5px;justify-content:center;align-items:center;font-size:11px;display:flex}.board-card:hover .board-del-btn{opacity:1}.board-del-btn:hover{background:var(--danger-bg);color:var(--danger)}.board-card-actions{align-items:center;gap:2px;display:flex}.board-edit-btn{width:20px;height:20px;color:var(--text-muted);opacity:0;transition:all var(--transition);border-radius:5px;justify-content:center;align-items:center;font-size:12px;display:flex}.board-card:hover .board-edit-btn{opacity:1}.board-edit-btn:hover{background:var(--bg);color:var(--text)}.board-empty{border:1.5px dashed var(--border);text-align:center;color:var(--text-muted);cursor:pointer;transition:all var(--transition);border-radius:9px;padding:10px;font-size:12.5px;font-weight:600}.board-empty:hover{border-color:var(--lenovo-red);color:var(--lenovo-red)}.board-add-form{border:1.5px dashed var(--border);background:var(--bg);border-radius:9px;flex-direction:column;gap:7px;padding:9px;display:flex}.board-title-input{border:1px solid var(--border);background:var(--bg-card);border-radius:7px;outline:none;padding:6px 9px;font-family:inherit;font-size:13px;line-height:1.4}.board-title-input:focus{border-color:var(--lenovo-red)}.board-title-textarea{resize:vertical;min-height:32px;max-height:200px;overflow-y:auto}.board-add-actions{gap:6px;display:flex}
