*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--paper);color:var(--ink)}body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}button,input{font:inherit}button{cursor:pointer}.app-frame{display:flex;overflow-x:hidden}.sidebar{width:230px;flex:0 0 230px;background:#f1f4f0;padding:30px 15px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:9px;margin:0 12px 48px;color:var(--green-dark);font-weight:760;font-size:19px;letter-spacing:0;position:relative}.brand small{position:absolute;top:27px;left:37px;color:#8a948d;font-size:8px;letter-spacing:0;font-weight:650}.brand-mark{background:var(--green);width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:white}.nav-list{display:grid;grid-gap:5px}.nav-item{width:100%;border:0;background:transparent;color:#718078;padding:11px 13px;display:flex;align-items:center;gap:12px;text-align:left;transition:.15s ease}.nav-item:hover{color:var(--green-dark);background:#e7ece7}.nav-item.active{color:var(--green-dark);background:#dfeae1}.nav-count{margin-left:auto;background:#d7a04c;color:white;border-radius:8px;min-width:19px;height:19px;font-size:11px;display:grid;place-items:center}.sidebar-bottom{margin-top:auto;display:grid;grid-gap:17px;gap:17px}.user-chip{padding:13px 9px 0;border-top:1px solid #dde3dd;display:flex;align-items:center;gap:9px;color:#526158}.user-chip span:nth-child(2){display:grid;grid-gap:3px;gap:3px;flex:1 1;font-size:12px}.user-chip small{font-size:11px;color:#929b95}.avatar{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;color:white;background:#bb7e59;font-size:12px;font-weight:700}.avatar.small{width:31px;height:31px}.main-area{min-width:0;flex:1 1}.topbar{height:73px;padding:0 46px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(251,252,250,.9)}.topbar-title{font-size:13px;font-weight:700;color:#536158}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:21px;color:#8a948d;font-size:12px}.icon-button{border:0;background:transparent;color:#75837a;width:31px;height:31px;display:grid;place-items:center;border-radius:6px;position:relative}.icon-button:hover{background:var(--soft);color:var(--green-dark)}.dot{position:absolute;top:4px;right:3px;width:6px;height:6px;border-radius:50%;background:#d66e58;border:1px solid var(--paper)}.mobile-menu{display:none;border:0;background:transparent;color:var(--green-dark);padding:4px}.content{max-width:1280px;margin:0 auto;padding:45px 46px 70px}.welcome-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:35px}.eyebrow,.section-kicker{margin:0 0 9px;color:#9ca59f;letter-spacing:0;font-size:10px;font-weight:800}h1,h2,p{margin-top:0}h1{margin-bottom:9px;font-size:31px;line-height:1.15;font-weight:730}h1,h2{letter-spacing:0}h2{margin:0;line-height:1.2;font-weight:720}h2 span{font-size:12px;color:#a0aaa2;font-weight:500;margin-left:4px}.subline{color:var(--muted);margin-bottom:0;line-height:1.6}.primary-button,.secondary-button{min-height:39px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:6px;padding:0 15px;border:1px solid transparent;font-weight:690;font-size:13px;white-space:nowrap}.primary-button{background:var(--green);color:white;box-shadow:0 2px 5px rgba(48,94,66,.15)}.primary-button:hover{background:var(--green-dark)}.secondary-button{background:white;border-color:#dbe3dc;color:var(--green-dark)}.secondary-button:hover{background:var(--soft)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:white;margin-bottom:39px}.metric{min-height:126px;padding:21px 23px;border-right:1px solid var(--line);display:grid;align-content:center;grid-gap:7px;gap:7px}.metric:last-child{border-right:0}.metric.accent{background:#f1f7f1}.metric-label{color:#8c968f;font-size:12px}.metric strong{font-size:26px;line-height:1.1;letter-spacing:0}.metric-note{display:flex;align-items:center;gap:4px;font-size:11px;color:#869189}.metric-note svg{color:var(--green)}.metric-note.warning,.metric-note.warning svg{color:var(--amber)}.metric-note.success{color:var(--green)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(275px,.9fr);grid-gap:27px;gap:27px;align-items:start}.primary-column,.secondary-column{min-width:0;display:grid;grid-gap:31px;gap:31px}.section-block,.side-panel{background:white;border:1px solid var(--line);border-radius:8px;padding:25px 25px 22px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.text-button{border:0;background:transparent;color:var(--green);font-size:12px;display:inline-flex;align-items:center;gap:5px;padding:4px 0;white-space:nowrap}.text-button:hover{color:var(--green-dark)}.more-button{border:0;background:transparent;color:#94a097;letter-spacing:0;padding:0 2px}.toolbar{display:flex;gap:9px;margin:22px 0 12px;flex-wrap:wrap}.date-filter{min-width:132px;max-width:168px;box-sizing:border-box}.search-field{height:38px;background:var(--soft);border:1px solid transparent;border-radius:5px;display:flex;align-items:center;gap:8px;color:#8f9b92;padding:0 11px;flex:1 1;min-width:0}.search-field:focus-within{border-color:#bed0c0;background:white}.search-field input{border:0;outline:0;background:transparent;color:var(--ink);width:100%;min-width:0;font-size:12px}.filter-button{height:38px;border:1px solid var(--line);background:white;color:#6e7c72;border-radius:5px;padding:0 12px;font-size:12px;white-space:nowrap}.filter-button span{color:#93a097;margin-left:8px}.card-list{display:grid}.card-row{display:flex;align-items:center;gap:14px;padding:17px 0;border-top:1px solid var(--line);min-width:0}.card-emblem{flex:0 0 44px;height:44px;border-radius:8px;display:grid;place-items:center}.card-emblem.ink{color:#d5e3d7;background:#365b48}.card-emblem.blue{color:#d8e7f2;background:#517897}.card-emblem.coral{color:#f9dcd5;background:#b86757}.card-emblem.green{color:#d5eadb;background:#548269}.card-main{min-width:0;flex:1 1}.card-title{display:flex;gap:8px;align-items:center;margin-bottom:5px}.card-title strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-pill{color:var(--green);background:var(--green-soft);font-size:10px;padding:3px 6px;border-radius:3px}.card-meta{display:block;color:#8b958e;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-line{position:relative;height:4px;background:#edf1ed;border-radius:3px;margin-top:11px;overflow:hidden}.progress-line span{background:var(--green);display:block;height:100%;border-radius:inherit}.progress-line i{position:absolute;top:-1px;right:0;height:6px;border-left:1px solid #c7d1c8}.progress-copy{margin-top:6px;display:flex;justify-content:space-between;gap:7px;color:#8d9890;font-size:10px}.progress-copy b{color:var(--green);font-weight:700}.progress-copy .done{color:var(--green);font-weight:650}.card-fee{flex:0 0 76px;display:grid;grid-gap:3px;gap:3px;text-align:right}.card-fee span{color:#a2aba5;font-size:10px}.card-fee strong{font-size:13px}.row-arrow{border:0;background:transparent;color:#a6afa8;padding:6px;display:grid;place-items:center}.row-arrow:hover{color:var(--green)}.empty-state{border-top:1px solid var(--line);padding:37px 20px 20px;place-items:center}.empty-icon{display:grid;place-items:center;width:55px;height:55px;border-radius:50%;color:var(--green);background:var(--green-soft);margin-bottom:12px}.empty-state strong{font-size:14px}.empty-state p{color:var(--muted);font-size:12px;line-height:1.6;max-width:300px;margin:8px 0 17px}.fee-section{padding-bottom:13px}.fee-list{margin-top:16px}.fee-row{min-height:62px;border-top:1px solid var(--line);display:flex;align-items:center;gap:13px}.date-tile{width:43px;height:43px;border-radius:6px;display:grid;place-content:center;text-align:center;line-height:1}.date-tile strong{font-size:17px}.date-tile span{margin-top:3px;font-size:9px}.date-tile.amber{color:#ac762d;background:var(--amber-soft)}.date-tile.blue{color:#4c718d;background:var(--blue-soft)}.date-tile.coral{color:#b25d4f;background:var(--coral-soft)}.fee-info{display:grid;grid-gap:5px;gap:5px;flex:1 1;min-width:0}.fee-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.fee-info span{color:#909a93;font-size:10px}.fee-amount{font-size:12px;white-space:nowrap}.side-panel{padding:23px 21px}.progress-panel{background:#f1f6f1;border-color:#e0ebe2}.progress-item{padding:17px 0 15px;border-top:1px solid #dfe9e0}.progress-item-head{display:flex;align-items:center;gap:7px;font-size:11px}.progress-item-head strong{flex:1 1;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-item-head>span:last-child{color:var(--green);font-weight:700}.mini-dot{width:7px;height:7px;border-radius:50%;flex:0 0 7px}.mini-dot.ink{background:#365b48}.mini-dot.blue{background:#517897}.mini-dot.coral{background:#b86757}.mini-dot.green{background:#548269}.progress-track{height:5px;background:#dce7de;border-radius:4px;margin-top:11px}.progress-track span{background:var(--green);border-radius:inherit}.progress-track span.complete{background:#78a77d}.progress-item p{color:#86948a;font-size:10px;margin:7px 0 0}.reminder-panel h2 span{display:inline-grid;place-items:center;background:var(--coral-soft);color:var(--coral);border-radius:10px;min-width:18px;height:18px;font-size:10px;margin-left:4px}.reminder-row{padding:16px 0;border-top:1px solid var(--line)}.reminder-icon{width:27px;height:27px;border-radius:6px;color:#67836e;background:var(--green-soft);display:grid;place-items:center;flex:0 0 27px}.reminder-icon.urgent{color:var(--coral);background:var(--coral-soft)}.reminder-row>div{min-width:0;flex:1 1}.reminder-row strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reminder-row p{color:#87918b;font-size:10px;line-height:1.45;margin:5px 0 4px}.reminder-row small{color:#adb5af;font-size:10px}.check-button{width:23px;height:23px;border:1px solid #d9e2da;border-radius:50%;background:white;color:#a0aaa3;padding:0;display:grid;place-items:center}.check-button:hover{color:white;border-color:var(--green);background:var(--green)}.tip-panel{display:flex;gap:11px;padding:15px 16px;background:#f9f3e8;border:1px solid #eee5d4;border-radius:8px;color:#80673f}.tip-icon{font-size:19px;line-height:1}.tip-panel strong{font-size:11px}.tip-panel p{color:#96805e;font-size:10px;line-height:1.5;margin:5px 0 0}.tip-panel button{border:0;background:transparent;color:#a99471;padding:0;margin-left:auto;align-self:flex-start}.toast{position:fixed;right:28px;top:84px;z-index:5;padding:12px 14px;border:1px solid #cfe0d2;border-radius:7px;background:#f0f7f1;color:var(--green-dark);box-shadow:0 7px 22px rgba(23,49,32,.09);display:flex;align-items:center;gap:9px;font-size:12px}.toast button{margin-left:8px;padding:2px;border:0;color:#8ca090;background:transparent;display:grid}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px;background:rgba(23,33,29,.38)}.modal{width:min(100%,455px);max-height:calc(100vh - 40px);overflow:auto;background:var(--paper);box-shadow:0 19px 55px rgba(26,44,34,.22);padding:25px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.modal form{display:grid;grid-gap:15px;gap:15px}.modal label{display:grid;grid-gap:6px;gap:6px;color:#58665d;font-size:11px;font-weight:650}.modal em{color:var(--coral);font-style:normal}.modal input,.modal select,.modal textarea{width:100%;min-height:39px;border:1px solid #dbe3dc;border-radius:5px;outline:none;background:white;color:var(--ink);padding:0 11px;font-size:12px}.modal select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:white}.modal textarea{min-height:82px;padding:10px 11px;resize:vertical}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#94b49a;box-shadow:0 0 0 3px #e6f0e7}.rule-fieldset{border:1px solid var(--line);margin:0;padding:14px;display:grid;grid-gap:12px;gap:12px}.rule-fieldset legend{color:#58665d;font-size:11px;font-weight:650;padding:0 4px}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:13px;gap:13px}.form-error{color:var(--coral);font-size:11px;margin:-4px 0 0}.modal-actions{padding-top:7px;justify-content:flex-end;gap:9px}@media (max-width:980px){.sidebar{width:205px;flex-basis:205px}.topbar{padding:0 28px}.content{padding:35px 28px 60px}.metrics{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.secondary-column{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.tip-panel{grid-column:span 2}}@media (max-width:680px){.sidebar{position:fixed;z-index:8;left:-230px;top:0;bottom:0;transition:left .2s ease;box-shadow:8px 0 30px rgba(24,45,32,.12)}.sidebar.sidebar-open{left:0}.mobile-menu{display:grid}.topbar{height:60px;padding:0 17px;gap:10px}.topbar-title{font-size:12px}.topbar-date{display:none}.topbar-actions{gap:6px}.content{padding:29px 17px 45px}.welcome-row{align-items:flex-start;flex-direction:column;gap:17px;margin-bottom:27px}.welcome-row .primary-button{width:100%}.eyebrow{margin-bottom:8px}.subline{font-size:12px;max-width:330px}.metrics{margin-left:-1px;margin-right:-1px;margin-bottom:26px;border-radius:7px}.metric{min-height:102px;padding:16px 15px}.metric strong{font-size:21px}.metric-note{font-size:10px}.dashboard-grid{gap:20px}.section-block,.side-panel{padding:20px 16px 17px}.toolbar{margin-top:17px}.filter-button{padding:0 9px}.card-row{gap:10px}.card-emblem{flex-basis:36px;width:36px;height:36px;border-radius:8px}.card-emblem svg{width:17px}.card-fee{flex-basis:61px}.card-fee strong{font-size:11px}.card-meta{font-size:10px}.progress-copy{font-size:9px}.secondary-column{grid-template-columns:1fr}.tip-panel{grid-column:auto}.toast{left:17px;right:17px;top:70px}.modal{padding:20px}.form-row{grid-template-columns:1fr 1fr;gap:9px}}@media (max-width:390px){h1{font-size:27px}.metric{padding-left:11px;padding-right:11px}.metric strong{font-size:19px}.metric-label{font-size:11px}.card-row{gap:7px}.card-fee{display:none}.row-arrow{padding-right:0}.filter-button{font-size:11px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;min-width:92px}select.filter-button{padding:7px 10px;border-radius:8px;border:1px solid #d9e0ea;color:#44556a;background:#ffffff}.card-row,.cycle-panel,.detail-hero,.event-row,.metric,.modal,.reminder-card,.section-block{min-width:0;overflow-wrap:anywhere}body{overflow-x:hidden}.search-field input{font-size:11px}}.auth-page{display:grid;place-items:center;padding:24px;background:#f5f7fb}.auth-card{width:min(420px,100%);background:#ffffff;border:1px solid #e6eaf2;padding:28px;box-shadow:0 18px 50px rgba(31,45,61,.1)}.auth-brand{text-align:center;margin-bottom:22px}.auth-brand h1{margin:12px 0 4px;font-size:26px}.auth-brand p{color:#718096;margin:0;font-size:14px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;background:#f2f5f9;padding:5px;border-radius:9px;margin-bottom:18px}.auth-tabs button{border:0;background:transparent;padding:9px 10px;border-radius:7px;font-size:14px;color:#5b6b7f;cursor:pointer}.auth-tabs button.active{background:#ffffff;color:#14202e;box-shadow:0 1px 4px rgba(20,32,46,.1);font-weight:700}.auth-form{display:grid;grid-gap:14px;gap:14px}.auth-form label,.form-grid label{display:grid;grid-gap:6px;gap:6px;font-size:13px;color:#44556a;font-weight:600}.auth-form input,.danger-zone input,.form-grid input,.form-grid select{width:100%;border:1px solid #d9e0ea;background:#ffffff;border-radius:8px;padding:10px 11px;font-size:14px;color:#14202e;box-sizing:border-box}.auth-form input:focus,.danger-zone input:focus,.form-grid input:focus,.form-grid select:focus{outline:2px solid var(--focus-ring);border-color:var(--accent-strong)}.form-error{color:#b42318;font-size:13px;margin:0}.form-success{color:#067647;font-size:13px;margin:0}.logout-button{border:1px solid #d9e0ea;background:#ffffff;color:#44556a;border-radius:8px;padding:7px 12px;font-size:13px;cursor:pointer}.card-row-main-button{display:flex;align-items:center;gap:12px;border:0;background:transparent;padding:0;text-align:left;cursor:pointer;min-width:0;flex:1 1 280px}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;background:#eef2f7;color:#44556a;white-space:nowrap}.status-pill.success{background:#e6f6ef;color:#067647}.event-list,.reminder-list{display:grid;grid-gap:10px;gap:10px}.event-row{display:grid;grid-template-columns:92px 1fr auto;align-items:center;grid-gap:12px;gap:12px;border:1px solid #edf0f5;border-radius:9px;padding:12px;background:#ffffff}.event-date{font-size:13px;font-weight:800;color:#2b3a4d}.event-main{display:grid;grid-gap:3px;gap:3px;min-width:0}.event-main strong,.reminder-card-head strong{font-size:14px;color:#14202e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-main small,.reminder-card-head small{color:#718096;font-size:12px}.reminder-row{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid #f0f3f8}.reminder-row:last-child{border-bottom:0}.reminder-row span{display:grid;grid-gap:3px;gap:3px}.reminder-row strong{font-size:14px}.reminder-row small{color:#718096;font-size:12px}.overdue-note{display:flex;gap:7px;border:1px solid #f2d8d1;border-radius:8px;padding:10px 12px;margin:0 0 10px;font-size:13px;font-weight:650}.overdue-note,.overdue-pill{align-items:center;color:#a34b3a;background:var(--coral-soft)}.overdue-pill{display:inline-flex;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800;margin-left:auto;white-space:nowrap}.reminder-row.overdue{border-color:#f1d4cd;border-radius:8px;padding:10px}.reminder-card.overdue{border-color:#ecc7be}.reminder-card{border:1px solid #e7ecf3;border-radius:10px;padding:14px;background:#fbfcfe}.reminder-card-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}.reminder-card-head div{display:grid;grid-gap:3px;gap:3px}.reminder-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.calendar-list{display:grid;grid-gap:24px;gap:24px}.month-group{display:grid;grid-gap:8px;gap:8px}.month-group h2{font-size:16px;margin:0 0 4px}.calendar-toolbar-row{display:flex;justify-content:flex-end;margin-bottom:12px}.segmented-control{display:inline-flex;border:1px solid #dce4e0;border-radius:8px;background:#f1f5f1;padding:3px;gap:3px}.segmented-control button{border:0;background:transparent;color:#66756d;padding:8px 12px;border-radius:6px;font-size:13px;font-weight:700;cursor:pointer}.segmented-control button.active{background:#ffffff;color:var(--green-dark);box-shadow:0 1px 2px rgba(23,33,29,.12)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.calendar-toolbar strong{font-size:16px;color:var(--green-dark)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;margin-bottom:6px}.calendar-weekdays span{color:#7a8780;font-size:12px;font-weight:700;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.calendar-day{min-height:68px;border:1px solid #edf1ee;border-radius:8px;background:#ffffff;padding:7px;display:flex;flex-direction:column;gap:6px;overflow:hidden}.calendar-day.empty{background:#f8faf7;border-style:dashed}.calendar-day.has-events{border-color:#cfe0d5;background:#fbfdfb}.calendar-day-number{font-size:12px;font-weight:800;color:#55655d}.calendar-day-events{display:flex;flex-wrap:wrap;gap:4px;min-height:8px}.calendar-event-dot{width:9px;height:9px;border-radius:999px;background:var(--coral);display:block}.calendar-day-events small{color:#8a958e;font-size:11px}.settings-grid{display:grid;grid-gap:18px;gap:18px}.form-grid{display:grid;grid-gap:14px;gap:14px}.form-grid.two-columns{grid-template-columns:1fr 1fr}.form-grid .full-width{grid-column:1/-1}.reminder-rule-list{display:grid;grid-gap:10px;gap:10px}.reminder-rule-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:end;border:1px solid #edf0f5;border-radius:8px;padding:12px}.reminder-rule-row label{display:grid;grid-gap:6px;gap:6px;min-width:0}.reminder-rule-toggle{grid-template-columns:auto 1fr;align-items:center;font-size:12px;color:#6b776f;white-space:nowrap}.reminder-rule-row input[type=number]{width:100%;min-width:0}.data-actions{display:grid;grid-gap:16px;gap:16px}.data-actions>div{border:1px solid #edf0f5;border-radius:10px;padding:14px}.data-actions strong{color:#14202e;font-size:15px}.data-actions p{color:#718096;font-size:13px;margin:6px 0 10px}.danger-zone{border-color:#f3d7d4!important;background:#fffaf9}.danger-zone input{margin-bottom:10px}.danger-button{border:0;background:#b42318;border-radius:8px;padding:9px 14px;font-size:13px;cursor:pointer}.progress-mode-switch{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.progress-mode-switch button{border:1px solid #dbe3dc;border-radius:8px;background:#ffffff;color:#58665d;padding:9px 10px;font-size:12px;cursor:pointer}.progress-mode-switch button.active{border-color:#94b49a;background:#e6f0e7;color:#1d4ed8}.deletion-status{border-color:#f0e4c7!important;background:#fffcf5}.audit-detail-list,.deletion-status dl{display:grid;grid-gap:10px;gap:10px;margin:10px 0 0}.audit-detail-list div,.deletion-status dl div{display:grid;grid-template-columns:110px minmax(0,1fr);grid-gap:10px;gap:10px;color:#58665d;font-size:13px}.audit-detail-list dt,.deletion-status dt{color:#718096}.audit-detail-list dd,.deletion-status dd{margin:0;overflow-wrap:anywhere}.audit-detail-list pre{margin:0;white-space:pre-wrap;word-break:break-word;color:#334155;font-size:12px}.detail-note{display:block;margin-top:6px;color:#718096}.reminder-history{display:grid;grid-gap:8px;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid #edf0f5}.modal-wide{max-width:720px}.modal-detail{max-width:880px;width:min(880px,calc(100vw - 32px))}.modal-actions{display:flex;align-items:center;gap:8px}.danger-text{color:#b42318!important}.detail-scroll{max-height:min(72vh,760px);overflow:auto;padding-right:4px}.detail-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;background:#f4f7fb;border-radius:10px;padding:16px;margin-bottom:16px}.detail-hero strong{font-size:17px}.detail-hero p{color:#5b6b7f;margin:6px 0 0;font-size:13px}.detail-fee{font-size:22px;font-weight:900;color:#1e293b;white-space:nowrap}.detail-grid{display:grid;grid-gap:14px;gap:14px}.cycle-panel{border:1px solid #e5eaf2;border-radius:10px;padding:16px;background:#ffffff}.cycle-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.cycle-head strong{font-size:14px}.cycle-head p{color:#718096;font-size:12px;margin:4px 0 0}.progress-box{margin-bottom:14px}.progress-label,.progress-values{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#44556a;margin-bottom:6px}.progress-values{margin:7px 0 0;color:#718096}.progress-entry-list{display:grid;grid-gap:8px;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #eef1f6}.progress-entry-heading{font-size:12px;font-weight:700;color:#718096;text-transform:uppercase;letter-spacing:0}.progress-entry-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;font-size:13px;color:#44556a;min-width:0}.progress-entry-row strong{color:#1e293b;font-weight:700;white-space:nowrap}.progress-entry-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-entry-row .text-button{padding:2px 0}.progress-track{height:8px;background:#eef2f7;border-radius:999px;overflow:hidden}.progress-track span{display:block;height:100%;background:#2563eb;border-radius:999px}.event-handler{margin-top:16px;border-top:1px solid #eef1f6;padding-top:14px}.event-handler-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px}.event-handler-head span{color:#718096;font-size:13px}.event-history{display:grid;grid-gap:8px;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid #edf0f5}.event-history-row{display:grid;grid-template-columns:90px 1fr 1.2fr;align-items:center;grid-gap:10px;gap:10px;color:#718096;font-size:12px}.event-history-row strong{color:#44556a;font-size:12px}.event-history-row span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.secondary-button{border:1px solid #d3dce8;background:#ffffff;color:#1d4ed8;border-radius:8px;padding:10px 14px;font-size:13px;cursor:pointer;justify-self:start}.empty-state{display:grid;justify-items:center;text-align:center;grid-gap:10px;gap:10px;padding:34px 18px;color:#718096}.empty-state strong{color:#2b3a4d;font-size:16px}.empty-state p{margin:0;max-width:320px}.empty-note{color:#718096;padding:18px 4px;margin:0}.loading-page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#44556a}.loading-inline{color:#718096;padding:24px 0}@media (max-width:760px){.form-grid.two-columns,.reminder-rule-row{grid-template-columns:1fr}.event-row{grid-template-columns:76px 1fr}.event-row .status-pill{grid-column:2;justify-self:start}.event-history-row{grid-template-columns:76px 1fr}.event-history-row span:last-child{grid-column:2}.detail-hero{flex-direction:column}.topbar-date{display:none}}@media (max-width:680px){.toolbar{display:grid;grid-template-columns:1fr 1fr}.toolbar .search-field{grid-column:1/-1}.toolbar input.date-filter,.toolbar select.filter-button{width:100%;min-width:0}}@media (max-width:390px){.toolbar{grid-template-columns:1fr}}@media (max-width:680px){.calendar-toolbar-row{justify-content:stretch}.segmented-control{width:100%}.segmented-control button{flex:1 1}.calendar-grid,.calendar-weekdays{gap:3px}.calendar-day{min-height:52px;padding:5px}}:root{--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1);--ease-drawer:cubic-bezier(0.32,0.72,0,1);--duration-fast:120ms;--duration-base:180ms;--duration-modal:240ms}button:disabled{cursor:not-allowed;opacity:.62}button,input,select,textarea{transition:transform var(--duration-fast) var(--ease-out),background-color var(--duration-base) ease,border-color var(--duration-base) ease,color var(--duration-base) ease,box-shadow var(--duration-base) ease,opacity var(--duration-base) ease}button:active:not(:disabled){transform:scale(.97)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(61,107,82,.5)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sidebar-scrim{display:none}.card-row-main-button,button.card-row,button.event-row{text-align:left}.card-row-main-button{border-radius:8px}@media (hover:hover) and (pointer:fine){.nav-item:hover{color:var(--green-dark);background:#e7ece7}.icon-button:hover{background:var(--soft);color:var(--green-dark)}.primary-button:hover:not(:disabled){background:var(--green-dark);box-shadow:0 4px 9px rgba(48,94,66,.18);transform:translateY(-1px)}.secondary-button:hover:not(:disabled){background:var(--soft);border-color:#c9d5cb;transform:translateY(-1px)}.text-button:hover{color:var(--green-dark)}.filter-button:hover{background:var(--soft);border-color:#cbd6cd}.progress-mode-switch button:hover:not(.active),.segmented-control button:hover:not(.active){background:#ffffff;border-color:#c9d5cb}.card-row-main-button:hover{background:var(--soft)}.danger-button:hover,.logout-button:hover,.row-arrow:hover{color:var(--green-dark);border-color:#c9d5cb}.check-button:hover{background:var(--green);border-color:var(--green);color:#ffffff}.calendar-day.has-events:hover{border-color:#b8cdbf;background:#f3faf4}}.toast{opacity:1;transform:translateY(0);transition:opacity var(--duration-modal) var(--ease-out),transform var(--duration-modal) var(--ease-out)}.toast.closing{opacity:0;transform:translateY(-8px);pointer-events:none}.modal-backdrop{background-color:rgba(23,33,29,.38);transition:background-color var(--duration-modal) var(--ease-out)}.modal{opacity:1;transform:translateY(0) scale(1);transition:opacity var(--duration-modal) var(--ease-out),transform var(--duration-modal) var(--ease-out)}.modal-backdrop.closing{background-color:rgba(23,33,29,0);pointer-events:none}.modal-backdrop.closing .modal{opacity:0;transform:translateY(6px) scale(.97)}.toast{@starting-style{opacity:0;transform:translateY(-8px)}}.modal-backdrop{@starting-style{background-color:rgba(23,33,29,0)}}.modal{@starting-style{opacity:0;transform:translateY(8px) scale(.96)}}.auth-tabs button{transition:transform var(--duration-fast) var(--ease-out),background-color var(--duration-base) ease,color var(--duration-base) ease,box-shadow var(--duration-base) ease}@media (max-width:680px){.sidebar{left:0;transform:translateX(-100%);transition:transform var(--duration-modal) var(--ease-drawer),box-shadow var(--duration-modal) ease}.sidebar.sidebar-open{transform:translateX(0)}.sidebar-scrim{display:block;position:fixed;inset:0;z-index:7;padding:0;border:0;background:rgba(23,33,29,.22);opacity:0;pointer-events:none;transition:opacity var(--duration-base) var(--ease-out)}.sidebar-scrim.visible{opacity:1;pointer-events:auto}.modal-backdrop{padding:12px}.modal{max-height:calc(100vh - 24px)}.modal-detail{width:min(880px,calc(100vw - 24px))}.detail-scroll{max-height:min(70vh,680px)}.card-row-list{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:8px 10px;gap:8px 10px;align-items:center}.card-row-list .card-row-main-button{grid-column:1/-1;flex:1 1 auto}.card-row-list .card-row-amount{justify-self:end}}@media (max-width:390px){.auth-card{padding:22px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.primary-button:hover,.secondary-button:hover,button:active:not(:disabled){transform:none}.modal,.modal-backdrop,.toast{opacity:1!important}}:root{--canvas:#f5f5f7;--surface:#ffffff;--surface-subtle:#f9f9fb;--surface-hover:#f0f0f2;--material:rgba(248,248,250,0.82);--material-solid:#f8f8fa;--separator:rgba(60,60,67,0.16);--separator-strong:rgba(60,60,67,0.28);--text:#1d1d1f;--text-secondary:#6e6e73;--text-tertiary:#8e8e93;--primary:#007aff;--primary-hover:#006ee6;--primary-soft:#e8f2ff;--success:#248a3d;--success-soft:#eaf7ed;--warning:#b25000;--warning-soft:#fff4e5;--danger:#d70015;--danger-soft:#fff0f1;--info:#087ea4;--info-soft:#e8f7fb;--focus-ring:rgba(0,122,255,0.38);--shadow-control:0 1px 2px rgba(0,0,0,0.08);--shadow-overlay:0 18px 54px rgba(0,0,0,0.2);--line:var(--separator);--soft:var(--surface-subtle);--green:var(--primary);--green-soft:var(--primary-soft)}body{font-optical-sizing:auto;letter-spacing:0}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .12s var(--ease-out),background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,opacity .18s ease}input,select,textarea{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.sidebar{background:var(--material-solid);border-right-color:var(--separator)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.sidebar{background:var(--material);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%)}}.brand{margin-bottom:42px}.brand small,.user-chip small{color:var(--text-tertiary)}.brand-mark{background:var(--primary);box-shadow:0 2px 5px rgba(0,122,255,.2)}.nav-list{gap:3px}.nav-item{min-height:40px}.nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:680}.nav-count{background:var(--warning);border-radius:10px}.user-chip{border-top-color:var(--separator)}.user-menu{width:100%;min-height:56px;border:0;border-top:1px solid var(--separator);background:transparent;text-align:left}.user-menu>svg{margin-left:auto;color:var(--text-tertiary)}.user-menu.active{background:var(--primary-soft);border-radius:7px;color:var(--primary)}.avatar{background:var(--info)}.topbar{background:var(--material-solid);border-bottom-color:var(--separator)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.topbar{background:var(--material);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%)}}.topbar-title{font-weight:650}.topbar-actions{color:var(--text-tertiary)}.icon-button{min-width:32px;min-height:32px;color:var(--text-secondary)}.sidebar-close{display:none;margin-left:auto}.dot{border-color:var(--material-solid)}.content{padding-top:36px}.eyebrow,.section-kicker{color:var(--text-tertiary)}h1{font-size:30px;font-weight:720}.card-title strong,.data-actions strong,.detail-hero strong,.event-main strong,.reminder-card-head strong,h1,h2{color:var(--text)}.danger-button,.logout-button,.primary-button,.secondary-button{min-height:36px;border-radius:7px;box-shadow:none}.primary-button{background:var(--primary);color:#fff}.logout-button,.secondary-button{background:var(--surface);border-color:var(--separator-strong);color:var(--primary)}.metrics{background:var(--surface);border-color:var(--separator)}.metric{border-right-color:var(--separator)}.metric.accent{background:var(--primary-soft)}.section-block+.section-block,.side-panel+.side-panel{border-top:1px solid var(--separator)}.text-button{min-height:32px;color:var(--primary)}.more-button,.row-arrow{color:var(--text-tertiary)}.auth-form input,.danger-zone input,.filter-button,.form-grid input,.form-grid select,.modal input,.modal select,.modal textarea,.search-field,select.filter-button{background:var(--surface);border-color:var(--separator-strong);border-radius:7px}.search-field{min-height:38px;background:var(--surface-subtle)}.search-field:focus-within{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-soft)}.search-field input{color:var(--text)}.filter-button,select.filter-button{min-height:38px;color:var(--text-secondary)}.card-row,.event-handler,.event-history,.fee-row,.progress-entry-list,.progress-item,.reminder-history,.reminder-row{border-color:var(--separator)}.card-row{padding-block:16px}.card-emblem.ink{background:#303033;color:#f2f2f7}.card-emblem.blue{background:var(--info);color:var(--info-soft)}.card-emblem.coral{background:var(--danger);color:var(--danger-soft)}.card-emblem.green{background:var(--success);color:var(--success-soft)}.overdue-pill,.status-pill{background:var(--surface-subtle);border-radius:999px}.progress-line,.progress-track{background:rgba(60,60,67,.12)}.progress-line span,.progress-track span{background:var(--primary)}.date-tile.amber{background:var(--warning-soft);color:var(--warning)}.progress-panel{background:var(--primary-soft);border:1px solid rgba(0,122,255,.16)}.progress-item{border-top-color:rgba(0,122,255,.16)}.mini-dot.green,.progress-item-head>span:last-child{color:var(--primary)}.mini-dot.ink{background:var(--text)}.mini-dot.green{background:var(--primary)}.reminder-icon{background:var(--primary-soft);color:var(--primary)}.overdue-note,.reminder-card.overdue,.reminder-icon.urgent,.reminder-row.overdue{border-color:rgba(215,0,21,.2)}.reminder-icon.urgent{color:var(--danger)}.check-button{min-width:28px;min-height:28px;border-color:var(--separator-strong)}.tip-panel{background:var(--warning-soft);border-color:rgba(178,80,0,.2);color:var(--warning)}.cycle-panel,.data-actions>div,.detail-hero,.event-row,.reminder-card{background:var(--surface);border-color:var(--separator);border-radius:8px;box-shadow:var(--shadow-control)}.calendar-day-number,.calendar-toolbar strong,.detail-fee,.event-date,.progress-entry-row strong{color:var(--text)}.auth-tabs,.progress-mode-switch,.segmented-control{background:rgba(118,118,128,.12);border-radius:8px}.auth-tabs button,.progress-mode-switch button,.segmented-control button{min-height:32px;border-radius:6px}.auth-tabs button.active,.progress-mode-switch button.active,.segmented-control button.active{background:var(--surface);border-color:transparent;box-shadow:var(--shadow-control)}.calendar-day{background:var(--surface);border-color:var(--separator);border-radius:7px}.calendar-day.empty{background:var(--surface-subtle)}.calendar-day.has-events{background:var(--primary-soft);border-color:rgba(0,122,255,.26)}.calendar-event-dot{background:var(--danger)}.reminder-rule-row{border-color:var(--separator);background:var(--surface)}.danger-zone{border-color:rgba(215,0,21,.24)!important}.deletion-status{border-color:rgba(178,80,0,.24)!important}.modal-backdrop{background:rgba(0,0,0,.32)}.modal{background:var(--surface);border:1px solid var(--separator);border-radius:12px}.rule-fieldset{border-color:var(--separator);border-radius:8px}.toast{top:76px;border-color:rgba(36,138,61,.28)}.auth-card,.toast{background:var(--surface)}.auth-card{border-color:var(--separator);border-radius:8px}@media (hover:hover) and (pointer:fine){.nav-item:hover,.user-menu:hover{background:var(--surface-hover);color:var(--text)}.user-menu:hover{border-radius:7px}.user-menu.active:hover{background:var(--primary-soft);color:var(--primary)}.icon-button:hover,.row-arrow:hover{background:var(--surface-hover);color:var(--primary)}.primary-button:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 3px 8px rgba(0,122,255,.2);transform:translateY(-1px)}.filter-button:hover,.logout-button:hover:not(:disabled),.secondary-button:hover:not(:disabled),select.filter-button:hover{background:var(--surface-hover);border-color:var(--separator-strong);color:var(--primary)}.card-row-main-button:hover{background:var(--surface-subtle)}.calendar-day.has-events:hover{background:var(--primary-soft);border-color:var(--primary)}.check-button:hover{background:var(--primary);border-color:var(--primary);color:#fff}}@media (max-width:680px){.sidebar{padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}.sidebar-close{display:grid}.topbar{height:56px;padding-inline:16px}.content{padding:26px 16px calc(42px + env(safe-area-inset-bottom))}.auth-tabs button,.danger-button,.filter-button,.logout-button,.primary-button,.progress-mode-switch button,.secondary-button,.segmented-control button,select.filter-button{min-height:44px}.check-button,.icon-button,.mobile-menu,.row-arrow{min-width:44px;min-height:44px}.metrics{border-radius:8px}.metric{min-height:106px}.progress-panel{padding:16px}.modal{border-radius:10px}.toast{top:calc(64px + env(safe-area-inset-top));right:12px;left:12px}}@media (prefers-reduced-transparency:reduce){.sidebar,.topbar{background:var(--material-solid);-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-contrast:more){:root{--separator:rgba(60,60,67,0.42);--separator-strong:rgba(60,60,67,0.58);--text-secondary:#424245}.danger-button,.primary-button{border:1px solid}.card-row,.fee-row,.progress-item,.reminder-row{border-color:var(--separator)}}@media (prefers-reduced-motion:reduce){.modal,.modal-backdrop,.sidebar,.sidebar-scrim,.toast,button,input,select,textarea{transition-duration:.01ms!important}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled),button:active:not(:disabled){transform:none}}:root{color-scheme:light;--canvas:#f7f6f3;--canvas-raised:#f0eeea;--surface-solid:#ffffff;--surface-raised:#f2f0ec;--surface-hover:#eae7e1;--chrome:#f1efeb;--line:#e6e2dc;--line-strong:#d0cac1;--text:#292724;--text-secondary:#716c65;--text-tertiary:#797269;--accent:#2c2a27;--accent-strong:#151412;--accent-soft:#eae6e0;--success:#57534e;--success-soft:#f0eeea;--warning:#95621e;--warning-soft:#faf2e4;--danger:#b74f45;--danger-soft:#fcf0ee;--info:#615c56;--info-soft:#f0eeea;--focus-ring:rgba(70,65,58,0.55);--shadow-control:0 1px 2px rgba(42,37,30,0.04);--shadow-overlay:0 16px 48px rgba(42,37,30,0.12);--ink:var(--text);--muted:var(--text-secondary);--line-legacy:var(--line);--soft:var(--surface-raised);--paper:var(--canvas);--green:var(--accent);--green-dark:var(--text);--green-soft:var(--accent-soft);--amber:var(--warning);--amber-soft:var(--warning-soft);--coral:var(--danger);--coral-soft:var(--danger-soft);--blue:var(--info);--blue-soft:var(--info-soft);--primary:var(--accent);--primary-hover:var(--accent-strong);--primary-soft:var(--accent-soft);--surface:var(--surface-solid);--surface-subtle:var(--surface-raised);--material:var(--chrome);--material-solid:var(--chrome);--separator:var(--line);--separator-strong:var(--line-strong);--text-primary:var(--text);--border-color:var(--line);--surface-primary:var(--surface-solid);--surface-secondary:var(--surface-raised)}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}body,html{background:var(--canvas);color:var(--text)}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button,input,select,textarea{color:var(--text)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--focus-ring)}.app-frame{min-height:100vh;color:var(--text)}.app-frame,.main-area{background:var(--canvas)}.sidebar{width:248px;flex-basis:248px;padding:24px 14px 18px;background:var(--chrome);border-right:1px solid var(--line);box-shadow:none}@supports ((-webkit-backdrop-filter:blur(18px)) or (backdrop-filter:blur(18px))){.sidebar{-webkit-backdrop-filter:blur(18px) saturate(130%);backdrop-filter:blur(18px) saturate(130%)}}.brand{margin:0 10px 38px;color:var(--text);font-size:18px;font-weight:720}.brand small{color:var(--text-tertiary)}.brand-mark{color:var(--accent);background:var(--accent-soft);border:0;box-shadow:none}.nav-list{gap:5px}.nav-item{min-height:42px;border:1px solid transparent;border-radius:7px;color:var(--text-secondary)}.nav-item:hover{color:var(--text);background:var(--surface-hover);border-color:var(--line)}.nav-item.active{color:var(--text);background:var(--accent-soft);border-color:transparent;box-shadow:none}.nav-item.active svg{color:var(--accent)}.nav-count{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(255,129,124,.2)}.sidebar-bottom{gap:14px}.user-chip{color:var(--text-secondary);border-top-color:var(--line)}.user-chip small{color:var(--text-tertiary)}.user-menu.active,.user-menu:hover{background:var(--accent-soft);border-radius:7px;color:var(--text)}.user-menu.active{border-top-color:transparent}.avatar{color:#ffffff;background:var(--accent)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:4;height:64px;padding:0 42px;background:var(--chrome);border-bottom-color:var(--line)}@supports ((-webkit-backdrop-filter:blur(18px)) or (backdrop-filter:blur(18px))){.topbar{-webkit-backdrop-filter:blur(18px) saturate(130%);backdrop-filter:blur(18px) saturate(130%)}}.topbar-title{color:var(--text-secondary)}.topbar-actions,.topbar-date{color:var(--text-tertiary)}.icon-button,.mobile-menu{color:var(--text-secondary)}.icon-button:hover,.mobile-menu:hover{color:var(--accent);background:var(--surface-hover)}.dot{background:var(--danger);border-color:var(--canvas);box-shadow:none}.content{max-width:1320px;padding:40px 42px 70px}.eyebrow,.section-kicker{color:var(--accent);letter-spacing:.08em}.card-title strong,.data-actions strong,.detail-hero strong,.event-main strong,.reminder-card-head strong,h1,h2{color:var(--text)}h1{font-size:34px;line-height:1.12;letter-spacing:-.015em}h2{font-size:17px}.card-meta,.cycle-head p,.data-actions p,.detail-hero p,.detail-note,.empty-note,.event-main small,.fee-info span,.loading-inline,.loading-page,.metric-label,.metric-note,.progress-values,.reminder-card-head small,.reminder-row p,.reminder-row small,.subline,h2 span{color:var(--text-secondary)}.danger-button,.logout-button,.primary-button,.secondary-button{min-height:38px;border-radius:6px}.primary-button{color:#ffffff;background:var(--accent);border-color:var(--accent);box-shadow:none}.primary-button:hover:not(:disabled){color:#ffffff;background:var(--accent-strong);box-shadow:none}.logout-button,.secondary-button{color:var(--text-secondary);background:var(--surface-solid);border-color:var(--line-strong)}.logout-button:hover:not(:disabled),.secondary-button:hover:not(:disabled){color:var(--text);background:var(--surface-hover);border-color:var(--accent-strong)}.danger-button{color:#ffffff;background:var(--danger)}.more-button,.row-arrow,.text-button{color:var(--accent)}.more-button:hover,.row-arrow:hover,.text-button:hover{color:var(--accent-strong)}.metrics{background:var(--surface-solid);border-color:var(--line);border-radius:8px;box-shadow:var(--shadow-control)}.metric{min-height:112px;border-right-color:var(--line)}.metric.accent,.metric:first-child{box-shadow:none}.metric.accent{background:var(--surface-raised)}.card-fee strong,.detail-fee,.fee-amount,.metric strong{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric-note svg,.metric-note.success,.metric-note.success svg,.progress-copy .done,.progress-copy b{color:var(--success)}.metric-note.warning,.metric-note.warning svg{color:var(--warning)}.section-block,.side-panel{background:transparent;border:0;border-radius:0;padding:0}.section-block+.section-block,.side-panel+.side-panel{padding-top:28px;border-top-color:var(--line)}.section-heading{margin-bottom:12px}.auth-form input,.danger-zone input,.filter-button,.form-grid input,.form-grid select,.modal input,.modal select,.modal textarea,.search-field,select.filter-button{color:var(--text);background:var(--surface-solid);border-color:var(--line-strong);border-radius:6px;box-shadow:none}.auth-form input:focus,.form-grid input:focus,.form-grid select:focus,.modal input:focus,.modal select:focus,.modal textarea:focus,.search-field:focus-within{border-color:var(--accent-strong);box-shadow:0 0 0 3px var(--accent-soft)}.filter-button,.search-field input,select.filter-button{color:var(--text-secondary)}.card-list,.event-list,.fee-list,.reminder-list{display:grid;grid-gap:8px;gap:8px}.card-row,.cycle-panel,.data-actions>div,.detail-hero,.event-handler,.event-history,.event-row,.fee-row,.progress-entry-list,.reminder-card,.reminder-history,.reminder-row{color:var(--text);background:var(--surface-solid);border-color:var(--line);border-radius:7px;box-shadow:none}.card-row,.event-row,.fee-row,.reminder-row{transition:background-color .16s var(--ease-out),border-color .16s var(--ease-out),transform .12s ease-out}.card-row:hover,.event-row:hover,.fee-row:hover,.reminder-row:hover{background:var(--surface-raised);border-color:var(--line-strong)}.card-row:active,.event-row:active,.reminder-row:active{transform:scale(.995)}.card-row-main-button:hover{background:transparent}.card-emblem.ink{background:var(--surface-raised);color:var(--text)}.card-emblem.blue{background:var(--info-soft);color:var(--info)}.card-emblem.coral{background:var(--danger-soft);color:var(--danger)}.card-emblem.green{background:var(--success-soft);color:var(--success)}.calendar-event-dot,.card-color,.date-tile,.mini-dot,.reminder-icon{box-shadow:none}.overdue-pill,.status-pill{min-height:22px;padding:3px 7px;color:var(--text-secondary);background:var(--surface-raised);border:1px solid var(--line);border-radius:4px}.status-pill.success{color:var(--success);background:var(--success-soft);border-color:var(--line)}.danger-text,.overdue-pill{color:var(--danger)!important;border-color:rgba(255,129,124,.28)}.progress-line,.progress-track{background:var(--line)}.progress-line span,.progress-track span{background:var(--accent);box-shadow:none}.progress-track span.complete{background:var(--success);box-shadow:none}.date-tile.amber,.tip-panel{color:var(--warning);background:var(--warning-soft);border-color:rgba(242,189,104,.24)}.date-tile.blue{color:var(--info);background:var(--info-soft)}.date-tile.coral,.overdue-note{color:var(--danger);background:var(--danger-soft);border-color:rgba(255,129,124,.24)}.progress-panel{color:var(--text);background:var(--surface-solid);border:1px solid var(--line);border-radius:8px;padding:20px}.progress-item{border-top-color:var(--line)}.mini-dot.green,.progress-item-head>span:last-child{color:var(--accent)}.mini-dot.ink{background:var(--text-tertiary)}.mini-dot.blue{background:var(--info)}.mini-dot.coral{background:var(--danger)}.mini-dot.green{background:var(--success)}.reminder-icon{color:var(--accent);background:var(--accent-soft)}.reminder-icon.urgent,.reminder-row.overdue{color:var(--danger);border-color:rgba(255,129,124,.3)}.reminder-icon.urgent{background:var(--danger-soft)}.check-button{color:var(--text-tertiary);background:transparent;border-color:var(--line-strong)}.check-button:hover{color:#ffffff;background:var(--accent);border-color:var(--accent)}.tip-panel button,.tip-panel p{color:var(--warning)}.auth-tabs,.progress-mode-switch,.segmented-control{background:rgba(118,118,128,.16);border-color:transparent;border-radius:7px}.auth-tabs button,.progress-mode-switch button,.segmented-control button{color:var(--text-secondary);border-color:transparent;border-radius:5px}.auth-tabs button.active,.progress-mode-switch button.active,.segmented-control button.active{color:var(--text);background:var(--surface-raised);border-color:var(--line);box-shadow:0 1px 4px rgba(0,0,0,.22)}.calendar-day,.reminder-rule-row{color:var(--text);background:var(--surface-solid);border-color:var(--line)}.calendar-day.empty{background:var(--canvas-raised)}.calendar-day.has-events{background:var(--surface-raised);border-color:var(--line-strong)}.calendar-day.has-events:hover{background:var(--surface-hover);border-color:var(--accent)}.calendar-event-dot{background:var(--accent)}.danger-zone{background:var(--danger-soft)!important;border-color:rgba(255,129,124,.3)!important}.deletion-status{background:var(--warning-soft);border-color:rgba(242,189,104,.3)!important}.modal-backdrop{background:rgba(36,32,27,.3)}.modal{color:var(--text);background:var(--surface-solid);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-overlay)}.auth-form label,.form-grid label,.modal label,.rule-fieldset legend{color:var(--text-secondary)}.rule-fieldset{border-color:var(--line)}.form-error{color:var(--danger)}.form-success{color:var(--success)}.toast{color:var(--text);background:var(--surface-raised);border-color:var(--line-strong);box-shadow:var(--shadow-overlay)}.toast svg{color:var(--success)}.loading-page{min-height:100vh;background:var(--canvas);color:var(--text-secondary)}.loading-page svg{color:var(--accent)}.auth-page{min-height:100vh;color:var(--text);background:var(--canvas)}.auth-card{background:var(--surface-solid);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-overlay)}.auth-brand h1,.auth-card{color:var(--text)}.auth-brand p{color:var(--text-secondary)}.auth-form input::placeholder{color:var(--text-tertiary)}.sidebar-scrim{background:rgba(36,32,27,.3)}@media (hover:hover) and (pointer:fine){.card-row:hover,.event-row:hover,.fee-row:hover,.reminder-row:hover{transform:translateY(-1px)}}@media (max-width:680px){.sidebar{box-shadow:12px 0 32px rgba(30,48,35,.12)}.topbar{height:58px;padding-inline:16px}.content{padding:28px 16px calc(46px + env(safe-area-inset-bottom))}h1{font-size:29px}.metrics{border-radius:8px}.metric{min-height:102px}.section-block+.section-block,.side-panel+.side-panel{padding-top:22px}}@media (prefers-reduced-transparency:reduce){.sidebar,.topbar{background:var(--surface-solid);-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-contrast:more){:root{--line:#a39c92;--line-strong:#6b6358;--text-secondary:#49433b;--text-tertiary:#575047}.auth-card,.card-row,.event-row,.fee-row,.metrics,.modal,.reminder-row{border-color:var(--line)}}@media (prefers-reduced-motion:reduce){.card-row,.event-row,.fee-row,.reminder-row{transform:none!important}}@media print{:root{color-scheme:light;--canvas:#fff;--surface-solid:#fff;--surface-raised:#f4f6f8;--text:#16222b;--text-secondary:#50616d;--text-tertiary:#637580;--line:rgba(22,34,43,0.24)}.logout-button,.primary-button,.sidebar,.sidebar-scrim,.toast,.topbar{display:none!important}.content{max-width:none;padding:0}}body{position:relative;isolation:isolate}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(95,82,64,.035) 1px,transparent 0),linear-gradient(90deg,rgba(95,82,64,.035) 1px,transparent 0);background-size:40px 40px;-webkit-mask-image:linear-gradient(180deg,black,transparent 78%);mask-image:linear-gradient(180deg,black,transparent 78%);opacity:.65}.app-frame,.main-area{position:relative}.main-area:before{content:"";position:absolute;top:63px;left:42px;right:42px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--line-strong),transparent);opacity:.55}.content{position:relative}.welcome-row{padding-bottom:22px;border-bottom:1px solid var(--line)}.eyebrow:before,.section-kicker:before{content:"";display:inline-block;width:5px;height:5px;margin:0 7px 2px 0;border-radius:50%;background:var(--accent);box-shadow:none}.metrics{grid-template-columns:repeat(5,minmax(0,1fr));position:relative;overflow:hidden}.metrics:before{content:"";position:absolute;inset:0 0 auto;height:1px;pointer-events:none;background:linear-gradient(90deg,var(--danger),var(--accent),transparent 86%);opacity:.75}.metric{position:relative}.metric:after{content:"";position:absolute;top:18px;right:18px;width:4px;height:4px;border-radius:50%;background:var(--text-tertiary);opacity:.55}.metric.accent:after{background:var(--accent);box-shadow:none;opacity:1}.empty-state{position:relative;min-height:212px;margin-top:12px;overflow:hidden;border:1px dashed var(--line-strong);border-radius:10px;background-color:var(--surface-solid);background-image:linear-gradient(rgba(95,82,64,.035) 1px,transparent 0),linear-gradient(90deg,rgba(95,82,64,.035) 1px,transparent 0);background-size:24px 24px}.empty-state:after{content:"等待录入";position:absolute;top:14px;right:16px;color:var(--text-tertiary);font-size:9px;font-weight:700;letter-spacing:.12em;opacity:.72}.empty-icon{border:1px solid var(--line-strong);background:var(--accent-soft);box-shadow:var(--shadow-control)}.empty-state strong{color:var(--text)}.empty-state p{color:var(--text-secondary)}.card-row,.event-row,.icon-button,.logout-button,.nav-item,.primary-button,.reminder-row,.secondary-button,.text-button{-webkit-tap-highlight-color:transparent}.icon-button:active:not(:disabled),.logout-button:active:not(:disabled),.nav-item:active:not(:disabled),.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),.text-button:active:not(:disabled){transform:scale(.98)}@media (max-width:680px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.main-area:before{top:57px;left:16px;right:16px}.welcome-row{padding-bottom:18px}.empty-state{min-height:188px}.metric:last-child{grid-column:1/-1;min-height:82px}}@media (min-width:681px) and (max-width:980px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (forced-colors:active),(prefers-reduced-transparency:reduce){.main-area:before,body:before{display:none}}@media print{.empty-state:after,.main-area:before,.metric:after,.metrics:before,body:before{display:none}}