:root{color-scheme:light;--bg: #f4f7f6;--surface: #ffffff;--surface-soft: #eef5f2;--line: #d8e2de;--text: #13201d;--muted: #63736e;--primary: #0f766e;--primary-dark: #115e59;--accent: #d97706;--danger: #b91c1c;--warn: #b45309;--good: #15803d;--shadow: 0 18px 45px rgba(15, 23, 42, .08)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}[v-cloak]{display:none}#app{min-height:100vh}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:32px;background:linear-gradient(90deg,#04151257,#0415121a),url(/assets/login-bg-Bs5WgQbK.jpg) center / cover no-repeat}.auth-card{width:min(430px,100%);display:grid;gap:14px;padding:32px;border:1px solid rgba(255,255,255,.72);border-radius:8px;background:#fffffff0;box-shadow:0 24px 70px #0f172a3d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-card h1{font-size:32px}.auth-mark{width:54px;height:54px}.auth-error{margin-bottom:0;color:var(--danger);font-weight:700}.sidebar{position:fixed;top:0;left:0;z-index:10;width:240px;height:100vh;display:flex;flex-direction:column;padding:22px 18px;background:url(/assets/sidebar-bg-BTaSRCdP.png) center bottom / cover no-repeat;color:#f8fafc}.brand{display:flex;align-items:center;gap:12px;min-height:56px;margin-bottom:26px}.brand-avatar{width:56px;height:56px;flex:0 0 auto;border:3px solid rgba(255,255,255,.72);border-radius:50%;object-fit:cover;background:#ffffff1f}.brand strong,.brand span{display:block}.brand strong{font-size:18px}.brand span{margin-top:4px;color:#b7c8c3;font-size:13px}.nav{display:grid;gap:8px}.nav button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:#dbe7e3;text-align:left}.nav button.active,.nav button:hover{border-color:#ffffff2e;background:#ffffff1a;color:#fff}.nav-icon{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;background:#ffffff1f;font-size:16px;line-height:1}.sidebar-logout{width:100%;min-height:46px;margin-top:auto;border:1px solid rgba(254,202,202,.42);border-radius:8px;background:#c24141;color:#fff;font-weight:800;letter-spacing:0;box-shadow:0 12px 26px #7f1d1d38}.sidebar-logout:hover{background:#a83232}.shell{min-width:0;min-height:100vh;margin-left:240px;padding:24px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.topbar-title{display:flex;align-items:center;gap:12px;min-width:0}.topbar-back-btn{display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text);font-size:25px;line-height:1}.topbar-back-btn:hover{background:var(--surface-soft)}.ledger-page-topbar{align-items:center;margin-bottom:18px}.ledger-page-topbar h1{font-size:20px;line-height:1.2}.ledger-page-topbar .top-actions .month-picker input,.ledger-page-topbar .top-actions .btn{min-height:38px;font-size:14px;font-weight:700}.ledger-page-topbar .top-actions .month-picker input{width:156px}.ledger-page-topbar .top-actions .btn{padding:0 16px}.eyebrow{margin:0 0 6px;color:var(--primary);font-size:13px;font-weight:700}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(26px,4vw,38px);line-height:1.12}h2{margin-bottom:4px;font-size:18px}h3{margin-bottom:4px;font-size:16px}.top-actions,.toolbar,.form-actions,.actions,.step-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.top-actions{align-items:flex-end;justify-content:flex-end;gap:12px}.month-picker{display:grid;gap:8px;color:var(--muted);font-size:13px;font-weight:700}.month-picker input,input,select,textarea{width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:8px 10px;outline:none}textarea{min-height:72px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0f766e24}.btn,.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--text);padding:0 14px;white-space:nowrap}.btn.primary{border-color:var(--primary);background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.subtle{background:var(--surface-soft)}.btn.danger{border-color:#fecaca;background:#fff1f2;color:var(--danger)}.top-actions .month-picker input,.top-actions .btn{min-height:56px}.top-actions .month-picker input{width:220px;font-size:18px;font-weight:800}.top-actions .btn{padding:0 22px;font-size:16px;font-weight:800}.icon-btn{width:36px;height:36px;padding:0;font-size:18px}.view{display:grid;gap:18px}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px}.metric,.panel,.setup-panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.metric{min-height:104px;padding:16px}.metric span{display:block;color:var(--muted);font-size:13px}.metric strong{display:block;margin-top:10px;font-size:34px;line-height:1}.metric.good strong{color:var(--good)}.metric.warn strong{color:var(--warn)}.metric.danger strong{color:var(--danger)}.two-column,.split-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.ledger-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.panel,.setup-panel{padding:18px}.panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.panel-title p,.muted,.empty,small{color:var(--muted)}.panel-title p,.empty{margin-bottom:0}.task-list,.ledger-bars,.list-panel,.steps{display:grid;gap:10px}.ledger-strip-panel{padding:10px 12px}.ledger-strip-panel .panel-title{align-items:center;margin-bottom:8px}.ledger-strip-panel .panel-title>div{display:flex;align-items:baseline;gap:10px;min-width:0}.ledger-strip-panel .panel-title h2,.ledger-strip-panel .panel-title p{margin-bottom:0}.ledger-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.task-row,.list-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfdfc}.task-row strong,.list-item strong{display:block;margin:6px 0 4px}.task-row p,.list-item p,.list-item small{margin-bottom:0}.due-day-number{color:#c24141;font-size:1.32em;font-weight:900;line-height:1}.badge,.tag,.status-pill,.step-order{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:12px;font-weight:700}.badge.priority-urgent{background:#fee2e2;color:#991b1b}.badge.priority-high{background:#ffedd5;color:#9a3412}.badge.priority-mid{background:#fef9c3;color:#854d0e}.badge.neutral,.tag,.status-pill{background:#e0f2fe;color:#075985}.tag{margin:2px 4px 2px 0}.ledger-row,.ledger-card{display:grid;gap:8px;width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfdfc;color:var(--text);text-align:left}.ledger-card.active,.ledger-card:hover,.ledger-row:hover{border-color:var(--primary)}.ledger-row div,.ledger-card div{display:flex;align-items:center;justify-content:space-between;gap:12px}.ledger-strip .ledger-card{flex:0 0 260px;min-height:62px;padding:8px 10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:6px}.ledger-strip .ledger-card strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger-strip .ledger-card span{color:var(--muted);font-size:13px;white-space:nowrap}.ledger-strip .ledger-card progress{grid-column:1 / -1;height:6px}progress{width:100%;height:8px;overflow:hidden;border:0;border-radius:99px;background:#e2e8f0}progress::-webkit-progress-bar{background:#e2e8f0}progress::-webkit-progress-value{background:var(--primary)}progress::-moz-progress-bar{background:var(--primary)}.toolbar{justify-content:space-between;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.ledger-toolbar{flex-wrap:nowrap;justify-content:flex-start}.ledger-toolbar select{flex:1 1 auto;min-width:0;width:auto}.ledger-toolbar .btn{flex:0 0 auto}.customer-toolbar{justify-content:flex-start}.customer-toolbar .search-box{flex:0 1 430px}.customer-toolbar .customer-filter{flex:0 0 180px;width:180px}.customer-toolbar .customer-add-btn{flex:0 0 auto;margin-left:auto;border-color:#b83232;background:#c24141;color:#fff;box-shadow:0 10px 22px #7f1d1d2e}.customer-toolbar .customer-add-btn:hover{border-color:#9f2b2b;background:#a83232}.memo-toolbar,.reminder-toolbar{justify-content:space-between}.memo-toolbar strong,.reminder-toolbar strong{font-size:18px}.memo-add-btn,.reminder-add-btn{border-color:#b83232;background:#c24141;color:#fff;box-shadow:0 10px 22px #7f1d1d2e}.memo-add-btn:hover,.reminder-add-btn:hover{border-color:#9f2b2b;background:#a83232}.search-box{display:grid;grid-template-columns:auto minmax(220px,340px);align-items:center;gap:10px}.table-panel{overflow:auto}table{width:100%;min-width:760px;border-collapse:collapse}th,td{padding:13px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{color:var(--muted);font-size:13px;font-weight:700;background:#f8faf9}td strong,td small{display:block}.ledger-detail{min-height:460px}.ledger-page-view{gap:16px}.ledger-overview-card{display:grid;grid-template-columns:minmax(300px,.58fr) minmax(0,1.42fr);padding:0;overflow:hidden}.ledger-client-block{display:grid;align-content:center;gap:14px;min-height:140px;padding:30px 32px;border-right:1px solid var(--line)}.ledger-client-select{width:100%;min-height:42px;padding:0 28px 0 0;border-color:transparent;background-color:transparent;color:var(--text);font-size:clamp(20px,2.4vw,28px);font-weight:850;line-height:1.25}.ledger-client-select:focus{border-color:var(--primary);background:#fff}.ledger-client-tags{display:flex;flex-wrap:wrap;gap:10px}.ledger-client-tags span,.ledger-step-detail-head h2 span{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#f8faf9;color:var(--muted);font-size:14px;font-weight:700}.ledger-progress-block{display:grid;grid-template-columns:190px minmax(0,1fr);gap:24px;align-items:center;padding:28px 30px}.ledger-progress-number{display:grid;gap:6px}.ledger-progress-number span{color:var(--muted);font-size:13px;font-weight:800}.ledger-progress-number strong{color:var(--text);font-size:36px;line-height:1}.ledger-progress-number p{margin:0;color:var(--muted);font-size:13px;font-weight:700;white-space:nowrap}.overview-step-track{position:relative;display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:12px}.overview-step-track:before{content:"";position:absolute;top:20px;left:9%;right:9%;height:4px;border-radius:999px;background:#dde5e2}.overview-step{position:relative;z-index:1;display:grid;justify-items:center;gap:8px;padding:0;border:0;background:transparent;color:var(--text);text-align:center}.overview-step span,.step-number{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:999px;background:#e6ecea;color:var(--text);font-weight:900;box-shadow:0 0 0 6px #fff}.overview-step.active span,.ledger-step-item.active .step-number{background:var(--primary);color:#fff}.overview-step.done span,.ledger-step-item.done .step-number{background:#10a86d;color:#fff}.overview-step strong{font-size:14px}.overview-step small{font-size:12px}.ledger-workspace{display:grid;grid-template-columns:344px minmax(0,1fr);min-height:640px;padding:0;overflow:hidden}.ledger-step-nav{padding:28px 24px;border-right:1px solid var(--line)}.ledger-step-nav h2{margin-bottom:24px}.ledger-step-list{display:grid;gap:14px}.ledger-step-item{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) auto 16px;align-items:center;gap:12px;width:100%;min-height:86px;padding:14px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);text-align:left}.ledger-step-item:hover,.ledger-step-item.active{border-color:#0f766eb8;background:#fbfdfc}.step-copy{display:grid;gap:6px;min-width:0}.step-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-copy small{font-size:13px}.status-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:13px;font-weight:800;white-space:nowrap}.status-chip.done{background:#dcfce7;color:#15803d}.status-chip.active{background:#ccfbf1;color:#0f766e}.status-chip.risk{background:#fee2e2;color:#b91c1c}.status-chip.idle{background:#eef2f7;color:#64748b}.step-open-arrow{color:var(--primary);font-size:24px;line-height:1}.ledger-step-detail{display:grid;align-content:start;gap:24px;padding:32px 30px 28px}.ledger-step-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ledger-step-detail-head h2{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:8px;font-size:24px}.ledger-step-detail-head p{margin:0;color:var(--muted);font-size:14px;font-weight:700}.ledger-step-detail-head select{width:150px;flex:0 0 150px}.detail-step-tools{margin-top:0}.ledger-check-list{display:grid;gap:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}.ledger-checkline{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;gap:14px;min-height:72px;padding:12px;border-bottom:1px solid var(--line)}.ledger-checkline.done{background:#fbfdfc}.ledger-checkline:last-child{border-bottom:0}.ledger-checkline>input[type=checkbox]{width:18px;min-height:18px;margin-top:9px}.checkline-main{display:grid;gap:8px;min-width:0}.ledger-checkline .checkline-text{min-width:0;width:100%;min-height:34px;border:0;background:transparent;font-weight:700}.ledger-checkline.done .checkline-text{color:#64748b;text-decoration:line-through}.checkline-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.checkline-meta label{display:inline-grid;grid-template-columns:auto 126px;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.checkline-meta input[type=date]{width:126px;min-height:30px;padding:4px 8px;font-size:12px}.due-chip{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}.due-chip.idle{background:#eef2f7;color:#64748b}.due-chip.future{background:#e0f2fe;color:#0369a1}.due-chip.soon{background:#fef3c7;color:#92400e}.due-chip.today{background:#ffedd5;color:#c2410c}.due-chip.overdue{background:#fee2e2;color:#b91c1c}.due-chip.done{background:#dcfce7;color:#15803d}.detail-add-row{justify-content:flex-start;margin:-10px 0 0}.detail-add-row .add-item-trigger{width:auto;min-width:128px}.ledger-note-fields{margin-top:0}.ledger-note-fields label{gap:10px;color:var(--text);font-size:15px}.ledger-note-fields textarea{min-height:108px}.ledger-declaration-fields{margin-top:0}.ledger-detail-actions{justify-content:flex-end;margin-top:0}.ledger-detail-actions .btn{width:120px}.steps{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.progress-text{color:var(--primary);font-size:30px;font-weight:800}.step-card{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfdfc}.step-card.risk{border-left:4px solid var(--warn)}.step-head{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:12px;align-items:start}.step-head p{margin-bottom:0;color:var(--muted);font-size:13px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:8px;margin:10px 0}.step-tools,.add-item-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}.select-all-line{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#f5faf8;color:var(--ink);font-weight:700;cursor:pointer}.select-all-line input{width:16px;min-height:16px;margin:0}.step-tools>span{color:var(--muted);font-size:13px}.add-item-row input{flex:1;min-width:240px}.add-item-row{margin-bottom:14px}.checkline{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:#fff}.checkline input{width:16px;min-height:16px}.checkline .checkline-text{flex:1;min-width:0;width:auto;min-height:28px;padding:3px 4px;border:0;border-radius:6px;background:transparent;color:var(--ink);font:inherit;font-weight:650}.checkline .checkline-text:focus{background:#f5faf8;outline:1px solid rgba(45,126,117,.35)}.delete-item-btn{flex:0 0 auto;padding:4px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.delete-item-btn:hover{border-color:#f1b8b8;background:#fff4f4;color:#b23434}.step-fields,.declaration-fields,.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.step-fields{margin-top:12px}.declaration-fields{margin-top:10px}.step-actions{justify-content:flex-end;margin-top:12px}.summary-box{display:grid;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.summary-save-btn{width:200px;justify-self:center}.ledger-summary-box{margin-top:0;padding-top:18px;border-top:0}.ledger-empty-state{display:grid;gap:14px}.ledger-empty-state select{max-width:520px}.form-panel{display:grid;align-content:start;gap:10px}.form-panel h2{margin-bottom:4px}label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}.list-panel{align-content:start;max-height:calc(100vh - 170px);overflow:auto}.setup-panel{max-width:820px}.setup-panel h2{font-size:24px}pre{overflow:auto;padding:14px;border-radius:8px;background:#0f172a;color:#e2e8f0}.toast,.loading{position:fixed;right:24px;z-index:20;border-radius:8px;box-shadow:var(--shadow)}.toast{top:20px;padding:12px 14px;background:#12312d;color:#fff}.loading{bottom:24px;padding:10px 14px;background:#fff;color:var(--primary);border:1px solid var(--line)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:24px;background:#0f172a6b}.modal{width:min(860px,100%);max-height:calc(100vh - 48px);overflow:auto;display:grid;gap:12px;padding:20px;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0f172a3d}.modal .form-actions{justify-content:flex-end}.modal .form-actions span{flex:1}.add-item-modal{width:min(460px,100%)}@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.two-column,.split-form,.ledger-layout,.ledger-overview-card,.ledger-workspace{grid-template-columns:1fr}.ledger-client-block,.ledger-step-nav{border-right:0;border-bottom:1px solid var(--line)}.ledger-step-list{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{position:static;width:auto;height:auto}.nav{grid-template-columns:repeat(2,minmax(0,1fr))}.shell{margin-left:0;padding:16px}.topbar{display:grid}.ledger-page-topbar{align-items:start}.top-actions,.toolbar{justify-content:stretch}.ledger-toolbar{flex-wrap:wrap}.top-actions>*,.toolbar>*,.btn{width:100%}.summary-save-btn{width:200px}.top-actions .month-picker input{width:100%}.metric-grid,.form-grid,.step-fields,.declaration-fields,.step-head,.check-grid,.search-box,.ledger-progress-block,.ledger-step-list,.overview-step-track{grid-template-columns:1fr}.ledger-client-block,.ledger-progress-block,.ledger-step-nav,.ledger-step-detail{padding:20px 18px}.ledger-step-detail-head{display:grid}.ledger-step-detail-head select{width:100%;flex-basis:auto}.overview-step-track:before{display:none}.overview-step{grid-template-columns:36px minmax(0,1fr) auto;justify-items:start;text-align:left}.overview-step small{justify-self:end}.ledger-step-item{grid-template-columns:36px minmax(0,1fr)}.ledger-step-item .status-chip,.ledger-step-item .step-open-arrow{grid-column:2}.ledger-checkline{grid-template-columns:24px minmax(0,1fr)}.ledger-checkline .delete-item-btn{grid-column:2;justify-self:start}.checkline-meta{display:grid;grid-template-columns:1fr}.checkline-meta label{grid-template-columns:42px minmax(0,1fr)}.checkline-meta input[type=date]{width:100%}.task-row,.list-item,.panel-title{display:grid}}
