:root{color-scheme:light;--bg:#f5f6f2;--paper:#fff;--ink:#25372f;--muted:#7b847c;--line:#e6e9e1;--green:#365a44;--green-soft:#eaf0e7;--red:#a74735;--red-soft:#f9eee9;--amber:#96712d;--amber-soft:#faf2dd;--radius:18px;font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}.icon-library{position:absolute;width:0;height:0;overflow:hidden}:focus-visible{outline:3px solid #95af82;outline-offset:4px}button{border:0}.site-header{height:94px;display:flex;align-items:center;justify-content:space-between;max-width:1232px;margin:auto;padding:0 48px}.brand{display:flex;align-items:center;gap:12px;font-weight:650;font-size:17px}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border:1px solid #cdd8c8;border-radius:11px;color:var(--green);background:#ecf0e7}.brand-mark svg{width:23px;height:23px}.brand-en{display:block;font-size:9px;font-weight:500;line-height:1;letter-spacing:2px;margin-top:3px;color:#7a8879}.header-right{display:flex;align-items:center;gap:18px}.personal-label{font-size:12px;letter-spacing:1px;color:var(--muted)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9px;color:#7d887c;background:transparent;transition:background .15s,color .15s}.icon-button:hover{background:var(--green-soft);color:var(--green)}main{max-width:1136px;margin:auto;padding:0 48px;min-height:calc(100svh - 176px)}.eyebrow{display:flex;align-items:center;gap:11px;font-size:11px;font-weight:600;letter-spacing:2px;color:#798974}.small-line{display:block;width:24px;height:1px;background:#78916d}.muted{color:var(--muted);font-size:14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:11px 18px;min-height:45px;border:1px solid transparent;border-radius:10px;font-size:13px;font-weight:600;white-space:nowrap;transition:background .15s,transform .15s}.button:hover{transform:translateY(-1px)}.primary{color:#fff;background:var(--green);box-shadow:0 3px 7px #294e3412}.primary:hover{background:#294a36}.secondary{background:#fff;color:#5d6c5b;border-color:#dce2d6}.secondary:hover{background:#f6f8f2}.danger{background:var(--red);color:#fff}.danger:hover{background:#8b3929}.full-width{width:100%}.initial-loading{padding:180px 0;text-align:center;font-size:14px;color:var(--muted)}.loading-dot{display:inline-block;width:7px;height:7px;margin-right:12px;border-radius:50%;background:#78916d;animation:pulse 1s infinite alternate}@keyframes pulse{to{opacity:.3}}.login-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:center;max-width:960px;margin:90px auto 0;padding-bottom:100px}.login-intro h1{font-size:49px;font-weight:600;line-height:1.5;letter-spacing:-1px;margin:24px 0}.login-intro>p{font-size:14px;line-height:2.1;color:#85907e}.intro-foot{display:flex;align-items:center;gap:9px;font-size:11px;color:#8b9685;margin-top:48px}.tiny-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#74976a;flex-shrink:0}.login-card{border:1px solid #e1e6db;background:var(--paper);padding:36px;border-radius:22px;box-shadow:0 14px 55px #24372805}.lock-mark{display:grid;place-items:center;width:43px;height:43px;background:#eef3e9;color:#618052;border-radius:13px;margin-bottom:23px}.login-card h2{font-size:23px;font-weight:600;margin:0 0 8px}.login-card>.muted{margin:0 0 28px;font-size:12px}.login-card .button{margin-top:20px;justify-content:space-between}.login-note{font-size:10px;color:#939c8e;margin:21px 0 0;line-height:1.9}label{display:block;font-size:12px;font-weight:600;margin-bottom:9px;color:#52634d}input{display:block;width:100%;height:46px;background:#fcfdfb;border:1px solid #dce3d6;border-radius:9px;padding:0 13px;color:var(--ink);font-size:14px;min-width:0}input::placeholder{color:#a8aea3;font-size:12px}input:focus{outline:2px solid #b3c4a4;outline-offset:1px;border-color:#8aa577}.form-error{color:var(--red);font-size:12px;line-height:1.8;margin:12px 0 0;overflow-wrap:anywhere}.dashboard{padding-top:51px;padding-bottom:75px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}.page-heading h1{font-size:39px;line-height:1.35;letter-spacing:-1px;font-weight:600;margin:15px 0 13px}.heading-dot{color:#86a36c;margin-left:5px}.page-heading p{margin:0;font-size:12px}.page-heading>.button{margin-top:18px}.date-strip{display:flex;justify-content:space-between;align-items:center;margin-top:36px;padding:13px 1px;font-size:11px;color:#76836c}.date-strip>div{display:flex;gap:9px;align-items:center;font-variant-numeric:tabular-nums}.strip-divider{height:11px;width:1px;background:#d4dcce;margin:0 4px}.date-strip-note{letter-spacing:1px;color:#9ca693;font-size:10px}.list-panel{background:var(--paper);border:1px solid #e1e6db;border-radius:var(--radius);overflow:hidden;box-shadow:0 7px 28px #283d2704}.list-toolbar{height:77px;padding:0 27px;display:flex;align-items:center;justify-content:space-between;gap:16px}.list-title{display:flex;gap:10px;align-items:center}.list-title h2{font-size:14px;font-weight:600;margin:0}.count-badge{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:6px;background:#f0f3ec;font-size:10px;font-weight:650;color:#7d9171;font-variant-numeric:tabular-nums}.list-controls{display:flex;gap:10px;align-items:center}.sort-label{font-size:10px;color:#98a08f}.list-controls .icon-button{width:30px;height:30px}.list-controls svg{width:16px;height:16px}.table-head,.service-row{display:grid;grid-template-columns:minmax(100px,1.4fr) minmax(110px,.9fr) minmax(100px,1fr) 74px;gap:12px;align-items:center;padding:0 27px}.table-head{height:43px;background:#f9faf7;color:#8f9b84;font-size:10px;letter-spacing:.6px;border-top:1px solid #f0f2ec;border-bottom:1px solid #edf0e8}.service-list{padding:0;margin:0;list-style:none}.service-row{min-height:89px;border-bottom:1px solid #edf0e8;transition:background .15s}.service-row:last-child{border-bottom:0}.service-row:hover{background:#fcfdfb}.service-title{display:flex;gap:13px;align-items:center;min-width:0}.service-initial{width:36px;height:36px;display:grid;place-items:center;flex-shrink:0;border-radius:11px;font-size:14px;font-weight:650;color:#6d855a;background:#eff3e9;border:1px solid #e8edde}.service-initial.tone-1{background:#f3f0e9;color:#958460;border-color:#ede9df}.service-initial.tone-2{background:#edf0f5;color:#7c8ca1;border-color:#e6eaf0}.service-initial.tone-3{background:#f3edf2;color:#a1829b;border-color:#ece5eb}.service-name{font-size:13px;font-weight:600;overflow-wrap:anywhere;line-height:1.7;min-width:0}.service-date{font-family:"Segoe UI",sans-serif;font-size:13px;letter-spacing:.3px;color:#738068;font-variant-numeric:tabular-nums}.service-status{display:inline-flex;align-items:center;gap:7px;background:var(--green-soft);color:#6b8659;border-radius:7px;padding:5px 10px;font-size:10px;font-weight:600;width:max-content;max-width:100%;white-space:nowrap}.service-status::before{content:"";width:4px;height:4px;background:currentColor;border-radius:50%;flex-shrink:0}.service-status.soon{background:var(--amber-soft);color:var(--amber)}.service-status.overdue{background:var(--red-soft);color:var(--red)}.row-actions{display:flex;justify-content:flex-end;gap:3px}.row-actions svg{width:16px;height:16px}.row-actions .icon-button{width:33px;height:33px}.row-actions .delete-action:hover{color:var(--red);background:var(--red-soft)}.panel-footer{border-top:1px solid #edf0e8;min-height:43px;padding:10px 27px;font-size:9px;color:#a0a995;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-footer>span:first-child::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:#9cb58b;margin-right:7px}.dashboard-note{display:flex;align-items:flex-start;gap:8px;color:#96a08c;margin:20px 3px}.dashboard-note svg{width:13px;height:13px;margin-top:2px}.dashboard-note p{margin:0;font-size:10px;line-height:1.8}.empty-state{text-align:center;padding:57px 20px 62px}.empty-icon{display:inline-flex;align-items:center;justify-content:center;width:59px;height:59px;border-radius:18px;background:#f2f5ec;color:#8fa17d;margin-bottom:7px}.empty-icon svg{width:28px;height:28px}.empty-state h3{font-size:16px;font-weight:550;margin:12px 0 7px}.empty-state p{font-size:12px;color:#9aa28f;margin:0 0 24px}.list-loading{text-align:center;padding:45px;font-size:12px;color:#929d88}.list-error{margin:0 22px 15px;padding:11px 14px;background:#fcf0e9;border-radius:8px;font-size:12px;color:var(--red)}.site-footer{max-width:1232px;margin:auto;height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;color:#a4ad9b;font-size:9px;letter-spacing:1px}.footer-version{color:#b9c0b2;margin-left:7px}.site-footer>span:last-child{letter-spacing:.5px}.modal{border:1px solid #dce3d4;border-radius:18px;padding:30px;width:440px;max-width:calc(100% - 32px);box-shadow:0 25px 100px #1a302b26;color:var(--ink)}.modal::backdrop{background:#25372f55;backdrop-filter:blur(3px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.modal-heading h2{font-size:23px;font-weight:600;margin:5px 0 0}.modal-heading .eyebrow{font-size:9px;letter-spacing:2px}.modal-heading .icon-button{margin-top:-10px;margin-right:-8px}.modal label:not(:first-child){margin-top:20px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:28px}.input-hint{font-size:10px;color:#95a08c;margin:9px 0 0}.delete-modal{width:400px}.delete-modal .modal-heading{margin-bottom:15px}.delete-modal h2{font-size:20px}.delete-message{font-size:13px;color:#849179;overflow-wrap:anywhere;line-height:1.9}.delete-message strong{font-weight:600;color:#536949}.toast{position:fixed;bottom:35px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:12px 20px;background:#2d4938;color:#fff;border-radius:12px;box-shadow:0 8px 24px #23452825;font-size:12px;z-index:5;max-width:calc(100% - 32px)}.toast svg{width:17px;height:17px}noscript{display:block;padding:24px;text-align:center;color:var(--red)}
@media(min-width:1400px){.dashboard{padding-top:77px}.login-layout{margin-top:120px}}
@media(max-width:760px){.site-header{height:79px;padding:0 22px}.brand{font-size:15px;gap:9px}.brand-mark{width:34px;height:34px}.brand-en{font-size:8px}.personal-label{display:none}main{padding:0 22px;min-height:calc(100svh - 157px)}.dashboard{padding-top:35px}.page-heading{align-items:flex-start;gap:12px}.page-heading h1{font-size:29px;margin:12px 0}.page-heading .eyebrow{font-size:9px;letter-spacing:1.5px}.page-heading p{font-size:11px;max-width:210px;line-height:1.9}.page-heading>.button{padding:10px 12px;min-height:40px;font-size:11px;margin-top:40px;gap:5px}.page-heading>.button svg{width:15px;height:15px}.date-strip{margin-top:25px;font-size:10px}.date-strip-note{display:none}.list-toolbar{height:65px;padding:0 18px}.list-title h2{font-size:13px}.sort-label{display:none}.table-head{display:none}.service-row{grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:19px 17px;min-height:110px;position:relative}.service-title{grid-column:1;grid-row:1;gap:10px;padding-right:4px}.service-initial{width:32px;height:32px;font-size:12px;border-radius:9px}.service-name{font-size:13px}.service-date{grid-column:1;grid-row:2;margin-left:42px;font-size:11px}.service-date::before{content:"续期 ";font-family:inherit;font-size:10px;color:#a2ab98;letter-spacing:0}.service-status{grid-column:2;grid-row:2;font-size:9px;padding:4px 7px;justify-self:end}.row-actions{grid-column:2;grid-row:1}.row-actions .icon-button{width:30px;height:30px}.row-actions svg{width:15px;height:15px}.panel-footer{padding:11px 17px;font-size:8px}.dashboard-note{margin-top:17px}.dashboard-note p{font-size:9px;line-height:1.9}.site-footer{padding:0 22px;height:78px;font-size:8px}.login-layout{display:block;margin:36px auto 0;padding-bottom:50px;max-width:390px}.login-intro h1{font-size:34px;line-height:1.4;margin:17px 0}.login-intro>p{font-size:12px}.intro-foot{display:none}.login-card{margin-top:31px;padding:26px}.login-card h2{font-size:21px}.lock-mark{width:36px;height:36px;margin-bottom:18px}.login-card>.muted{margin-bottom:23px}.modal{padding:25px}.modal-heading h2{font-size:21px}.toast{bottom:22px}.empty-state{padding:43px 15px 48px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
