:root{--pink:#e94f7b;--pink2:#b84c9b;--rose:#8c2f4d;--soft:#fff2f5;--cream:#fffaf8;--ink:#2e2730;--muted:#8d7d86;--line:#f0dfe5;--green:#32b77a;--shadow:0 14px 40px rgba(130,56,83,.14);--radius:20px}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:#f7eef1}button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.money{color:var(--pink);font-weight:800}.tag{font-size:11px;padding:4px 8px;border-radius:99px;background:#fff0f4;color:#c5466b}.btn{border:0;border-radius:14px;padding:12px 18px;cursor:pointer;font-weight:700}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--pink),var(--pink2));box-shadow:0 8px 20px rgba(233,79,123,.28)}.btn-light{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn-sm{padding:8px 12px;border-radius:10px;font-size:12px}.chip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 12px;white-space:nowrap}.chip.active{border-color:#ef7d9c;background:#fff0f4;color:#c33d65}.section-title{display:flex;align-items:center;justify-content:space-between;margin:18px 2px 12px}.section-title h3{margin:0;font-size:17px}.section-title a{font-size:12px;color:var(--muted)}
/* customer */
.customer-body{background:linear-gradient(150deg,#ffeef3,#f4e9f3);min-height:100vh}.phone-shell{width:100%;max-width:430px;min-height:100vh;margin:0 auto;background:#fff;position:relative;padding-bottom:82px;box-shadow:0 0 60px rgba(92,38,59,.15);overflow:hidden}.app-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);padding:14px 18px 10px;border-bottom:1px solid rgba(240,223,229,.7)}.header-row{display:flex;justify-content:space-between;align-items:center}.brand-mini{font-weight:900;color:var(--rose);letter-spacing:.2px}.location{font-size:12px;color:var(--muted)}.icon-btn{width:36px;height:36px;border-radius:50%;border:0;background:#fff3f6;cursor:pointer}.search{margin-top:10px;background:#f8f3f5;border:1px solid #f2e7eb;border-radius:13px;padding:11px 14px;color:#9c8c94;font-size:13px}.page{padding:14px 16px 22px}.hero{height:178px;border-radius:24px;overflow:hidden;position:relative;background:linear-gradient(120deg,#f8d8df,#f4e8e9);box-shadow:var(--shadow)}.hero img{width:100%;height:100%;object-fit:cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(64,21,36,.55),rgba(64,21,36,.02))}.hero-copy{position:absolute;z-index:2;left:20px;top:24px;color:#fff;width:54%}.hero-copy h1{font-family:Georgia,"Songti SC",serif;font-size:24px;line-height:1.25;margin:0 0 8px}.hero-copy p{font-size:12px;line-height:1.55;margin:0 0 14px}.hero-copy .btn{padding:9px 13px;font-size:12px;background:#fff;color:var(--rose)}.categories{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.cat{text-align:center;font-size:12px}.cat-icon{height:52px;width:52px;margin:auto auto 6px;border-radius:18px;background:linear-gradient(135deg,#fff1f5,#f6e6f4);display:grid;place-items:center;font-size:22px;box-shadow:0 7px 16px rgba(158,69,101,.11)}.coupon-banner{display:flex;align-items:center;justify-content:space-between;border-radius:17px;padding:13px 15px;background:linear-gradient(120deg,#682840,#a13c65);color:#fff}.coupon-banner b{display:block;font-size:14px}.coupon-banner span{font-size:11px;opacity:.84}.service-scroll{display:flex;gap:12px;overflow:auto;padding-bottom:4px;scrollbar-width:none}.service-card{min-width:178px;background:#fff;border:1px solid #f5e7ec;border-radius:18px;overflow:hidden;box-shadow:0 8px 25px rgba(96,45,65,.08)}.service-card img{width:100%;height:118px;object-fit:cover}.service-card .info{padding:11px}.service-card h4{font-size:14px;margin:0 0 4px}.service-card p{font-size:11px;color:var(--muted);margin:0 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.price-row{display:flex;justify-content:space-between;align-items:center}.price-row s{font-size:10px;color:#aaa}.portfolio-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.work-card{position:relative;border-radius:17px;overflow:hidden;height:176px;background:#eee}.work-card img{width:100%;height:100%;object-fit:cover}.work-card:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(35,15,25,.78))}.work-copy{position:absolute;z-index:2;left:12px;right:10px;bottom:10px;color:#fff}.work-copy b{font-size:13px}.work-copy small{display:flex;justify-content:space-between;margin-top:4px;opacity:.86}.bottom-nav{position:fixed;z-index:30;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;height:72px;background:rgba(255,255,255,.95);backdrop-filter:blur(18px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:7px 8px 8px}.nav-item{border:0;background:none;color:#8e7b84;font-size:10px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}.nav-item span:first-child{font-size:21px}.nav-item.active{color:var(--pink);font-weight:800}.page-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}.page-title h2{font-family:Georgia,"Songti SC",serif;font-size:24px;margin:0}.filter-row{display:flex;gap:8px;overflow:auto;margin-bottom:14px}.list-card{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:11px;margin-bottom:11px}.list-card img{width:96px;height:94px;object-fit:cover;border-radius:13px}.list-card h4{margin:4px 0;font-size:15px}.list-card p{margin:3px 0;font-size:11px;color:var(--muted)}
.ai-hero{background:linear-gradient(135deg,#2e1730,#9b3c72);border-radius:24px;padding:22px;color:white;position:relative;overflow:hidden}.ai-hero:after{content:"AI";font-size:110px;font-weight:900;position:absolute;right:-8px;bottom:-40px;opacity:.08}.ai-hero h2{margin:0 0 6px;font-family:Georgia,"Songti SC",serif}.upload-zone{margin-top:14px;border:1.5px dashed #dfb6c5;background:#fff9fb;border-radius:20px;min-height:230px;display:grid;place-items:center;overflow:hidden;position:relative}.upload-zone img{width:100%;height:230px;object-fit:cover}.upload-placeholder{text-align:center;color:var(--muted);padding:30px}.compare-wrap{position:relative;height:250px;border-radius:20px;overflow:hidden;background:#eee}.compare-wrap img{width:100%;height:100%;object-fit:cover}.compare-label{position:absolute;top:12px;padding:6px 10px;border-radius:20px;background:rgba(0,0,0,.5);color:#fff;font-size:11px}.compare-label.left{left:12px}.compare-label.right{right:12px}.preset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.preset{padding:11px 4px;text-align:center;border:1px solid var(--line);border-radius:13px;font-size:11px;background:#fff}.preset.active{border-color:var(--pink);background:#fff0f4;color:var(--pink)}.range-row{display:grid;grid-template-columns:65px 1fr 36px;gap:8px;align-items:center;font-size:12px;margin:14px 0}.range-row input{accent-color:var(--pink)}
.steps{display:flex;justify-content:space-between;margin:4px 0 20px;position:relative}.steps:before{content:"";position:absolute;top:13px;left:12%;right:12%;height:2px;background:#eddce2}.step{z-index:1;text-align:center;font-size:10px;color:var(--muted)}.step i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f3e8ec;margin:auto auto 5px;font-style:normal}.step.active i{background:var(--pink);color:#fff}.booking-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;margin-bottom:12px}.booking-panel h4{margin:0 0 12px}.date-strip,.slot-grid{display:flex;gap:8px;overflow:auto}.date-item{min-width:52px;padding:9px 5px;border:1px solid var(--line);border-radius:13px;text-align:center;font-size:11px}.date-item b{font-size:16px;display:block}.date-item.active,.slot.active{border-color:var(--pink);background:#fff0f4;color:var(--pink)}.slot-grid{display:grid;grid-template-columns:repeat(4,1fr)}.slot{padding:10px 4px;border:1px solid var(--line);border-radius:11px;text-align:center;font-size:12px}.slot.disabled{opacity:.35;text-decoration:line-through}.tech-card{display:flex;align-items:center;gap:11px;padding:9px;border:1px solid var(--line);border-radius:14px;margin:8px 0}.tech-card.active{border-color:var(--pink);background:#fff7f9}.avatar{width:44px;height:44px;border-radius:50%;object-fit:cover}.checkout{background:linear-gradient(160deg,#fff,#fff1f5);border-radius:22px;border:1px solid var(--line);padding:16px}.line{display:flex;justify-content:space-between;padding:8px 0;font-size:13px}.line.total{border-top:1px dashed var(--line);font-size:16px;font-weight:800}.payment-method{display:flex;justify-content:space-between;align-items:center;padding:13px;border:1px solid var(--line);border-radius:14px;margin:8px 0}.payment-method.active{border-color:var(--pink);background:#fff7f9}.pay-logo{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:#fff;font-weight:900}.wechat{background:#16bd6a}.alipay{background:#1677ff}.union{background:#d83036}.success{text-align:center;padding:30px 10px}.success .tick{width:80px;height:80px;border-radius:50%;background:#e5f8ef;color:var(--green);font-size:44px;display:grid;place-items:center;margin:auto}
.profile-head{background:linear-gradient(135deg,#7e294c,#bd4f82);border-radius:24px;padding:20px;color:#fff;position:relative;overflow:hidden}.profile-info{display:flex;align-items:center;gap:13px}.profile-info img{width:60px;height:60px;border-radius:50%;border:3px solid rgba(255,255,255,.7);object-fit:cover}.member-card{margin-top:16px;padding:14px;border-radius:18px;background:linear-gradient(120deg,#f8d18f,#d59848);color:#573515}.member-card .progress{height:6px;background:rgba(255,255,255,.45);border-radius:5px;margin:8px 0}.member-card .progress i{display:block;width:74%;height:100%;background:#fff;border-radius:5px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.quick{text-align:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px 5px;font-size:11px}.quick b{display:block;font-size:20px;margin-bottom:5px}.menu-list{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.menu-item{display:flex;justify-content:space-between;padding:14px;border-bottom:1px solid #f6ecef;font-size:13px}.menu-item:last-child{border:0}
.toast{position:fixed;left:50%;bottom:95px;transform:translateX(-50%);background:rgba(43,29,36,.92);color:#fff;padding:10px 15px;border-radius:99px;font-size:12px;z-index:100;display:none}.modal{position:fixed;inset:0;background:rgba(33,20,27,.45);z-index:80;display:grid;place-items:end center}.modal-sheet{width:100%;max-width:430px;max-height:90vh;overflow:auto;background:#fff;border-radius:28px 28px 0 0;padding:20px}.modal-sheet .close{float:right}
/* dashboards */
.dashboard-body{background:#f7f5f7;min-height:100vh}.dashboard{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#321f2b;color:#fff;padding:24px 16px;position:sticky;top:0;height:100vh}.brand{font-family:Georgia,"Songti SC",serif;font-size:20px;font-weight:800;margin:0 8px 28px}.brand small{display:block;font-family:inherit;font-size:10px;opacity:.62;margin-top:5px;letter-spacing:2px}.side-nav{display:flex;flex-direction:column;gap:5px}.side-link{border:0;background:transparent;color:#cdbfc6;text-align:left;padding:12px 14px;border-radius:12px;cursor:pointer}.side-link.active,.side-link:hover{background:linear-gradient(90deg,#9d3c68,#5c2b4a);color:#fff}.side-footer{position:absolute;bottom:22px;left:22px;font-size:11px;color:#bbaab3}.dash-main{padding:25px 30px;overflow:hidden}.dash-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dash-top h1{font-size:26px;margin:0}.account{display:flex;align-items:center;gap:10px;background:#fff;padding:8px 13px;border-radius:14px;border:1px solid #eee4e8}.account img{width:36px;height:36px;border-radius:50%;object-fit:cover}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric{background:#fff;border:1px solid #eee4e8;border-radius:18px;padding:18px;box-shadow:0 8px 25px rgba(60,31,45,.05)}.metric .label{font-size:12px;color:#8d7d86}.metric .value{font-size:27px;font-weight:850;margin:9px 0}.metric .delta{font-size:11px;color:var(--green)}.dash-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:17px;margin-top:17px}.panel{background:#fff;border:1px solid #eee4e8;border-radius:18px;padding:18px;overflow:hidden}.panel h3{font-size:15px;margin:0 0 16px}.chart{height:210px;display:flex;align-items:end;gap:13px;padding:15px 10px 5px;border-bottom:1px solid #eee}.bar-wrap{flex:1;text-align:center;font-size:10px;color:#8b7d84}.bar{background:linear-gradient(#ef7da0,#a13b73);border-radius:8px 8px 2px 2px;min-height:10px;margin-bottom:8px}.donut{width:150px;height:150px;border-radius:50%;background:conic-gradient(#e9507c 0 42%,#a84a96 42% 70%,#f1b365 70% 86%,#e8dde2 86%);margin:17px auto;position:relative}.donut:after{content:"今日预约";position:absolute;inset:26px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:12px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;color:#897982;font-weight:600;padding:11px;border-bottom:1px solid #eee}.data-table td{padding:12px 11px;border-bottom:1px solid #f2eaed;white-space:nowrap}.status{padding:5px 8px;border-radius:30px;background:#fff2d8;color:#a56800;font-size:10px}.status.paid,.status.approved,.status.online,.status.completed{background:#e8f8f0;color:#18875b}.status.pending,.status.maintenance{background:#fff1df;color:#aa6900}.status.cancelled,.status.refunded{background:#fdecef;color:#c2425d}.module-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.module-title h2{margin:0}.toolbar{display:flex;gap:8px}.toolbar input{border:1px solid #e9dde2;padding:10px 12px;border-radius:11px}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mini-card{border:1px solid #eee2e7;border-radius:16px;padding:15px;background:#fff}.mini-card img{width:100%;height:140px;object-fit:cover;border-radius:12px}.mini-card h4{margin:10px 0 5px}.ai-stat{display:flex;align-items:center;gap:15px;padding:18px;border-radius:18px;background:linear-gradient(130deg,#362138,#853f72);color:#fff}.ai-stat b{font-size:32px}.empty{padding:60px;text-align:center;color:#8f8088}
@media(max-width:950px){.dashboard{grid-template-columns:78px 1fr}.brand{font-size:0}.brand:before{content:"BC";font-size:18px}.side-link{font-size:0;text-align:center}.side-link:before{content:attr(data-icon);font-size:20px}.dash-main{padding:18px}.metric-grid{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:431px){.customer-body{padding:24px 0}.phone-shell{min-height:844px;border-radius:34px}.bottom-nav{bottom:24px;border-radius:0 0 34px 34px}.modal{place-items:center}.modal-sheet{border-radius:28px;max-height:780px}.toast{bottom:112px}}
/* V3 AI template try-on and quote workflow */
.ai-home-hero .hero-copy{width:60%}.workflow-card{border:1px solid #efdce4;background:linear-gradient(135deg,#fff9fb,#f8eff7);border-radius:18px;padding:14px;margin:14px 0}.workflow-card>b{font-size:14px}.workflow-steps{display:flex;align-items:center;gap:5px;overflow:auto;margin-top:10px;font-size:10px;color:#78656f;white-space:nowrap}.workflow-steps span{background:#fff;border:1px solid #f0e0e6;border-radius:99px;padding:6px 8px}.workflow-steps i{font-style:normal;color:var(--pink)}.template-scroll{display:flex;gap:10px;overflow:auto;padding-bottom:7px;scrollbar-width:none}.template-mini{min-width:150px;border-radius:17px;background:#fff;border:1px solid var(--line);overflow:hidden;box-shadow:0 8px 22px rgba(91,36,60,.08)}.template-mini img{width:100%;height:112px;object-fit:cover}.template-mini>div{padding:9px}.template-mini b,.template-mini small,.template-mini span{display:block}.template-mini b{font-size:13px}.template-mini small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:3px 0}.template-mini span{font-size:11px;color:var(--pink);font-weight:800}.ai-page{padding-bottom:104px}.ai-stage-tabs{display:flex;gap:8px;margin:14px 0;overflow:auto}.ai-preview-card{display:grid;grid-template-columns:1.03fr .97fr;gap:12px}.upload-zone.compact{margin:0;min-height:230px;height:230px}.upload-zone.compact img{height:230px}.upload-placeholder .upload-icon{width:48px;height:48px;border-radius:18px;background:#fff0f4;color:var(--pink);display:grid;place-items:center;margin:0 auto 9px;font-size:27px}.replace-photo{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);background:rgba(30,17,24,.65);color:#fff;font-size:10px;padding:6px 10px;border-radius:99px}.ai-selection-info{border:1px solid var(--line);background:#fff;border-radius:20px;padding:14px;min-height:230px}.selected-template-head{display:flex;align-items:center;gap:9px}.selected-template-head h3{margin:2px 0;font-size:18px}.selected-template-head small{color:var(--muted)}.color-dot{width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 5px rgba(255,255,255,.7),0 4px 12px rgba(66,30,45,.18)}.ai-selection-info p{font-size:11px;line-height:1.65;color:var(--muted)}.estimate-row{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed var(--line);padding-top:10px;margin-top:4px;font-size:11px}.estimate-row b{font-size:13px;color:var(--pink)}.style-template-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.style-template-card{border:1px solid var(--line);background:#fff;border-radius:18px;overflow:hidden;transition:.18s;cursor:pointer}.style-template-card.active{border-color:var(--pink);box-shadow:0 0 0 2px rgba(233,79,123,.12),0 12px 24px rgba(129,48,80,.12);transform:translateY(-2px)}.template-image{position:relative;height:132px}.template-image img{width:100%;height:100%;object-fit:cover}.template-type,.hot-badge{position:absolute;top:8px;padding:4px 7px;border-radius:99px;font-size:9px;color:#fff;background:rgba(31,18,24,.6)}.template-type{left:8px}.hot-badge{right:8px;background:linear-gradient(135deg,#ef4f79,#bd3f8a)}.template-copy{padding:10px}.template-copy h4{font-size:14px;margin:0}.template-copy p{font-size:10px;color:var(--muted);margin:4px 0 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-meta{display:flex;justify-content:space-between;align-items:center}.template-meta span{font-size:11px;color:var(--pink);font-weight:800}.template-meta small{font-size:9px;color:#998892}.tryon-bar{position:sticky;bottom:76px;z-index:15;margin:15px -5px 0;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:18px;padding:11px;box-shadow:0 12px 35px rgba(70,32,48,.14);display:flex;align-items:center;justify-content:space-between;gap:8px}.tryon-bar small,.tryon-bar b{display:block}.tryon-bar small{font-size:9px;color:var(--muted)}.tryon-bar b{font-size:12px}.tryon-actions{display:flex;gap:7px}.tryon-actions .btn{padding:9px 11px;font-size:11px}.tryon-result-card{position:relative;height:365px;border-radius:23px;overflow:hidden;background:#eee;box-shadow:var(--shadow)}.tryon-result-card img{width:100%;height:100%;object-fit:cover}.result-overlay{position:absolute;left:0;right:0;bottom:0;padding:20px 16px 14px;color:#fff;background:linear-gradient(transparent,rgba(25,12,20,.86))}.result-overlay b,.result-overlay span{display:block}.result-overlay span{font-size:11px;opacity:.8;margin-top:4px}.result-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.result-buttons .btn:last-child{grid-column:1/-1}.download-link{text-align:center;text-decoration:none}.privacy-note{font-size:10px;line-height:1.55;color:var(--muted);padding:10px 4px}.saved-look-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.saved-look{border:1px solid var(--line);border-radius:17px;padding:9px}.saved-look img{width:100%;height:150px;border-radius:12px;object-fit:cover}.saved-look b,.saved-look small{display:block}.saved-look b{font-size:13px;margin-top:7px}.saved-look small{font-size:10px;color:var(--muted);margin:3px 0 8px}.saved-look>div{display:flex;gap:5px}.quote-look{display:flex;gap:12px;border:1px solid var(--line);border-radius:18px;padding:10px;margin:12px 0}.quote-look img{width:110px;height:100px;border-radius:13px;object-fit:cover}.quote-look p{font-size:11px;color:var(--muted);margin:4px 0}.quote-look span{font-size:11px;color:var(--pink);font-weight:800}.form-label{display:block;font-size:12px;font-weight:700;margin:12px 0}.form-label select,.form-label input,.form-label textarea{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff;color:var(--ink)}.quote-rule{border-radius:15px;padding:12px;background:#fff5e9;border:1px solid #f5dfbe;margin:13px 0}.quote-rule b{font-size:12px;color:#8b5f20}.quote-rule p{font-size:10px;color:#8f7350;line-height:1.6;margin:5px 0 0}.full-btn{width:100%;margin-top:12px}.quote-success>p{font-size:12px;color:var(--muted);line-height:1.7}.quote-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:22px 0}.quote-progress>div{text-align:center;color:#9b8b93;font-size:9px}.quote-progress i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f3e7ec;margin:auto auto 6px;font-style:normal}.quote-progress .done i{background:var(--pink);color:#fff}.quote-progress b{display:block}.quote-summary{display:flex;gap:12px;text-align:left;border:1px solid var(--line);border-radius:18px;padding:10px;margin-bottom:18px}.quote-summary img{width:90px;height:85px;border-radius:13px;object-fit:cover}.quote-summary p{font-size:11px;color:var(--muted)}.quote-order-card{display:flex;gap:11px;border:1px solid var(--line);border-radius:18px;padding:10px;margin:10px 0}.quote-order-card>img{width:104px;height:128px;border-radius:14px;object-fit:cover}.quote-order-main{flex:1;min-width:0}.quote-order-main p{font-size:11px;color:var(--muted);margin:5px 0}.quote-line{display:flex;justify-content:space-between;font-size:11px;padding:5px 0}.quote-line.total{border-top:1px dashed var(--line);font-size:12px}.active-order-note{background:#e9f8f1;color:#16835a;border-radius:11px;padding:8px;font-size:10px;margin-top:8px}.booking-mode-tip{font-size:11px;line-height:1.6;padding:10px 12px;border-radius:13px;background:#fff3f6;color:#9a4663;margin-bottom:12px}.no-border{padding:0;border:0;margin:0}.pay-label{display:flex;gap:10px;align-items:center}.payment-note{text-align:center;font-size:11px}.detail-cover{width:100%;height:240px;object-fit:cover;border-radius:20px;margin-top:8px}.detail-copy{line-height:1.7}.detail-cover+s+* s,.modal-sheet h3 s{font-size:13px;color:#aaa}.tiny{font-size:11px}.profile-info h3{margin:0}.profile-phone{font-size:12px;opacity:.8}.preference-card{border:1px solid var(--line);border-radius:20px;padding:13px;background:linear-gradient(135deg,#fff,#fff6fa)}.preference-card .section-title{margin:0 0 10px}.preference-card .section-title span{font-size:10px;color:var(--muted)}.preference-tags{display:flex;flex-wrap:wrap;gap:6px}.preference-tags span{font-size:10px;padding:6px 9px;border-radius:99px;background:#f7e8f0;color:#a43f68}.top-style{display:flex;gap:10px;align-items:center;margin-top:12px;background:#fff;border-radius:14px;padding:8px}.top-style img{width:72px;height:64px;border-radius:10px;object-fit:cover}.top-style small,.top-style b,.top-style p{display:block;margin:0}.top-style small{font-size:9px;color:var(--muted)}.top-style b{font-size:13px;margin:2px 0}.top-style p{font-size:10px;color:var(--muted)}.quote-preview{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:16px;padding:9px;margin-bottom:9px}.quote-preview img{width:70px;height:68px;border-radius:11px;object-fit:cover}.quote-preview>div{flex:1}.quote-preview b{font-size:13px}.quote-preview p{font-size:10px;color:var(--muted);margin:4px 0}.quote-preview strong{font-size:13px;color:var(--pink)}.empty.slim{padding:22px}.modal-coupon{margin:10px 0}.notice-icon{width:42px;height:42px;border-radius:14px;background:#fff0f4;display:grid;place-items:center;color:var(--pink);font-weight:800}.status.awaiting_payment,.status.merchant_priced,.status.submitted,.status.pricing,.status.admin_review{background:#fff1df;color:#aa6900}.status.paid_active{background:#e8f8f0;color:#18875b}
@media(max-width:380px){.ai-preview-card{grid-template-columns:1fr}.ai-selection-info{min-height:auto}.style-template-grid{grid-template-columns:1fr 1fr}.result-buttons{grid-template-columns:1fr}.result-buttons .btn:last-child{grid-column:auto}}
.insight-rank{display:grid;grid-template-columns:28px 54px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #f1e8ec}.insight-rank:last-child{border-bottom:0}.insight-rank>b{color:#c64b73}.insight-rank>img{width:54px;height:46px;border-radius:10px;object-fit:cover}.insight-rank strong,.insight-rank small{display:block}.insight-rank strong{font-size:12px}.insight-rank small{font-size:10px;color:var(--muted);margin-top:3px}.insight-rank>span{color:var(--pink);font-weight:800}.rank-bar{display:block;height:5px;border-radius:9px;background:#f0e4e9;margin-top:7px;overflow:hidden}.rank-bar em{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--pink2));border-radius:9px}.funnel-list>div{display:grid;grid-template-columns:82px 1fr 42px;gap:10px;align-items:center;margin:16px 0;font-size:12px}.funnel-list i{display:block;height:24px;border-radius:6px;background:linear-gradient(90deg,#ef7da0,#a13b73);min-width:14%}.funnel-list b{text-align:right;color:var(--pink)}

/* ===== V5 AI API center / SaaS membership ===== */
.eyebrow{display:inline-block;font-size:10px;letter-spacing:2.4px;font-weight:900;color:var(--pink);margin-bottom:8px}.ai-config-hero,.subscription-admin-hero,.subscription-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:26px 30px;border-radius:25px;margin-bottom:18px;background:linear-gradient(125deg,#fff8fb 0%,#fce9f1 56%,#f0e7ff 100%);border:1px solid #f0dce5;box-shadow:0 16px 42px rgba(96,38,66,.10)}.ai-config-hero:after,.subscription-admin-hero:after,.subscription-hero:after{content:"AI";position:absolute;right:23%;top:-38px;font-weight:950;font-size:160px;line-height:1;color:rgba(183,76,127,.045);pointer-events:none}.ai-config-hero h2,.subscription-admin-hero h2,.subscription-hero h2{font-size:27px;margin:0 0 7px;color:#4e2638}.ai-config-hero p,.subscription-admin-hero p,.subscription-hero p{font-size:12px;color:#806774;margin:0;line-height:1.7}.hero-route,.billing-mini,.membership-card{position:relative;z-index:1;min-width:220px;border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.72);backdrop-filter:blur(16px);border-radius:20px;padding:17px 20px;box-shadow:0 12px 35px rgba(77,31,55,.09)}.hero-route small,.hero-route b,.hero-route span,.billing-mini small,.billing-mini b,.billing-mini span,.membership-card small,.membership-card b,.membership-card span{display:block}.hero-route small,.billing-mini small,.membership-card small{font-size:10px;color:#947987}.hero-route b,.billing-mini b,.membership-card b{font-size:21px;color:#54283c;margin:5px 0}.hero-route span,.billing-mini span,.membership-card span{font-size:11px;color:var(--pink);font-weight:800}.routing-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#241722;color:#fff;border-radius:21px;padding:18px 22px;margin:18px 0;box-shadow:0 15px 36px rgba(28,13,23,.18)}.routing-panel small{font-size:10px;color:#cdbfc7}.fallback-chain{display:flex;align-items:center;gap:8px;margin-top:9px;flex-wrap:wrap}.fallback-chain>span{border-radius:12px;background:rgba(255,255,255,.09);padding:8px 11px;font-size:10px;color:#ebdfe6}.fallback-chain>span.primary{background:linear-gradient(135deg,#e34d7d,#9b3b82);color:#fff}.fallback-chain b{display:block;font-size:9px;margin-top:3px;opacity:.7}.fallback-chain i{font-style:normal;opacity:.35}.routing-cost{text-align:right;min-width:120px}.routing-cost b,.routing-cost span{display:block}.routing-cost b{font-size:21px;margin:4px 0}.routing-cost span{font-size:10px;color:#d6c5cf}.provider-filter{display:flex;gap:7px}.provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.provider-card{position:relative;border:1px solid #eadde4;background:#fff;border-radius:21px;padding:16px;box-shadow:0 10px 28px rgba(73,29,50,.07);transition:.2s}.provider-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(73,29,50,.11)}.provider-card.default-provider{border-color:#d65b8a;box-shadow:0 0 0 2px rgba(218,77,129,.10),0 15px 34px rgba(73,29,50,.11)}.provider-head{display:flex;align-items:center;gap:10px}.provider-logo{width:43px;height:43px;flex:0 0 43px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#2e1d29,#a14272);color:#fff;font-size:12px;font-weight:900;letter-spacing:.5px;box-shadow:0 8px 18px rgba(75,31,55,.22)}.provider-name{flex:1;min-width:0}.provider-name>div{display:flex;align-items:center;gap:6px}.provider-name h3{font-size:14px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.provider-name p{font-size:9px;margin:4px 0 0;color:var(--muted)}.default-pill{font-size:8px;padding:3px 6px;border-radius:99px;background:#fff0f5;color:#c03d71;font-weight:900;white-space:nowrap}.switch{position:relative;display:inline-block;width:37px;height:21px}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;inset:0;border-radius:99px;background:#ddd;transition:.2s;cursor:pointer}.switch span:before{content:"";position:absolute;width:15px;height:15px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:.2s}.switch input:checked+span{background:linear-gradient(90deg,var(--pink),var(--pink2))}.switch input:checked+span:before{transform:translateX(16px)}.provider-badges{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0}.provider-badges span{font-size:8px;padding:4px 6px;background:#f8f1f5;color:#7b5266;border-radius:7px}.provider-fields{display:grid;grid-template-columns:1fr;gap:8px}.provider-fields.two{grid-template-columns:1fr 1fr}.provider-fields.three{grid-template-columns:.8fr 1fr 1.1fr;align-items:end}.provider-fields label{font-size:9px;color:#806b76;font-weight:700}.provider-fields label>span{float:right;color:#ab8e9c;font-weight:500}.provider-fields input,.provider-fields select{display:block;width:100%;height:35px;border:1px solid #eadfe4;border-radius:10px;background:#fcfafb;color:#4b3540;padding:0 9px;margin-top:4px;font-size:10px;outline:none}.provider-fields input:focus,.provider-fields select:focus{border-color:#dc7098;box-shadow:0 0 0 3px rgba(224,93,145,.08)}.provider-fields .wide{grid-column:1/-1}.provider-advanced{margin:9px 0;border:1px dashed #eadce4;border-radius:12px;padding:8px}.provider-advanced summary{font-size:9px;font-weight:800;color:#9a5774;cursor:pointer}.provider-advanced[open] summary{margin-bottom:9px}.provider-test{height:35px;border:1px solid #eadfe4;border-radius:10px;padding:5px 8px;background:#fcfafb;display:flex;align-items:center;gap:6px}.provider-test small{font-size:8px;color:#89737e}.provider-test .status{font-size:8px;padding:3px 5px}.provider-test em{font-size:8px;font-style:normal;color:#9e8b95;margin-left:auto}.provider-message{min-height:26px;font-size:8px;line-height:1.45;color:#97828c;background:#fcf8fa;border-radius:9px;padding:7px 9px;margin:9px 0}.provider-actions{display:flex;gap:6px}.provider-actions .btn{flex:1;padding-left:5px;padding-right:5px}.provider-actions .btn:disabled,.plan-card .btn:disabled{opacity:.55;cursor:not-allowed}.subscription-admin-hero{background:linear-gradient(125deg,#fff8f1,#f9e8f0 48%,#efe9ff)}.subscription-hero{background:linear-gradient(125deg,#fff8fb,#f7e5ef 48%,#eee8ff)}.subscription-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.subscription-tags span{font-size:9px;padding:6px 9px;border-radius:99px;background:rgba(255,255,255,.72);color:#95506f;border:1px solid rgba(255,255,255,.9)}.membership-card{text-align:center;min-width:190px}.membership-card b{font-size:25px}.renew-switch{display:block;margin-top:10px;font-size:9px;color:#806b76}.renew-switch input{vertical-align:middle;accent-color:var(--pink)}.pricing-header{display:flex;align-items:end;justify-content:space-between;margin:23px 0 14px}.pricing-header h2{font-size:22px;margin:0}.pricing-header p{font-size:11px;color:var(--muted);margin:5px 0 0}.billing-toggle{display:flex;background:#f3e8ed;padding:4px;border-radius:12px}.billing-toggle button{border:0;background:transparent;padding:8px 13px;border-radius:9px;font-size:10px;color:#846d78;cursor:pointer}.billing-toggle button.active{background:#fff;color:#a83b6a;font-weight:900;box-shadow:0 4px 12px rgba(82,36,57,.10)}.billing-toggle span{font-size:7px;background:#e94d7d;color:#fff;padding:2px 4px;border-radius:5px;margin-left:3px}.plan-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.plan-card{position:relative;overflow:hidden;background:#fff;border:1px solid #eadde4;border-radius:22px;padding:18px 15px 15px;box-shadow:0 10px 28px rgba(75,31,52,.07);min-height:455px;display:flex;flex-direction:column}.plan-card.popular{border-color:#d85084;transform:translateY(-5px);box-shadow:0 17px 38px rgba(128,42,81,.15)}.plan-card.current-plan{box-shadow:0 0 0 2px rgba(48,156,118,.13),0 15px 34px rgba(75,31,52,.10);border-color:#53b791}.popular-ribbon,.current-ribbon{position:absolute;right:-29px;top:17px;width:112px;transform:rotate(38deg);text-align:center;padding:4px;background:linear-gradient(90deg,#e9517f,#a23b82);color:#fff;font-size:7px;font-weight:900}.current-ribbon{left:-31px;right:auto;transform:rotate(-38deg);background:linear-gradient(90deg,#39a97f,#76c4a7)}.plan-icon{height:42px;min-width:42px;width:max-content;padding:0 10px;border-radius:14px;background:linear-gradient(145deg,#fff0f5,#f4e9ff);display:grid;place-items:center;color:#b43e70;font-weight:950;font-size:11px;margin-bottom:12px}.plan-card h3{font-size:17px;margin:0}.plan-card>p{font-size:9px;color:var(--muted);line-height:1.5;min-height:29px;margin:5px 0 10px}.plan-price{display:flex;align-items:baseline;gap:3px}.plan-price small{font-size:8px;color:#9a838f}.plan-price b{font-size:25px;color:#54283c}.plan-price span{font-size:9px;color:#90747f}.year-price{font-size:8px;color:#bb4a73;background:#fff3f7;padding:6px 7px;border-radius:8px;margin:5px 0 10px}.plan-card ul{list-style:none;padding:0;margin:0 0 12px}.plan-card li{font-size:9px;color:#6d5962;margin:7px 0}.plan-limits{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:auto;margin-bottom:12px}.plan-limits span{font-size:8px;background:#f8f3f5;border-radius:7px;padding:6px;color:#7e6873}.plan-card>.btn{width:100%}.subscription-usage{margin:18px 0}.usage-item{position:relative;margin:15px 0}.usage-item>div{display:flex;justify-content:space-between;font-size:10px}.usage-item>div span{color:#725d68}.usage-item>div b{font-size:10px}.usage-item>i{display:block;height:8px;background:#f0e5ea;border-radius:99px;overflow:hidden;margin-top:7px}.usage-item>i em{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#e65382,#9d3e87)}.usage-item>small{display:block;text-align:right;font-size:8px;color:#9b8791;margin-top:4px}.entitlement-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.entitlement-grid>div{text-align:center;background:#fbf6f8;border-radius:12px;padding:12px 5px}.entitlement-grid b,.entitlement-grid span{display:block}.entitlement-grid b{font-size:18px;color:#9f3d68}.entitlement-grid span{font-size:8px;color:#88727d;margin-top:3px}
@media(max-width:1400px){.provider-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-plans .plan-card{min-height:420px}}
@media(max-width:900px){.ai-config-hero,.subscription-admin-hero,.subscription-hero,.routing-panel,.pricing-header{align-items:flex-start;flex-direction:column}.hero-route,.billing-mini,.membership-card{width:100%;min-width:0}.provider-grid,.plan-grid{grid-template-columns:1fr}.provider-fields.two,.provider-fields.three{grid-template-columns:1fr}.provider-fields .wide{grid-column:auto}.routing-cost{text-align:left}.entitlement-grid{grid-template-columns:1fr 1fr}}

.payment-hero,.ai-config-hero,.subscription-admin-hero{display:flex;justify-content:space-between;align-items:center;padding:28px;border-radius:24px;background:linear-gradient(135deg,#3b2431,#7b3f58);color:#fff;margin-bottom:18px}.payment-hero h2{margin:5px 0 8px;font-size:28px}.payment-hero p{opacity:.8;margin:0}.pay-provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pay-provider-card{background:#fff;border:1px solid #eee1e6;border-radius:22px;padding:18px;box-shadow:0 10px 30px rgba(90,44,62,.05)}.pay-provider-card.enabled{border-color:#ebb0c2}.pay-provider-card.default{box-shadow:0 0 0 2px #d94f77 inset}.provider-head{display:flex;justify-content:space-between;gap:16px}.provider-head h3{margin:6px 0}.provider-head p{font-size:12px;color:#76656b;line-height:1.55}.provider-region{font-size:10px;background:#fff0f4;color:#c33f68;padding:4px 8px;border-radius:20px}.provider-status{display:flex;flex-direction:column;gap:7px;align-items:flex-end}.pay-channels{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.pay-channels span{font-size:10px;padding:4px 7px;background:#f7f2f4;border-radius:8px}.pay-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.config-field{display:flex;flex-direction:column;gap:5px}.config-field.wide{grid-column:1/-1}.config-field span{font-size:11px;font-weight:700}.config-field i{color:#d94f77;font-style:normal}.config-field input,.config-field textarea,.provider-options input,.provider-options select{border:1px solid #eadde2;border-radius:10px;padding:9px;background:#fffcfd;font:inherit}.config-field textarea{min-height:72px;resize:vertical}.provider-options{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.provider-options label{display:flex;gap:6px;align-items:center;font-size:11px}.provider-actions{display:flex;gap:8px}.config-warning,.config-ok{font-size:10px;margin-top:9px;padding:8px;border-radius:8px}.config-warning{background:#fff4e7;color:#a85b00}.config-ok{background:#edf9f1;color:#267c49}@media(max-width:1000px){.pay-provider-grid{grid-template-columns:1fr}} 
.production-login-overlay{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#2c1726ee,#6e3157e8);backdrop-filter:blur(12px)}
.production-login-card{width:min(420px,100%);background:#fff;border-radius:24px;padding:34px;box-shadow:0 30px 80px #210d1c66;display:grid;gap:18px}
.production-login-brand{font-size:25px;font-weight:800;color:#4e233e}.production-login-brand small{display:block;margin-top:5px;font-size:13px;font-weight:500;color:#9d758d}
.production-login-card label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#5e4253}.production-login-card input{height:46px;border:1px solid #ead7e2;border-radius:12px;padding:0 14px;font-size:15px;outline:none}.production-login-card input:focus{border-color:#db5e98;box-shadow:0 0 0 3px #db5e9820}
.production-login-card .btn{height:46px}.login-error{min-height:18px;margin:0;color:#c62828;font-size:13px}.login-note{text-align:center;color:#a08797}
.data-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.data-form-grid label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#765b6c}.data-form-grid input,.data-form-grid textarea,.data-form-grid select{width:100%;border:1px solid #eadce4;border-radius:10px;padding:10px 12px;background:#fff}.data-form-grid .span-2{grid-column:1/-1}.action-row{display:flex;gap:8px;flex-wrap:wrap}.danger{color:#b3261e!important}.crud-modal{max-width:720px}@media(max-width:700px){.data-form-grid{grid-template-columns:1fr}.data-form-grid .span-2{grid-column:auto}}
/* V7 commercial account and security console */
.hidden{display:none!important}.inline-field{display:flex;gap:8px}.inline-field input{flex:1}.inline-field .btn{white-space:nowrap}.link-btn{border:0;background:transparent;color:#b13e6f;cursor:pointer;font-weight:700}.login-tabs{display:flex;background:#f7edf2;padding:4px;border-radius:12px}.login-tabs button{flex:1;border:0;background:transparent;padding:9px;border-radius:9px;color:#806775;cursor:pointer}.login-tabs button.active{background:#fff;color:#a83868;font-weight:900;box-shadow:0 4px 12px #5f254212}
.account-modal-backdrop{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:24px;background:#28131fd9;backdrop-filter:blur(10px)}.account-modal{width:min(680px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 30px 100px #16081288}.account-modal.wide{width:min(1040px,96vw)}.account-modal-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:22px 26px;background:#fff;border-bottom:1px solid #f0e4ea}.account-modal-head small{color:#b44a76;font-weight:900;letter-spacing:.12em}.account-modal-head h2{margin:4px 0 0}.account-modal-head button{border:0;background:#f7edf2;width:34px;height:34px;border-radius:50%;font-size:22px;cursor:pointer}.account-modal-body{padding:24px}.form-error{color:#bd2b2b;min-height:18px}.account-filter{display:flex;gap:10px;align-items:center;margin-bottom:16px}.account-filter input,.account-filter select{border:1px solid #eadce4;border-radius:10px;padding:10px 12px;min-width:150px}.metric-grid.compact{margin-bottom:16px}.table-scroll{overflow:auto}.action-cell{min-width:230px}.action-cell .btn{margin:2px}.pager{display:flex;justify-content:center;align-items:center;gap:14px;padding:18px}.pager button{border:1px solid #eadce4;background:#fff;border-radius:9px;padding:7px 14px}.pager button:disabled{opacity:.4}.tabs-v7{display:flex;gap:8px;margin:16px 0}.tabs-v7 button{border:1px solid #eadde4;background:#fff;border-radius:10px;padding:9px 16px;cursor:pointer}.tabs-v7 button.active{background:#9d3f6d;color:#fff;border-color:#9d3f6d}.check-row{display:flex!important;align-items:center;gap:8px}.check-row input{width:auto!important}.provider-card-head{display:flex;justify-content:space-between;gap:12px}.provider-card-head h3{margin:8px 0 2px}.provider-badge{font-size:9px;padding:4px 7px;border-radius:20px;background:#fff0f5;color:#b84070}.role-grid-v7{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.role-grid-v7 article{border:1px solid #eadde4;border-radius:18px;padding:16px}.role-grid-v7 article h3{margin:0 0 4px}.role-grid-v7 .add-role{display:grid;place-items:center;align-content:center;cursor:pointer;min-height:160px;color:#b43f70}.role-grid-v7 .add-role b{font-size:42px}.permission-tags{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.permission-tags span{font-size:9px;background:#f8f0f4;padding:4px 6px;border-radius:7px}.permission-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:420px;overflow:auto;margin:12px 0 18px}.permission-check-grid label{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #f0e3e9;border-radius:9px;font-size:11px}.security-profile{display:flex;justify-content:space-between;align-items:center;padding:16px;border-radius:16px;background:linear-gradient(135deg,#fff1f6,#f5ecff)}.security-profile b,.security-profile span{display:block}.security-profile b{font-size:20px}.security-profile span{color:#8b7380;margin-top:4px}.security-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.security-grid button{border:1px solid #eadde4;background:#fff;border-radius:14px;padding:14px;text-align:left;cursor:pointer}.security-grid b,.security-grid span{display:block}.security-grid span{font-size:10px;color:#8d7682;margin-top:5px}.session-list>div,.login-log-mini>div,.consent-list label{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f1e8ed;padding:11px 0}.session-list b,.session-list small{display:block}.session-list b em{font-style:normal;font-size:8px;padding:3px 5px;background:#e8f7ef;color:#24754e;border-radius:6px}.session-list button{border:0;background:#fff0f4;color:#b52f60;border-radius:8px;padding:6px 10px}.session-list i{font-size:10px;color:#999}.login-log-mini .ok{color:#238455}.login-log-mini .bad{color:#c43a3a}.consent-list label span b,.consent-list label span small{display:block}.consent-list input{width:18px;height:18px;accent-color:#d94f77}.danger-zone{margin-top:22px;padding:16px;border:1px solid #f1c8c8;background:#fff7f7;border-radius:14px}.full-btn{width:100%}
@media(max-width:800px){.account-filter{flex-direction:column;align-items:stretch}.role-grid-v7,.permission-check-grid{grid-template-columns:1fr}.security-grid{grid-template-columns:1fr}.account-modal-backdrop{padding:8px}.account-modal-body{padding:16px}}

/* V7.3.1 explicit authentication and cache-safe login */
.auth-pending .dashboard{visibility:hidden}
.auth-ready .dashboard{visibility:visible}
.auth-loading-screen{position:fixed;inset:0;z-index:99998;display:grid;place-items:center;background:linear-gradient(135deg,#2c1726,#6e3157);color:#fff}
.auth-loading-screen>div{display:grid;gap:8px;text-align:center}.auth-loading-screen b{font-size:28px}.auth-loading-screen span{opacity:.78}
.header-logout{margin-left:10px;white-space:nowrap}
.login-page-body{min-height:100vh;margin:0;background:linear-gradient(135deg,#24131f,#6e3157 55%,#d35f91);font-family:Inter,"Microsoft YaHei",sans-serif}
.standalone-login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,460px);align-items:center;gap:70px;max-width:1120px;margin:auto;padding:48px}
.standalone-login-info{color:#fff}.login-logo{font-size:18px;font-weight:800;letter-spacing:.04em}.standalone-login-info h1{font-size:46px;line-height:1.18;margin:30px 0 18px}.standalone-login-info p{font-size:17px;line-height:1.9;max-width:620px;color:#f4ddea}.login-feature-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:34px}.login-feature-list span{padding:13px 16px;border:1px solid #ffffff33;border-radius:14px;background:#ffffff12}.standalone-login-card{width:auto}.login-help-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#93798a}.api-ok{color:#198754}.api-bad{color:#c62828}
@media(max-width:800px){.standalone-login-shell{grid-template-columns:1fr;padding:22px}.standalone-login-info{display:none}.standalone-login-card{max-width:440px;margin:auto;width:100%;box-sizing:border-box}}

/* V7.2 data import center */
.import-drop{border:2px dashed #e3c8d6;border-radius:18px;padding:26px;background:#fff9fb;text-align:center;transition:.2s}.import-drop:hover{border-color:#de5b93;background:#fff4f8}.import-drop input[type=file]{width:min(560px,100%);padding:14px;background:#fff;border:1px solid #ead7e1;border-radius:12px}.import-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:14px 0 20px}.import-step{padding:12px;border-radius:14px;background:#f6f1f4;color:#8e7583;font-size:12px;text-align:center}.import-step.active{background:#582541;color:white}.import-step.done{background:#e9f7ef;color:#278653}.import-warning{padding:12px 15px;border-radius:13px;background:#fff5de;border:1px solid #f3d89b;color:#805d12;margin:8px 0;font-size:12px;line-height:1.7}.import-danger{background:#fff0f0;border-color:#f0bcbc;color:#9c3535}.import-table-list{display:grid;gap:8px;max-height:430px;overflow:auto;padding-right:4px}.import-table-row{display:grid;grid-template-columns:32px minmax(150px,1.1fr) minmax(150px,1fr) 100px;gap:10px;align-items:center;padding:11px 12px;border:1px solid #eee2e8;border-radius:12px;background:#fff}.import-table-row.archive{opacity:.68}.import-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.import-option{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #eee2e8;border-radius:12px;background:#fff}.import-option input{margin-top:3px}.progress-track{height:10px;background:#eee7eb;border-radius:99px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,#e64e8b,#7c3c69);transition:width .4s}.import-job-status{display:inline-flex;align-items:center;gap:6px}.import-job-status::before{content:'';width:8px;height:8px;border-radius:50%;background:#aaa}.import-job-status.completed::before{background:#37a96b}.import-job-status.failed::before{background:#d85656}.import-job-status.importing::before,.import-job-status.queued::before,.import-job-status.scanning::before{background:#db9b33;box-shadow:0 0 0 4px #f8ebd3}.member-card-no{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.5px}.card-summary-note{font-size:11px;color:#8d7c86;margin-top:6px}.import-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;background:#f7f3f5;padding:2px 6px;border-radius:6px}@media(max-width:900px){.import-steps{grid-template-columns:1fr 1fr}.import-table-row{grid-template-columns:28px 1fr}.import-table-row>*:nth-child(n+3){grid-column:2}.import-options{grid-template-columns:1fr}}

/* V7.3 member-card cashier and settlement */
.cashier-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:17px}.cashier-card-input{display:grid;grid-template-columns:1fr auto;gap:10px;margin:14px 0}.cashier-card-input input{font-size:20px;letter-spacing:1px;padding:15px 16px}.member-swipe-result{border:1px solid #f0d8e4}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-grid label{font-size:12px;color:#795f70}.form-grid input,.toolbar select{margin-top:6px;width:100%;border:1px solid #eadde5;border-radius:10px;padding:10px;background:#fff}.toolbar select{width:auto;margin-top:0}.btn.danger,.danger{color:#b5324f}@media(max-width:980px){.cashier-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.cashier-card-input{grid-template-columns:1fr}}
.content-upload-row{display:flex;align-items:center;gap:14px;margin-top:7px;padding:10px;border:1px dashed #d8c9b7;border-radius:14px;background:#faf7f2}.content-upload-row img{width:96px;height:72px;object-fit:cover;border-radius:10px;background:#f2eee8}.content-upload-row input[type=file]{flex:1}.content-upload-field small{display:block;margin-top:6px;color:#746b60}
