:root{--ink:#584b65;--muted:#7b6b83;--green:#9f5b7c;--lime:#fbdce8;--border:#f0dce7;--bg:#fffafd;--white:#ffffff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'Microsoft YaHei','PingFang SC',system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #cce8fa;outline-offset:3px}input,select,textarea{border:1px solid var(--border);border-radius:8px;padding:11px 12px;background:white;color:var(--ink);min-width:0;width:100%;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #9f5b7c12}textarea{resize:vertical;min-height:80px}button{border:1px solid var(--border);background:#ffffff;border-radius:8px;padding:10px 16px;color:var(--ink);transition:.15s}button:hover{background:#fff1f7}.primary{background:var(--green);border-color:var(--green);color:#ffffff}.primary:hover{background:#89536f}.soft{background:#fff1f7;border-color:#fbdce8}.danger{color:#584b65}.text-btn{border:0;background:transparent;padding:5px 8px;color:var(--green)}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:#fffafc;color:#7b6b83;padding:34px 22px 22px;position:fixed;inset:0 auto 0 0;width:230px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;gap:11px;align-items:center;color:#ffffff;margin:0 10px 42px}.brand-mark{display:grid;place-items:center;background:var(--lime);color:#7b6b83;width:38px;height:38px;border-radius:11px;font-size:23px;font-weight:700;transform:rotate(-7deg)}.brand strong{font-size:19px;letter-spacing:2px}.brand small{display:block;font-size:9px;letter-spacing:3px;margin-top:5px;color:#7b6b83}.nav-caption{font-size:10px;letter-spacing:2px;color:#7b6b83;padding:0 15px;margin:14px 0}.nav{display:flex;align-items:center;gap:13px;background:transparent;border:0;color:#7b6b83;width:100%;text-align:left;padding:12px 15px;margin:3px 0;border-radius:8px}.nav svg{width:19px;height:19px}.nav:hover{background:#ffffff09}.nav.active{background:#fbdce8;color:#584b65;font-weight:600}.side-footer{margin-top:auto;border-top:1px solid #ffffff12;padding:20px 10px 0;font-size:11px;line-height:1.9;color:#7b6b83}.online-dot{display:inline-block;width:6px;height:6px;background:#7b6b83;border-radius:50%;margin-right:6px}.main{grid-column:2;min-width:0}.topbar{height:83px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:#ffffffb3;gap:16px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb b{color:var(--ink);font-weight:500}.toolbar{display:flex;gap:12px;align-items:center}.toolbar select{width:auto;font-size:12px;padding:8px 10px}.avatar{display:inline-grid;place-items:center;width:34px;height:34px;background:#fffafd;border-radius:50%;color:#7b6b83;font-weight:600;flex-shrink:0;object-fit:cover}.content{padding:32px 40px 40px;max-width:1800px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:2px;color:#7b6b83;margin-bottom:9px}.page-head h1{font-size:27px;font-weight:600;margin:0 0 9px;letter-spacing:1px}.sub{font-size:12px;color:var(--muted);line-height:1.8}.head-actions{display:flex;gap:10px}.demo-note{font-size:11px;background:#fffafc;color:#7b6b83;border:1px solid #fffafd;padding:10px 14px;border-radius:8px;margin-bottom:24px;display:flex;align-items:center;gap:9px}.demo-note span{background:#fffafd;padding:2px 6px;border-radius:4px;color:#7b6b83;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.stat{border:1px solid var(--border);border-radius:12px;background:#ffffff;padding:21px 23px;position:relative}.stat .label{color:#7b6b83;font-size:12px;display:flex;justify-content:space-between;align-items:center}.stat .label svg{width:19px;height:19px;color:#7b6b83}.stat .number{font-size:29px;font-weight:600;margin:12px 0 8px;letter-spacing:-1px;font-variant-numeric:tabular-nums}.stat .number small{font-size:16px;margin-right:4px;font-weight:400}.stat .foot{font-size:10px;color:#7b6b83}.stat.featured{background:#fffafd;border-color:#efdce7}.panel{border:1px solid var(--border);border-radius:12px;background:#ffffff;overflow:hidden;margin-bottom:22px}.panel-title{padding:20px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-title h2{font-size:15px;margin:0;font-weight:600}.panel-title p{font-size:11px;color:var(--muted);margin:6px 0 0}.pill{font-size:10px;padding:5px 8px;border-radius:5px;background:#fffafc;color:#7b6b83}.two-col{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:22px}.chart{height:182px;margin:0 24px 8px;display:flex;align-items:flex-end;gap:15px;border-bottom:1px solid #fffafd;padding:8px 8px 24px;position:relative;background:repeating-linear-gradient(to top,transparent 0,transparent 39px,#fffafc 40px)}.chart-col{flex:1;display:flex;height:100%;align-items:center;justify-content:flex-end;flex-direction:column;position:relative}.bar{width:min(32px,70%);background:#efdce7;border-radius:5px 5px 0 0;min-height:3px}.chart-col:last-child .bar{background:#7b6b83}.chart-col small{position:absolute;bottom:-20px;font-size:9px;color:#7b6b83;white-space:nowrap}.chart-col em{font-size:9px;font-style:normal;color:#7b6b83;margin-bottom:6px}.chart-footer{display:flex;justify-content:space-between;padding:12px 24px 18px;color:#7b6b83;font-size:10px}.rank-row{display:flex;align-items:center;gap:12px;padding:12px 24px}.rank-num{color:#7b6b83;font-size:12px;width:12px}.rank-row:first-of-type .rank-num{color:#7b6b83}.rank-info{flex:1;min-width:0}.rank-info b{font-weight:500;font-size:12px}.rank-info small{display:block;color:#7b6b83;font-size:10px;margin-top:4px}.rank-track{height:3px;background:#fffafc;margin-top:9px;border-radius:4px}.rank-track i{display:block;height:3px;background:#cce8fa;border-radius:4px}.rank-money{font-size:13px;font-weight:600}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;text-align:left;font-size:12px}th{font-size:10px;letter-spacing:.5px;font-weight:500;color:#7b6b83;background:#fffafd;padding:13px 22px;border-block:1px solid #fffafd}td{padding:17px 22px;border-bottom:1px solid #fffafc;color:#584b65}tr:last-child td{border-bottom:0}td strong{color:var(--ink);font-weight:500}.person{display:flex;gap:10px;align-items:center}.person .avatar{width:30px;height:30px;font-size:11px}.order-id{font-size:10px;color:#7b6b83;margin-top:5px}.badge{display:inline-block;font-size:10px;border-radius:5px;padding:5px 9px;background:#fce6f0;color:#865775}.badge.amber{background:#fffafc;color:#7b6b83}.badge.gray{background:#fffafd;color:#7b6b83}.badge.blue{background:#fffafc;color:#7b6b83}.table-bottom{padding:15px 23px;border-top:1px solid #fffafc;font-size:10px;color:#7b6b83;display:flex;justify-content:space-between}.filters{display:flex;flex-wrap:wrap;gap:10px;padding:0 24px 20px;align-items:end}.filters input,.filters select{width:auto;min-width:125px;font-size:12px}.filters input[type=search]{flex:1;min-width:200px}.filters label{display:grid;gap:5px;font-size:10px;color:var(--muted)}.empty{text-align:center;padding:50px 20px;color:#7b6b83}.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.member-card{background:white;border:1px solid var(--border);border-radius:12px;padding:22px}.member-card-top{display:flex;justify-content:space-between;margin-bottom:20px}.member-card .avatar{width:44px;height:44px;font-size:17px}.member-card h3{font-size:16px;margin:0 0 5px}.member-card .balance{font-size:23px;font-weight:600;margin-top:8px}.member-card-bottom{border-top:1px solid #fffafd;margin-top:20px;padding-top:14px;display:flex;justify-content:space-between;align-items:center}.small-label{font-size:10px;color:#7b6b83}.code{font-family:ui-monospace,monospace;letter-spacing:1px;color:#7b6b83;font-size:10px}.tabs{display:flex;gap:6px;margin-bottom:22px;flex-wrap:wrap}.tabs button{font-size:12px;padding:9px 17px}.tabs .selected{background:#fbdce8;color:#7b6b83;border-color:#efdce7}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#7b6b83}.field.full{grid-column:1/-1}.field b{color:#7b6b83}.hint{font-size:11px;color:#7b6b83;line-height:1.8}.form-section{padding:0 24px 25px}.form-section h3{font-size:12px;margin:8px 0 16px}.line-item{display:grid;grid-template-columns:1.7fr 1fr .7fr .7fr .9fr auto;gap:10px;align-items:end;padding:14px;background:#fffafd;border:1px solid #fffafd;border-radius:9px;margin-bottom:12px}.line-item label{font-size:10px;color:#7b6b83;display:grid;gap:7px}.line-item input,.line-item select{font-size:12px;padding:10px 8px}.line-item .amount{height:39px;display:flex;align-items:center;font-size:13px;font-weight:500}.summary{background:#fff2f8;border-radius:10px;padding:22px;margin-top:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.summary span{font-size:11px;color:#7b6b83}.summary b{font-size:23px;display:block;margin-top:9px;font-weight:600}.submit-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:22px}.error{color:#7b6b83;font-size:12px}.receipt{padding:22px;line-height:1.9}.receipt-head{text-align:center;border-bottom:1px dashed #efdce7;padding-bottom:18px;margin-bottom:16px}.receipt h2{font-size:18px}.receipt .total{font-size:23px;color:var(--green);text-align:right}.receipt dl{display:grid;grid-template-columns:100px 1fr;font-size:12px}.receipt dt{color:#7b6b83}.receipt dd{margin:0}.profile-hero{border:1px solid #efdce7;background:linear-gradient(115deg,#fffafd,#fffafd);border-radius:14px;padding:32px;display:flex;gap:24px;align-items:center;margin-bottom:24px}.profile-hero .avatar{width:64px;height:64px;font-size:24px}.profile-hero h2{margin:0 0 7px;font-size:24px}.profile-balance{margin-left:auto;text-align:right}.profile-balance b{display:block;font-size:34px;font-weight:600;margin-top:8px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project-card{background:#ffffff;border:1px solid var(--border);border-radius:12px;padding:24px}.project-icon{width:44px;height:44px;background:#fffafc;color:#7b6b83;border-radius:12px;display:grid;place-items:center;margin-bottom:21px}.project-icon svg{width:23px}.project-card h3{font-size:16px}.project-card .price{font-size:24px;margin:18px 0}.project-card .price small{font-size:11px;color:#7b6b83}.project-bottom{border-top:1px solid var(--border);padding-top:14px;font-size:11px;color:#7b6b83;display:flex;justify-content:space-between}dialog{border:1px solid var(--border);border-radius:15px;width:min(720px,94vw);max-height:90vh;padding:0;color:var(--ink);box-shadow:0 24px 100px #7b6b8326}dialog::backdrop{background:#584b655c;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid var(--border)}.modal-head h2{font-size:17px;margin:0}.modal-body{padding:24px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);background:#7b6b83;color:white;border-radius:9px;padding:13px 23px;z-index:50;opacity:0;pointer-events:none;transition:.2s;font-size:13px}#toast.show{opacity:1;transform:translate(-50%,0)}.mobile-brand{display:none}.avatar-pick{display:inline-flex;cursor:pointer;font-size:12px;color:var(--green);margin-top:10px}.avatar-pick input{display:none}.negative{color:#7b6b83}@media(min-width:1550px){.content{padding:38px 52px}.topbar{padding-inline:52px}}@media(max-width:1150px){.sidebar{width:195px;padding-inline:14px}.shell{grid-template-columns:195px 1fr}.content{padding:25px}.topbar{padding-inline:25px}.stats{gap:10px}.stat{padding:17px}.two-col{grid-template-columns:1.5fr 1fr;gap:15px}.member-grid,.project-grid{grid-template-columns:repeat(2,1fr)}.line-item{grid-template-columns:1.4fr 1fr .7fr .7fr}.line-item .line-total{grid-column:1/3}}@media(max-width:800px){.shell{display:block}.sidebar{position:static;width:auto;padding:17px 18px}.brand{margin:0 0 15px}.brand small,.nav-caption,.side-footer{display:none}.sidebar nav{display:flex;overflow-x:auto;gap:5px}.nav{width:auto;white-space:nowrap;padding:10px 13px;margin:0;font-size:12px}.nav svg{width:15px;height:15px}.topbar{height:auto;min-height:67px;padding:14px 20px;flex-wrap:wrap}.content{padding:24px 18px}.two-col{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.stat .number{font-size:25px}.page-head{align-items:start}.page-head h1{font-size:23px}.head-actions{flex-direction:column}.page-head .head-actions button{font-size:12px}.toolbar{gap:8px}.toolbar .avatar{display:none}.member-grid,.project-grid{grid-template-columns:1fr}.grid-form{grid-template-columns:1fr}.line-item{grid-template-columns:1fr 1fr}.line-item .line-total{grid-column:auto}.profile-hero{padding:22px;flex-wrap:wrap;gap:16px}.profile-balance{margin-left:0;width:100%;text-align:left;border-top:1px solid #fffafd;padding-top:15px}.summary{padding:18px;gap:10px}.summary b{font-size:19px}.submit-bar{align-items:stretch;flex-direction:column}.demo-note{align-items:start;font-size:10px}.filters{padding-inline:16px}.panel-title{padding:18px}.filters input,.filters select{max-width:100%}}@media print{body{background:#ffffff}.shell,#toast{display:none}dialog[open]{display:block;position:static;width:100%;max-height:none;box-shadow:none;border:0}dialog::backdrop,.modal-head button,.modal-footer{display:none}.receipt table{font-size:11px}}
/* 安瑜CLUB · 粉白主题 */
:root{--pink:#9f5b7c;--pink-soft:#fff2f8}body{background:radial-gradient(ellipse at 100% 0,#fffafc 0,transparent 45%),var(--bg)}
.sidebar{border-right:1px solid #fffafd;background:linear-gradient(180deg,#fff2f8,#fcfeff);color:#7b6b83}.brand{color:#7b6b83;margin-inline:5px;gap:10px}.brand strong{font-size:18px;letter-spacing:1px}.brand small{font-size:8px;letter-spacing:1.4px;color:#7b6b83}.brand-logo,.brand-placeholder{width:48px;height:48px;flex:0 0 48px;border-radius:16px;object-fit:contain;background:#ffffff;box-shadow:0 3px 12px #7b6b8316;border:1px solid #fffafd}.brand-placeholder{display:inline-grid;place-items:center;color:#7b6b83;padding:5px}.brand-placeholder svg{width:38px;height:38px}.nav{color:#7b6b83;border-radius:12px}.nav.active{color:#76465f;background:#fbdce8;box-shadow:0 3px 12px #cce8fa1c}.nav:hover{background:#fce6f0}.side-footer{border-color:#fffafd;color:#7b6b83}.topbar{background:#ffffffcc}.logo-upload{cursor:pointer;font-size:11px;color:#7b6b83;border:1px dashed #efdce7;border-radius:9px;padding:8px 10px;white-space:nowrap}.logo-upload input{display:none}.page-head h1{color:#584b65}.page-head .eyebrow{color:#7b6b83;letter-spacing:2.7px}.stat,.panel,.member-card,.project-card{border-radius:17px;box-shadow:0 4px 24px #7b6b8310}.stat.featured{background:linear-gradient(130deg,#fffafd,#fffafc)}.primary{box-shadow:0 3px 10px #9f5b7c20}.primary:hover{box-shadow:0 4px 15px #9f5b7c30}.demo-note{border-radius:11px}.pill,.badge{border-radius:7px}.chart{background:repeating-linear-gradient(to top,transparent 0,transparent 39px,#fffafc 40px)}.bar{background:#efdce7}.avatar{border:1px solid #fffafd}.member-card .balance,.profile-balance b{color:#7b6b83}.project-icon{background:#fffafc}.summary{border:1px solid #fffafd;background:linear-gradient(110deg,#fff2f8,#fffafc)}.summary b{color:#7b6b83}.profile-hero{background:linear-gradient(115deg,#fffafd,#fffafd);border-color:#efdce7}.profile-hero .avatar{width:64px;height:64px}.table-wrap{scrollbar-color:#efdce7 #fffafd;scrollbar-width:thin}button{border-radius:10px}input,select,textarea{border-radius:10px}dialog{border-radius:20px}dialog::backdrop{background:#584b655c}.modal-head{background:#fffafc}.modal-head h2{color:#7b6b83}.field[hidden]{display:none!important}.birthday-pickers{display:grid;grid-template-columns:1fr 1fr;gap:10px}textarea{height:100px;min-height:90px;max-height:180px;overflow-y:auto;line-height:1.8;scrollbar-color:#cce8fa #fffafc;scrollbar-width:thin}.note-scroll{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-height:92px;overflow-y:auto;overscroll-behavior:contain;line-height:1.8;min-width:130px;max-width:280px;padding-right:8px;scrollbar-color:#cce8fa #fffafc;scrollbar-width:thin}.note-scroll:focus-visible{outline:2px solid #cce8fa;outline-offset:3px}.receipt-note .note-scroll{max-width:none}.order-time{font-size:11px;color:#7b6b83;font-variant-numeric:tabular-nums}.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}
.receipt{border:1px solid #efdce7;border-radius:17px;background:linear-gradient(180deg,#fffafc,#ffffff 190px);position:relative;padding:24px}.receipt-head{border-bottom:2px dashed #efdce7;padding-bottom:22px}.receipt .receipt-logo{display:inline-grid;width:66px;height:66px;border-radius:22px;margin:0 auto 15px}.receipt .brand-logo.receipt-logo{display:block}.receipt-logo svg{width:49px;height:49px}.receipt-brand{font-size:22px;font-weight:700;color:#7b6b83;letter-spacing:2px;margin:5px 0 12px}.receipt h2{font-size:14px;color:#7b6b83;font-weight:400}.receipt .eyebrow{color:#7b6b83;font-size:9px;letter-spacing:3px}.receipt th{background:#fffafc;color:#7b6b83}.receipt td{border-color:#fffafd}.receipt .total{border-top:2px dashed #efdce7;padding-top:18px;color:#7b6b83;font-size:25px}.receipt:after{content:'♡  THANK YOU FOR PLAYING  ♡';display:block;text-align:center;margin-top:25px;padding-top:16px;border-top:1px solid #fffafd;color:#7b6b83;font-size:10px;letter-spacing:2px}.receipt-note{margin:16px 0;color:#7b6b83}.receipt-note .note-scroll{font-size:12px}.receipt-note .small-label{display:block;margin-bottom:5px}
@media(max-width:800px){.brand{margin-bottom:15px}.brand small{display:block}.logo-upload{font-size:10px}.toolbar{flex-wrap:wrap}.birthday-pickers{gap:8px}.nav-caption{display:none}.receipt{padding:15px}.receipt td,.receipt th{padding:12px 9px}.receipt .total{font-size:21px}.receipt-logo{margin-bottom:8px}.line-item{padding:12px}.summary b{font-size:18px}}@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}dialog[open]{overflow:visible;margin:0 auto}.receipt{break-inside:auto}.receipt-note .note-scroll{max-height:none;overflow:visible}.receipt th,.receipt td{white-space:normal}.receipt table{min-width:0;width:100%}.receipt-head{break-after:avoid}.receipt tr{break-inside:avoid}.receipt .table-wrap{overflow:visible}}

/* 统一身份、头像和消息中心 */
.member-avatar-block{display:flex;flex-direction:column;align-items:center;gap:9px;min-width:86px}.member-avatar-block .avatar-pick{display:block;margin-top:0;text-align:center}.login-identity{font-size:11px;color:#7b6b83}.saving .content,.saving #modal{pointer-events:none;opacity:.7}.notification-row{display:flex;gap:14px;padding:24px;border-top:1px solid #fffafd}.notification-row p{font-size:13px;color:#584b65;line-height:1.9;margin:12px 0 7px;overflow-wrap:anywhere}.notification-dot{background:#7b6b83;width:8px;height:8px;flex:0 0 8px;border-radius:50%;margin-top:8px}.notification-dot.read{background:#efdce7}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:8vw;max-width:1240px;margin:auto;padding:6vh 60px}.login-story{position:relative;min-height:560px;padding-top:16px}.login-brand{display:flex;align-items:center;gap:13px;color:#7b6b83;font-size:22px;font-weight:600;margin-bottom:65px}.login-story h1{font-size:46px;line-height:1.65;letter-spacing:4px;color:#584b65;font-weight:600;margin:22px 0}.login-story>p{color:#7b6b83;font-size:13px;letter-spacing:1px}.login-card{background:#ffffff;border:1px solid #efdce7;border-radius:25px;box-shadow:0 14px 70px #7b6b8320;padding:42px;max-width:460px;width:100%}.login-card h2{font-size:25px;font-weight:600;color:#584b65;margin:12px 0}.login-tabs{display:flex;gap:5px;background:#fffafc;border:1px solid #fffafd;padding:5px;border-radius:12px;margin:28px 0}.login-tabs button{flex:1;border:0;background:transparent;color:#7b6b83;font-size:12px;padding:11px 6px}.login-tabs .selected{background:#ffffff;color:#7b6b83;box-shadow:0 2px 9px #7b6b8313}.login-fields{display:grid;gap:19px}.login-fields input{padding:13px 14px}.login-submit{width:100%;margin:28px 0 13px;padding:14px}.login-footer{text-align:center;border-top:1px dashed #efdce7;padding-top:22px;margin-top:26px;color:#7b6b83;font-size:10px;letter-spacing:2px}#login-error{line-height:1.8;overflow-wrap:anywhere}.login-card .hint{font-size:10px}@media(max-width:800px){.login-page{grid-template-columns:1fr;gap:30px;padding:28px 20px}.login-story{min-height:0;padding:0}.login-brand{margin-bottom:0}.login-story>.eyebrow,.login-story>h1,.login-story>p{display:none}.login-card{max-width:none;padding:30px 23px}.login-identity{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* 外观设置、登录背景与独立订单窗口 */
.login-page{position:relative}.login-page.custom-background{max-width:none;isolation:isolate;background:linear-gradient(#fffafcb8,#fffafcb8),var(--login-bg) center/cover fixed;justify-content:center;grid-template-columns:minmax(280px,490px) minmax(340px,460px)}.login-story h1{white-space:pre-line}.login-story>p{white-space:pre-wrap}.festival-greeting{padding:12px 15px;border:1px dashed #efdce7;border-radius:12px;background:#fffafc;color:#7b6b83;font-size:12px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin:18px 0}.login-mobile-welcome{display:none}.appearance-image{height:145px;border:1px dashed #efdce7;background:#fffafc;border-radius:12px;display:grid;place-items:center;overflow:hidden;font-size:12px;color:#7b6b83}.appearance-image img{width:100%;height:100%;object-fit:cover}.appearance-image.logo-preview img{object-fit:contain;padding:12px}.appearance-login-preview{border:1px solid #efdce7;border-radius:14px;margin-top:24px;overflow:hidden;background:linear-gradient(#fffafcb3,#fffafcb3),var(--login-bg) center/cover}.mini-login{padding:28px;text-align:center}.mini-login>div:first-child{display:flex;justify-content:center;align-items:center;gap:10px}.mini-login img{width:40px;height:40px;object-fit:contain;border-radius:12px}.mini-login h3{white-space:pre-line;color:#7b6b83;font-size:22px}.mini-login p{white-space:pre-wrap;color:#7b6b83}.mini-login-card{display:inline-block;padding:22px;background:#ffffffdd;border-radius:15px;box-shadow:0 5px 25px #7b6b831a;color:#7b6b83;font-size:12px}.order-window{max-width:860px;margin:0 auto;padding:22px}.order-window-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;font-size:14px;color:#7b6b83}.order-window>.receipt{background-color:#ffffff}.order-window>.modal-footer{padding:0 4px 15px}.order-window .receipt .table-wrap{max-width:100%}tr[data-order-window]{cursor:pointer}tr[data-order-window]:hover{background:#fcfeff}tr[data-order-window]:focus-visible{outline:2px solid #cce8fa;outline-offset:-2px}.brand strong,.login-brand strong{overflow-wrap:anywhere}.brand{min-width:0}.brand>div{min-width:0}
@media(max-width:800px){.login-page.custom-background{grid-template-columns:1fr}.login-mobile-welcome{display:block;white-space:pre-line;color:#7b6b83;font-size:13px;line-height:1.8}.order-window{padding:15px}.login-card h2{overflow-wrap:anywhere}.login-brand strong{font-size:20px}}@media print{.order-window-header{display:none}.order-window{max-width:none;padding:0}}

.dashboard-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.dashboard-stats .number{font-size:26px}.dashboard-stats .foot{line-height:1.7}@media(max-width:1250px){.dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1000px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 小票状态样式、可编辑标题与订单调整 */
.receipt .receipt-brand,.receipt .total{color:var(--receipt-accent,#9f5b7c)}.receipt .receipt-main-title{font-size:16px;color:var(--receipt-accent,#9f5b7c);font-weight:600;margin:12px 0}.receipt-status-title{display:inline-block;font-size:12px;color:var(--receipt-accent,#9f5b7c);border:1px solid currentColor;border-radius:20px;padding:5px 15px;margin:5px 0 15px}.receipt-pending{border-style:dashed;background:linear-gradient(#fffafc,#ffffff 160px)}.receipt-settled .receipt-status-title{background:var(--receipt-accent,#9f5b7c);border-color:var(--receipt-accent,#9f5b7c);color:#ffffff}.receipt-refunded{background:#fffafc;border-color:#efdce7}.receipt-refunded .receipt-status-title{color:#7b6b83}.receipt:after{content:none}.receipt-custom-footer{text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;color:var(--receipt-accent,#9f5b7c);line-height:1.9;border-top:1px dashed #efdce7;padding-top:18px;margin-top:25px}.receipt-preview{margin-top:24px;max-width:650px}.receipt-preview .modal-footer,.receipt-preview>.hint{display:none}.receipt-logo-checkbox input{width:auto;margin-right:8px}.receipt-preview .receipt{font-size:12px}.receipt-preview[hidden]{display:none}
/* 邮箱登录、会员展馆与图片裁剪 */
.login-extra,.code-input-row{display:flex;gap:8px;align-items:center;justify-content:space-between}.code-input-row input{flex:1;width:0}.code-input-row button{white-space:nowrap;font-size:12px}.login-extra{margin-top:12px;flex-wrap:wrap}.login-tabs{flex-wrap:wrap}.profile-balance .sub{display:block;margin-top:5px}.gallery-card{overflow:hidden}.gallery-media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;padding:0 22px}.gallery-media-grid:empty{display:none}.gallery-media-grid img,.gallery-media-grid video{width:100%;max-height:460px;object-fit:contain;border-radius:14px;background:#fffafc}.gallery-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow-y:auto;margin:20px 24px 26px;line-height:1.9;color:#584b65}.gallery-file{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0dce7;padding:4px 0}#crop-dialog{width:min(680px,95vw);max-height:94vh;border:1px solid #efdce7;border-radius:18px;color:var(--ink);padding:0}#crop-dialog::backdrop{background:#584b6566}#crop-dialog .modal-body{overflow-y:auto;max-height:80vh}.crop-viewport{width:min(480px,100%);max-height:50vh;margin:15px auto;overflow:hidden;border:2px solid #7b6b83;border-radius:10px;background:repeating-conic-gradient(#fffafd 0% 25%,#ffffff 0% 50%) 50%/16px 16px}.crop-viewport canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.crop-viewport canvas:active{cursor:grabbing}.crop-viewport+label{margin-top:15px}#crop-dialog input[type=range]{accent-color:#9f5b7c}.sidebar nav{overflow-y:auto;min-height:0}.sidebar .brand{flex-shrink:0}.sidebar .side-footer{flex-shrink:0}#gallery-form textarea{max-height:240px;overflow:auto}@media(max-width:600px){.gallery-media-grid{grid-template-columns:1fr;padding:0 12px}.gallery-text{margin:14px}.code-input-row button{padding:9px}.login-extra{justify-content:center}.gallery-card .panel-title{align-items:flex-start}}

.archive-readonly{display:grid;grid-template-columns:100px 1fr;gap:12px;padding:15px}.archive-readonly dt{color:var(--muted)}.archive-readonly dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;max-height:140px;overflow:auto}

/* 仅复用原图的同一爱心花瓣单元，严格重复 8 次，整行等宽且两端完整。 */
.receipt{padding-top:24px}
.receipt-lace{margin:-24px -24px 20px;aspect-ratio:656/49;border-radius:16px 16px 0 0;overflow:hidden;pointer-events:none;line-height:0;break-inside:avoid}
.receipt-lace svg{display:block;width:100%;height:auto}
@media(max-width:800px){.receipt{padding-top:15px}.receipt-lace{margin:-15px -15px 16px}}
@media print{.receipt-lace,.receipt-lace svg{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

.receipt-barcode{display:flex;flex-direction:column;align-items:center;gap:7px;margin:22px auto 2px;break-inside:avoid}
.receipt-barcode svg{display:block;width:min(280px,85%);height:46px;fill:#584b65}
.receipt-barcode span{font-family:monospace;font-size:10px;letter-spacing:2px;color:#7b6b83;overflow-wrap:anywhere;text-align:center}
.receipt table td:nth-child(1),.receipt table td:nth-child(2){overflow-wrap:anywhere}

/* Anyu section permissions */
[hidden]{display:none!important}
.permission-table input[type=checkbox]{width:20px;height:20px;accent-color:#7b6b83;cursor:pointer}
.permission-table td:not(:first-child),.permission-table th:not(:first-child){text-align:center;width:85px}
.grant-presets{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.permission-summary{min-width:200px;max-width:580px;line-height:2}
.permission-chip{display:inline-block;padding:1px 9px;margin:3px 5px 3px 0;background:#fffafd;border:1px solid #d7ecfb;border-radius:20px;font-size:11px;color:#58738c;white-space:nowrap}
.permission-chip.editable{background:#fff2f8;border-color:#fbdce8;color:#865775}
.invite-record{padding:16px 0;border-bottom:1px solid #fffafd}
.invite-record code{display:block;overflow-wrap:anywhere;margin:8px 0;color:#584b65;user-select:all}
.readonly-pill{margin-left:8px;color:#584b65;background:#fffafc}
form :disabled{cursor:default;opacity:.68}
.member-card .card-status-circle{width:48px;height:48px;min-width:48px;flex:0 0 48px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1;box-sizing:border-box;white-space:nowrap}
.member-direct{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:10px 12px;border-radius:12px;background:#fffafc;color:#584b65;font-size:12px}
.member-direct>span{flex-shrink:0;color:#7b6b83}
.member-direct>strong{font-weight:500;overflow-wrap:anywhere;white-space:pre-wrap}
/* Both filter forms use two balanced rows; date controls retain their full width. */
#order-filters,#finance-filters{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;align-items:end}
#order-filters>input,#finance-filters>input,#order-filters>label,#finance-filters>label,#order-filters>select,#finance-filters>select,#order-filters>.filter-actions,#finance-filters>.filter-actions{grid-column:span 3;min-width:0;width:100%;max-width:none;flex:none}
#order-filters>input,#finance-filters>input,#order-filters>select,#finance-filters>select{height:42px;font-size:13px}
#order-filters>label,#finance-filters>label{order:1;display:flex;flex-direction:column;gap:6px;font-size:12px;line-height:1.4}
#order-filters>label>input,#finance-filters>label>input{width:100%;min-width:0;height:42px;font-size:13px;padding:10px;box-sizing:border-box}
#order-filters>select,#finance-filters>select{order:2}
#order-filters>.filter-actions,#finance-filters>.filter-actions{order:3;display:flex;gap:8px;height:42px;align-items:stretch}
#order-filters>.filter-actions>button,#finance-filters>.filter-actions>button{flex:1;min-width:0;padding:9px 8px;white-space:nowrap}
#order-filters>datalist,#finance-filters>datalist{display:none}
@media(max-width:1100px){#order-filters,#finance-filters{grid-template-columns:repeat(2,minmax(0,1fr))}#order-filters>input,#finance-filters>input,#order-filters>label,#finance-filters>label,#order-filters>select,#finance-filters>select,#order-filters>.filter-actions,#finance-filters>.filter-actions{grid-column:span 1}}
@media(max-width:480px){#order-filters,#finance-filters{grid-template-columns:minmax(0,1fr)}}
.staff-permissions-table{width:100%;table-layout:fixed;white-space:normal}
.staff-permissions-table th,.staff-permissions-table td{vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.staff-permissions-table th:first-child{width:16%}
.staff-permissions-table th:nth-child(2){width:12%}
.staff-permissions-table th:last-child{width:12%}
.permission-summary{min-width:0;max-width:none;line-height:1.6;white-space:normal}
.permission-tags{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;min-width:0;max-width:100%}
.permission-tags>.permission-chip{display:inline-flex;align-items:center;max-width:100%;margin:0;padding:3px 9px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.invite-record .permission-summary{margin-top:10px}
@media(max-width:640px){.staff-permissions-table,.staff-permissions-table tbody{display:block;width:100%}.staff-permissions-table thead{display:none}.staff-permissions-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"member role" "permissions permissions" "actions actions";padding:12px;border-bottom:1px solid var(--border);gap:8px}.staff-permissions-table td{padding:4px 2px;border:0;min-width:0}.staff-permissions-table td:first-child{grid-area:member}.staff-permissions-table td:nth-child(2){grid-area:role}.staff-permissions-table td:nth-child(3){grid-area:permissions}.staff-permissions-table td:last-child{grid-area:actions;justify-self:end}.permission-tags{gap:6px}}
.finance-filter-card{padding:24px;border-radius:20px;background:linear-gradient(135deg,#ffffff 60%,#fcfeff);box-shadow:0 5px 22px #7b6b8309}
#finance-filters.finance-filter-form{display:block;padding:0;margin:0}
#finance-filters .finance-search-grid,#finance-filters .finance-filter-bottom{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:end}
#finance-filters .finance-filter-bottom{margin-top:20px;padding-top:20px;border-top:1px solid #fffafd}
#finance-filters label{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0;font-size:12px;line-height:1.5;color:#7b6b83}
#finance-filters label>span{padding-left:2px}
#finance-filters input,#finance-filters select{width:100%;min-width:0;height:44px;box-sizing:border-box;border-radius:11px;padding:10px 13px;font-size:13px;background:#ffffff;color:var(--ink)}
#finance-filters input::placeholder{color:#958599}
#finance-filters .finance-date-range{grid-column:span 2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}
#finance-filters .filter-actions{display:flex;align-items:stretch;gap:10px;height:44px;width:100%;min-width:0}
#finance-filters .filter-actions>button{flex:1;min-width:0;border-radius:11px;padding:10px 12px;font-size:13px;white-space:nowrap}
#finance-filters datalist{display:none}
@media(max-width:1100px){#finance-filters .finance-search-grid,#finance-filters .finance-filter-bottom{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.finance-filter-card{padding:20px 16px}#finance-filters .finance-search-grid,#finance-filters .finance-filter-bottom{grid-template-columns:minmax(0,1fr);gap:14px}#finance-filters .finance-date-range{grid-column:span 1;gap:12px}}
@media(max-width:380px){#finance-filters .finance-date-range{grid-template-columns:minmax(0,1fr)}}

.receipt{isolation:isolate;overflow:hidden;padding:30px 26px 32px;border:1px solid #efdce7;background-color:#fffafc;background-image:linear-gradient(#ffffff59,#ffffff59),url('receipt-paper.png');background-size:auto,100% auto;background-repeat:repeat-y;background-position:center top}
.receipt .receipt-lace{display:none}
.receipt>div,.receipt>dl,.receipt>p{position:relative;z-index:1}
.receipt>dl{background:#ffffffad;padding:10px 12px;border-radius:10px}
.receipt .table-wrap{background:#ffffffe0;border-radius:10px}
.receipt .receipt-note{background:#ffffffad;border-radius:10px;padding:10px 12px}
.receipt .receipt-barcode{width:fit-content;max-width:100%;margin:18px auto 0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}

.receipt .receipt-logo{width:66px;height:66px;aspect-ratio:1/1;border-radius:0;margin:0 auto 15px;overflow:hidden}
.receipt .brand-logo.receipt-logo{padding:0;object-fit:cover}
@media(max-width:440px){.receipt{padding:26px 15px}.receipt .receipt-logo{width:56px;height:56px}.receipt .receipt-logo svg{width:42px;height:42px}}
@media print{.receipt{print-color-adjust:exact;-webkit-print-color-adjust:exact}.receipt .receipt-logo{break-inside:avoid}}
/* Bright pink & baby-blue stationery collage, following the latest reference. */
:root{--ink:#584b65;--muted:#7b6b83;--green:#9f5b7c;--lime:#fbdce8;--border:#f0dce7;--bg:#fffafd;--white:#ffffff;--candy-pink:#fbdce8;--baby-blue:#e6f4ff}
body{color:#584b65;background-color:#fffdfd;background-image:radial-gradient(circle,#f6cddd 0.7px,transparent 1px);background-size:22px 22px}
.sidebar{background:linear-gradient(180deg,#ffffffb8,#ffffffed),repeating-linear-gradient(0deg,#ffffff 0 5px,#fdebf3 5px 8px);border-right:1px solid #f5dce8;color:#7b6b83}
.brand strong,.page-head h1{color:#69536e}
.brand-placeholder{background:#fff;border:1px solid #f4d6e5;box-shadow:0 3px 12px #efc5da25}
.nav{color:#79657f;border:1px solid transparent;border-radius:13px}
.nav:hover{background:#eff9ff;border-color:#deeffc;color:#58728b}
.nav.active{color:#76465f;background:linear-gradient(100deg,#fbdce8,#fff1f7);border:1px solid #f4c9dd;box-shadow:inset 0 0 0 1px #fff,0 3px 10px #edc0d326}
.nav.active svg{color:#b87999}
.side-footer{padding:15px 12px;border:1px solid #f4d2e2;border-radius:15px;background-color:#fce3ee;background-image:linear-gradient(#ffffff8c 1px,transparent 1px),linear-gradient(90deg,#ffffff8c 1px,transparent 1px);background-size:13px 13px;color:#916c84}
.topbar{background:linear-gradient(100deg,#ffffffef,#f0f9fff0 65%,#fff2f8ee);border-bottom:1px solid #f3deea}
.eyebrow,.nav-caption{color:#a06e8a}
.panel,.member-card,.project-card,.stat{background:#fff;border:1px solid #f1dce8;border-radius:20px;box-shadow:0 5px 18px #edc7dc19}
.stats>.stat:nth-child(even){border-color:#dceefa}
.stat.featured{position:relative;overflow:hidden;background:linear-gradient(125deg,#e6f4ff,#f9fdff);border-color:#cfe8fa}
.stat.featured::after{content:'✦';position:absolute;right:13px;bottom:2px;font-size:52px;color:#eebfd5;opacity:.28;pointer-events:none}
.stat.featured .number{color:#526b86}
.primary{background:linear-gradient(110deg,#fbd6e6,#fce6ef);border-color:#efbad2;color:#76465f;box-shadow:inset 0 0 0 1px #fff9,0 3px 10px #e8b4ce24}
.primary:hover{background:linear-gradient(110deg,#f6c9de,#fbdce8);border-color:#e9aeca;color:#6c3f56;box-shadow:inset 0 0 0 1px #fff9,0 4px 12px #e8b4ce32}
.soft{background:#eef8ff;border-color:#d0e8f9;color:#56718a}
.soft:hover{background:#e4f3ff}
button{border-color:#efdce8}
button:hover{background-color:#fff1f7}
.text-btn{color:#9c6485}
.danger{color:#a45476}
input,select,textarea{background:#fff;border-color:#efdae6;color:#584b65}
input:focus,select:focus,textarea:focus{border-color:#c0dfF3;box-shadow:0 0 0 3px #e6f4ff,0 0 0 1px #c0dff3}
th{background:#fff2f8;color:#8c6d83}
td{border-bottom-color:#faeaf2;color:#75627d}
td strong{color:#584b65}
.avatar,.badge{background:#fce2ee;color:#8b5877;border:1px solid #f6d0e2}
.badge.gray{background:#f2f9ff;color:#637c91;border-color:#d9edf9}
.badge.blue{background:#e6f4ff;color:#53728e;border-color:#cfe8fa}
.badge.amber{background:#fff0f7;color:#90607e;border-color:#f2d6e6}
.pill{background:#eff8ff;color:#617a90;border:1px solid #dfedf8}
.permission-chip{background:#eef8ff;border-color:#d6eaf9;color:#57738c}
.permission-chip.editable{background:#fff0f7;border-color:#f2d0e2;color:#865775}
.member-direct{background:linear-gradient(100deg,#fff1f7,#f5fbff);border:1px solid #f6e3ee;color:#79637f}
.member-direct>span{color:#a96d90}
.project-icon{background:#eaf6ff;color:#799ab6}
.bar{background:linear-gradient(180deg,#e6bcd4,#dceffd);border-radius:8px 8px 2px 2px}
.finance-filter-card{padding:24px;background:linear-gradient(120deg,#ffffff 60%,#f5fbff);border:1px solid #f0d9e6;box-shadow:0 5px 22px #edbfd51a}
#finance-filters label{color:#806d88}
#finance-filters .finance-filter-bottom{border-top:1px dashed #f0d7e5}
#finance-filters input::placeholder{color:#8e7c96}
#finance-filters input,#finance-filters select{border-color:#efdae6;background:#ffffff}
.login-page:not(.custom-background){background:radial-gradient(ellipse at 7% 22%,#e6f4ffcf,transparent 42%),radial-gradient(ellipse at 92% 84%,#fbdce8a8,transparent 45%),radial-gradient(circle,#f3ccde .8px,transparent 1px),#fffdfd;background-size:auto,auto,22px 22px,auto}
.login-story{padding:34px;border:0;border-radius:0;background:transparent;box-shadow:none}
.login-story h1{color:#735d79}
.login-brand strong{color:#87647e}
.login-card{background:#ffffffed;border-color:#f1cfe2;border-radius:25px;box-shadow:0 12px 36px #c2e1f62e,0 4px 16px #efc9db1c}
@media(max-width:560px){.finance-filter-card{padding:20px 16px}.login-story{padding:22px}}
