:root{--bg:#f5f7f4;--paper:#fff;--ink:#202d29;--muted:#62726b;--line:#e3e9e3;--green:#205849;--green-soft:#eaf2ed;--red:#a34035;--red-soft:#fcf0ed;--radius:14px;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;line-height:1.6;accent-color:var(--green);caret-color:var(--green);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--green);text-underline-offset:4px}button:disabled{cursor:wait;opacity:.55}[hidden]{display:none!important}:focus-visible{outline:3px solid #5a8d7a;outline-offset:3px}::selection{background:#c4dfcf;color:#153e31}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#c2cec5;border-radius:6px}::-webkit-scrollbar-track{background:#edf1ec}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.skip{position:fixed;top:-80px;left:20px;z-index:10;background:white;padding:10px}.skip:focus{top:10px}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}h1{font-size:32px;line-height:1.35;font-weight:650;letter-spacing:-.025em}h2{font-size:19px;font-weight:650}h3{font-size:15px;font-weight:600}.muted{color:var(--muted)}.button{min-height:39px;padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #cdd8cf;border-radius:8px;color:var(--ink);background:white;font-weight:550;line-height:1.3;transition:background .16s ease-out,border-color .16s ease-out}.button:hover{background:#f0f4ef;border-color:#a0b5a7}.button.primary{background:var(--green);color:white;border-color:var(--green)}.button.primary:hover{background:#164435}.button.danger{color:var(--red);border-color:#ddbab4;background:white}.button.danger:hover{background:var(--red-soft)}.button.small{font-size:12px;padding:6px 10px;min-height:31px}.button.full{width:100%}.button.ghost{border-color:transparent;background:transparent;color:var(--muted)}.icon-button{border:0;background:transparent;display:inline-flex;padding:7px;border-radius:6px;color:var(--muted)}.icon-button:hover{background:var(--green-soft)}.brand{display:flex;align-items:center;gap:11px;font-size:19px;font-weight:650;text-decoration:none;letter-spacing:-.03em;color:var(--ink)}.brand small{display:block;color:var(--muted);font-size:11px;font-weight:400;letter-spacing:0;margin-top:2px}.brand-mark{width:38px;height:38px;border-radius:11px;background:var(--green);color:white;display:grid;place-items:center}.brand-mark .icon{width:23px;height:23px}.app-shell{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100dvh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:32px 20px 22px;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column}.sidebar .brand{padding:0 9px}.sidebar nav{margin-top:48px;display:flex;flex-direction:column;gap:8px}.sidebar nav a{display:flex;align-items:center;gap:13px;padding:12px 16px;text-decoration:none;color:var(--muted);font-weight:500;border-radius:9px}.sidebar nav a:hover{background:#f4f7f3;color:var(--green)}.sidebar nav a[aria-current=page]{background:var(--green-soft);color:var(--green);font-weight:650}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:23px 12px 0}.connection{display:flex;align-items:center;gap:8px;font-size:12px}.status-dot{width:7px;height:7px;border-radius:50%;background:#87948c;display:inline-block;flex-shrink:0}.status-dot.online{background:#347953}.status-dot.error{background:#b35143}.sidebar-bottom p{font-size:11px;color:var(--muted);margin-top:10px;line-height:1.9}.logout{display:flex;align-items:center;gap:10px;border:0;background:none;color:var(--muted);font-size:12px;padding:18px 0 0}.logout:hover{color:var(--red)}.workspace{min-width:0}.topbar{height:77px;border-bottom:1px solid var(--line);padding:0 42px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:12px;background:rgba(255,255,255,.7)}.topbar strong{font-weight:500;color:var(--ink)}.topbar-right{display:flex;align-items:center;gap:22px}.avatar{width:30px;height:30px;border-radius:50%;background:#e8ede6;display:grid;place-items:center;color:var(--green);font-size:12px;font-weight:600}main{padding:38px 42px 24px;max-width:1580px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.page-heading p{font-size:13px;color:var(--muted);margin-top:9px}.heading-actions{display:flex;align-items:center;gap:10px}.notice{padding:13px 17px;background:#f3f1e6;border:1px solid #e3dec8;border-radius:8px;margin-bottom:22px;color:#655d30;font-size:12px}.notice a{margin:0 4px;font-weight:600}.notice.subtle{background:#edf1ed;border-color:#dce4dd;color:#526759}.notice.error{background:var(--red-soft);border-color:#e7c9c3;color:var(--red)}.stat-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:24px 0 28px;border-bottom:1px solid #d8e1d8;margin-bottom:30px;gap:20px}.stat{padding:0 25px;border-right:1px solid #dae2d9}.stat:first-child{padding-left:0}.stat:last-child{border-right:0}.stat span{font-size:12px;color:var(--muted)}.stat strong{display:block;font-size:30px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.35;margin-top:5px;letter-spacing:-.025em}.stat small{font-size:11px;color:var(--muted)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.section-head p{color:var(--muted);font-size:12px;margin-top:4px}.text-link{border:0;background:none;color:var(--green);display:inline-flex;align-items:center;gap:6px;font-size:12px;text-decoration:none;padding:5px 0}.text-link:hover{text-decoration:underline}.surface{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px}th{text-align:left;color:var(--muted);font-weight:450;font-size:11px;background:#fbfcfa;padding:13px 19px;border-bottom:1px solid var(--line)}td{padding:17px 19px;border-bottom:1px solid #edf0eb;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfa}.num{text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.01em}.positive{color:var(--green)}.negative{color:var(--red)}td.num{font-size:14px;font-weight:600}.cell-name{display:flex;align-items:center;gap:11px;min-width:150px}.book-avatar{width:32px;height:32px;border-radius:8px;background:#edf3ec;color:var(--green);display:grid;place-items:center;font-size:12px;flex-shrink:0}.book-avatar.private{background:#f4eee4;color:#89672e}.cell-name strong{font-weight:550;display:block;max-width:220px;text-overflow:ellipsis;overflow:hidden}.cell-name small{display:block;font-size:10px;color:var(--muted);margin-top:2px;max-width:220px;text-overflow:ellipsis;overflow:hidden}.badge{font-size:10px;border-radius:5px;display:inline-flex;align-items:center;gap:5px;padding:3px 7px;background:#edf3ec;color:#315f42;line-height:1.5}.badge.off{background:#f0f1ee;color:#627168}.badge.archived{background:#f5eee3;color:#85652f}.badge.undone{background:#faeeeb;color:#965349}.row-link{border:0;background:none;color:var(--green);padding:4px 0;font-size:12px;white-space:nowrap}.row-link:hover{text-decoration:underline}.block-space{margin-top:30px}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:16px;border-bottom:1px solid var(--line)}input,select,textarea{border:1px solid #d5dfd4;border-radius:7px;padding:9px 11px;background:#fff;color:var(--ink);max-width:100%;min-height:39px}input::placeholder,textarea::placeholder{color:#62726b;opacity:1}select{padding-right:27px;min-width:140px}.search-field{position:relative;flex:1;min-width:180px}.search-field input{width:100%;padding-left:36px}.search-field .icon{position:absolute;left:11px;top:11px;color:var(--muted);width:17px;height:17px}.filters input[type=date]{font-size:12px;width:145px}.filter-end{margin-left:auto}.pager{padding:15px 19px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-size:12px;color:var(--muted);gap:12px}.pager-actions{display:flex;gap:10px;align-items:center}.empty{padding:55px 22px;text-align:center;color:var(--muted)}.empty .icon{width:34px;height:34px;color:#8da291;margin-bottom:14px}.empty h3{font-weight:550;color:var(--ink);margin-bottom:8px}.empty p{font-size:12px;max-width:46ch;margin:0 auto 16px}.loading{padding:65px;text-align:center;color:var(--muted)}.page-footer{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:27px;gap:20px}.settings-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,1fr);gap:24px;align-items:start}.panel-body{padding:25px}.panel-body h2{margin-bottom:8px}.panel-body>p{font-size:12px;color:var(--muted);margin-bottom:22px;max-width:65ch}.field{display:flex;flex-direction:column;gap:7px;margin:20px 0}.field label,label{font-size:12px;font-weight:550}.field textarea{min-height:130px;resize:vertical;width:100%;line-height:1.8}.field-hint{font-size:11px!important;color:var(--muted);margin-top:6px}.rule-list{font-size:12px;color:var(--muted);padding:0;list-style:none;margin:10px 0 0}.rule-list li{padding:12px 0;border-bottom:1px solid var(--line)}.rule-list li:last-child{border:0}.rule-list strong{color:var(--ink);display:block;font-weight:550;margin-bottom:3px}.detail-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,1fr);gap:22px;margin-top:22px}.detail-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:18px}.detail-title{display:flex;gap:10px;align-items:center;min-width:0}.detail-title select{max-width:340px;min-width:0;font-weight:550}.balance-line{padding:24px 26px;background:#eef4ee;border-bottom:1px solid #dee8df;display:flex;align-items:center;justify-content:space-between;gap:16px}.balance-line p{font-size:12px;color:#536b5b}.balance-line strong{display:block;font-size:31px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.balance-side{display:flex;gap:28px;font-size:11px}.balance-side span{display:block;color:var(--muted);margin-bottom:5px}.balance-side b{font-size:15px;font-variant-numeric:tabular-nums;font-weight:550}.inline-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.inline-form .field{flex:1;margin:12px 0;min-width:140px}.inline-form .button{margin-bottom:12px}.admin-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.admin-row>span{overflow-wrap:anywhere}.admin-row:last-of-type{border-bottom:0}.admin-row small{color:var(--muted);font-size:10px;margin-left:8px}.danger-area{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.danger-area h3{font-size:13px;margin-bottom:8px}.danger-area p{font-size:11px;color:var(--muted);margin-bottom:15px}.danger-actions{display:flex;gap:10px;flex-wrap:wrap}.identity-line{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.error-text{font-size:12px;color:var(--red);min-height:20px;margin:10px 0}.login-screen{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-story{background:#eaf0e8;padding:55px 62px;display:flex;flex-direction:column;justify-content:space-between;min-height:650px}.login-story h1{font-size:48px;line-height:1.5;letter-spacing:-.035em;font-weight:550}.login-story>div>p{font-size:15px;color:#506a57;margin-top:25px;line-height:2}.login-foot{font-size:11px;letter-spacing:.06em;color:#526b58}.login-panel{display:flex;align-items:center;justify-content:center;padding:40px}.login-panel form{width:100%;max-width:350px}.login-panel h2{font-size:25px;margin-top:20px}.login-panel .muted{font-size:13px;margin:12px 0 32px}.login-panel label{display:block;margin-bottom:9px}.login-panel input{width:100%;height:44px}.login-lock{color:var(--green);width:28px;height:28px}.login-note{font-size:11px;color:var(--muted);margin-top:20px;text-align:center}.login-panel button{margin-top:8px;min-height:44px}dialog{border:0;border-radius:16px;padding:26px;width:480px;max-width:calc(100vw - 32px);max-height:85dvh;overflow:auto;color:var(--ink);box-shadow:0 18px 80px rgba(28,49,36,.2)}dialog::backdrop{background:rgba(27,43,33,.35)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.reply{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:13px;line-height:1.9;background:#f4f6f1;padding:18px;border-radius:8px}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:50;max-width:calc(100vw - 40px);padding:13px 21px;background:#203f31;color:white;border-radius:10px;box-shadow:0 7px 25px rgba(22,52,36,.16);font-size:13px}.toast.error{background:#803c33}.caption{font-size:11px;color:var(--muted)}.view-in{animation:arrive .25s cubic-bezier(.16,1,.3,1)}@keyframes arrive{from{clip-path:inset(0 0 8px 0);filter:blur(.5px)}to{clip-path:inset(0);filter:blur(0)}}
@media(min-width:1600px){main{padding-top:48px}.page-heading{margin-bottom:38px}.stat-strip{padding-bottom:34px}}
@media(max-width:1100px){.app-shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:27px 13px}.sidebar .brand{padding:0 4px;font-size:17px}.sidebar nav a{padding:11px 13px}.topbar{padding:0 26px}main{padding:30px 26px 22px}.settings-layout,.detail-grid{grid-template-columns:1fr}.stat{padding:0 14px}.stat strong{font-size:25px}.balance-line strong{font-size:28px}}
@media(max-width:720px){.app-shell{display:block}.sidebar{position:static;height:auto;padding:17px 18px 0;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:17px;padding:0}.brand-mark{width:33px;height:33px;border-radius:9px}.brand small{display:none}.sidebar nav{flex-direction:row;margin-top:17px;gap:3px;justify-content:space-between}.sidebar nav a{font-size:12px;gap:6px;padding:10px 9px;border-radius:7px 7px 0 0}.sidebar nav a .icon{width:16px;height:16px}.sidebar-bottom{position:absolute;right:18px;top:20px;display:flex;gap:15px;margin:0;padding:0;border:0;align-items:center}.sidebar-bottom p{display:none}.connection{font-size:10px}.logout{font-size:0;padding:0}.logout .icon{width:17px}.topbar{height:48px;padding:0 20px;font-size:10px}.topbar-right{gap:10px}.avatar{width:24px;height:24px;font-size:10px}main{padding:25px 18px 18px}.page-heading{align-items:flex-start;gap:12px;margin-bottom:20px}h1{font-size:25px}.page-heading p{font-size:11px;margin-top:7px;max-width:24ch}.heading-actions{gap:7px}.heading-actions .button{font-size:11px;min-height:35px;padding:7px 10px}.heading-actions .icon{width:15px;height:15px}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:14px 0 23px;margin-bottom:23px}.stat{padding:0 15px}.stat:nth-child(2){border:0}.stat:nth-child(3){padding-left:0}.stat strong{font-size:26px}.stat span{font-size:11px}.section-head h2{font-size:17px}.section-head p{font-size:10px}.section-head .text-link{font-size:10px}.surface{border-radius:11px}th{padding:12px 15px}td{padding:14px 15px}.filters{padding:12px;gap:8px}.filters select{min-width:0;flex:1;font-size:12px}.filters input[type=date]{width:calc(50% - 5px);flex:1;font-size:11px}.search-field{min-width:100%;order:3}.filter-end{margin-left:0}.pager{padding:12px;font-size:10px}.pager-actions{gap:6px}.pager .button{font-size:10px;padding:6px 9px}.settings-layout{gap:18px}.panel-body{padding:20px}.detail-top{align-items:stretch;flex-direction:column;gap:12px}.detail-title select{width:100%;max-width:none}.balance-line{padding:20px;align-items:flex-start;flex-direction:column}.balance-line strong{font-size:30px}.balance-side{width:100%;gap:35px}.page-footer{font-size:9px;flex-direction:column;gap:6px}.login-screen{grid-template-columns:1fr}.login-story{padding:26px;min-height:230px;gap:30px}.login-story h1{font-size:29px;line-height:1.35}.login-story h1 br{display:none}.login-story>div>p{font-size:12px;line-height:1.8;margin-top:12px}.login-story>div>p br{display:none}.login-foot{display:none}.login-panel{padding:35px 28px;align-items:start}.login-panel h2{font-size:23px}.login-lock{display:none}.login-panel .muted{margin-bottom:24px}dialog{padding:21px}.notice{font-size:11px;padding:11px 13px}.detail-title h2{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.account-line{display:flex;gap:15px;align-items:center;margin-bottom:25px}.account-line .brand-mark{width:48px;height:48px}.account-line h2{margin:0 0 6px}.account-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0 0 24px;padding-top:22px;border-top:1px solid var(--line)}.account-facts dt{font-size:11px;color:var(--muted);margin-bottom:8px}.account-facts dd{font-size:13px;margin:0;overflow-wrap:anywhere}.target-list{max-height:310px;overflow:auto}.target-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-weight:400}.target-row input{min-height:auto;width:16px;height:16px}.target-row strong{font-size:12px;font-weight:550;display:block}.target-row small{font-size:10px;color:var(--muted);display:block;overflow-wrap:anywhere}.target-preview{padding-left:20px;font-size:12px;overflow-wrap:anywhere;color:var(--muted);margin:14px 0 20px}.log-cell{max-width:250px;overflow:hidden;text-overflow:ellipsis}.stat strong{overflow-wrap:anywhere}@media(max-width:720px){.sidebar nav{overflow-x:auto;justify-content:flex-start}.sidebar nav a{flex-shrink:0;min-height:40px}.account-facts{grid-template-columns:1fr 1fr;gap:20px}.button.small{min-height:35px}}
.broadcast-channels{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:24px;overflow-x:auto}.broadcast-channels a{color:var(--muted);font-size:13px;text-decoration:none;padding:10px 0;white-space:nowrap;border-bottom:2px solid transparent}.broadcast-channels a[aria-current=page]{color:var(--green);border-bottom-color:var(--green);font-weight:600}.broadcast-channels a:hover{color:var(--green)}.customer-recipients{border:0;padding:0;margin:22px 0;min-width:0}.customer-recipients legend{font-size:12px;font-weight:550;margin-bottom:8px}.customer-actions{display:flex;gap:10px;flex-wrap:wrap}
