:root{--ink:#182433;--muted:#687789;--line:#d9e1ea;--bg:#f4f7fb;--panel:#fff;--brand:#1468c7;--brand-dark:#0b4f9c;--success:#1d8b5a;--danger:#c63d49;--warning:#b76a00;--shadow:0 6px 22px rgba(18,52,86,.07)}
*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft Yahei",Arial,sans-serif}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{min-height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 clamp(16px,4vw,56px);gap:32px;position:sticky;top:0;z-index:10}.brand{font-size:18px;font-weight:700;white-space:nowrap}.brand a{color:var(--ink)}.main-nav{display:flex;gap:3px;align-self:stretch;align-items:center}.main-nav a{padding:20px 14px;color:var(--muted);white-space:nowrap}.main-nav a:hover,.main-nav a.active{color:var(--brand);text-decoration:none;background:#f0f6ff}.user-menu{margin-left:auto;display:flex;align-items:center;gap:14px;color:var(--muted);white-space:nowrap}.container{width:min(1440px,calc(100% - 32px));margin:0 auto;padding:28px 0 60px}.container.narrow{max-width:600px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px}.page-head h1{font-size:27px;margin:8px 0 2px;line-height:1.25}.page-head h1 .code-pill{font-size:13px;vertical-align:middle;margin-left:8px}.muted{color:var(--muted)}.hint{font-size:12px;color:var(--muted);margin:16px 0 0}.back{font-size:13px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow);padding:20px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:-2px 0 16px}.panel-head h2{font-size:17px;margin:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #b8c5d4;border-radius:5px;background:#fff;color:var(--ink);padding:8px 14px;min-height:38px;text-decoration:none;white-space:nowrap}.button:hover{text-decoration:none;border-color:var(--brand);color:var(--brand)}.button.primary{background:var(--brand);border-color:var(--brand);color:#fff}.button.primary:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.button.danger{background:var(--danger);border-color:var(--danger);color:#fff}.button.ghost{background:transparent}.button.danger.ghost{background:transparent;color:var(--danger);border-color:var(--danger)}.button.danger.ghost:hover{background:var(--danger);color:#fff}.button.small{padding:4px 9px;min-height:30px;font-size:12px}.button.full{width:100%}.alert{border-radius:5px;border:1px solid;padding:10px 13px;margin-bottom:16px}.alert.success{background:#edf9f2;border-color:#b9e6ca;color:#16613f}.alert.error{background:#fff1f1;border-color:#f1c1c1;color:#9e2834}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.metric{background:#fff;border:1px solid var(--line);border-radius:7px;padding:19px 20px;box-shadow:var(--shadow)}.metric span,.metric small{display:block;color:var(--muted)}.metric strong{display:block;font-size:31px;line-height:1.25;margin:7px 0}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.two-col>.panel{min-width:0}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:680px}th,td{border-bottom:1px solid var(--line);padding:10px 9px;text-align:left;vertical-align:top;white-space:nowrap}th{font-size:12px;color:var(--muted);font-weight:600;background:#f8fafc}td small{display:block;color:var(--muted);font-size:11px;margin-top:2px;max-width:200px;overflow:hidden;text-overflow:ellipsis}.data-table tr:hover td{background:#fbfdff}.empty{padding:30px;text-align:center;color:var(--muted)}.pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:16px}.pagination a{padding:4px 10px;border:1px solid var(--line);border-radius:4px}.filters{padding:15px 18px}.filter-grid{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px}.filter-grid label{min-width:170px;flex:1}.filter-grid .check{flex:0 0 auto;min-width:auto;padding-bottom:10px}.filter-grid .button{align-self:flex-end}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}.form-grid label,.stack-form label,.inline-form label{display:flex;flex-direction:column;gap:5px;color:#3d4b5b;font-weight:600;font-size:13px}.form-grid label.wide{grid-column:span 2}.form-grid input,.form-grid select,.form-grid textarea,.stack-form input,.stack-form select,.stack-form textarea,.inline-form input,.inline-form select,table input,table select{width:100%;border:1px solid #c7d1de;border-radius:4px;background:#fff;color:var(--ink);padding:8px 9px;min-height:38px}.form-grid textarea,.stack-form textarea{resize:vertical;min-height:86px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus,.inline-form input:focus,.inline-form select:focus,table input:focus,table select:focus{outline:2px solid rgba(20,104,199,.16);border-color:var(--brand)}.form-actions{display:flex;justify-content:flex-end;gap:10px}.assignee-grid{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}.check{display:inline-flex;align-items:center;gap:6px;font-weight:400!important;color:var(--ink)!important;white-space:nowrap}.check input{width:auto!important;min-height:auto!important}.check small{color:var(--muted)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.data-list{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.data-list div{padding:9px 0;border-bottom:1px solid var(--line);min-width:0}.data-list dt{color:var(--muted);font-size:12px}.data-list dd{margin:2px 0 0;word-break:break-word}.actions{display:flex;gap:8px;align-items:center}.actions form{margin:0}.code-pill{display:inline-block;border:1px solid #b7d0ee;border-radius:4px;color:var(--brand);font-weight:500;padding:2px 7px}.tag{display:inline-block;border-radius:3px;padding:2px 7px;font-size:12px;background:#eef2f6;color:#596878}.intent-a{background:#e5f7ed;color:#167448}.intent-b{background:#fff4da;color:#996300}.intent-c{background:#e8f2ff;color:#15599b}.intent-d{background:#f2f3f5;color:#5e6874}.stage-table{min-width:940px}.stage-table td{white-space:normal}.stage-table input,.stage-table select{min-width:100px;padding:6px 7px;min-height:34px}.stage-table td:first-child{min-width:130px}.stack-form{display:flex;flex-direction:column;gap:12px}.stack-form .form-grid{margin-bottom:2px}.timeline{position:relative;padding-left:24px}.timeline:before{content:"";position:absolute;left:5px;top:7px;bottom:5px;width:1px;background:#cbd7e5}.timeline article{position:relative;display:flex;gap:12px;padding:0 0 20px}.timeline-dot{position:absolute;left:-23px;top:6px;width:11px;height:11px;border:3px solid #fff;border-radius:50%;background:var(--brand);box-shadow:0 0 0 1px var(--brand)}.timeline-head{display:flex;gap:14px;align-items:center}.timeline-head time{font-size:12px;color:var(--muted)}.timeline p{margin:6px 0 0;white-space:normal;word-break:break-word}.bar-list{display:flex;flex-direction:column;gap:13px}.bar-row{display:grid;grid-template-columns:105px 1fr 35px;gap:10px;align-items:center}.bar-row>span{font-size:13px;color:var(--muted)}.bar{height:9px;background:#edf1f5;border-radius:10px;overflow:hidden}.bar i{display:block;height:100%;background:var(--brand);border-radius:inherit}.bar-row b{text-align:right}.inline-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.inline-form input,.inline-form select{min-width:200px}.admin-user-form{align-items:flex-end}.admin-user-form .button{align-self:flex-end}.error-panel{text-align:center;margin-top:80px}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#f2f7ff,#eef3f8)}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:34px}.login-logo{font-size:24px;font-weight:700}.login-card form{display:flex;flex-direction:column;gap:16px;margin-top:22px}.login-card label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#3d4b5b}.login-card input{border:1px solid #c7d1de;border-radius:4px;padding:10px 11px;min-height:42px}.login-card .alert{margin:14px 0 0}
.form-grid label.full{grid-column:1/-1}.base-profile-grid{align-items:start}.base-profile-grid textarea{min-height:96px}.data-list div.wide{grid-column:1/-1}
.followup-next-date{grid-column:1}
.form-grid input[data-customer-code-preview]{background:#f2f7fd;color:var(--brand-dark);font-weight:700}.form-grid input[data-latest-followup-date]{background:#f2f4f7;color:var(--muted);cursor:not-allowed}.field-hint{color:var(--muted);font-size:11px;font-weight:400}.channel-picker{display:grid;gap:7px;width:100%}.channel-picker [hidden]{display:none}
.finance-panel{scroll-margin-top:82px}.finance-panel .panel-head{align-items:flex-start}.finance-total{display:flex;align-items:baseline;gap:7px;white-space:nowrap;color:var(--muted)}.finance-total span,.finance-total small{font-size:12px}.finance-total strong{font-size:21px;color:var(--ink);font-variant-numeric:tabular-nums}.finance-form{padding:16px 0 20px;margin-bottom:4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.finance-records{margin-top:18px}.money{font-weight:700;font-variant-numeric:tabular-nums}.renewal-date{display:inline-block;padding:2px 7px;border-radius:3px;background:#eef2f6;color:#596878}.row-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}.row-actions form{margin:0}.row-actions-head{width:1%;white-space:nowrap}.charge-row.is-editing td{background:#f5f9ff}.charge-edit-row>td{padding:14px 12px;background:#f5f9ff;border-top:0}.charge-edit-form{display:flex;flex-direction:column;gap:10px}.charge-edit-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}@media (max-width:900px){.charge-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.charge-edit-grid{grid-template-columns:1fr}.charge-edit-row .form-actions{flex-direction:column-reverse}.charge-edit-row .form-actions .button{width:100%}}.inline-notice{padding:12px 14px;margin:2px 0 18px;border:1px solid #d9e4f0;border-radius:5px;background:#f7faff;color:var(--muted)}.fee-item-form label:first-of-type{min-width:min(360px,100%)}.fee-items-table{min-width:920px}.fee-items-table td:first-child{width:34%}
.payment-metrics .metric strong{font-size:24px;overflow-wrap:anywhere}.payment-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end}.payment-filter-grid label{min-width:0}.payment-filter-grid .search-field{grid-column:span 2}.payment-filter-grid .button{width:100%}.payments-table{min-width:1480px}.payments-table td:nth-child(2){white-space:normal;min-width:170px}.renewal-date.overdue{background:#fff0f0;color:#a52d38}.payment-list-panel .panel-head{margin-bottom:10px}
@media (max-width:900px){.topbar{gap:10px;padding:0 14px;overflow:auto;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-inline:contain}.topbar::-webkit-scrollbar{display:none}.brand{font-size:16px}.main-nav a{padding:20px 9px;font-size:13px}.user-menu span{display:none}.container{width:calc(100% - 22px);padding-top:20px}.metric-grid{grid-template-columns:repeat(2,1fr)}.two-col,.detail-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label.wide{grid-column:span 2}.page-head{align-items:flex-start}.page-head h1{font-size:23px}}
@media (max-width:900px){.payment-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.topbar{min-height:56px}.main-nav a{padding:17px 7px}.container{width:calc(100% - 16px);padding-top:16px}.metric-grid{gap:8px}.metric{padding:13px}.metric strong{font-size:24px}.panel{padding:14px;margin-bottom:12px}.form-grid{grid-template-columns:1fr;gap:11px}.form-grid label.wide{grid-column:span 1}.page-head{display:block}.page-head .button,.page-head .actions{margin-top:12px}.actions{flex-wrap:wrap}.data-list{grid-template-columns:1fr}.filter-grid{display:grid;grid-template-columns:1fr 1fr}.filter-grid label{min-width:0}.filter-grid label:first-child{grid-column:span 2}.filter-grid .check{grid-column:span 2}.filter-grid .button{width:100%}.payment-filter-grid{grid-template-columns:1fr!important}.payment-filter-grid .search-field{grid-column:span 1!important}.payment-metrics .metric strong{font-size:20px}.inline-form{display:grid;grid-template-columns:1fr}.inline-form input,.inline-form select{min-width:0}.bar-row{grid-template-columns:88px 1fr 28px}.login-card{padding:25px 20px}.finance-panel .panel-head{display:block}.finance-total{margin-top:10px}.finance-form .form-actions .button{width:100%}}
.payment-filter-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 16px}.payment-filter-head h2{margin:0;font-size:16px}.payment-filter-head .muted{font-size:12px}.payment-filters{padding:19px 20px}.payment-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px;align-items:end}.payment-filter-grid label{display:flex;flex-direction:column;gap:6px;min-width:0;color:#3d4b5b;font-size:13px;font-weight:600;line-height:1.35}.payment-filter-grid .search-field{grid-column:span 2}.payment-filter-grid input,.payment-filter-grid select{width:100%;min-width:0;min-height:40px;padding:8px 10px;border:1px solid #c7d1de;border-radius:5px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}.payment-filter-grid input::placeholder{color:#9aa8b8}.payment-filter-grid input:focus,.payment-filter-grid select:focus{outline:2px solid rgba(20,104,199,.14);border-color:var(--brand);box-shadow:0 0 0 1px rgba(20,104,199,.08)}.payment-filter-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}.payment-filter-actions .button{width:100%;min-height:40px}.payment-filter-actions .button.ghost{background:#f7f9fc;color:var(--muted)}.payment-metrics .metric{position:relative;overflow:hidden;padding:18px 20px 17px}.payment-metrics .metric:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--brand)}.payment-metrics .metric:nth-child(2):before{background:var(--success)}.payment-metrics .metric:nth-child(3):before{background:#7c5ac7}.payment-metrics .metric:nth-child(4):before{background:var(--warning)}.payment-metrics .metric span{font-size:12px}.payment-metrics .metric strong{font-size:28px;font-variant-numeric:tabular-nums}.payment-list-panel{padding:20px}.payment-list-panel .panel-head{align-items:center}.payment-list-panel .panel-head h2{font-size:17px}.payments-table{min-width:1200px}.payments-table th{padding-top:11px;padding-bottom:11px}.payments-table td{padding-top:11px;padding-bottom:11px}.payments-table td:nth-child(4){color:var(--brand-dark)}.payments-table td:last-child a{font-weight:600}
@media (max-width:900px){.payment-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-filter-grid .search-field{grid-column:span 2}.payment-filter-actions{grid-column:span 2}.payments-table{min-width:1480px}}
@media (max-width:560px){.payment-filter-head{align-items:flex-start}.payment-filters{padding:16px 14px}.payment-filter-grid{grid-template-columns:1fr!important;gap:12px}.payment-filter-grid .search-field{grid-column:span 1!important}.payment-filter-actions{grid-column:span 1;grid-template-columns:repeat(2,minmax(0,1fr))}.payment-metrics .metric{padding:13px}.payment-metrics .metric strong{font-size:20px}}
@media (max-width:560px){.followup-form .form-grid>label.followup-result{order:1}.followup-form .form-grid>label.followup-next-date{order:2;grid-column:1}.followup-form .form-grid>label.followup-content{order:3}.followup-form .form-grid>label.full{order:4}}
