:root{--bg:#f4f6f8;--surface:#fff;--surface-soft:#f8fafc;--border:#dfe5ec;--text:#17212b;--muted:#687789;--primary:#2563eb;--primary-strong:#1d4ed8;--green:#07815f;--amber:#a05d00;--violet:#6d4cc2;--shadow:0 18px 50px #1c27341f}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-page{background-color:#0000;background-image:linear-gradient(#17212bb8,#17212bb8),url(https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1800&q=80);background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;place-items:center;min-height:100vh;padding:32px;display:grid}.login-panel{grid-template-columns:1.1fr 420px;align-items:stretch;gap:24px;width:min(1040px,100%);display:grid}.session-loading{min-width:280px;color:var(--text);box-shadow:var(--shadow);text-align:center;background:#fffffff5;border-radius:8px;padding:22px 26px;font-weight:700}.login-copy{color:#fff;flex-direction:column;justify-content:flex-end;padding:56px 36px;display:flex}.login-copy h1{letter-spacing:0;margin:10px 0 12px;font-size:46px;line-height:1.12}.login-copy p{color:#ffffffd6;max-width:620px;margin:0;line-height:1.8}.brand-mark{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand-mark.large{width:58px;height:58px;color:var(--primary);background:#fff;font-size:24px}.login-card{box-shadow:var(--shadow);background:#fffffff5;border:1px solid #ffffff73;border-radius:8px;gap:18px;padding:28px;display:grid}.login-title{align-items:center;gap:12px;display:flex}.login-title strong,.brand strong{display:block}.login-title span,.brand span{color:var(--muted);font-size:13px}label{color:#334155;gap:8px;font-size:14px;display:grid}.field-hint{color:var(--muted);font-size:12px;line-height:1.5}input,select,textarea{border:1px solid var(--border);min-height:42px;color:var(--text);background:#fff;border-radius:6px;outline:none;padding:0 12px}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}textarea{resize:vertical;min-height:128px;padding:10px 12px;line-height:1.6}.primary-button,.secondary-button,.panel-header button{border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;display:inline-flex}.primary-button{background:var(--primary);color:#fff;font-weight:700}.primary-button:hover{background:var(--primary-strong)}.secondary-button,.panel-header button{color:var(--primary-strong);background:#eef4ff;border:1px solid #d7e5ff}.danger-button{color:#fff;background:#b42318;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-weight:700;display:inline-flex}.danger-button:hover{background:#912018}button:disabled{cursor:not-allowed;opacity:.55}.client-portal-note{color:#1e3a8a;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;align-items:flex-start;gap:10px;padding:14px 16px;line-height:1.6;display:flex}.client-project-form,.client-video-form{grid-template-columns:repeat(3,minmax(0,1fr))}.client-project-summary,.client-video-note{grid-column:span 2}.client-account-select{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;grid-column:1/-1;gap:10px;margin:0;padding:12px;display:flex}.client-account-select legend{color:#334155;padding:0 4px;font-size:14px}.client-account-select .check-card{min-width:190px}.client-progress-list{gap:18px;display:grid}.client-progress-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow:hidden;box-shadow:0 6px 18px #1c27340f}.client-progress-card-head{background:linear-gradient(135deg,#eff6ff,#fff 68%);justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 18px;display:flex}.client-progress-card-head span,.client-progress-card-head p,.client-video-body>span,.field-hint{color:var(--muted);font-size:13px}.client-progress-card h3,.client-progress-card h4{color:#172554;margin:7px 0 0}.client-progress-card-head p{margin:5px 0 0}.client-stage-badge{color:#1d4ed8;background:#dbeafe;border-radius:999px;flex:none;padding:7px 10px;font-size:14px}.client-stage-control{min-width:150px}.client-stage-track{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0;padding:22px 24px 12px;list-style:none;display:grid}.client-stage-track li{color:#94a3b8;text-align:center;justify-items:center;gap:8px;font-size:13px;display:grid;position:relative}.client-stage-track li:before{z-index:0;content:"";background:#dbe3ed;width:100%;height:3px;position:absolute;top:14px;left:-50%}.client-stage-track li:first-child:before{display:none}.client-stage-track i{z-index:1;background:#fff;border:2px solid #dbe3ed;border-radius:50%;place-items:center;width:30px;height:30px;font-style:normal;font-weight:700;display:grid}.client-stage-track .done{color:#1d4ed8;font-weight:700}.client-stage-track .done:before,.client-stage-track .done i{color:#fff;background:#2563eb;border-color:#2563eb}.client-summary,.client-summary-editor{color:#334155;margin:0 24px 18px;line-height:1.75;display:block}.client-project-edit-grid{background:#f8fbff;border:1px dashed #bfdbfe;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 24px 18px;padding:16px;display:grid}.client-account-editor{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;grid-column:1/-1;gap:10px;margin:0;padding:10px;display:flex}.client-account-editor legend{color:#334155;padding:0 4px;font-size:14px}.client-account-editor .check-card{min-width:190px}.client-summary-editor textarea{min-height:92px;margin-top:8px}.client-progress-card>.field-hint{margin:-4px 24px 18px;display:block}.client-video-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;padding:4px 24px 24px;display:grid}.client-video-card{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden}.client-video-shot{background:#e2e8f0;height:156px;display:block}.client-video-shot img{object-fit:cover;width:100%;height:100%}.client-video-shot.placeholder,.client-video-empty{color:#64748b;background:#f8fafc;place-items:center;min-height:116px;display:grid}.client-video-body{gap:8px;padding:14px;display:grid}.client-video-body p{color:#475569;margin:0;line-height:1.6}.client-video-note-text{min-height:44px}.client-video-link{width:fit-content;margin-top:3px;text-decoration:none}.client-video-editor{border-top:1px dashed var(--border);gap:10px;margin-top:4px;padding-top:10px;display:grid}.client-video-editor summary{color:var(--primary-strong);cursor:pointer;font-size:13px;font-weight:700}.client-video-editor textarea{min-height:80px}.client-empty p{color:var(--muted);margin:0}.login-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.link-button{min-height:28px;color:var(--primary-strong);text-align:left;background:0 0;border:0;justify-self:start;padding:0;font-weight:700}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.app-shell>*{min-width:0}.sidebar{color:#e5e7eb;background:#111827;flex-direction:column;gap:20px;padding:20px 14px;display:flex}.brand{border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;padding:6px 8px 14px;display:flex}.brand span{color:#9ca3af}.menu{gap:18px;display:grid;overflow:auto}.menu-group{gap:4px;display:grid}.menu-group-label{color:#718096;letter-spacing:.08em;padding:0 10px 5px;font-size:11px;font-weight:700}.menu-item{color:#cbd5e1;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;min-height:40px;padding:0 10px;display:flex}.menu-item:hover,.menu-item.active{color:#fff;background:#60a5fa2b}.main{min-width:0;padding:24px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.topbar h1{letter-spacing:0;margin:4px 0 0;font-size:28px}.eyebrow{color:var(--muted);margin:0;font-size:13px}.data-status{min-height:26px;color:var(--primary-strong);background:#eef4ff;border:1px solid #cfe0ff;border-radius:999px;align-items:center;margin-top:8px;padding:0 9px;font-size:13px;display:inline-flex}.topbar-actions{align-items:center;gap:10px;display:flex}.topbar-control{position:relative}.search{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:8px;width:280px;height:42px;padding:0 12px;display:flex}.search input{box-shadow:none;min-height:unset;border:0;width:100%;padding:0}.icon-button,.user-pill button{border:1px solid var(--border);width:42px;height:42px;color:var(--text);background:#fff;border-radius:8px;place-items:center;display:grid}.notification-button{position:relative}.notification-button>span{border:2px solid var(--bg);color:#fff;background:#b42318;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:800;display:grid;position:absolute;top:-5px;right:-5px}.quick-popover{z-index:20;border:1px solid var(--border);background:var(--surface);width:320px;max-height:360px;box-shadow:var(--shadow);border-radius:8px;padding:8px;position:absolute;top:calc(100% + 8px);right:0;overflow:auto}.quick-popover button{width:100%;min-height:48px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;display:flex}.quick-popover button:hover{background:var(--surface-soft)}.quick-popover button strong,.quick-popover button span{text-overflow:ellipsis;overflow:hidden}.search-results button{justify-content:stretch;gap:4px;display:grid}.search-results button span,.quick-popover p{color:var(--muted);margin:0;font-size:13px}.reminder-popover{width:260px}.reminder-popover>strong{padding:8px 10px 6px;display:block}.reminder-popover b{min-width:30px;height:28px;color:var(--primary-strong);background:#eef4ff;border-radius:6px;place-items:center;display:grid}.user-pill{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:8px;height:42px;padding-left:12px;display:flex}.password-input-row{grid-template-columns:minmax(0,1fr) 42px;gap:8px;display:grid}.password-input-row button{border:1px solid var(--border);min-height:42px;color:var(--text);background:#fff;border-radius:8px;place-items:center;display:grid}.password-reset-actions{justify-content:space-between;align-items:center;gap:12px;margin:12px 0;display:flex}.password-reset-actions span,.temporary-password-notice em{color:var(--muted);font-size:13px;font-style:normal}.temporary-password-notice{background:#eefaf3;border:1px solid #b8dfca;border-radius:8px;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;margin-bottom:12px;padding:12px;display:grid}.temporary-password-notice strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px}.show-password-toggle{align-items:center;gap:8px;display:flex}.show-password-toggle input{width:auto;min-height:auto}.form-success{color:#067647;margin:0}.content-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);gap:20px;display:grid}.metric-grid{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.dashboard-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.metric-card,.panel,.module-hero{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 28px #1923300f}.metric-card{gap:8px;min-height:122px;padding:18px;display:grid}.metric-card span,.future-item span,.todo-item span{color:var(--muted);font-size:13px}.metric-card strong{font-size:26px}.metric-card em{font-style:normal;font-weight:700}.metric-card.green em{color:var(--green)}.metric-card.blue em{color:var(--primary)}.metric-card.amber em{color:var(--amber)}.metric-card.violet em{color:var(--violet)}.panel{min-width:0;padding:18px}.wide{grid-column:1/-1}.panel-header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.panel-header h3,.module-hero h2{letter-spacing:0;margin:0}.panel-meta{color:var(--muted);text-align:right;font-size:13px}.table-wrap{overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--border);border-radius:8px;max-height:min(58vh,560px);overflow:auto}table{border-collapse:collapse;background:#fff;width:100%;min-width:720px}th,td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:13px 14px}th{z-index:2;background:var(--surface-soft);color:#475569;box-shadow:0 1px 0 var(--border);font-size:13px;position:sticky;top:0}td{color:#263443}.list-locator{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;grid-template-columns:auto minmax(180px,1fr) minmax(210px,1fr) auto;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;display:grid}.list-locator>svg{color:var(--muted)}.list-locator input,.list-locator select{min-height:38px}.list-locator>span{color:var(--muted);white-space:nowrap;font-size:12px}tr.located-row td{background:#fff4cc;transition:background .18s}.attachment-list{white-space:normal;gap:4px;min-width:150px;display:grid}.attachment-list a{color:var(--primary-strong);word-break:break-all;font-size:13px;font-weight:700;line-height:1.45;text-decoration:none}.attachment-list a:hover{text-decoration:underline}.status{min-height:26px;color:var(--primary-strong);background:#eef4ff;border-radius:999px;align-items:center;padding:0 9px;font-size:13px;display:inline-flex}.todo-list,.future-list{gap:10px;display:grid}.todo-item,.future-item{background:var(--surface-soft);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:62px;padding:12px;display:flex}.todo-item div,.future-item div:first-child{gap:5px;display:grid}.todo-item em,.future-item em{color:var(--primary-strong);white-space:nowrap;font-style:normal;font-weight:700}.future-item{grid-template-columns:minmax(0,1fr) 44px auto;display:grid}.probability{border-radius:6px;place-items:center;min-height:28px;font-size:13px;font-weight:700;display:grid}.probability.高{color:#047857;background:#dff8eb}.probability.中{color:#92400e;background:#fff1d6}.probability.低{color:#9f1239;background:#ffe4e6}.chart-row{grid-template-columns:repeat(12,1fr);align-items:end;gap:10px;height:260px;padding:16px 6px 0;display:grid}.chart-legend{color:var(--muted);justify-content:flex-end;gap:16px;font-size:13px;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-legend i{background:var(--primary);border-radius:3px;width:10px;height:10px}.chart-legend i.profit{background:var(--green)}.bar-wrap{text-align:center;height:100%;color:var(--muted);grid-template-rows:1fr auto;align-items:end;gap:8px;font-size:12px;display:grid}.bar-pair{justify-content:center;align-items:flex-end;gap:3px;height:100%;display:flex}.bar{background:var(--primary);border-radius:6px 6px 0 0;width:min(18px,45%);min-height:0}.bar.profit{background:var(--green)}.bar.profit.negative{background:#b42318}.empty-state{border:1px dashed var(--border);background:var(--surface-soft);min-height:84px;color:var(--muted);text-align:center;border-radius:8px;place-items:center;padding:18px;display:grid}.chart-empty{min-height:220px;margin-top:10px}.module-hero{grid-column:1/-1;justify-content:space-between;align-items:center;gap:18px;padding:22px;display:flex}.module-hero p{color:var(--muted);margin:8px 0 0;line-height:1.7}.action-row,.filter-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filter-row{margin-bottom:14px}.file-control{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.file-control input{display:none}.filter-row input,.filter-row select{min-width:180px}.data-form{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;padding:14px;display:grid}.data-form.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.data-form.one-column{grid-template-columns:1fr}.settings-form label:nth-of-type(n+7){grid-column:span 2}.data-form .primary-button{align-self:end;min-height:42px}.project-description-field{grid-column:span 2}.project-description-field textarea{min-height:96px}.project-detail-layout{grid-column:1/-1;grid-template-columns:1fr;gap:18px;min-width:0;display:grid}.project-detail-heading{align-items:flex-start;gap:18px;display:flex}.project-detail-heading .secondary-button{flex:none;align-items:center;gap:7px;display:inline-flex}.project-detail-heading h2{letter-spacing:0;margin:4px 0 6px;font-size:26px}.project-detail-heading p:last-child{color:var(--muted);margin:0}.project-detail-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.project-detail-metrics .metric-card{min-height:104px}.project-introduction textarea{width:100%}.project-description-actions{justify-content:flex-end;margin-top:12px;display:flex}.project-description-copy{color:#334155;white-space:pre-wrap;margin:0;line-height:1.8}.project-chart-grid{grid-template-columns:minmax(260px,.72fr) minmax(520px,1.28fr);align-items:stretch;gap:24px;display:grid}.receipt-chart{align-content:center;place-items:center;gap:18px;min-height:290px;display:grid}.donut-chart{border-radius:50%;place-items:center;width:210px;height:210px;display:grid}.donut-center{text-align:center;background:#fff;border-radius:50%;place-content:center;gap:5px;width:142px;height:142px;display:grid}.donut-center strong{font-size:28px}.donut-center span,.project-bar-column>span{color:var(--muted);font-size:12px}.receipt-legend{gap:8px;font-size:13px;display:grid}.receipt-legend span{align-items:center;gap:8px;display:flex}.receipt-legend i{border-radius:2px;width:10px;height:10px}.receipt-legend i.received{background:var(--green)}.receipt-legend i.outstanding{background:#d9e0e8}.project-bar-chart{grid-template-columns:repeat(5,minmax(88px,1fr));align-items:end;gap:12px;min-width:0;height:290px;padding-top:12px;display:grid;overflow-x:auto}.project-bar-column{text-align:center;grid-template-rows:38px minmax(150px,1fr) 32px;align-items:end;gap:7px;min-width:88px;height:100%;display:grid}.project-bar-column>strong{white-space:nowrap;align-self:center;font-size:12px}.project-bar-track{background:#f1f4f7;border-radius:6px 6px 0 0;justify-self:center;align-items:flex-end;width:46px;height:100%;display:flex;overflow:hidden}.project-bar{background:#64748b;width:100%;min-height:0}.project-bar.invoice{background:#6d4cc2}.project-bar.income{background:var(--green)}.project-bar.cost{background:#d97706}.project-bar.profit{background:var(--primary)}.project-bar.loss{background:#b42318}.section-gap{margin-top:20px}.approved-cost-composition{gap:14px;display:grid}.approved-cost-composition .panel-header{margin-bottom:0}.cost-composition-toolbar{background:#f5f9ff;border:1px solid #dbe7f6;border-radius:8px;justify-content:space-between;align-items:end;gap:16px;padding:14px;display:flex}.cost-composition-toolbar p{color:#526477;max-width:620px;margin:0;line-height:1.65}.cost-composition-toolbar label{flex:none;width:min(230px,100%)}.cost-composition-grid{grid-template-columns:repeat(auto-fit,minmax(176px,1fr));gap:10px;display:grid}.cost-composition-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;align-content:space-between;gap:9px;min-height:108px;padding:14px;display:grid}.cost-composition-card span,.cost-composition-card em{color:var(--muted);font-size:13px;font-style:normal}.cost-composition-card strong{color:var(--primary-strong);font-size:20px}.approved-cost-table{max-height:min(48vh,460px)}.split-forms{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.report-tabs{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.report-tabs button{border:1px solid var(--border);color:#475569;background:#fff;border-radius:6px;min-height:38px;padding:0 14px}.report-tabs button.active,.report-tabs button:hover{color:var(--primary-strong);background:#eef4ff;border-color:#cfe0ff}.approval-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.approval-summary div{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;gap:6px;min-height:82px;padding:14px;display:grid}.approval-summary span{color:var(--muted);font-size:13px}.approval-summary strong{font-size:24px}.table-actions{gap:8px;display:inline-flex}.project-status-select{min-width:112px;min-height:32px;padding:0 30px 0 9px}.table-date-input{min-width:148px;min-height:34px;padding:0 8px}.receivable-timeline{overscroll-behavior:contain;gap:10px;max-height:min(52vh,520px);padding-right:2px;display:grid;overflow:auto}.recent-receivable-table{max-height:none}.recent-receivable-table table{table-layout:fixed;min-width:0}.recent-receivable-table th,.recent-receivable-table td{white-space:normal;vertical-align:middle}.recent-receivable-table th:nth-child(2),.recent-receivable-table td:nth-child(2){text-align:right;width:132px}.recent-receivable-name,.recent-receivable-arrival{gap:4px;min-width:0;display:grid}.recent-receivable-name strong,.recent-receivable-name em{overflow-wrap:anywhere}.recent-receivable-name em,.recent-receivable-arrival em{color:var(--muted);font-size:13px;font-style:normal}.recent-receivable-arrival{white-space:nowrap;justify-items:end}.recent-receivable-arrival em{color:var(--primary-strong);font-weight:700}.timeline-item{border:1px solid var(--border);background:var(--surface-soft);width:100%;min-height:70px;color:var(--text);text-align:left;border-radius:8px;grid-template-columns:92px 18px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.timeline-item:hover{background:#f5f8ff;border-color:#cfe0ff}.timeline-date{color:var(--muted);white-space:nowrap;font-size:13px}.timeline-dot{background:var(--primary);border-radius:999px;width:12px;height:12px;box-shadow:0 0 0 5px #e6efff}.timeline-item.overdue .timeline-dot{background:#b42318;box-shadow:0 0 0 5px #ffe3df}.timeline-item.done .timeline-dot{background:var(--green);box-shadow:0 0 0 5px #dff8eb}.timeline-main,.timeline-money{gap:5px;display:grid}.timeline-main{min-width:0}.timeline-main strong,.timeline-main em,.weekly-digest-item strong,.weekly-digest-item em{text-overflow:ellipsis;overflow:hidden}.timeline-main em,.timeline-money em{color:var(--muted);font-size:13px;font-style:normal}.timeline-money{text-align:right;white-space:nowrap}.weekly-digest{gap:10px;display:grid}.weekly-digest-item{border:1px solid var(--border);background:var(--surface-soft);min-height:78px;color:var(--text);text-align:left;border-radius:8px;gap:5px;padding:12px;display:grid}.weekly-digest-item:hover{background:#f5f8ff;border-color:#cfe0ff}.weekly-digest-item span,.weekly-digest-item em{color:var(--muted);font-size:13px;font-style:normal}.weekly-form{gap:16px;display:grid}.weekly-team-overview{gap:14px;display:grid}.weekly-team-overview .panel-header{margin-bottom:0}.weekly-overview-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.weekly-overview-stats div{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;align-content:center;gap:6px;min-height:82px;padding:13px 14px;display:grid}.weekly-overview-stats span,.weekly-missing-note{color:var(--muted);font-size:13px}.weekly-overview-stats strong{font-size:22px}.weekly-missing-note{color:#8a5700;background:#fff8e7;border-radius:7px;margin:0;padding:10px 12px;line-height:1.6}.weekly-missing-note.is-complete{color:#067647;background:#ecfdf3}.weekly-period{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;grid-template-columns:minmax(180px,.8fr) repeat(2,minmax(180px,1fr));gap:12px;padding:14px;display:grid}.weekly-period>div{align-content:center;gap:6px;display:grid}.weekly-period span,.weekly-summary-head span,.weekly-summary-card span{color:var(--muted);font-size:13px}.weekly-days{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.weekly-days textarea{min-height:104px}.weekly-next-plan textarea{min-height:116px}.weekly-summary-list{gap:14px;display:grid}.weekly-archive-controls{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;justify-content:space-between;align-items:end;gap:14px;margin-bottom:14px;padding:12px 14px;display:flex}.weekly-archive-controls label{width:min(280px,100%)}.weekly-archive-controls span{color:var(--muted);font-size:13px}.weekly-summary-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;gap:14px;padding:14px;display:grid}.weekly-summary-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.weekly-summary-head>div{gap:5px;display:grid}.weekly-summary-head em{color:var(--muted);white-space:nowrap;font-size:13px;font-style:normal}.weekly-summary-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.weekly-summary-days{grid-template-columns:repeat(7,minmax(120px,1fr));gap:8px;display:grid;overflow-x:auto}.weekly-summary-days div,.weekly-summary-next{border:1px solid var(--border);background:#fff;border-radius:8px;min-width:0;padding:10px}.weekly-summary-days p,.weekly-summary-next p{color:#334155;white-space:pre-wrap;margin:6px 0 0;line-height:1.6}.monthly-report-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.monthly-report-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;gap:14px;min-width:0;padding:16px;display:grid}.monthly-report-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;display:flex}.monthly-report-head>div{gap:4px;display:grid}.monthly-report-head span,.monthly-report-section>span{color:var(--muted);font-size:13px}.monthly-report-head strong{font-size:17px}.monthly-report-head em{color:var(--muted);white-space:nowrap;font-size:12px;font-style:normal}.monthly-report-section{min-width:0}.monthly-report-section ul{color:#334155;margin:8px 0 0;padding-left:20px;line-height:1.75}.monthly-report-section li+li{margin-top:4px}.monthly-report-section p{color:var(--muted);margin:8px 0 0;line-height:1.7}.table-actions button{border:1px solid var(--border);min-height:30px;color:var(--primary-strong);white-space:nowrap;background:#fff;border-radius:6px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.table-actions button:hover{background:#eef4ff;border-color:#cfe0ff}.table-actions .delete-record-button,.delete-record-button{color:#b42318;border-color:#f0c7c2}.table-actions .delete-record-button:hover,.delete-record-button:hover{background:#fff1ef;border-color:#e7a39b}.modal-backdrop{z-index:50;background:#0f172a8f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--border);background:var(--surface);width:min(520px,100%);max-height:calc(100vh - 40px);box-shadow:var(--shadow);border-radius:8px;gap:18px;padding:22px;display:grid;overflow:auto}.modal-panel h3{letter-spacing:0;margin:0 0 8px;font-size:20px}.modal-panel p{color:var(--muted);margin:0;line-height:1.7}.modal-panel textarea{min-height:100px}.cost-correction-dialog{width:min(760px,100%)}.cost-correction-dialog .data-form{margin:0}.correction-wide-field{grid-column:span 3}.form-status{font-size:13px;color:#b42318!important;margin:-6px 0 0!important}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.permission-layout{grid-template-columns:220px minmax(0,1fr);gap:16px;display:grid}.user-list{align-content:start;gap:8px;display:grid}.user-row{border:1px solid var(--border);text-align:left;background:#fff;border-radius:8px;gap:4px;min-height:58px;padding:10px 12px;display:grid}.user-row.selected{border-color:var(--primary);background:#eef4ff}.user-row em{color:var(--muted);font-size:13px;font-style:normal}.user-create-controls{gap:8px;margin-top:4px;display:grid}.user-create-controls label{color:var(--muted);gap:6px;font-size:13px;display:grid}.permission-account-actions{justify-content:flex-end;align-items:center;min-height:42px;margin:12px 0;display:flex}.permission-account-actions span{color:var(--muted);font-size:13px}.permission-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.check-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;align-items:center;gap:8px;min-height:46px;padding:10px;display:flex}.check-card input{min-height:auto}.backup-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.backup-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;align-content:start;gap:12px;min-height:150px;padding:16px;display:grid}.backup-card p{color:var(--muted);margin:0;line-height:1.7}.deployment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.deployment-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;align-content:start;gap:10px;min-height:112px;padding:14px;display:grid}.deployment-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.deployment-title strong{line-height:1.35}.deployment-card p{color:var(--muted);margin:0;line-height:1.65}.deployment-badge{color:var(--primary-strong);background:#eef4ff;border-radius:999px;flex:none;padding:5px 9px;font-size:12px;font-weight:800}.deployment-badge.ready{color:var(--green);background:#e7f8f1}.deployment-badge.attention{color:var(--amber);background:#fff4df}.deployment-badge.pending,.deployment-badge.local{color:var(--muted);background:#eef1f5}.form-error{color:#b91c1c;margin:-4px 0 0;font-size:13px;font-weight:700}@media (max-width:1120px){.app-shell{grid-template-columns:86px minmax(0,1fr)}.brand div:not(.brand-mark),.menu-item span,.menu-group-label{display:none}.menu-item{justify-content:center}.metric-grid,.dashboard-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-chart-grid,.content-grid{grid-template-columns:1fr}}@media (max-width:760px){.login-page{padding:16px}.login-panel{grid-template-columns:1fr}.login-copy{padding:24px 4px}.login-copy h1{font-size:34px}.app-shell{grid-template-columns:1fr}.sidebar{z-index:5;width:100vw;max-width:100vw;padding:10px;display:block;position:sticky;top:0;overflow:hidden}.brand{margin-bottom:8px}.brand div:not(.brand-mark),.menu-item span{display:block}.menu{gap:8px;width:100%;display:flex;overflow-x:auto}.menu-group{display:contents}.menu-group-label{display:none}.menu-item{flex:none;justify-content:flex-start;width:auto}.main{width:100%;max-width:100vw;padding:16px;overflow:hidden}.topbar{flex-direction:column;align-items:flex-start}.topbar-actions,.search{width:100%}.topbar-control:first-child{flex:1}.quick-popover{max-width:calc(100vw - 32px);left:0;right:auto}.reminder-popover{left:auto;right:0}.metric-grid,.dashboard-metric-grid,.permission-layout,.permission-grid,.backup-grid,.deployment-grid,.weekly-period,.weekly-days,.split-forms,.approval-summary,.data-form,.data-form.compact,.client-project-form,.client-video-form{grid-template-columns:1fr}.client-project-summary,.client-video-note{grid-column:span 1}.client-stage-track{gap:10px;padding:18px 16px 10px}.client-stage-track li{font-size:11px}.client-stage-track li:before{top:12px}.client-stage-track i{width:26px;height:26px}.client-progress-card-head{flex-direction:column;padding:18px 16px 14px}.client-summary,.client-summary-editor{margin-left:16px;margin-right:16px}.client-project-edit-grid{grid-template-columns:1fr;margin-left:16px;margin-right:16px}.client-progress-card>.field-hint{margin-left:16px;margin-right:16px}.client-video-grid{padding-left:16px;padding-right:16px}.monthly-report-grid{grid-template-columns:1fr}.weekly-archive-controls,.monthly-report-head,.cost-composition-toolbar{flex-direction:column;align-items:flex-start}.weekly-overview-stats{grid-template-columns:1fr}.project-description-field{grid-column:span 1}.list-locator{grid-template-columns:auto 1fr}.list-locator select,.list-locator>span{grid-column:1/-1}.project-detail-heading{flex-direction:column}.module-hero{flex-direction:column;align-items:flex-start}.timeline-item{grid-template-columns:1fr}.timeline-money{text-align:left}.panel,.module-hero,.topbar,.content-grid{min-width:0;max-width:100%}}
