:root{--ink:#263d33;--green:#355849;--green2:#5c7663;--sage:#eaf0e7;--muted:#89918a;--paper:#f6f7f3;--line:#e9ece5;--rose:#f5e8e4;--rose-ink:#a7796b;--white:#fff;--radius:16px;--sidebar:222px;--reading-scale:1;--fs-caption:calc(10px * var(--reading-scale,1));--fs-aux:calc(12px * var(--reading-scale,1));--fs-control:calc(13px * var(--reading-scale,1));--fs-body:calc(14px * var(--reading-scale,1));--fs-h3:calc(16px * var(--reading-scale,1));--fs-h2:calc(18px * var(--reading-scale,1));font-family:'DM Sans','Noto Sans SC','Microsoft YaHei',sans-serif;color:var(--ink);font-size:var(--fs-body);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button{border:0;background:none}a{color:inherit;text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed}button:hover{filter:brightness(.97)}button:focus-visible,a:focus-visible{outline:3px solid #a3bb9d;outline-offset:3px}input:focus,textarea:focus,select:focus{outline:2px solid #9cb39b;outline-offset:1px}input,textarea,select{min-width:0}h1,h2,h3,p{margin:0}h1{font-size:calc(28px * var(--reading-scale,1));line-height:1.55;font-weight:600;letter-spacing:-.8px}h2{font-size:var(--fs-h2);font-weight:600;letter-spacing:-.3px}h3{font-size:var(--fs-h3);font-weight:600}small{font-size:var(--fs-control)}p{line-height:1.8}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.muted{color:var(--muted)}.small{font-size:var(--fs-control)}.green{color:var(--green)}.rose-text{color:var(--rose-ink)}.num{font-variant-numeric:tabular-nums}.flex{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:grid;gap:20px}.hide{display:none!important}.nowrap{white-space:nowrap}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar);padding:35px 17px 17px;background:#fafbf8;border-right:1px solid #e4e8df;z-index:40;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:0 0 33px 11px}

/* 桌面端侧边栏收起：顶栏面包屑前的切换按钮 + body.sidebar-collapsed 状态（记忆在 localStorage） */
.sidebar-toggle{flex:0 0 auto}
/* .breadcrumb .icon 的 12px 是给小箭头（chevron）用的，会把切换按钮的面板图标一起压小，
   而它是一个 34×34 的操作按钮、和顶栏右侧通知/退出同级 —— 图标按操作按钮的规格来。
   用三段选择器压过 .breadcrumb .icon 的优先级，不靠书写顺序。 */
.breadcrumb .sidebar-toggle .icon{width:19px;height:19px;stroke-width:1.7}
@media(min-width:721px){
  .sidebar{transition:transform .25s ease,visibility .25s ease}
  .workspace{transition:margin-left .25s ease}
  body.sidebar-collapsed .sidebar{transform:translateX(-100%);visibility:hidden}
  body.sidebar-collapsed .workspace{margin-left:0}
}
/* 手机端收起入口交给抽屉（.menu-button）：顶栏开关退场。
   选择器必须带 .topbar 前缀 —— 单写 .sidebar-toggle 是 (0,1,0)，会被后面同权重的
   .icon-btn{display:inline-grid} 盖掉，按钮照样显示（之前被「面包屑整条 display:none」
   遮住了，拆开面包屑之后才露出来）。 */
@media(max-width:720px){.topbar .sidebar-toggle{display:none}}
@media(min-width:721px){body.sidebar-collapsed{--sidebar:74px}body.sidebar-collapsed .sidebar{transform:none;visibility:visible;width:var(--sidebar);padding:25px 8px 12px}body.sidebar-collapsed .workspace{margin-left:var(--sidebar)}body.sidebar-collapsed .brand{justify-content:center;padding:0 0 20px}body.sidebar-collapsed .brand>div,body.sidebar-collapsed .nav-label,body.sidebar-collapsed .sidebar-card,body.sidebar-collapsed .nav-text,body.sidebar-collapsed .nav-item .count{display:none}body.sidebar-collapsed .brand img{width:38px;height:38px}body.sidebar-collapsed .nav-item{justify-content:center;gap:0;width:50px;min-height:42px;padding:0;margin:4px auto}body.sidebar-collapsed .nav-item>.icon{width:20px;height:20px}body.sidebar-collapsed .shop-mini{justify-content:center;padding:12px 0 0}body.sidebar-collapsed .shop-mini>span:not(.avatar){display:none}body.sidebar-collapsed .admin-nav-group>summary{display:none}body.sidebar-collapsed .admin-nav-group:not([open])>.admin-nav-items{display:block}body.sidebar-collapsed .admin-nav-items{padding:0}}
.nav-icon-symbol{display:none}@media(min-width:721px){body.sidebar-collapsed .nav-icon-symbol{display:inline-block;width:20px;text-align:center;font-size:19px;line-height:1}}
.brand img{width:37px;height:37px}.brand-name{font-family:Georgia,serif;font-size:calc(27px * var(--reading-scale,1));letter-spacing:-1.3px;color:#28483c}.brand-tag{display:block;font-family:inherit;font-size:9px;letter-spacing:.5px;color:#93a08c;margin-top:3px;line-height:1.45;white-space:nowrap;max-width:100%}.nav-label{font-size:var(--fs-aux);letter-spacing:1.7px;color:#9bA496;padding:0 17px;margin:13px 0 10px}.nav-item{display:flex;align-items:center;gap:13px;min-height:43px;padding:0 15px;border-radius:8px;margin:4px 0;font-size:var(--fs-control);color:#717d72;transition:.2s}.nav-item .icon{width:18px;height:18px;stroke-width:1.6}.nav-item:hover{background:#edf2e9}.nav-item.active{background:var(--green);color:#fff;box-shadow:0 5px 13px #35584912}.nav-item .count{margin-left:auto;background:#ffffff27;border-radius:4px;padding:1px 6px;font-size:var(--fs-aux)}.nav-bottom{margin-top:auto}.sidebar-card{margin:23px 7px 14px;padding:18px 14px 14px;border:1px solid #e4eadd;border-radius:12px;background:linear-gradient(125deg,#f1f4e9,#f9faf3)}.sidebar-card .icon{color:#8e9b68;margin-bottom:10px}.sidebar-card h3{font-size:var(--fs-control)}.sidebar-card p{font-size:var(--fs-aux);color:#94a087;margin:5px 0 12px}.sidebar-card button{font-size:var(--fs-aux);display:flex;align-items:center;gap:18px}.sidebar-card button .icon{width:13px;height:13px;margin:0}.shop-mini{display:flex;align-items:center;gap:10px;padding:15px 9px 2px;border-top:1px solid var(--line)}.avatar{display:grid;place-items:center;background:#e8e1d6;color:#8f7c66;border-radius:50%;width:35px;height:35px;font-size:var(--fs-control)}.shop-mini strong{font-size:var(--fs-control);font-weight:500}.shop-mini small{display:block;color:#98a08f;font-size:var(--fs-aux);margin-top:4px}
.workspace{margin-left:var(--sidebar)}.topbar{height:76px;background:#fafbf8b8;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;justify-content:space-between;gap:20px}.breadcrumb{color:#9aa194;font-size:var(--fs-control);display:flex;align-items:center;gap:12px}.breadcrumb-text{display:flex;align-items:center;gap:12px;min-width:0;white-space:nowrap}.breadcrumb-text strong{overflow:hidden;text-overflow:ellipsis}.breadcrumb .icon{width:12px;height:12px}.breadcrumb strong{color:#53634f;font-weight:500}.top-actions{display:flex;align-items:center;gap:21px}.search-trigger{width:242px;height:35px;border:1px solid #e6e9e0;background:#f4f5f0;border-radius:7px;padding:0 11px;color:#a3a99c;display:flex;align-items:center;gap:10px;text-align:left;font-size:var(--fs-aux)}.search-trigger>span:not(.keycap){min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.search-trigger .icon{width:14px;height:14px}.keycap{margin-left:auto;font-size:var(--fs-aux);opacity:.8;border:1px solid #e2e5dc;padding:1px 4px;border-radius:3px}.keycap{flex:0 0 auto;white-space:nowrap}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:7px;color:#7c8879}.icon-btn:hover{background:#edf0e8}.notification{position:relative}.notification:after{content:'';position:absolute;right:7px;top:6px;background:#d19b84;border:2px solid #fafbf8;width:6px;height:6px;border-radius:50%}.top-sep{height:20px;width:1px;background:var(--line)}.top-avatar{background:#e9ecdf;color:#839174;font-size:var(--fs-control)}.menu-button{display:none}
main{max-width:1530px;margin:auto;padding:21px 15px 26px;min-height:calc(100vh - 134px)}.page-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:27px}.page-head p{font-size:var(--fs-control);color:#929b8b;margin-top:7px;letter-spacing:.2px}.page-date{font-size:var(--fs-control);color:#89937e;display:flex;align-items:center;gap:8px}.page-date .icon{width:15px;height:15px}.badge{display:inline-flex;align-items:center;border-radius:5px;padding:4px 8px;font-size:var(--fs-aux);line-height:1.25;white-space:nowrap;background:#f1f3ec;color:#7c8c70;gap:5px}.badge.green{background:#edf3e9;color:#658052}.badge.pink{background:#f8eae5;color:#a47d6b}.badge.yellow{background:#f7f2df;color:#a59155}.badge.blue{background:#eaf0f2;color:#65828a}.badge.gray{background:#f0f1ee;color:#899083}.badge.red{background:#f8e7e4;color:#bd7167}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:9px 14px;border-radius:7px;font-size:var(--fs-control);font-weight:500;background:#fff;border:1px solid #e1e6db;white-space:nowrap;transition:.2s}.btn .icon{width:15px;height:15px}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.soft{background:#ecf1e7;color:#5d7653;border-color:transparent}.btn.rose{background:var(--rose);color:var(--rose-ink);border-color:transparent}.text-btn{display:inline-flex;align-items:center;gap:6px;color:#8e9b83;font-size:var(--fs-aux);white-space:nowrap;padding:5px 0}.text-btn .icon{width:13px;height:13px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:19px}.section-head h2 small{font-size:var(--fs-aux);color:#a0a792;font-weight:400;margin-left:9px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px}.panel-tight{padding:19px 22px}.panel-title{display:flex;align-items:center;gap:9px}.panel-title .icon{width:17px;height:17px;color:#8c9a7e}
.hero{height:190px;border:1px solid #e7e9de;background:#ecf0e6;position:relative;overflow:hidden;border-radius:15px;margin-bottom:23px;display:flex;align-items:center}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#edf1e6 0%,#edf1e6f5 37%,#edf1e648 59%,transparent 85%);pointer-events:none}.hero-photo{position:absolute;width:57%;height:100%;right:0;object-fit:cover;object-position:60% 51%;filter:saturate(.72)}.hero-copy{position:relative;z-index:1;padding:26px 31px}.eyebrow{font-size:var(--fs-aux);letter-spacing:2.5px;color:#8d9b7c;display:flex;align-items:center;gap:7px}.eyebrow .icon{width:13px;height:13px}.hero h2{font-family:'Noto Serif SC','Source Han Serif SC','SimSun',serif;font-size:calc(27px * var(--reading-scale,1));letter-spacing:1.5px;font-weight:500;margin:12px 0 9px;color:#3a573e}.hero p{font-size:var(--fs-aux);color:#8b977c;letter-spacing:.6px}.hero .btn{margin-top:17px;min-height:30px;padding:7px 12px;font-size:var(--fs-aux)}.hero-chip{position:absolute;right:20px;bottom:16px;z-index:2;background:#ffffffbd;backdrop-filter:blur(8px);font-size:var(--fs-aux);color:#78846c;border:1px solid #ffffff80;padding:7px 10px;border-radius:20px;letter-spacing:.4px}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:28px}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:19px 19px 16px;min-height:123px;cursor:pointer}.metric-top{display:flex;justify-content:space-between;align-items:center;color:#86917c;font-size:var(--fs-aux)}.metric-icon{width:28px;height:28px;background:#f1f5eb;color:#92a17a;border-radius:8px;display:grid;place-items:center}.metric-icon .icon{width:15px;height:15px}.metric:nth-child(2) .metric-icon{background:#f6ede5;color:#bda18b}.metric:nth-child(3) .metric-icon{background:#eceff4;color:#8e9cab}.metric:nth-child(4) .metric-icon{background:#f6eeef;color:#b5989c}.metric-value{font-size:calc(29px * var(--reading-scale,1));font-weight:500;letter-spacing:-1.1px;margin:5px 0 6px;color:#354b37}.metric-value .currency{font-size:calc(19px * var(--reading-scale,1));margin-right:3px}.metric-value .unit{font-size:var(--fs-aux);font-weight:400;color:#a0a592;margin-left:6px;letter-spacing:0}.metric-foot{font-size:var(--fs-aux);color:#a0a895;display:flex;gap:4px;align-items:center}.metric-foot .icon{width:10px;height:10px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px;align-items:start}.main-stack{display:grid;gap:24px}.right-stack{display:grid;gap:20px}.quick-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.quick-item{text-align:center;font-size:var(--fs-aux);color:#808c76;padding:0 0 1px;display:grid;justify-items:center;gap:10px}.quick-icon{width:47px;height:47px;border-radius:13px;background:#f0f4e9;display:grid;place-items:center;color:#7a9166;transition:.2s}.quick-item:hover .quick-icon{transform:translateY(-3px);box-shadow:0 5px 10px #354b3710}.quick-item:nth-child(2) .quick-icon{background:#f7eee7;color:#b5997f}.quick-item:nth-child(3) .quick-icon{background:#f8edef;color:#b59096}.quick-item:nth-child(4) .quick-icon{background:#f0edf5;color:#a396b4}.quick-item:nth-child(5) .quick-icon{background:#ebf1f4;color:#8ca5b1}.quick-item:nth-child(6) .quick-icon{background:#f5f2e8;color:#b2a174}.quick-icon .icon{width:21px;height:21px}.subtabs{display:flex;align-items:center;gap:19px;border-bottom:1px solid var(--line);margin:0 -22px 0;padding:0 22px}.subtab{font-size:var(--fs-aux);color:#a1a793;padding:0 0 12px;position:relative}.subtab.active{color:#56704a}.subtab.active:after{content:'';height:2px;background:#648054;position:absolute;left:0;right:0;bottom:-1px}.subtab small{font-size:var(--fs-aux);margin-left:4px;color:#a5ad98}.order-row{display:grid;grid-template-columns:49px minmax(0,1fr) 100px 83px 30px;align-items:center;gap:12px;padding:17px 0;border-bottom:1px solid #f0f2eb}.order-row:last-child{border-bottom:0;padding-bottom:0}.order-thumb{width:49px;height:52px;border-radius:7px;object-fit:cover;background:#edf1e7}.order-info h3{font-size:var(--fs-control);font-weight:500;margin:0 0 5px}.order-info p{font-size:var(--fs-aux);color:#a0a58f;line-height:1.5}.order-note{margin-top:5px;font-size:var(--fs-aux);color:#b59876;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.order-note mark{background:#f6eedb;color:#ad8c50;padding:0 2px}.order-price{font-size:var(--fs-control);margin-top:5px;color:#758166}.order-time{font-size:var(--fs-aux);color:#879477}.order-time strong{display:block;color:#596d4d;font-size:var(--fs-control);font-weight:500;margin-bottom:6px}.channel-dot{width:5px;height:5px;background:#d4b284;display:inline-block;border-radius:50%;margin-right:4px}.calendar-mini{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center;font-size:var(--fs-aux)}.calendar-mini .week{color:#a5ac9a;margin:0 0 6px}.calendar-mini .day{height:25px;border-radius:50%;display:grid;place-items:center;position:relative;color:#7b8970;font-size:var(--fs-aux)}.calendar-mini .day.other{color:#c7cdbd}.calendar-mini .day.today{background:var(--green);color:#fff}.calendar-mini .event-day:after{content:'';width:3px;height:3px;background:#bf9c7b;position:absolute;bottom:2px;left:calc(50% - 1.5px);border-radius:50%}.mini-cal-top{font-size:var(--fs-control);font-weight:500;margin:0 0 20px}.mini-cal-top .icon-btn{width:20px;height:20px}.mini-cal-top .icon{width:12px;height:12px}.event-card{border-top:1px solid var(--line);margin-top:18px;padding-top:17px}.event-title{font-size:var(--fs-control);display:flex;align-items:center;gap:8px}.event-title:before{content:'';height:7px;width:7px;background:#c9a38c;border-radius:50%}.event-title .badge{margin-left:auto;font-size:var(--fs-caption);padding:4px 7px}.event-card p{font-size:var(--fs-aux);color:#a1a78e;margin:8px 0 10px}.progress{height:4px;overflow:hidden;border-radius:4px;background:#eff2e9}.progress span{display:block;height:100%;background:#9aab83;border-radius:4px}.event-card .between{margin:8px 0 12px;font-size:var(--fs-caption);color:#a5ad95}.task-row{display:flex;align-items:flex-start;gap:9px;padding:11px 0;font-size:var(--fs-aux);color:#7f8c72;border-bottom:1px solid #f2f3ed}.task-row:last-child{border:0}.check-box{width:14px;height:14px;border:1px solid #dce3d2;border-radius:4px;flex-shrink:0;display:grid;place-items:center;margin-top:2px}.check-box .icon{width:10px;height:10px}.task-row.done{color:#b6bcae;text-decoration:line-through}.task-row.done .check-box{background:#9aaa8b;color:#fff;border-color:#9aaa8b}.task-row p{line-height:1.5;font-size:var(--fs-aux)}.task-row small{display:block;color:#afb6a4;font-size:var(--fs-caption);line-height:1.8;margin-top:2px}.tip-card{background:#f0f3e8;padding:17px 19px;border:1px solid #e8eddf;border-radius:13px}.tip-card .tip-head{display:flex;align-items:center;gap:7px;font-size:var(--fs-aux);color:#87926f}.tip-head .icon{width:14px;height:14px}.tip-card p{font-size:var(--fs-aux);color:#8e987d;line-height:1.9;margin:8px 0 6px}.tip-card .text-btn{font-size:var(--fs-aux)}.recent-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:17px}.recent-product{display:flex;gap:12px;align-items:center}.recent-product img{width:67px;height:72px;object-fit:cover;border-radius:8px}.recent-product h3{font-size:var(--fs-control);margin-bottom:7px}.recent-product p{font-size:var(--fs-aux);color:#9ca58f}.recent-product span{font-size:var(--fs-control);display:block;margin-top:10px;color:#687d58}.note-preview{background:#faf8f0;padding:14px;border-radius:9px;color:#a19377;font-size:var(--fs-aux);line-height:1.8}.note-preview .icon{width:13px;height:13px;margin-bottom:6px}.note-preview p{font-size:var(--fs-aux);line-height:1.9}.note-preview small{display:block;font-size:var(--fs-caption);color:#b6aa92;margin-top:7px}.learn-banner{display:flex;gap:15px;align-items:center;padding:16px 18px;background:#f4f3ec;border-radius:12px;border:1px solid #ecece2}.learn-banner .learn-art{background:#e4e6d6;display:grid;place-items:center;width:56px;height:57px;border-radius:8px;color:#8d9c72}.learn-banner h3{font-size:var(--fs-control);margin:6px 0}.learn-banner p{font-size:var(--fs-aux);color:#a3aa93}.learn-banner .text-btn{margin-left:auto}.app-footer{padding:0 34px 20px;max-width:1530px;margin:auto;color:#b5bcae;font-size:var(--fs-aux);display:flex;gap:8px;align-items:center}.footer-version{margin-left:auto}.floating-note{position:fixed;bottom:27px;right:24px;width:45px;height:45px;border:3px solid #f6f7f3;border-radius:50%;background:var(--green);color:#fff;box-shadow:0 5px 15px #35584920;display:grid;place-items:center;z-index:35}.floating-note .icon{width:18px;height:18px}.mobile-nav{display:none}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px;flex-wrap:wrap}.tabs{display:flex;gap:5px;background:#ebeee7;border:1px solid #e7eae2;border-radius:8px;padding:4px;max-width:100%;overflow-x:auto}.tab{padding:8px 13px;border-radius:5px;font-size:var(--fs-control);white-space:nowrap;color:#8b9680}.tab.active{background:#fff;color:#45613c;box-shadow:0 1px 4px #223b2020}.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field,.select{background:#fff;border:1px solid #e0e5d9;border-radius:7px;min-height:37px;padding:9px 12px;font-size:var(--fs-control);color:#64715b}.field::placeholder,textarea::placeholder{color:#b0b7a6}.field.full,.select.full{width:100%}.inline-search{position:relative}.inline-search .icon{position:absolute;left:11px;top:11px;width:14px;height:14px;color:#a0ab94}.inline-search input{padding-left:33px;width:230px}.empty{text-align:center;padding:55px 20px;color:#a0ab95}.empty .icon{width:35px;height:35px;color:#bcc6af;margin-bottom:16px}.empty h3{font-size:var(--fs-body);font-weight:500;margin-bottom:8px}.empty p{font-size:var(--fs-control);margin-bottom:16px}.order-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.order-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:19px;transition:.2s}.order-card:hover{border-color:#c8d4bc;transform:translateY(-2px)}.order-card .between{margin-bottom:15px}.order-card .product-line{display:flex;gap:13px;align-items:center;margin:10px 0 16px}.order-card .product-line img{width:60px;height:65px;object-fit:cover;border-radius:7px}.order-card h3{font-size:var(--fs-body)}.order-card .order-number{font-size:var(--fs-aux);color:#a4ad99}.order-card .detail-row{display:flex;gap:8px;align-items:center;font-size:var(--fs-aux);color:#92a083;margin:9px 0}.order-card .detail-row .icon{width:13px;height:13px}.order-card .note-strip{padding:9px 10px;background:#fbf6eb;color:#ad956b;font-size:var(--fs-aux);line-height:1.7;min-height:36px;border-radius:6px;margin-top:13px}.order-card .card-actions{display:flex;gap:8px;border-top:1px solid #edf0e8;margin-top:16px;padding-top:14px}.order-card .card-actions .btn{flex:1;font-size:var(--fs-aux);min-height:30px;padding:7px 10px}.data-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-control);white-space:nowrap}.data-table th{text-align:left;font-weight:400;color:#9ba78f;font-size:var(--fs-aux);padding:13px 15px;background:#f7f9f3;border-bottom:1px solid #e7ecde}.data-table td{padding:17px 15px;border-bottom:1px solid #eef1e9;color:#758369}.data-table tr:last-child td{border-bottom:0}.data-table .income{color:#658152}.data-table .expense{color:#bc8d7f}.data-table tr.issue{background:#fff8f5}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:25px}.stat-card{background:#fff;border:1px solid var(--line);padding:22px;border-radius:12px}.stat-card label{display:block;font-size:var(--fs-control);color:#9ba78c;margin-bottom:15px}.stat-card strong{font-size:calc(28px * var(--reading-scale,1));font-weight:500;color:#546947}.chart-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}.bars{height:180px;display:flex;align-items:end;justify-content:space-around;gap:16px;padding:20px 10px 25px;position:relative;margin-top:20px;border-bottom:1px solid var(--line)}.bar{background:#afbea1;border-radius:6px 6px 0 0;width:40px;min-height:3px;position:relative}.bar:last-child{background:#526f42}.bar span{position:absolute;bottom:-23px;font-size:var(--fs-aux);color:#96a087;width:100%;text-align:center}.bar em{font-size:var(--fs-aux);position:absolute;top:-19px;width:70px;left:50%;transform:translateX(-50%);font-style:normal;color:#8c9c7b;text-align:center}.distribution-row{margin:20px 0;font-size:var(--fs-control);color:#8e9f7e}.distribution-row .between{margin-bottom:8px}.calendar-layout{display:grid;grid-template-columns:1fr 300px;gap:22px}.big-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e8ecdf;border:1px solid #e8ecdf;border-radius:10px;overflow:hidden}.big-calendar .week{text-align:center;font-size:var(--fs-control);background:#f8faf4;padding:14px;color:#8c9c7c}.big-day{background:#fff;min-height:94px;padding:10px;font-size:var(--fs-control);text-align:left;display:block}.big-day:hover{background:#f3f6ed}.big-day.other{color:#c9d0bf;background:#fcfdfb}.big-day .day-number{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%}.big-day.today .day-number{background:#496b3c;color:#fff}.calendar-event{display:block;margin-top:8px;font-size:var(--fs-aux);line-height:1.5;background:#f4e9e4;color:#ac8a75;border-radius:4px;padding:4px 5px;white-space:normal}.calendar-event.selected{background:#e8eedf;color:#6e8559}.event-detail h2{font-size:calc(22px * var(--reading-scale,1));margin:15px 0 8px}.event-detail .event-date{font-size:var(--fs-control);color:#99a38d;margin-bottom:24px}.budget{padding:16px;background:#f7f8f2;border-radius:9px;font-size:var(--fs-aux);color:#8d9d7d;margin-top:22px}.budget .between{margin:9px 0}.budget strong{font-size:var(--fs-body);font-weight:500;color:#6a8058}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.product-card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;transition:.25s}.product-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #3145260a}.product-image{aspect-ratio:1/.95;position:relative;overflow:hidden;background:#e8ecdf}.product-image img{width:100%;height:100%;object-fit:cover;transition:.4s}.product-card:hover img{transform:scale(1.03)}.product-image .badge{position:absolute;top:12px;left:12px;background:#ffffffd9}.product-meta{padding:18px}.product-meta h3{font-size:var(--fs-body);margin:0 0 7px}.product-meta p{font-size:var(--fs-aux);color:#a0aa95}.product-meta .between{margin-top:18px}.product-meta strong{font-size:var(--fs-h2);font-weight:500;color:#667d52}.product-meta .text-btn{font-size:var(--fs-aux)}.editor-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:23px;align-items:start}.form-stack{display:grid;gap:18px}.form-label{display:block;font-size:var(--fs-control);font-weight:500;color:#82916f;margin-bottom:8px}.form-help{font-size:var(--fs-aux);color:#a3ae97;line-height:1.7;margin-top:7px}.form-group textarea{min-height:100px;resize:vertical;line-height:1.9}.pill-row{display:flex;flex-wrap:wrap;gap:7px}.pill{font-size:var(--fs-aux);padding:7px 11px;background:#f5f7f0;border:1px solid #e7ecdf;border-radius:6px;color:#98a486}.pill.active{background:#e8efdf;color:#6e8556;border-color:#cbd8bb}.copy-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:23px;margin-bottom:18px}.copy-card h3{font-size:var(--fs-h3);margin:14px 0}.copy-card textarea{font-size:var(--fs-control);line-height:2.2;border:0;padding:0;width:100%;min-height:145px;background:transparent;color:#78876a;resize:vertical}.copy-card .copy-actions{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:15px;margin-top:15px}.notice{display:flex;align-items:flex-start;gap:8px;font-size:var(--fs-aux);color:#9b9f89;background:#f1f3e9;border-radius:8px;padding:12px 14px;line-height:1.8;margin-bottom:18px}.notice .icon{width:14px;height:14px;margin-top:2px}.notes-input{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:25px;align-items:flex-end}.notes-input textarea{border:0;width:100%;min-height:72px;font-size:var(--fs-control);line-height:1.9;resize:vertical;outline:none}.notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.note-card{padding:22px;background:#faf8ef;border:1px solid #ede9dd;border-radius:12px;display:flex;flex-direction:column;min-height:235px}.note-card:nth-child(3n+2){background:#eef2e8;border-color:#e3e9da}.note-card:nth-child(3n){background:#f7eeeb;border-color:#ede1db}.note-card .between{margin-bottom:16px}.note-card p{font-size:var(--fs-control);line-height:2;color:#8b8c72;white-space:pre-wrap;flex:1}.note-card .note-tags{font-size:var(--fs-aux);color:#adab91;margin:17px 0}.note-card .note-actions{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:var(--fs-aux);border-top:1px solid #a5b09020;padding-top:12px}.note-card .text-btn{font-size:var(--fs-aux)}.note-card .icon-btn{height:25px;width:25px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.course-card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.course-cover{height:145px;display:flex;align-items:center;justify-content:space-between;padding:25px;background:#e8ecdd;position:relative;overflow:hidden}.course-cover .icon{width:65px;height:65px;stroke-width:.8;opacity:.4}.course-cover strong{font-family:Georgia,serif;font-size:var(--fs-h2);line-height:1.8;letter-spacing:1px;color:#6c7e55;font-weight:400}.course-card:nth-child(3n+2) .course-cover{background:#efe3da}.course-card:nth-child(3n+3) .course-cover{background:#e6e9ef}.course-meta{padding:22px}.course-meta h3{line-height:1.8;font-size:var(--fs-body);margin:12px 0 8px}.course-meta p{font-size:var(--fs-aux);color:#a1ac94;margin-bottom:20px}.article-content{font-size:var(--fs-control);line-height:2;color:#7c8b6a}.article-content h3{margin:22px 0 9px;color:#5f774d}.article-content ul{padding-left:20px}.prompt-card{padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff}.prompt-card h3{font-size:var(--fs-body);margin:13px 0}.prompt-card p{font-size:var(--fs-control);color:#98a38a;line-height:1.9;margin-bottom:20px}.prompt-card .prompt-text{white-space:pre-wrap;background:#f6f8f1;padding:15px;border-radius:7px;font-size:var(--fs-control);color:#8b9b77;line-height:2;margin-bottom:16px}.settings-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:25px}.settings-nav{display:flex;flex-direction:column;gap:6px}.settings-nav button{text-align:left;border-radius:7px;font-size:var(--fs-control);padding:12px 15px;color:#96a189}.settings-nav button.active{background:#e9efdf;color:#6f8559}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border:0}.setting-row h3{font-size:var(--fs-control);font-weight:500}.setting-row p{font-size:var(--fs-aux);color:#a2ad95;margin-top:6px}.switch{width:35px;height:21px;border-radius:20px;background:#dce2d3;position:relative;flex-shrink:0}.switch:before{content:'';position:absolute;top:3px;left:3px;width:15px;height:15px;background:#fff;border-radius:50%;transition:.2s}.switch.on{background:#739263}.switch.on:before{left:17px}.brand-showcase{padding:45px;min-height:230px;display:grid;place-items:center;border-radius:12px;background:#eef2e7;margin-bottom:20px}.brand-showcase img{width:290px;max-width:100%}.color-swatches{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.color-swatch{width:74px;font-size:var(--fs-aux);color:#9eaa90;text-align:center}.color-swatch div{height:55px;border-radius:7px;margin-bottom:7px}.image-editor-layout{display:grid;grid-template-columns:175px minmax(0,1fr) 235px;gap:18px;align-items:start}.source-thumbs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}.source-thumbs button{padding:0;border:2px solid transparent;border-radius:7px;overflow:hidden;aspect-ratio:1}.source-thumbs button.active{border-color:#73965e}.source-thumbs img{width:100%;height:100%;object-fit:cover}.canvas-wrap{background:repeating-conic-gradient(#eff1eb 0% 25%,#f5f6f0 0% 50%) 50%/20px 20px;border:1px solid #e5eadb;border-radius:12px;min-height:510px;display:flex;align-items:center;justify-content:center;padding:27px;position:relative}.canvas-wrap canvas{max-width:100%;max-height:500px;box-shadow:0 5px 25px #32402118;background:#f8f7f1;object-fit:contain}.range-row{font-size:var(--fs-aux);color:#9ba88d;margin:20px 0}.range-row label{display:flex;justify-content:space-between;margin-bottom:10px}.range-row input{width:100%;accent-color:#789762}.ratio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ratio-grid button{font-size:var(--fs-aux);border:1px solid #e0e7d5;padding:10px 2px;border-radius:5px;color:#a2ad95}.ratio-grid button.active{background:#eaf0e1;border-color:#9ab68a;color:#6d8858}.uploaded-list{font-size:var(--fs-aux);color:#9eaa90;line-height:2;max-height:140px;overflow:auto;margin-top:12px}.rule-tip{margin-top:18px;font-size:var(--fs-aux);color:#99a489;line-height:1.8}.mobile-preview-toggle{display:none}.error-text{color:#b47166;font-size:var(--fs-control)}
dialog{border:1px solid #e5eadb;background:#fff;border-radius:17px;width:580px;max-width:calc(100vw - 30px);max-height:90dvh;padding:0;color:var(--ink);box-shadow:0 24px 100px #263b2929}dialog::backdrop{background:#1d30244a;backdrop-filter:blur(4px)}.modal-head{padding:23px 25px 19px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fffffff5;z-index:1}.modal-head h2{font-size:var(--fs-h2)}.modal-body{padding:23px 25px;overflow:auto}.modal-footer{padding:17px 25px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px;position:sticky;bottom:0;background:#fffffff5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px}.form-grid .wide{grid-column:1/-1}.detail-block{margin-bottom:22px;display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:var(--fs-control)}.detail-block label{display:block;color:#a1ac94;font-size:var(--fs-aux);margin-bottom:8px}.detail-message{font-size:var(--fs-control);background:#f7f8f2;border-radius:9px;padding:15px;line-height:1.9;color:#81916d}.search-modal .modal-body{padding-top:0}.global-input{width:100%;font-size:var(--fs-h3);border:0;padding:20px 0;outline:none!important}.search-group{border-top:1px solid var(--line);padding:17px 0 5px}.search-group h3{font-size:var(--fs-aux);color:#b0b9a3;margin-bottom:12px}.search-result{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 5px;border-radius:7px;font-size:var(--fs-control);color:#82936e}.search-result:hover{background:#f3f7ec}.search-result .icon{width:16px;height:16px}.search-result small{margin-left:auto;color:#b1b9a6;font-size:var(--fs-aux)}.confirm-item{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-control);line-height:1.8;padding:15px 0;border-bottom:1px solid var(--line);color:#899877}.confirm-item input{accent-color:#799767;margin-top:6px}.confirm-item strong{font-weight:500;display:block;color:#6d8658;font-size:var(--fs-control)}.confirm-item small{font-size:var(--fs-aux);color:#aab39b}.confirm-item textarea{width:100%;margin-top:8px;min-height:60px}.confirm-item>div{flex:1}#toast{position:fixed;bottom:30px;left:calc(50% + 90px);transform:translateX(-50%) translateY(25px);z-index:1000;background:#304e3b;color:#fff;padding:13px 18px;border-radius:10px;font-size:var(--fs-control);box-shadow:0 7px 25px #233b2625;opacity:0;pointer-events:none;transition:.2s;display:flex;align-items:center;gap:18px;max-width:90vw}#toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}#toast button{font-size:var(--fs-control);color:#dce8bd;border-left:1px solid #b3cca34f;padding-left:15px}.sidebar-scrim{display:none}.demo-chip{font-size:var(--fs-aux);padding:3px 6px;border:1px solid #e4e8da;color:#a3ac95;border-radius:4px;letter-spacing:.3px}.access-note{font-size:var(--fs-aux);line-height:1.9;color:#a1ab94;margin-top:15px}
@media(min-width:1600px){:root{--sidebar:240px}main{padding:26px 20px 30px}.hero{height:220px}.hero-copy{padding-left:38px}.hero h2{font-size:calc(34px * var(--reading-scale,1))}.hero p{font-size:var(--fs-control)}.hero .btn{margin-top:20px}.metrics{gap:20px}.metric{padding:24px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 322px;gap:28px}.main-stack{gap:28px}.order-row{padding:21px 0}.quick-grid{padding:4px 0 3px}.quick-icon{width:54px;height:54px}.quick-item{font-size:var(--fs-control)}.section-head{margin-bottom:22px}.order-info h3{font-size:var(--fs-control)}.order-info p{font-size:var(--fs-aux)}.calendar-mini{gap:8px}.calendar-mini .day{height:27px}.panel{padding:25px}.subtabs{margin:0 -25px;padding:0 25px}.task-row{padding:14px 0}.hero-chip{right:30px;bottom:22px}}
@media(max-width:1180px){:root{--sidebar:196px}main{padding:18px 14px 22px}.topbar{padding:0 24px}.brand{padding-left:4px;gap:7px}.brand-name{font-size:calc(24px * var(--reading-scale,1))}.brand img{width:32px;height:32px}.sidebar{padding-left:13px;padding-right:13px}.nav-item{padding-left:13px;font-size:var(--fs-control)}.dashboard-grid{grid-template-columns:minmax(0,1fr) 254px;gap:18px}.quick-grid{gap:5px}.quick-icon{width:39px;height:39px;border-radius:11px}.quick-item{font-size:var(--fs-aux)}.panel{padding:19px}.subtabs{margin:0 -19px;padding:0 19px;gap:14px}.hero h2{font-size:calc(25px * var(--reading-scale,1))}.metric{padding:17px 14px}.metric-value{font-size:calc(26px * var(--reading-scale,1))}.order-row{grid-template-columns:40px minmax(0,1fr) 66px 63px 22px;gap:10px}.order-thumb{width:40px;height:45px}.order-info h3{font-size:var(--fs-aux)}.order-info p{font-size:var(--fs-caption)}.order-price{font-size:var(--fs-aux)}.order-time,.order-time strong{font-size:var(--fs-aux)}.order-row .badge{font-size:var(--fs-caption);padding:4px 6px}.recent-grid{grid-template-columns:1fr}.note-preview{display:none}.search-trigger{width:200px}.calendar-layout{grid-template-columns:1fr 260px}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.order-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.image-editor-layout{grid-template-columns:130px minmax(0,1fr) 200px;gap:12px}.canvas-wrap{min-height:450px;padding:18px}.course-grid,.notes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-layout{grid-template-columns:265px 1fr}}
@media(max-width:950px){:root{--sidebar:176px}.brand-name{font-size:calc(21px * var(--reading-scale,1))}.brand img{width:30px;height:30px}.sidebar-card{padding:14px 11px;margin-left:2px;margin-right:2px}.sidebar-card p{font-size:var(--fs-aux)}.dashboard-grid{grid-template-columns:1fr}.right-stack{display:grid;grid-template-columns:1fr 1fr;align-items:start}.right-stack .tip-card{grid-column:1/-1}.right-stack .calendar-panel{grid-row:1/3}.right-stack .todo-panel{min-height:250px}.top-actions{gap:12px}.search-trigger{width:180px}.metric-top{font-size:var(--fs-aux)}.hero-copy{padding-left:25px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-layout{grid-template-columns:1fr}.event-detail{display:grid;grid-template-columns:1fr 1fr;gap:20px}.event-detail .budget{margin-top:0}.editor-layout{grid-template-columns:1fr}.editor-layout>.panel .form-stack{grid-template-columns:1fr 1fr}.editor-layout>.panel .form-stack>.btn,.editor-layout>.panel .form-stack>.form-help{grid-column:1/-1}.image-editor-layout{grid-template-columns:1fr 220px}.image-source-panel{grid-column:1/-1;display:flex;align-items:center;gap:20px}.source-thumbs{display:flex;margin:0}.source-thumbs button{width:45px;height:45px}.canvas-wrap{min-height:400px}.chart-layout{grid-template-columns:1fr}.top-sep,.topbar .breadcrumb-text{display:none}.topbar{justify-content:space-between}.settings-layout{grid-template-columns:155px 1fr}.learn-banner p{font-size:var(--fs-caption)}}
@media(max-width:720px){:root{--sidebar:222px}.sidebar{transform:translateX(-100%);transition:transform .25s;box-shadow:none;padding-top:24px}.sidebar.open{transform:translateX(0);box-shadow:10px 0 60px #243b2520}.sidebar.open+.sidebar-scrim{display:block;position:fixed;inset:0;background:#20372655;backdrop-filter:blur(2px);z-index:39}.workspace{margin-left:0}.topbar{height:64px;padding:0 20px;gap:14px;background:#fafbf8;justify-content:space-between;position:sticky;top:0;z-index:30}.menu-button{display:inline-grid}.mobile-brand{display:flex;align-items:center;gap:8px;font-family:Georgia,serif;font-size:calc(22px * var(--reading-scale,1));letter-spacing:-1px}.mobile-brand img{width:28px;height:28px}.top-actions{gap:9px}.search-trigger{width:31px;height:31px;border:0;background:none;justify-content:center;padding:0}.search-trigger .icon{width:18px;height:18px}.search-trigger span{display:none}.top-avatar{width:30px;height:30px;font-size:var(--fs-aux)}.notification{display:none}.top-sep{display:none}main{padding:16px 12px 20px}.page-head{margin-bottom:23px;align-items:flex-start}.page-head h1{font-size:calc(24px * var(--reading-scale,1))}.page-head p{font-size:var(--fs-aux);line-height:1.9;max-width:260px;margin-top:7px}.page-date{font-size:var(--fs-aux);padding-top:9px;gap:5px;white-space:nowrap}.page-date .icon{width:12px;height:12px}.page-date .date-year{display:none}.hero{height:178px;margin-bottom:20px;border-radius:13px}.hero-photo{width:69%;object-position:60% 50%}.hero:after{background:linear-gradient(90deg,#edf1e6 0%,#edf1e6f5 36%,#edf1e6a0 58%,transparent 100%)}.hero-copy{padding:22px 20px}.eyebrow{font-size:var(--fs-caption);letter-spacing:1.8px}.hero h2{font-size:calc(22px * var(--reading-scale,1));letter-spacing:.5px;margin:12px 0 7px}.hero p{font-size:var(--fs-caption);max-width:200px;letter-spacing:0}.hero .btn{font-size:var(--fs-aux);min-height:28px;padding:6px 10px;margin-top:17px}.hero-chip{font-size:var(--fs-caption);bottom:10px;right:10px;padding:5px 7px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:24px}.metric{padding:16px;min-height:119px;border-radius:11px}.metric-top{font-size:var(--fs-aux)}.metric-value{font-size:calc(27px * var(--reading-scale,1));margin:9px 0 8px}.metric-foot{font-size:var(--fs-caption)}.metric-icon{width:25px;height:25px}.dashboard-grid{gap:22px}.main-stack{gap:22px}.quick-grid{gap:7px}.quick-icon{width:42px;height:42px;border-radius:11px}.quick-icon .icon{width:19px;height:19px}.quick-item{font-size:var(--fs-caption);gap:9px}.panel{padding:19px 17px;border-radius:13px}.section-head h2{font-size:var(--fs-h3)}.section-head h2 small{font-size:var(--fs-aux);margin-left:6px}.section-head{margin-bottom:19px}.text-btn{font-size:var(--fs-aux)}.subtabs{margin:0 -17px;padding:0 17px;gap:18px}.subtab{font-size:var(--fs-aux)}.order-row{grid-template-columns:41px minmax(0,1fr) 61px 60px;gap:10px;padding:17px 0}.order-thumb{width:41px;height:47px}.order-info h3{font-size:var(--fs-aux)}.order-info p{font-size:var(--fs-caption)}.order-row>.icon-btn{display:none}.order-row .badge{font-size:var(--fs-caption);padding:4px 6px}.order-time strong{font-size:var(--fs-aux)}.order-time{font-size:var(--fs-caption)}.order-note{font-size:var(--fs-caption)}.order-price{font-size:var(--fs-aux)}.right-stack{grid-template-columns:1fr 1fr;gap:14px}.right-stack .calendar-panel{grid-column:1/-1;grid-row:auto}.calendar-mini{gap:6px}.calendar-mini .day{height:31px;font-size:var(--fs-control)}.calendar-mini .week{font-size:var(--fs-aux)}.mini-cal-top{margin-bottom:18px;font-size:var(--fs-body)}.event-card p{font-size:var(--fs-aux)}.event-card .between{font-size:var(--fs-aux)}.event-title{font-size:var(--fs-control)}.right-stack .todo-panel{grid-column:1/-1;min-height:0}.task-row{font-size:var(--fs-control);padding:13px 0}.task-row p{font-size:var(--fs-control)}.task-row small{font-size:var(--fs-aux)}.tip-card p{font-size:var(--fs-control)}.recent-grid{grid-template-columns:1fr 1fr}.note-preview{display:block;padding:12px}.recent-product{gap:10px;align-items:flex-start}.recent-product img{width:48px;height:65px}.recent-product h3{font-size:var(--fs-aux)}.recent-product p{font-size:var(--fs-caption)}.recent-product span{font-size:var(--fs-aux)}.note-preview p{font-size:var(--fs-caption)}.learn-banner{padding:15px 13px;gap:10px}.learn-banner h3{font-size:var(--fs-control)}.learn-banner .learn-art{width:43px;height:48px;flex-shrink:0}.learn-banner p{font-size:var(--fs-caption)}.learn-banner .text-btn{font-size:var(--fs-caption)}.learn-banner .badge{font-size:var(--fs-caption);padding:3px 5px}.app-footer{padding:0 20px 102px;font-size:var(--fs-caption);gap:5px}.footer-version{font-size:var(--fs-caption)}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:32;background:#ffffffed;backdrop-filter:blur(12px);border-top:1px solid #e5eadb;padding:9px 8px calc(10px + env(safe-area-inset-bottom))}.mobile-nav a,.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:var(--fs-aux);color:#a3ae96;padding:0}.mobile-nav .icon{width:20px;height:20px;stroke-width:1.7}.mobile-nav .active{color:#46673c}.mobile-nav .active .icon{stroke-width:2}.floating-note{bottom:83px;right:19px;width:44px;height:44px;border:3px solid #f6f7f3}#toast{bottom:88px;left:50%;font-size:var(--fs-aux);width:max-content;max-width:calc(100vw - 34px);padding:12px 15px}.toolbar{gap:14px;margin-bottom:20px}.toolbar>.tabs{width:100%;justify-content:space-between}.tab{font-size:var(--fs-aux);padding:8px 10px}.toolbar .filters{width:100%;gap:8px}.inline-search{flex:1}.inline-search input{width:100%}.filters>.select{max-width:130px;font-size:var(--fs-aux)}.field,.select{font-size:var(--fs-control);min-height:39px}.btn{font-size:var(--fs-aux);min-height:36px;padding:9px 12px}.btn .icon{width:14px;height:14px}.order-grid{grid-template-columns:1fr;gap:15px}.order-card{padding:19px}.order-card h3{font-size:var(--fs-body)}.order-card .detail-row{font-size:var(--fs-control)}.order-card .note-strip{font-size:var(--fs-control)}.order-card .product-line img{width:65px;height:70px}.stat-grid{gap:9px;margin-bottom:21px}.stat-card{padding:17px 11px;border-radius:11px}.stat-card label{font-size:var(--fs-aux);white-space:nowrap}.stat-card strong{font-size:calc(20px * var(--reading-scale,1))}.stat-card p{font-size:var(--fs-caption)}.data-table td{padding:15px 11px}.data-table th{padding:12px 11px}.big-day{min-height:74px;padding:5px 3px;font-size:var(--fs-aux)}.big-day .day-number{width:22px;height:22px}.big-calendar .week{font-size:var(--fs-aux);padding:12px 0}.calendar-event{padding:3px 4px;font-size:var(--fs-caption);margin-top:5px}.calendar-layout{gap:18px}.event-detail{display:block}.event-detail .budget{margin-top:22px}.product-grid{gap:12px}.product-meta{padding:14px}.product-meta h3{font-size:var(--fs-body)}.product-meta p{font-size:var(--fs-aux)}.product-meta .between{margin-top:13px}.product-meta strong{font-size:var(--fs-h3)}.product-meta .text-btn{font-size:var(--fs-caption)}.product-image{aspect-ratio:1/.95}.product-image .badge{font-size:var(--fs-caption);padding:4px 6px;top:9px;left:9px}.editor-layout{gap:20px}.editor-layout>.panel .form-stack{grid-template-columns:1fr 1fr;gap:14px}.editor-layout .form-label{font-size:var(--fs-aux)}.editor-layout .form-stack>.form-group.wide{grid-column:1/-1}.copy-card{padding:20px 17px}.copy-card textarea{font-size:var(--fs-control)}.copy-card .copy-actions{flex-wrap:wrap}.notes-input{padding:17px;gap:10px;align-items:flex-end}.notes-input textarea{font-size:var(--fs-control)}.notes-input .btn{padding:10px;flex-shrink:0}.notes-grid{grid-template-columns:1fr}.note-card{min-height:215px;padding:23px}.note-card p{font-size:var(--fs-control)}.course-grid{grid-template-columns:1fr;gap:18px}.course-cover{height:150px;padding:28px}.course-meta{padding:23px}.course-meta h3{font-size:var(--fs-h3)}.course-meta p{font-size:var(--fs-control)}.settings-layout{grid-template-columns:1fr;gap:20px}.settings-nav{flex-direction:row;overflow-x:auto;white-space:nowrap;gap:5px}.settings-nav button{font-size:var(--fs-aux);padding:10px 12px}.setting-row{padding:20px 0}.setting-row p{font-size:var(--fs-aux)}.brand-showcase{padding:30px;min-height:190px}.image-editor-layout{grid-template-columns:1fr;gap:17px}.image-source-panel{gap:15px;flex-wrap:wrap}.source-thumbs button{width:49px;height:49px}.canvas-wrap{min-height:330px;padding:20px;max-height:530px}.canvas-wrap canvas{max-height:480px}.image-tools .form-stack{grid-template-columns:1fr 1fr;gap:20px}.image-tools .form-stack>.full-width{grid-column:1/-1}.range-row{margin:0}.range-row label{font-size:var(--fs-aux)}.notice{font-size:var(--fs-aux)}.modal-head{padding:19px 20px 16px}.modal-head h2{font-size:var(--fs-h2)}.modal-body{padding:22px 20px}.modal-footer{padding:15px 20px}.form-grid{gap:17px 13px}.form-grid label{font-size:var(--fs-aux)}.detail-block{font-size:var(--fs-control)}.detail-block label{font-size:var(--fs-aux)}.color-swatches{gap:10px}.color-swatch{width:60px}.color-swatch div{height:48px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.mobile-brand{display:none}@media(max-width:720px){.mobile-brand{display:flex}}
.sidebar{overflow-y:auto;scrollbar-width:none}.sidebar::-webkit-scrollbar{display:none}.muted{color:#839079}.metric-top{font-size:var(--fs-control);color:#7b8971}.metric-foot{font-size:var(--fs-aux);color:#8b987f}.quick-item{font-size:var(--fs-control)}.order-info h3{font-size:var(--fs-control)}.order-info p{font-size:var(--fs-aux)}.order-note{font-size:var(--fs-aux)}.order-time{font-size:var(--fs-aux)}.subtab{font-size:var(--fs-control)}.text-btn{font-size:var(--fs-control)}.hero p{color:#718363}.hero .eyebrow{color:#81936f}.page-head p{font-size:var(--fs-control)}.task-row p{font-size:var(--fs-control)}.nav-item{min-height:40px}.brand{padding-bottom:24px}
@media(max-height:850px) and (min-width:721px){.sidebar-card{display:none}.sidebar{padding-top:25px}.nav-label{margin:10px 0 7px}.nav-item{min-height:36px}.brand{padding-bottom:15px}}
@media(max-width:720px){.metric-top{font-size:var(--fs-control)}.metric-foot{font-size:var(--fs-aux)}.quick-item{font-size:var(--fs-aux)}.order-info h3{font-size:var(--fs-control)}.order-info p{font-size:var(--fs-aux)}.order-note{font-size:var(--fs-caption)}.order-time{font-size:var(--fs-aux)}.subtab{font-size:var(--fs-aux)}.text-btn{font-size:var(--fs-aux)}.page-head p{font-size:var(--fs-control);max-width:225px}.page-date{font-size:var(--fs-caption);gap:4px}.page-date .icon{width:11px}.hero h2{font-size:calc(22px * var(--reading-scale,1))}.hero p{font-size:var(--fs-caption)}.sidebar-card{display:none}.sidebar{padding-top:20px}.nav-item{min-height:37px}.nav-label{margin:9px 0 7px}.brand{padding-bottom:18px}.note-card .text-btn{font-size:var(--fs-aux)}.notes-grid{gap:16px}}
.page-head>.tabs{flex-shrink:0}@media(max-width:720px){.sidebar:not(.open){visibility:hidden}.sidebar.open{visibility:visible}.hero:after{background:linear-gradient(90deg,#edf1e6 0%,#edf1e6f5 36%,#edf1e6c9 63%,#edf1e610 100%)}}
/* Image cropper: native Canvas workflow with no third-party assets or network requests. */
.crop-modal{width:min(880px,calc(100vw - 28px));max-height:94dvh;overflow:auto}.crop-modal .modal-head{gap:15px}.crop-modal .modal-head h2{margin:0}.crop-subtitle{margin:6px 0 0;color:#9aa58d;font-size:var(--fs-control);line-height:1.7}.crop-modal .modal-body{padding-top:16px}.crop-ratios{display:flex;gap:8px;margin-bottom:14px}.crop-ratios button{border:1px solid #e3e8dc;border-radius:999px;padding:8px 13px;color:#87937b;font-size:var(--fs-control)}.crop-ratios button.active{background:#eaf0e2;border-color:#aebe9d;color:#587348}.crop-stage{min-height:260px;max-height:62dvh;display:grid;place-items:center;background:repeating-conic-gradient(#eff1eb 0% 25%,#f5f6f0 0% 50%) 50%/18px 18px;border:1px solid #e5eadb;border-radius:12px;overflow:hidden;padding:12px}.crop-frame{position:relative;display:inline-block;max-width:100%;line-height:0;touch-action:none;cursor:crosshair}.crop-image{display:block;max-width:min(100%,78vw);max-height:58dvh;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}.crop-selection{position:absolute;border:1px solid #fff;box-shadow:0 0 0 9999px #26372d75;pointer-events:none;touch-action:none}.crop-selection:before,.crop-selection:after{content:"";position:absolute;pointer-events:none}.crop-selection:before{inset:33.333% 0;border-top:1px solid #ffffff75;border-bottom:1px solid #ffffff75}.crop-selection:after{inset:0 33.333%;border-left:1px solid #ffffff75;border-right:1px solid #ffffff75}.crop-selection i{position:absolute;width:8px;height:8px;border:1px solid #59744b;background:#fff;border-radius:2px}.crop-selection i:nth-child(1){top:-4px;left:-4px}.crop-selection i:nth-child(2){top:-4px;right:-4px}.crop-selection i:nth-child(3){bottom:-4px;left:-4px}.crop-selection i:nth-child(4){bottom:-4px;right:-4px}.crop-selection.drawing{transition:none}.crop-hint{color:#9aa58d;font-size:var(--fs-aux);line-height:1.7;margin:12px 2px 0}.batch-file{display:block;width:100%;padding:5px 7px;border-radius:5px;text-align:left;color:#91a083;font-size:var(--fs-aux);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-file.active{background:#edf2e8;color:#59754a}.crop-launch{justify-content:center}.crop-launch:focus-visible,.batch-file:focus-visible,.crop-ratios button:focus-visible{outline:2px solid #7d9a68;outline-offset:2px}
@media(max-width:720px){.crop-modal{width:calc(100vw - 18px);max-width:calc(100vw - 18px);max-height:calc(100dvh - 18px);border-radius:14px}.crop-modal .modal-head{padding:16px 16px 13px}.crop-modal .modal-body{padding:15px 14px}.crop-stage{min-height:210px;max-height:58dvh;padding:8px}.crop-image{max-width:calc(100vw - 50px);max-height:52dvh}.crop-ratios{gap:6px}.crop-ratios button{font-size:var(--fs-aux);padding:8px 11px}.crop-modal .modal-footer{padding:12px 14px}}
.crop-modal{max-height:calc(100dvh - 32px)}.crop-stage{max-height:54dvh}.crop-image{max-height:50dvh}@media(max-width:720px){.crop-stage{max-height:50dvh}.crop-image{max-height:46dvh}}
.crop-selection{pointer-events:auto;cursor:move}.crop-selection i{pointer-events:none}.crop-selection span{position:absolute;z-index:2;width:12px;height:12px;background:#fff;border:1px solid #55724a;border-radius:50%;pointer-events:auto;touch-action:none}.crop-selection span[data-handle="nw"]{left:-6px;top:-6px;cursor:nwse-resize}.crop-selection span[data-handle="n"]{left:50%;top:-6px;transform:translateX(-50%);cursor:ns-resize}.crop-selection span[data-handle="ne"]{right:-6px;top:-6px;cursor:nesw-resize}.crop-selection span[data-handle="e"]{right:-6px;top:50%;transform:translateY(-50%);cursor:ew-resize}.crop-selection span[data-handle="se"]{right:-6px;bottom:-6px;cursor:nwse-resize}.crop-selection span[data-handle="s"]{left:50%;bottom:-6px;transform:translateX(-50%);cursor:ns-resize}.crop-selection span[data-handle="sw"]{left:-6px;bottom:-6px;cursor:nesw-resize}.crop-selection span[data-handle="w"]{left:-6px;top:50%;transform:translateY(-50%);cursor:ew-resize}.crop-selection.moving{cursor:grabbing}

:root{--reading-scale:1}html[data-reading="small"]{--reading-scale:.92}html[data-reading="large"]{--reading-scale:1.1}html[data-reading="xlarge"]{--reading-scale:1.2}
html[data-theme="mist"]{--ink:#2b3d42;--green:#4d7079;--green2:#6c8790;--sage:#e9f0f1;--muted:#87969a;--paper:#f4f7f7;--line:#e1e9ea;--rose:#f3e9e7;--rose-ink:#9b7168}
html[data-theme="petal"]{--ink:#44363b;--green:#9c6c76;--green2:#b5868f;--sage:#f4eaec;--muted:#988a8d;--paper:#faf6f6;--line:#eee3e6;--rose:#f6e5e9;--rose-ink:#95636e}
html[data-theme="oat"]{--ink:#463c33;--green:#8b674e;--green2:#a28368;--sage:#f3ede4;--muted:#938a7e;--paper:#faf8f3;--line:#eee7dc;--rose:#f3e8df;--rose-ink:#9b735e}
html[data-theme="mist"] .hero{background:#e9f0f1;border-color:#e1e9ea}html[data-theme="mist"] .hero:after{background:linear-gradient(90deg,#e9f0f1 0%,#e9f0f1f5 37%,#e9f0f148 59%,transparent 85%)}
html[data-theme="petal"] .hero{background:#f4eaec;border-color:#eee3e6}html[data-theme="petal"] .hero:after{background:linear-gradient(90deg,#f4eaec 0%,#f4eaecf5 37%,#f4eaec48 59%,transparent 85%)}
html[data-theme="oat"] .hero{background:#f3ede4;border-color:#eee7dc}html[data-theme="oat"] .hero:after{background:linear-gradient(90deg,#f3ede4 0%,#f3ede4f5 37%,#f3ede448 59%,transparent 85%)}
html[data-theme="mist"] .sidebar-card{background:linear-gradient(125deg,#eaf1f1,#f8faf9);border-color:#e1e9ea}html[data-theme="petal"] .sidebar-card{background:linear-gradient(125deg,#f5ebed,#fcf8f8);border-color:#eee3e6}html[data-theme="oat"] .sidebar-card{background:linear-gradient(125deg,#f3ede4,#fcfaf6);border-color:#eee7dc}
.appearance-intro{margin:0 0 26px}.appearance-label{font-weight:500;color:var(--green);margin-bottom:12px}.theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;max-width:660px}.theme-choice{position:relative;display:grid;grid-template-columns:62px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:4px 13px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .18s,box-shadow .18s}.theme-choice.active{border-color:var(--green);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 13%,transparent)}.theme-swatch{grid-row:1/3;display:flex;align-items:center;gap:4px;width:62px;height:49px;padding:6px;border-radius:8px;background:var(--theme-surface)}.theme-swatch i{display:block;height:25px;border-radius:5px;flex:1;background:var(--theme-accent)}.theme-swatch i:nth-child(2){height:17px;opacity:.62}.theme-swatch i:nth-child(3){height:11px;opacity:.32}.theme-name{align-self:end;font-size:var(--fs-body);font-weight:600;color:var(--ink)}.theme-choice small{align-self:start;color:var(--muted);font-size:var(--fs-aux)}.theme-choice b{position:absolute;right:10px;top:9px;padding:3px 6px;border-radius:10px;background:var(--sage);color:var(--green);font-size:var(--fs-caption);font-weight:500}.reading-row{display:block;max-width:660px;margin-top:25px;padding:15px 14px 12px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:13px;background:var(--sage)}.reading-row h3{font-size:var(--fs-body);font-weight:600;color:var(--green)}.reading-size-control{margin-top:12px;padding:0 1px}.reading-size-control input[type=range]{appearance:none;-webkit-appearance:none;display:block;width:100%;height:8px;margin:0;padding:0;border:1px solid color-mix(in srgb,var(--green) 22%,#fff);border-radius:999px;background:#f5f8f2;outline:none;accent-color:var(--green)}.reading-size-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;opacity:0;cursor:grab}.reading-size-control input[type=range]::-moz-range-thumb{width:30px;height:30px;opacity:0;cursor:grab}.reading-scale-labels{position:relative;display:block;height:1.5em;margin:9px 15px 0}.reading-scale-labels span{position:absolute;top:0;transform:translateX(-50%)}.reading-scale-labels span:nth-child(1){left:0}.reading-scale-labels span:nth-child(2){left:33.3333%}.reading-scale-labels span:nth-child(3){left:66.6667%}.reading-scale-labels span:nth-child(4){left:100%}.reading-scale-labels span{width:max-content;white-space:nowrap;text-align:center;justify-self:center;color:var(--green2);font-size:var(--fs-control);font-weight:600;opacity:.76}.reading-scale-labels span.active{color:var(--green);opacity:1}
@media(max-width:720px){.theme-grid{gap:9px}.theme-choice{grid-template-columns:44px minmax(0,1fr);gap:4px 9px;padding:11px 9px}.theme-swatch{width:44px;height:42px;padding:5px;gap:3px}.theme-swatch i{height:22px}.theme-swatch i:nth-child(2){height:15px}.theme-swatch i:nth-child(3){height:10px}.theme-choice b{right:6px;top:6px}.theme-choice small{font-size:var(--fs-aux)}.reading-row{margin-top:22px}.reading-size-control{margin-top:12px}}
.settings-nav{scrollbar-width:none}.settings-nav::-webkit-scrollbar{display:none}@media(max-width:720px){.theme-choice b{position:static;grid-column:2;grid-row:3;justify-self:start;padding:0;background:none}}
.reading-size-control{position:relative}.reading-size-thumb{position:absolute;z-index:1;top:4px;left:calc(16px + (100% - 32px)*var(--reading-progress,0));transform:translate(-50%,-50%);width:30px;height:30px;border:4px solid #fff;border-radius:50%;background:var(--green);box-shadow:0 2px 7px #263d3333;pointer-events:none;transition:left .08s linear}
.auth-screen{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);background:#f8f9f5;color:#2e473b}.logged-out .workspace{margin-left:0}.logged-out #main{max-width:none;min-height:100vh;margin:0;padding:0}.logged-out .sidebar,.logged-out .topbar,.logged-out .mobile-nav,.logged-out .floating-note,.logged-out .app-footer,.logged-out .sidebar-scrim{display:none!important}.auth-card{width:min(100%,480px);margin:auto;padding:clamp(28px,7vw,72px)}.auth-brand{display:flex;align-items:center;gap:12px;color:#355849;text-decoration:none;font-size:23px;font-weight:650;letter-spacing:-.04em}.auth-brand img{width:42px;height:42px}.auth-eyebrow{margin:35px 0 11px;color:#82907a;font-size:var(--fs-aux);letter-spacing:.18em}.auth-card h1{font-size:clamp(26px,3vw,35px);font-weight:550;letter-spacing:-.04em;margin:0}.auth-subtitle{margin:12px 0 30px;color:#798579;font-size:var(--fs-body);line-height:1.8}.auth-tabs{display:flex;border-bottom:1px solid #dfe5dc;margin-bottom:24px;gap:24px}.auth-tabs button{padding:0 0 12px;color:#8a9587;font-size:var(--fs-body);border-bottom:2px solid transparent}.auth-tabs button.active{color:#355849;border-color:#355849}.auth-form{display:grid;gap:17px}.auth-form .form-group{display:grid;gap:8px}.auth-form .form-label{color:#657567;font-size:var(--fs-control)}.auth-form .field{height:47px;border-color:#dfe5dc;background:#fff;border-radius:8px}.auth-code-row{display:flex;gap:10px}.auth-code-row .field{min-width:0}.auth-send{white-space:nowrap;min-width:112px;background:#edf2eb;color:#355849}.auth-submit{width:100%;height:48px;margin-top:3px}.auth-error{min-height:18px;margin:-8px 0;color:#a35454;font-size:var(--fs-control)}.auth-passkey-hint{margin:18px 0 8px;color:#798579;font-size:var(--fs-control);line-height:1.7;text-align:center}.auth-passkey-submit{margin-top:0}.auth-switch,.auth-terms{display:block;margin:18px auto 0;text-align:center;color:#6c806e;font-size:var(--fs-control)}.auth-foot{display:flex;justify-content:space-between;margin-top:42px;color:#a0a99d;font-size:var(--fs-aux)}.auth-aside{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:100vh;padding:clamp(36px,7vw,86px);overflow:hidden;background:radial-gradient(ellipse at 70% 15%,#dce9d7 0,transparent 36%),linear-gradient(148deg,#e9efe5,#dce7d8 68%,#e5ede3)}.auth-aside:before,.auth-aside:after{content:"";position:absolute;border:1px solid #79917a28;border-radius:50%;width:min(52vw,610px);aspect-ratio:1;right:-20%;top:4%}.auth-aside:after{width:min(40vw,470px);right:-7%;top:12%}.auth-aside-mark{position:absolute;top:22%;left:22%;font:italic 150px Georgia;color:#35584922}.auth-aside-mark span{color:#829c6828}.auth-aside p{position:relative;margin:0;color:#355849;font-size:clamp(26px,3vw,43px);font-weight:500;line-height:1.55;letter-spacing:.03em}.auth-aside>span{position:relative;margin-top:14px;color:#718272;font-size:var(--fs-body)}.top-user-phone{font-size:var(--fs-control);color:var(--muted)}.logout-button{color:var(--muted)}.team-heading{align-items:flex-start}.team-heading h2{margin-bottom:8px}.team-invite{display:grid;grid-template-columns:minmax(150px,1fr) minmax(140px,.8fr) auto;gap:12px;align-items:end;margin:25px 0 32px;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.team-invite .form-group{display:grid;gap:8px}.team-section-title{margin:18px 0 12px;color:var(--green);font-size:var(--fs-body);font-weight:550}.team-list{border-top:1px solid var(--line)}.team-row{display:flex;align-items:center;gap:13px;padding:14px 2px;border-bottom:1px solid var(--line)}.team-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--sage);color:var(--green)}.team-person{display:grid;gap:3px;flex:1}.team-person strong{font-size:var(--fs-control);font-weight:550}.team-person span,.team-pending span{font-size:var(--fs-aux);color:var(--muted)}.team-role{padding:5px 9px;border-radius:999px;background:var(--sage);color:var(--green);font-size:var(--fs-aux)}.team-role.owner{background:#e9eee8}.team-role-select{max-width:145px;padding:7px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--green);font-size:var(--fs-control)}.text-btn.danger{color:#a86969}.team-pending{display:flex;justify-content:space-between;padding:11px 2px;border-bottom:1px solid var(--line);font-size:var(--fs-control)}
.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0}.admin-stat{padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff}.admin-stat span{display:block;color:var(--muted);font-size:var(--fs-control)}.admin-stat strong{display:block;margin-top:10px;color:var(--green);font-size:28px;font-weight:500}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{padding:11px 8px;border-bottom:1px solid var(--line);text-align:left;font-size:var(--fs-control)}.admin-table th{color:var(--muted);font-weight:500}
@media(max-width:760px){.auth-screen{display:block}.auth-card{min-height:100vh;display:flex;flex-direction:column;justify-content:center;margin:0 auto;padding:32px 25px}.auth-aside{display:none}.team-invite{grid-template-columns:1fr}.team-invite .btn{width:100%}.team-row{gap:8px}.team-role-select{max-width:112px}.top-user-phone{display:none}}
.shop-switcher{max-width:145px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--green);font-size:var(--fs-control)}

.course-cover-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.82}.course-cover strong,.course-cover>.icon{position:relative;z-index:1;text-shadow:0 1px 4px #fff9}.prompt-cover-photo{display:block;width:100%;max-height:180px;object-fit:cover;border-radius:9px;margin-bottom:14px}

.ai-consent{display:flex;align-items:flex-start;gap:10px;color:var(--muted);font-size:var(--fs-aux);line-height:1.65}.ai-consent input{flex:0 0 auto;width:16px;height:16px;margin:2px 0 0;accent-color:var(--green)}

.team-heading{display:flex;justify-content:space-between;gap:18px}.team-heading>div{min-width:0}.team-heading .muted{max-width:620px;line-height:1.7}.team-invite{margin:22px 0 8px}.team-help{margin:0 0 28px;line-height:1.7}.team-section-head{display:flex;align-items:center;justify-content:space-between;margin:26px 0 10px}.team-section-head h3{margin:0;color:var(--green);font-size:var(--fs-body);font-weight:550}.count-pill{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:5px;border-radius:999px;background:var(--sage);font-size:var(--fs-aux)}.team-list{border-top:1px solid var(--line)}.team-list .team-row{min-height:66px;justify-content:space-between}.team-person{display:flex;align-items:center;gap:12px;min-width:0}.team-person>span:last-child{display:grid;gap:4px;min-width:0}.team-person>span:last-child strong,.team-person>span:last-child small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-person>span:last-child small{font-size:var(--fs-aux);color:var(--muted)}.team-member-actions{display:flex;align-items:center;gap:14px}.team-role{white-space:nowrap}.team-role-select{min-width:124px}.team-avatar.pending{background:#f5ebe4;color:#90735b}.pending-head{margin-top:32px}.team-permission-note{margin-top:28px;line-height:1.7}

@media(max-width:760px){.team-heading{align-items:center}.team-invite{padding:16px}.team-list .team-row{align-items:flex-start}.team-member-actions{gap:8px;flex-wrap:wrap;justify-content:flex-end}.team-role-select{max-width:130px}.team-person{gap:8px}.team-person>span:last-child small{white-space:normal}}
.admin-storage-settings{margin:26px 0;padding:24px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#f8faf4,#fff)}.admin-storage-settings h2{margin:0 0 7px}.admin-storage-settings .form-group{margin-top:20px}.admin-storage-status{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.admin-storage-status span{padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:var(--fs-control)}.admin-storage-status span.ready{border-color:#c9d8be;background:#eff5eb;color:#46673c}.admin-storage-settings .setting-row{gap:18px}.admin-storage-settings .setting-row small{display:block;max-width:680px;margin-top:5px;color:var(--muted);line-height:1.7}@media(max-width:720px){.admin-storage-settings{margin:22px -4px 18px;padding:17px 14px;border-radius:13px}.admin-storage-status{gap:6px}.admin-storage-status span{font-size:var(--fs-control);padding:5px 8px}}
.admin-storage-warning{margin:12px 0;padding:12px 14px;border:1px solid #e7d6ae;border-radius:10px;background:#fbf7ed;color:#806b41;font-size:var(--fs-body);line-height:1.7}

.admin-privacy-note{margin:16px 0;padding:15px 17px;border:1px solid #dfe8dc;border-radius:12px;background:linear-gradient(135deg,#f1f5ed,#f8f8f3);color:#596d5d}.admin-privacy-note strong{display:block;margin-bottom:5px;color:#3b5a47;font-size:var(--fs-body);font-weight:600}.admin-privacy-note p{margin:0;color:#788679;font-size:var(--fs-control);line-height:1.7}
.security-panel{display:grid;gap:20px}.security-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.passkey-list{display:grid;gap:10px}.passkey-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.passkey-row>div{display:grid;gap:5px}.passkey-row small{color:var(--muted);font-size:var(--fs-control)}.security-note{padding:16px 18px;border-radius:16px;background:var(--surface);color:var(--muted)}.security-note strong{color:var(--ink)}.security-note p{margin:8px 0 0}.security-actions .muted{font-size:var(--fs-control)}@media(max-width:640px){.passkey-row{align-items:flex-start;padding:13px}.security-actions{align-items:flex-start;flex-direction:column}}
/* Shared inspiration library */
.library-switch{margin:0 0 22px}.library-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:18px;align-items:stretch}.library-card{display:flex;flex-direction:column;gap:12px;min-width:0}.library-card h3,.library-card p{margin:0}.library-card .btn{margin-top:auto;align-self:flex-start}.library-cover{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;background:var(--surface-soft,#f2f4ef)}.library-copy-preview{white-space:pre-wrap;line-height:1.8;color:var(--ink-soft);max-height:9em;overflow:auto;padding:14px;border-radius:12px;background:var(--surface-soft,#f5f6f2)}.library-card small{color:var(--muted)}@media(max-width:700px){.library-cards{grid-template-columns:1fr;gap:14px}.library-card{padding:18px}.library-switch{width:100%}.library-switch .tab{flex:1}}

.copy-card-xhs textarea{line-height:1.65}

.admin-loading{min-height:180px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted)}.loading-spinner{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:admin-spin .7s linear infinite}@keyframes admin-spin{to{transform:rotate(360deg)}}

.team-permission-editor{margin-top:24px}.team-permission-editor>form{display:grid;gap:18px;margin-top:20px}.team-permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.team-permission-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.team-permission-row>span{display:grid;gap:4px}.team-permission-row strong{font-size:var(--fs-control);font-weight:550}.team-permission-row small{color:var(--muted);font-size:var(--fs-aux)}.team-permission-row select{min-width:185px}.team-permission-editor .form-help{line-height:1.7}@media(max-width:720px){.team-permission-grid{grid-template-columns:1fr}.team-permission-row select{min-width:0;width:52%}}

.catalog-page{display:grid;gap:18px}.catalog-page .page-head{margin-bottom:2px}.catalog-scope{flex-wrap:wrap}.catalog-toolbar{justify-content:space-between;gap:14px}.catalog-toolbar .inline-search{display:flex;gap:8px;min-width:min(420px,100%)}.catalog-toolbar .inline-search .field{min-width:180px}.catalog-owner-filter{display:flex;align-items:center;gap:10px}.catalog-product-cell{display:flex;align-items:center;gap:11px;min-width:190px}.catalog-product-cell img{width:48px;height:48px;border-radius:9px;object-fit:cover;background:var(--surface)}.catalog-product-cell span{display:grid;gap:4px}.catalog-product-cell small,.catalog-page td small{display:block;color:var(--muted);font-size:var(--fs-control);margin-top:4px}.catalog-page td .text-btn{margin-right:8px}.catalog-editor-modal{width:min(920px,calc(100vw - 28px));max-height:90vh}.catalog-editor-modal .modal-body{max-height:calc(90vh - 135px);overflow:auto}.catalog-form{display:grid;gap:20px}.catalog-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.catalog-form .form-group{display:grid;gap:7px}.catalog-form .form-group>span,.catalog-form section>h3{font-size:var(--fs-control);color:var(--ink);font-weight:550}.catalog-description{grid-column:1/-1}.catalog-platform{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);display:grid;gap:12px}.catalog-platform h3{margin:0;font-size:var(--fs-body)}.catalog-attr{min-width:0}.catalog-attr select[multiple]{height:auto}.catalog-profiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.catalog-images{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.catalog-image-item{display:grid;grid-template-columns:54px minmax(100px,1fr) 100px auto auto;align-items:center;gap:8px;padding:7px;border:1px solid var(--line);border-radius:9px;font-size:var(--fs-control)}.catalog-image-item.dragging{opacity:.5;border-color:var(--green)}.catalog-image-item img{width:54px;height:54px;object-fit:cover;border-radius:6px}.catalog-form-error{color:#a53b42;min-height:18px}.catalog-page .notice{margin:0}@media(max-width:780px){.catalog-profiles{grid-template-columns:1fr}.catalog-form-grid{grid-template-columns:1fr}.catalog-description{grid-column:auto}.catalog-toolbar{align-items:stretch;flex-wrap:wrap}.catalog-toolbar .inline-search{width:100%}.catalog-page .table-wrap{overflow:auto}.catalog-page .admin-table{min-width:700px}.catalog-image-item{grid-template-columns:46px minmax(70px,1fr) 82px auto auto}.catalog-image-item img{width:46px;height:46px}.catalog-image-item button{font-size:var(--fs-aux)}.catalog-editor-modal{max-height:94vh}.catalog-editor-modal .modal-body{max-height:calc(94vh - 130px)}}
.catalog-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:var(--muted);font-size:var(--fs-control)}.catalog-pagination span{margin-right:auto}
.catalog-product-filter{display:flex;align-items:center;gap:8px;font-size:var(--fs-control);color:var(--muted);white-space:nowrap}.catalog-product-filter .field{min-width:220px}.catalog-entry-banner{position:relative;display:block;flex:0 1 380px;width:min(380px,38vw);height:124px;padding:0;overflow:hidden;text-align:left;border:1px solid #dfe6d8;border-radius:16px;background:#355849;box-shadow:0 6px 18px #344f3a18;cursor:pointer;isolation:isolate}.catalog-entry-banner img,.catalog-entry-shade{position:absolute;inset:0;width:100%;height:100%}.catalog-entry-banner img{object-fit:cover;object-position:center 48%;z-index:0;transition:transform .35s}.catalog-entry-banner:hover img{transform:scale(1.04)}.catalog-entry-shade{z-index:1;background:linear-gradient(90deg,#183d31ed 0%,#244b3bc9 52%,#244b3b22 100%)}.catalog-entry-copy{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:16px 19px;color:#fff}.catalog-entry-copy small{font-size:var(--fs-aux);letter-spacing:1.2px;opacity:.84}.catalog-entry-copy strong{font-size:var(--fs-h3);font-weight:650}.catalog-entry-copy em{font-size:var(--fs-aux);font-style:normal;opacity:.88}.catalog-owner-filter>span{font-size:var(--fs-control);color:var(--muted)}@media(max-width:780px){.catalog-product-filter{width:100%;justify-content:space-between}.catalog-product-filter .field{flex:1;min-width:0}.catalog-entry-banner{flex:1 1 100%;width:100%;height:104px;order:3}.page-head:has(.catalog-entry-banner){flex-wrap:wrap}.page-head:has(.catalog-entry-banner)>div:first-child{flex:1 1 calc(100% - 120px)}.page-head:has(.catalog-entry-banner)>.btn.primary{order:2}.page-head:has(.catalog-entry-banner)>.catalog-entry-banner{order:3}}
.catalog-product-thumb{display:block;flex:0 0 auto;width:48px;height:48px;padding:0;border:0;border-radius:9px;overflow:hidden;cursor:pointer;background:var(--surface)}.catalog-product-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}.catalog-product-thumb:hover img{transform:scale(1.08)}.catalog-detail-modal{width:min(820px,calc(100vw - 28px));max-height:92vh}.catalog-detail-modal .modal-body{max-height:calc(92vh - 130px);overflow:auto}.catalog-detail{display:grid;gap:18px}.catalog-detail-gallery{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:0 0 10px;scrollbar-width:thin}.catalog-detail-gallery figure{position:relative;flex:0 0 min(100%,590px);height:360px;margin:0;overflow:hidden;border-radius:12px;background:#f0f2ec;scroll-snap-align:start}.catalog-detail-gallery img{width:100%;height:100%;object-fit:contain}.catalog-detail-gallery figcaption{position:absolute;left:12px;bottom:12px;padding:5px 9px;border-radius:20px;background:#203b30d9;color:#fff;font-size:var(--fs-control)}.catalog-detail-empty{display:grid;place-items:center;width:100%;min-height:180px;color:var(--muted);background:var(--surface);border-radius:12px}.catalog-detail-title{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.catalog-detail-title h2{font-size:19px;margin:0 0 5px}.catalog-detail-title p{margin:0;color:var(--muted);font-size:var(--fs-control)}.catalog-detail-title>strong{font-size:20px;color:var(--green);white-space:nowrap}.catalog-detail-fields{display:grid;grid-template-columns:120px minmax(0,1fr);gap:11px 14px;margin:0;font-size:var(--fs-control);line-height:1.7}.catalog-detail-fields dt{color:var(--muted)}.catalog-detail-fields dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.catalog-detail-fields dd p{margin:0 0 5px}@media(max-width:720px){.catalog-detail-gallery figure{flex-basis:88vw;height:260px}.catalog-detail-fields{grid-template-columns:88px minmax(0,1fr);gap:9px}.catalog-detail-title h2{font-size:var(--fs-h3)}}
.catalog-detail-carousel{position:relative;overflow:hidden;border-radius:14px;background:#f4f3ed}.catalog-detail-track{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#87977c #e8e9e1}.catalog-detail-track figure{position:relative;flex:0 0 100%;height:clamp(230px,42vw,430px);margin:0;overflow:hidden;scroll-snap-align:center;background:#f4f3ed}.catalog-detail-track img{display:block;width:100%;height:100%;object-fit:contain}.catalog-detail-track figcaption{position:absolute;left:14px;bottom:14px;padding:5px 10px;border-radius:20px;background:#203b30d9;color:#fff;font-size:var(--fs-control)}.catalog-gallery-count{position:absolute;right:14px;top:14px;z-index:2;padding:5px 10px;border-radius:20px;background:#203b30d9;color:#fff;font-size:var(--fs-control)}.catalog-gallery-step{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#203b30b8;color:#fff;font-size:28px;line-height:1;transform:translateY(-50%);cursor:pointer}.catalog-gallery-step.previous{left:12px}.catalog-gallery-step.next{right:12px}.catalog-detail-section{display:grid;gap:12px}.catalog-detail-section h3{margin:0;font-size:var(--fs-body);color:var(--ink)}.catalog-detail-chips{display:flex;gap:8px;flex-wrap:wrap}.catalog-detail-chips span{padding:6px 10px;border-radius:20px;background:#f0f3ec;color:#627456;font-size:var(--fs-control)}.catalog-detail-description{margin:0;color:#5f6b59;font-size:var(--fs-control);line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.catalog-detail-platforms{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.catalog-detail-platform{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafbf8}.catalog-detail-platform h4{margin:0 0 8px;font-size:var(--fs-control)}.catalog-detail-platform>div{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px solid #edf0e8;font-size:var(--fs-control)}.catalog-detail-platform>div span{color:var(--muted)}.catalog-detail-platform>div strong{font-weight:500;text-align:right}.catalog-detail-platform>p{font-size:var(--fs-control);color:var(--muted);margin:0}@media(max-width:720px){.catalog-detail-track figure{height:clamp(220px,65vw,360px)}.catalog-detail-fields{grid-template-columns:100px minmax(0,1fr)}}
.catalog-search-picker{display:grid;gap:8px}.catalog-search-picker>.field{min-height:34px}.catalog-attr-options{display:grid;gap:2px;max-height:185px;overflow-y:auto;padding:5px;border:1px solid var(--line);border-radius:8px;background:#fff;scrollbar-width:thin}.catalog-attr-option{display:flex;align-items:flex-start;gap:8px;padding:6px 7px;border-radius:6px;font-size:var(--fs-control);line-height:1.5;cursor:pointer}.catalog-attr-option:hover{background:#f3f6ef}.catalog-attr-option[hidden]{display:none}.catalog-attr-option input{margin:2px 0 0;accent-color:var(--green);flex:0 0 auto}.catalog-attr-selected{display:flex;flex-wrap:wrap;gap:5px;min-height:22px}.catalog-attr-selected span:not(.muted){padding:3px 7px;border-radius:12px;background:#edf3e9;color:#58704b;font-size:var(--fs-aux)}.catalog-attr-value{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.catalog-category-modal{width:min(480px,calc(100vw - 28px))}.catalog-category-form{display:grid;gap:16px}.catalog-category-form>.muted{margin:0;line-height:1.7}.catalog-category-form .form-group{display:grid;gap:8px}.catalog-category-form .form-group>span{font-size:var(--fs-control);font-weight:550;color:var(--ink)}.catalog-category-form .field{min-height:44px}.catalog-category-form .catalog-form-error{margin:0}
.catalog-category-child{display:inline-flex;align-items:center;gap:7px;margin-left:24px;color:var(--muted)}.catalog-category-child:before{content:"↳";color:var(--green);font-weight:600}
.catalog-submission-help{color:var(--muted);font-size:var(--fs-control)}
.catalog-xhs-parse{display:grid;gap:8px;margin-bottom:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f7faf2}.catalog-xhs-parse-head{display:flex;flex-direction:column;gap:2px}.catalog-xhs-parse-head strong{font-size:var(--fs-body);color:var(--ink)}.catalog-xhs-parse-head .muted{font-size:var(--fs-control);line-height:1.5}.catalog-xhs-parse-row{display:flex;gap:8px;align-items:center}.catalog-xhs-parse-row .field{flex:1;min-width:0}.catalog-xhs-parse-row .btn{flex:0 0 auto}.catalog-xhs-parse .muted{margin:0;font-size:var(--fs-control);line-height:1.5}
.catalog-form-tabs{position:sticky;top:-1px;z-index:3;display:flex;gap:6px;overflow-x:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:#f2f4ee}.catalog-form-tabs button{flex:0 0 auto;padding:9px 14px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.catalog-form-tabs button.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px #1b352610}.catalog-form-panel[hidden]{display:none!important}.catalog-form-panel{display:grid;gap:12px;min-height:230px}.catalog-form-panel>h3{margin:0;font-size:var(--fs-body)}.catalog-form-panel>.muted{margin:0;line-height:1.7}.catalog-form-panel-channels{align-content:start}.catalog-detail-images{display:grid;gap:12px}.catalog-detail-images img{display:block;width:100%;height:auto;border-radius:10px;object-fit:contain;background:#f4f3ed}
.catalog-image-upload-section{display:grid;gap:10px}.catalog-image-upload-section>h3{margin:0;font-size:var(--fs-body)}.catalog-image-upload-section>p{margin:0;line-height:1.6}.required-mark{margin-right:5px;color:#c74c45}.catalog-upload-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:12px;align-items:start}.catalog-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}.catalog-upload-tile{display:flex;min-height:148px;aspect-ratio:1;flex-direction:column;align-items:center;justify-content:center;gap:9px;border:2px dashed #d7dce4;border-radius:12px;background:#fff;color:#7589a0;text-align:center;cursor:pointer;transition:border-color .16s,background .16s}.catalog-upload-tile:hover,.catalog-upload-tile:focus-within{border-color:#91b6d8;background:#f8fbff}.catalog-upload-tile svg{width:40px;height:40px;fill:none;stroke:#7895af;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.catalog-upload-tile span{font-size:var(--fs-body)}.catalog-upload-tile small{font-size:var(--fs-control);color:#91a1b1}.catalog-upload-tile[hidden]{display:none}.catalog-image-card{position:relative;display:block;aspect-ratio:1;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#f5f4ef}.catalog-image-card>img{display:block;width:100%;height:100%;object-fit:cover}.catalog-image-index,.catalog-image-role{position:absolute;z-index:1;top:8px;padding:4px 8px;border-radius:16px;background:#1e2926d9;color:#fff;font-size:var(--fs-control)}.catalog-image-index{left:8px}.catalog-image-role{right:8px}.catalog-image-controls{position:absolute;inset:auto 0 0;display:flex;justify-content:center;gap:7px;padding:24px 8px 9px;background:linear-gradient(transparent,#101b19c9);opacity:0;transition:opacity .15s}.catalog-image-card:hover .catalog-image-controls,.catalog-image-card:focus-within .catalog-image-controls{opacity:1}.catalog-image-controls .text-btn{padding:5px 8px;border-radius:7px;background:#fff;color:var(--ink);font-size:var(--fs-control)}.catalog-image-controls .text-btn.danger{color:#ad4944}.catalog-detail-image-list{display:grid;gap:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff}.catalog-detail-image-row{position:relative;display:grid;grid-template-columns:30px 96px minmax(0,1fr);align-items:center;min-height:112px;gap:12px;padding:10px 14px;border-bottom:1px solid #edf0e8}.catalog-detail-image-row:last-of-type{border-bottom:0}.catalog-detail-image-index{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#eef2eb;color:var(--ink);font-size:var(--fs-control)}.catalog-detail-image-row>img{display:block;width:96px;height:90px;border-radius:8px;object-fit:cover;background:#f4f3ed}.catalog-detail-image-actions{display:flex;justify-content:flex-end;gap:8px;opacity:0;transition:opacity .15s}.catalog-detail-image-row:hover .catalog-detail-image-actions,.catalog-detail-image-row:focus-within .catalog-detail-image-actions{opacity:1}.catalog-detail-image-actions .text-btn{padding:6px 9px;border-radius:7px;background:#f4f6f1;font-size:var(--fs-control)}.catalog-detail-image-actions .text-btn.danger{color:#ad4944}.catalog-detail-image-list .catalog-upload-tile{min-height:74px;aspect-ratio:auto;flex-direction:row;gap:8px;border:0;border-radius:0;background:#fafbf8}.catalog-detail-image-list .catalog-upload-tile svg{width:24px;height:24px}.catalog-detail-image-list .catalog-upload-tile span{font-size:var(--fs-control)}.catalog-detail-image-list .catalog-upload-tile small{display:none}@media(max-width:560px){.catalog-upload-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catalog-detail-image-row{grid-template-columns:26px 72px minmax(0,1fr);min-height:90px;gap:8px;padding:8px}.catalog-detail-image-row>img{width:72px;height:72px}.catalog-detail-image-actions{flex-wrap:wrap;gap:4px}.catalog-detail-image-actions .text-btn{padding:5px 6px;font-size:var(--fs-aux)}.catalog-image-controls{opacity:1;padding:20px 4px 5px;gap:4px}.catalog-image-controls .text-btn{padding:4px 5px;font-size:var(--fs-aux)}}
.catalog-detail-image-editor{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff}.catalog-detail-image-upload{padding:9px;border-bottom:1px solid var(--line);background:#fafbf8}.catalog-detail-image-upload .catalog-upload-tile{width:100%;min-height:54px;aspect-ratio:auto;flex-direction:row;gap:9px;border:1px dashed #cbd5c6;border-radius:8px;background:#fff}.catalog-detail-image-upload .catalog-upload-tile svg{width:23px;height:23px}.catalog-detail-image-upload .catalog-upload-tile span{font-size:var(--fs-control)}.catalog-detail-image-upload .catalog-upload-tile small{display:none}.catalog-detail-image-list{display:grid;gap:0;overflow:hidden;border:0;border-radius:0;background:#fff}.catalog-detail-image-row{position:relative;display:block;min-height:0;margin:0;padding:0;border:0!important;border-radius:0;line-height:0;cursor:grab}.catalog-detail-image-row>img{display:block;width:100%;height:auto;max-height:none;border:0;border-radius:0;object-fit:contain;background:#fff}.catalog-detail-image-index{position:absolute;top:10px;left:10px;z-index:2;width:26px;height:26px;background:#1e2926c9;color:#fff;line-height:1}.catalog-detail-image-actions{position:absolute;right:12px;bottom:12px;z-index:2;display:flex;justify-content:flex-end;gap:7px;padding:18px 8px 8px;border-radius:10px;background:linear-gradient(transparent,#101b19b8);opacity:0;transition:opacity .15s}.catalog-detail-image-row:hover .catalog-detail-image-actions,.catalog-detail-image-row:focus-within .catalog-detail-image-actions{opacity:1}.catalog-detail-image-actions .text-btn{padding:6px 9px;border:0;border-radius:7px;background:#fff;color:var(--ink);font-size:var(--fs-control);line-height:1.2}.catalog-detail-image-actions .text-btn.danger{color:#ad4944}.catalog-detail-images{display:grid;gap:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#f4f3ed}.catalog-detail-images img{display:block;width:100%;height:auto;border-radius:0;object-fit:contain;background:#f4f3ed}.catalog-detail-images img+img{margin-top:0}@media(max-width:560px){.catalog-detail-image-actions{right:7px;bottom:7px;gap:4px;padding:14px 6px 6px;opacity:1}.catalog-detail-image-actions .text-btn{padding:5px 7px;font-size:var(--fs-aux)}}
.catalog-credit-balance{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);font-size:var(--fs-control)}.catalog-credit-balance strong{color:var(--green);font-size:var(--fs-h3)}.catalog-credit-balance small{margin-left:3px}.catalog-credit-settings{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin-top:14px}.catalog-credit-settings .form-group{display:grid;gap:7px;min-width:160px;flex:1}.catalog-credit-settings>button{flex:0 0 auto}.catalog-credit-platform-balance{display:grid;gap:4px;min-width:130px;padding:10px 14px;border:1px solid var(--line);border-radius:10px}.catalog-credit-platform-balance span{font-size:var(--fs-control);color:var(--muted)}.catalog-credit-platform-balance strong{font-size:var(--fs-h2);color:var(--green)}.catalog-credit-account{margin-top:18px}.catalog-credit-account>p{margin:10px 0}.catalog-credit-account .table-wrap{margin-top:18px}.catalog-credit-modal .modal-body{max-height:75vh;overflow:auto}@media(max-width:780px){.catalog-credit-balance{width:100%;justify-content:center}.catalog-credit-settings{align-items:stretch;flex-direction:column}.catalog-credit-settings .form-group{min-width:0}}
.catalog-review-modal{width:min(920px,calc(100vw - 28px));max-height:90vh;min-width:0}.catalog-review-modal .modal-body{max-height:calc(90vh - 135px);overflow:auto;min-width:0}.catalog-review-detail{min-width:0;overflow-wrap:anywhere}.catalog-review-summary{display:grid;gap:6px;min-width:0}.catalog-review-summary h3{margin:0;font-size:var(--fs-h2)}.catalog-review-summary p{margin:0;color:var(--muted);font-size:var(--fs-control);line-height:1.7;overflow-wrap:anywhere}.catalog-review-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.catalog-review-field{display:grid;gap:6px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}.catalog-review-field>span{font-size:var(--fs-control);color:var(--muted)}.catalog-review-field>strong{font-size:var(--fs-body);font-weight:500;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}.catalog-review-product-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.catalog-review-product-image{min-width:0;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.catalog-review-product-image img{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:#f4f3ed}.catalog-review-product-image figcaption{padding:8px 10px;color:var(--muted);font-size:var(--fs-control)}.catalog-review-detail-images{display:grid;gap:0;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#f4f3ed}.catalog-review-detail-images img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain}.catalog-review-channel{display:grid;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff}.catalog-review-channel h4,.catalog-review-channel p{margin:0}.catalog-review-channel h4{font-size:var(--fs-body)}.catalog-review-channel p{color:var(--muted);font-size:var(--fs-control);overflow-wrap:anywhere}.catalog-review-attrs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catalog-review-attrs .catalog-review-field{padding:9px}.catalog-review-attrs .catalog-review-field>strong{font-size:var(--fs-control)}@media(max-width:720px){.catalog-review-modal{width:calc(100vw - 18px);max-height:calc(100dvh - 18px)}.catalog-review-modal .modal-body{max-height:calc(100dvh - 150px)}.catalog-review-fields,.catalog-review-attrs{grid-template-columns:1fr}.catalog-review-product-images{grid-template-columns:repeat(2,minmax(0,1fr))}}
.message-inbox-button{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;margin-right:8px;border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:var(--fs-h2)}.message-unread-badge{position:absolute;top:-6px;right:-7px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#b34c4c;color:#fff;font:600 12px/17px system-ui;text-align:center}.notification-inbox-modal{width:min(680px,calc(100vw - 28px));max-height:90vh}.notification-inbox-modal .modal-body{max-height:calc(90vh - 135px);overflow:auto}.message-notification-list{display:grid;gap:10px}.message-notification{min-width:0;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff}.message-notification.unread{border-color:#cedbc9;background:#fbfcfa}.message-notification-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.message-notification-top strong{font-size:var(--fs-body);overflow-wrap:anywhere}.message-notification-top>span{flex:0 0 auto;padding:3px 8px;border-radius:20px;background:#edf3e9;color:#58704b;font-size:var(--fs-aux)}.message-notification p{margin:9px 0;color:var(--ink-soft);font-size:var(--fs-control);line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.message-notification time{color:var(--muted);font-size:var(--fs-aux)}.message-notification .text-btn{margin-left:12px}.message-notification-empty{padding:45px;text-align:center;color:var(--muted)}.admin-notification-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px}.admin-notification-form{display:grid;align-content:start;gap:14px}.admin-notification-form h2,.admin-notification-layout .panel>h2{margin:0;font-size:var(--fs-h3)}.admin-notification-form>p{margin:0;line-height:1.7}.admin-notification-form .form-group{display:grid;gap:7px}.admin-notification-form .form-group>span{font-size:var(--fs-control);font-weight:550}.admin-notification-history{display:grid;gap:0}.admin-notification-history article{padding:13px 0;border-bottom:1px solid var(--line)}.admin-notification-history article:last-child{border-bottom:0}.admin-notification-history .between{gap:10px}.admin-notification-history strong{font-size:var(--fs-control)}.admin-notification-history .between span,.admin-notification-history small{color:var(--muted);font-size:var(--fs-aux)}.admin-notification-history p{margin:8px 0;color:var(--ink-soft);font-size:var(--fs-control);line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:760px){.admin-notification-layout{grid-template-columns:1fr}.notification-inbox-modal{width:calc(100vw - 18px);max-height:calc(100dvh - 18px)}.notification-inbox-modal .modal-body{max-height:calc(100dvh - 145px)}}
.message-inbox-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.message-inbox-button{background:#fff;color:#365b4a;border-color:#dfe6dc}.message-inbox-icon{display:grid;place-items:center}.message-inbox-button .message-inbox-icon .icon{display:block;width:18px;height:18px;color:#365b4a}.message-unread-badge{display:grid;place-items:center;z-index:1}.message-unread-badge[hidden]{display:none}
.admin-nav-group{margin:5px 0}.admin-nav-group>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;padding:0 15px;border-radius:8px;color:#7c8879;font-size:var(--fs-control);cursor:pointer;list-style:none;user-select:none}.admin-nav-group>summary::-webkit-details-marker{display:none}.admin-nav-group>summary:hover{background:#edf2e9;color:var(--green)}.admin-nav-group[open]>summary{color:#536b56;font-weight:550}.admin-nav-chevron{width:13px;height:13px;transition:transform .18s ease}.admin-nav-group[open] .admin-nav-chevron{transform:rotate(180deg)}.admin-nav-items{padding:2px 0 5px 9px}.admin-nav-items .admin-nav-item{min-height:37px;margin:2px 0 2px 5px;padding-left:14px;font-size:var(--fs-control);border-left:2px solid transparent;border-radius:0 8px 8px 0}.admin-nav-items .admin-nav-item.active{border-left-color:#fff}.admin-nav-items .admin-nav-item:not(.active):hover{background:#edf2e9}
.catalog-template-list,.catalog-template-editor{display:grid;gap:14px}.catalog-template-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff}.catalog-template-card>div:first-child{display:grid;gap:6px}.catalog-template-card>div:first-child>strong{font-size:var(--fs-h3)}.catalog-template-card span,.catalog-template-card small{color:var(--muted);font-size:var(--fs-control)}.catalog-template-card>div:last-child{display:flex;align-items:center;gap:12px}.catalog-template-editor .panel{display:grid;gap:14px}.catalog-template-editor h2,.catalog-template-editor h3{margin:0}.catalog-template-editor h3{font-size:var(--fs-body)}.catalog-template-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.catalog-template-editor-head p{margin:7px 0 0}.catalog-template-editor>.panel>.form-group{display:grid;gap:7px;max-width:540px}.catalog-template-category-add{display:flex;gap:9px;max-width:850px}.catalog-template-category-add>.field:first-child{flex:1}.catalog-template-chips{display:flex;gap:8px;flex-wrap:wrap}.catalog-template-chips>span{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:20px;background:var(--surface);font-size:var(--fs-control)}.catalog-template-chips button{border:0;background:none;color:var(--muted);font-size:var(--fs-h2);cursor:pointer}.catalog-template-results{display:grid;gap:8px}.catalog-template-results article{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,220px) auto;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.catalog-template-results article>span{display:flex;align-items:center;gap:10px;min-width:0}.catalog-template-results img{width:42px;height:42px;border-radius:7px;object-fit:cover}.catalog-template-results strong{display:grid;gap:4px;font-size:var(--fs-control)}.catalog-template-results small{font-weight:400;color:var(--muted)}.catalog-template-save{display:flex;justify-content:flex-end}.catalog-template-editor .catalog-form-error{margin:0}.catalog-template-editor .table-wrap{max-height:460px}.catalog-template-editor .admin-table{min-width:580px}@media(max-width:780px){.catalog-template-card{align-items:flex-start;flex-direction:column}.catalog-template-editor-head{align-items:stretch;flex-direction:column}.catalog-template-category-add{flex-direction:column}.catalog-template-results article{grid-template-columns:1fr auto}.catalog-template-results article>select{grid-column:1/-1;grid-row:2}.catalog-template-results article>button{grid-column:2;grid-row:1}}
.catalog-template-meta{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.55fr);gap:14px;max-width:900px}.catalog-template-meta .form-group{display:grid;gap:7px}.catalog-template-workspace{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px;align-items:start}.catalog-template-sidebar{position:sticky;top:18px}.catalog-template-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.catalog-template-section-head h3{margin:0}.catalog-template-section-head p{margin:6px 0 0}.catalog-template-section-head>span{color:var(--muted);font-size:var(--fs-control)}.catalog-template-category-list{display:grid;gap:4px}.catalog-template-category-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border-radius:9px}.catalog-template-category-row.active{background:var(--surface)}.catalog-template-category-row>button:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px;border:0;background:transparent;text-align:left;color:var(--ink);cursor:pointer}.catalog-template-category-row.child>button:first-child{padding-left:23px;color:var(--muted)}.catalog-template-category-row>button:first-child small{color:var(--muted)}.catalog-template-category-row .remove{border:0;background:transparent;color:var(--muted);padding:8px;cursor:pointer}.catalog-template-category-add{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.catalog-template-category-add>.field:first-child{min-width:0;width:100%}.catalog-template-products h4{margin:14px 0 8px;font-size:var(--fs-control);color:var(--muted)}.catalog-template-product-list,.catalog-template-results{display:grid;gap:0}.catalog-template-product-list article,.catalog-template-results article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.catalog-template-product-info{display:flex;align-items:center;gap:10px;min-width:0}.catalog-template-product-info img{width:48px;height:48px;flex:none;border-radius:8px;object-fit:cover;background:var(--surface)}.catalog-template-product-info strong{display:grid;gap:5px;min-width:0;font-size:var(--fs-control)}.catalog-template-product-info small{font-size:var(--fs-control);font-weight:400;color:var(--muted)}.catalog-template-add-products{margin-top:22px;padding-top:4px;border-top:1px solid var(--line)}.catalog-template-empty{padding:28px 8px;color:var(--muted);text-align:center}.catalog-template-save-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}.catalog-template-save-bar>span{font-size:var(--fs-control);color:var(--muted)}@media(max-width:780px){.catalog-template-meta{grid-template-columns:1fr}.catalog-template-workspace{grid-template-columns:1fr}.catalog-template-sidebar{position:static}.catalog-template-category-list{max-height:220px;overflow:auto}.catalog-template-product-list article,.catalog-template-results article{align-items:flex-start}.catalog-template-product-info{max-width:70%}.catalog-template-product-info img{width:42px;height:42px}.catalog-template-save-bar{align-items:flex-start;flex-direction:column}}
.catalog-template-search{display:grid;grid-template-columns:minmax(200px,1fr) minmax(200px,280px) auto;gap:9px}.catalog-template-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;color:var(--muted);font-size:var(--fs-control)}.catalog-template-pagination>div{display:flex;align-items:center;gap:7px}.catalog-template-pagination .field{min-width:105px;width:auto;padding:8px 10px}.catalog-template-pagination .btn{padding:8px 12px}@media(max-width:780px){.catalog-template-search{grid-template-columns:1fr}.catalog-template-pagination{align-items:flex-start;flex-direction:column}.catalog-template-pagination>div{width:100%;justify-content:space-between}.catalog-template-pagination .field{flex:1}}
.catalog-template-picker-modal{width:min(1040px,calc(100vw - 28px));max-height:92vh}.catalog-template-picker-modal .modal-body{max-height:calc(92vh - 140px);overflow:auto}.catalog-template-picker{display:grid;gap:20px}.catalog-template-picker>section+section{padding-top:14px;border-top:1px solid var(--line)}.catalog-template-picker h3{margin:0 0 10px;font-size:var(--fs-body)}.catalog-template-image-button{display:block;flex:none;width:52px;height:52px;padding:0;border:0;border-radius:9px;overflow:hidden;background:var(--surface);cursor:zoom-in}.catalog-template-image-button img{width:100%;height:100%;object-fit:cover}.catalog-template-image-empty{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:9px;background:var(--surface);color:var(--muted);font-size:var(--fs-aux)}.catalog-template-image-preview{display:grid;justify-items:start;gap:14px}.catalog-template-image-preview img{display:block;max-width:100%;max-height:68vh;margin:0 auto;object-fit:contain;border-radius:10px}.catalog-template-image-preview{justify-items:center}.catalog-template-image-preview>.btn{justify-self:start}@media(max-width:780px){.catalog-template-picker-modal{max-height:96vh}.catalog-template-picker-modal .modal-body{max-height:calc(96vh - 135px)}.catalog-template-image-button,.catalog-template-image-empty{width:44px;height:44px}}

.portal-tabs a{padding:0 0 12px;color:#8a9587;font-size:var(--fs-body);text-decoration:none;border-bottom:2px solid transparent}.portal-tabs a.active{color:#355849;border-color:#355849}

.api-code-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 8px}.api-code{max-width:100%;overflow:auto;padding:16px;border-radius:10px;background:#17231f;color:#eef5ef;line-height:1.6;font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre}.api-code code{color:inherit;font:inherit}.api-code-head strong{font-size:var(--fs-body)}

.library-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.library-gallery .library-cover{aspect-ratio:1;border-radius:8px}
.copy-card-moments{padding:20px 22px}.moments-post-head h3{font-size:var(--fs-h2);margin:14px 0 11px}.moments-copy-content{border:0!important;border-radius:0!important;padding:0!important;min-height:72px!important;line-height:1.8!important;resize:vertical}.moments-copy-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:min(100%,330px);margin:12px 0 4px}.moments-copy-gallery.single .moments-copy-thumb{grid-column:span 3;aspect-ratio:1}.moments-copy-thumb{display:block;overflow:hidden;padding:0;border:0;border-radius:3px;aspect-ratio:1;background:var(--surface);cursor:zoom-in}.moments-copy-thumb img{display:block;width:100%;height:100%;object-fit:cover}.moments-copy-thumb:hover img{filter:brightness(.94)}dialog.moments-image-modal{width:min(94vw,1000px);height:min(92dvh,900px);max-width:94vw;max-height:92dvh;padding:0;border:0;border-radius:8px;background:#101010;color:#fff}.moments-image-modal .modal-body{padding:0;height:100%;overflow:hidden}.moments-image-viewer{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:#101010}.moments-image-viewer img{max-width:100%;max-height:100%;object-fit:contain}.moments-viewer-close,.moments-viewer-nav{position:absolute;z-index:1;display:grid;place-items:center;border:0;border-radius:50%;background:#0008;color:#fff;cursor:pointer}.moments-viewer-close{top:12px;right:14px;width:40px;height:40px;font-size:30px}.moments-viewer-nav{top:50%;width:42px;height:42px;transform:translateY(-50%);font-size:32px}.moments-viewer-nav.prev{left:14px}.moments-viewer-nav.next{right:14px}.moments-viewer-nav:disabled{opacity:.25}.moments-viewer-count{position:absolute;bottom:14px;padding:5px 11px;border-radius:20px;background:#0008;color:#fff;font-size:var(--fs-body)}@media(max-width:700px){.copy-card-moments{padding:16px}.moments-copy-gallery{width:min(100%,300px);gap:4px}.moments-image-modal{width:100vw!important;height:100dvh!important;max-width:100vw!important;max-height:100dvh!important;border-radius:0!important}}
.moments-copy-gallery:has(.moments-copy-thumb:only-child) .moments-copy-thumb{grid-column:span 3;aspect-ratio:1}
.moments-image-modal .modal-head{display:none}

/* 管理后台侧栏分组使用显式按钮状态，避免原生 details 在收起态下误关闭弹层。 */
.admin-nav-group>.admin-nav-trigger{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;min-height:38px;margin:0;padding:0 15px;border:0;border-radius:8px;background:transparent;color:#7c8879;font-size:var(--fs-control);text-align:left;cursor:pointer;list-style:none;user-select:none}
.admin-nav-trigger:hover{background:#edf2e9;color:var(--green)}
.admin-nav-group[data-open="true"]>.admin-nav-trigger{color:#536b56;font-weight:550}
.admin-nav-trigger .admin-nav-group-icon{flex:none;width:18px;height:18px}
.admin-nav-trigger .admin-nav-group-label{min-width:0}
.admin-nav-trigger .admin-nav-chevron{width:13px;height:13px;margin-left:auto;transition:transform .18s ease}
.admin-nav-group[data-open="true"]>.admin-nav-trigger .admin-nav-chevron{transform:rotate(180deg)}
.admin-nav-group>.admin-nav-items[hidden]{display:none!important}
.admin-nav-group[data-open="true"]>.admin-nav-items{display:block}
@media(min-width:721px){
 body.sidebar-collapsed .admin-nav-group{position:relative;margin:4px 0}
 body.sidebar-collapsed .admin-nav-group>.admin-nav-trigger{justify-content:center;gap:0;width:50px;height:42px;min-height:42px;margin:4px auto;padding:0;border-radius:8px}
 body.sidebar-collapsed .admin-nav-group>.admin-nav-trigger .admin-nav-group-label,body.sidebar-collapsed .admin-nav-group>.admin-nav-trigger .admin-nav-chevron{display:none}
 body.sidebar-collapsed .admin-nav-group>.admin-nav-trigger .admin-nav-group-icon{width:20px;height:20px}
 body.sidebar-collapsed .admin-nav-group[data-open="true"]>.admin-nav-trigger{background:#edf2e9;color:var(--green)}
body.sidebar-collapsed .admin-nav-group[data-active="true"]:not([data-open="true"])>.admin-nav-trigger{color:var(--green);box-shadow:inset 2px 0 0 var(--green,#355849)}
 body.sidebar-collapsed .admin-nav-group>.admin-nav-items[hidden]{display:none!important}
 body.sidebar-collapsed .admin-nav-group[data-open="true"]>.admin-nav-items{position:fixed;top:0;left:84px;z-index:120;width:236px;max-height:min(78vh,540px);overflow-y:auto;overscroll-behavior:contain;padding:8px;background:var(--white,#fff);border:1px solid var(--line,#e9ece5);border-radius:12px;box-shadow:0 12px 32px rgba(30,48,37,.18)}
 body.sidebar-collapsed .admin-nav-items .admin-nav-item{justify-content:flex-start;width:100%;min-height:38px;margin:2px 0;padding:0 12px;border-left:0;border-radius:8px}
 body.sidebar-collapsed .admin-nav-items .admin-nav-item .nav-text{display:inline}
}

/* ---------------------------------------------------------------------------
   右侧书签栏 + AI 助手面板（2026-10-29）
   电脑端把原来的圆形浮钮换成贴右边缘的书签（随手记 / AI 助手 两项一组），
   手机端仍然用圆钮，只是多了一颗 AI 圆钮（在随手记上方）。
   AI 面板从右下角浮出，宽 394px、最大高 620px，不挡侧栏，也不做成整屏遮罩，
   这样用户一边问 AI 一边还能看到背后的页面。
--------------------------------------------------------------------------- */
.quick-rail{position:fixed;right:0;bottom:40px;z-index:36;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.quick-rail[hidden]{display:none!important}
.quick-tab{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;width:36px;padding:13px 0 15px;border-radius:13px 0 0 13px;background:var(--green);color:#fff;box-shadow:-2px 6px 18px rgba(38,61,51,.18);transition:transform .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}
.quick-tab:hover{transform:translateX(-3px);filter:none;box-shadow:-3px 8px 22px rgba(38,61,51,.24)}
.quick-tab:focus-visible{outline:2px solid #a3bb9d;outline-offset:-4px}
.quick-tab-text{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:5px;font-size:var(--fs-control);line-height:1.1}
.quick-tab-mark{width:18px;padding:2px 0;border-radius:4px;background:rgba(255,255,255,.22);color:#fff;font-size:var(--fs-caption);font-weight:700;letter-spacing:.3px;line-height:1.2;text-align:center}
.quick-tab-ai{background:var(--sage);color:var(--green);box-shadow:-2px 6px 18px rgba(38,61,51,.12)}
.quick-tab-ai .quick-tab-text{font-weight:600}
.quick-tab-ai .quick-tab-mark{background:rgba(53,88,73,.14);color:var(--green)}
.quick-tab-ai[aria-expanded="true"]{background:var(--green);color:#fff}
.quick-tab-ai[aria-expanded="true"] .quick-tab-mark{background:rgba(255,255,255,.22);color:#fff}
.floating-ai{position:fixed;right:19px;bottom:137px;z-index:35;width:44px;height:44px;border:3px solid #f6f7f3;border-radius:50%;background:var(--sage);color:var(--green);box-shadow:0 5px 15px #35584926;display:grid;place-items:center}
.floating-ai .icon{width:18px;height:18px}
@media(min-width:721px){.floating-note,.floating-ai{display:none!important}}
@media(max-width:720px){.quick-rail{display:none!important}}
.logged-out .quick-rail,.logged-out .floating-ai,.logged-out .ai-dock{display:none!important}
/* AI 面板打开时收起右侧书签（随手记 / AI 助手）：两块并排会互相挤压，
   而且此时用户注意力在面板里。面板关闭时 ai-dock-open 移除，书签自动回来。 */
body.ai-dock-open .quick-rail{display:none!important}

/* 面板默认撑满窗口高度（上下各留 14px），不再是个 620px 的小卡片 ——
   对话一长就要在巴掌大的框里滚，体验很差。宽度也略加一点：
   面板打开时会收起右侧书签（见下面的 .ai-dock-open 规则），右边不用再让 48px。 */
.ai-dock{position:fixed;right:20px;top:14px;bottom:14px;z-index:60;display:flex;flex-direction:column;width:min(420px,calc(100vw - 40px));max-height:none;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 28px 70px rgba(26,43,33,.24);overflow:hidden;animation:ai-dock-in .18s ease-out}
.ai-dock[hidden]{display:none!important}
@keyframes ai-dock-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.ai-dock{animation:none}}
.ai-dock-head{display:flex;align-items:center;gap:9px;padding:13px 10px 12px 14px;background:linear-gradient(135deg,#edf3e9,#f8faf4);border-bottom:1px solid var(--line)}
.ai-dock-avatar{flex:none;width:34px;height:34px;border-radius:11px;background:var(--green);color:#fff;display:grid;place-items:center}
.ai-dock-avatar .icon{width:17px;height:17px}
.ai-dock-title{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.ai-dock-title h2{margin:0;font-size:var(--fs-h3);font-weight:600;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-dock-title p{margin:0;color:var(--muted);font-size:var(--fs-aux);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-dock-badge{flex:none;padding:3px 8px;border:1px solid #dbe5d6;border-radius:999px;background:#fff;color:var(--green2);font-size:var(--fs-caption);letter-spacing:.2px;white-space:nowrap}
.ai-dock-reset{flex:none;padding:4px 6px;border-radius:6px;color:var(--muted);font-size:var(--fs-aux)}
.ai-dock-reset:hover{background:#eef3ea;color:var(--green);filter:none}
.ai-dock-close{flex:none;width:28px;height:28px}
.ai-dock-body{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px;padding:14px 14px 6px;background:#fbfcf9}
.ai-msg{display:flex;gap:8px;max-width:100%}
.ai-msg-ai{align-items:flex-start}
.ai-msg-avatar{flex:none;width:26px;height:26px;margin-top:2px;border-radius:9px;background:var(--sage);color:var(--green);display:grid;place-items:center}
.ai-msg-avatar .icon{width:14px;height:14px}
.ai-msg-main{display:flex;flex-direction:column;gap:5px;min-width:0}
.ai-msg-user{flex-direction:column;align-items:flex-end;justify-content:flex-end}
.ai-bubble{max-width:100%;padding:9px 12px;border-radius:12px;font-size:var(--fs-control);line-height:1.75}
.ai-msg-ai .ai-bubble{border:1px solid var(--line);border-top-left-radius:4px;background:#fff;color:var(--ink)}
.ai-msg-user .ai-bubble{border-top-right-radius:4px;background:var(--green);color:#fff}
.ai-bubble p{margin:0;white-space:pre-wrap;word-break:break-word}
.ai-msg-time{color:#a6b0a4;font-size:var(--fs-caption)}
.ai-plan{margin-top:9px;padding:9px 10px;border:1px dashed #cfdcc9;border-radius:10px;background:#f7faf4}
.ai-plan-head{display:flex;align-items:center;gap:6px;color:var(--green);font-size:var(--fs-aux);font-weight:600}
.ai-plan-head .icon{width:13px;height:13px}
.ai-plan-list{margin:7px 0 0;padding-left:16px;color:#4d6355;font-size:var(--fs-aux);line-height:1.7}
.ai-plan-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;padding-top:8px;border-top:1px dashed #dde7d8}
.ai-plan-tip{flex:1 1 130px;color:var(--muted);font-size:var(--fs-caption);line-height:1.5}
.ai-plan-btn{display:inline-flex;align-items:center;gap:2px;min-height:30px;padding:4px 10px;border:1px solid #cbd9c4;border-radius:8px;background:#fff;color:var(--green);font-size:var(--fs-aux)}
.ai-plan-btn:hover{background:#eef4e9;filter:none}
.ai-plan-btn .icon{width:12px;height:12px}
.ai-typing{display:inline-flex;align-items:center;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;border-top-left-radius:4px;background:#fff}
.ai-typing i{width:5px;height:5px;border-radius:50%;background:#b6c4b0;animation:ai-typing 1s infinite ease-in-out}
.ai-typing i:nth-child(2){animation-delay:.15s}
.ai-typing i:nth-child(3){animation-delay:.3s}
@keyframes ai-typing{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}
.ai-caps{display:flex;flex-direction:column;gap:10px;margin:2px 0 6px}
.ai-cap-group{display:flex;flex-direction:column;gap:6px}
.ai-cap-label{color:var(--muted);font-size:var(--fs-caption);letter-spacing:.6px}
.ai-cap-items{display:flex;flex-wrap:wrap;gap:6px}
.ai-cap{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#3c5446;font-size:var(--fs-aux)}
.ai-cap:hover{border-color:#c7d7c0;background:#f4f8f1;filter:none}
.ai-cap .icon{width:13px;height:13px;color:var(--green2)}
.ai-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 12px;border-top:1px solid var(--line);background:#fff;scrollbar-width:none}
.ai-chips::-webkit-scrollbar{display:none}
.ai-chip{flex:0 0 auto;padding:5px 10px;border:1px solid #dfe7d9;border-radius:999px;background:#f6f9f3;color:#4a6153;font-size:var(--fs-aux);white-space:nowrap}
.ai-chip:hover{background:#eef4e9;filter:none}
.ai-composer{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 6px;background:#fff}
.ai-input{flex:1;min-height:38px;max-height:108px;padding:9px 11px;border:1px solid #dfe5da;border-radius:11px;background:#fbfcf9;font-size:var(--fs-control);line-height:1.6;resize:none;overflow-y:auto}
.ai-input:focus{outline:2px solid #b9cbb2;outline-offset:0;background:#fff}
.ai-input:disabled{opacity:.6}
.ai-send{flex:none;width:38px;height:38px;border-radius:11px;background:var(--green);color:#fff;display:grid;place-items:center}
.ai-send .icon{width:16px;height:16px}
.ai-send:disabled{opacity:.4;cursor:not-allowed}
.ai-send:hover:not(:disabled){filter:brightness(1.08)}
.ai-dock-note{margin:0;padding:0 12px 10px;color:#a2ac9f;font-size:var(--fs-caption);line-height:1.5}
.ai-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media(max-width:720px){
  .ai-dock{right:0;left:0;top:auto;bottom:0;width:auto;height:min(88vh,720px);max-height:none;border-bottom:0;border-radius:18px 18px 0 0}
  .ai-dock-body{max-height:none}
  .ai-dock-title p{display:none}
  body.ai-dock-open{overflow:hidden}
}

/* 书签栏 / 圆钮被 feature-locked 或 sync() 隐藏时，display:flex|grid 会盖过 [hidden]{display:none}，
   这里显式兜一层；书签只有 36px 宽，塞不下「未开通」角标，直接不显示（保留 aria-disabled 与 title）。 */
.quick-tab[hidden],.floating-ai[hidden],.floating-note[hidden]{display:none!important}
.quick-tab .feature-entry-lock{display:none}
/* ── 通知渠道卡片（设置 → 通知提醒）────────────────────────────────────────
   设置页内容区只有约 620px，六列表格在 1280 宽屏都会把操作列挤掉，所以用卡片：
   每条渠道一行标题 + 一行元信息 + 一行投递统计，操作按钮单独一行，手机上也不用横向滚动。
   字号一律走 6 个令牌（--fs-*），不写死 px —— 见 tests/font-scale.test.mjs。 */
.notify-channel-list{display:grid;gap:12px;margin:4px 0 6px}
.notify-channel-card{border:1px solid #e7ecdf;border-radius:12px;padding:14px 16px;background:#fdfdfb}
.notify-channel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.notify-channel-name{font-weight:600;font-size:var(--fs-body);color:#355849;word-break:break-word}
.notify-channel-meta{margin-top:5px;font-size:var(--fs-aux);line-height:1.7;color:#98a486;word-break:break-word}
.notify-channel-meta code{font-size:.95em;padding:1px 5px;border-radius:4px;background:#f3f5ef;color:#7d8a6f}
.notify-channel-stats{margin-top:8px;font-size:var(--fs-aux);line-height:1.7;color:#7d8a6f}
.notify-channel-error{margin-top:6px;font-size:var(--fs-aux);line-height:1.65;color:#a9563f;word-break:break-word}
.notify-channel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;margin-top:12px;padding-top:11px;border-top:1px dashed #eef1e8}
.notify-channel-badge{flex:none;display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:#eef3e8;color:#5d7a4a;font-size:var(--fs-aux);white-space:nowrap}
.notify-channel-badge.off{background:#f4f5f1;color:#98a486}
.conn-list{display:grid;gap:10px;margin:14px 0 2px}
.conn-card{border:1px solid #e7ecdf;border-radius:12px;padding:13px 15px;background:#fdfdfb}
.conn-card.is-removing{border-color:#d9c3a3;background:#fdf8ef}
.conn-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.conn-head .text-btn{flex:0 0 auto;margin-top:2px}
/* 卡片右上角操作组（同步资料 / 解绑）：竖排，避免两个按钮挤在一行把门店名压窄 */
.conn-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto}
.conn-name{font-weight:600;color:#355849;word-break:break-word}
.conn-meta{margin-top:5px;font-size:var(--fs-aux);line-height:1.7;color:#98a486;word-break:break-word}
.conn-meta code{font-size:.95em;padding:1px 5px;border-radius:4px;background:#f3f5ef;color:#7d8a6f}
/* 渠道接入：门店卡片里的「运营负责人」一行（门店编号下面另起一行）。
   一家店可能绑多家门店，各自负责人不同，所以贴在每张卡片里而不是做汇总页。 */
.conn-ops{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;margin-top:7px;padding-top:7px;border-top:1px dashed #eaeeda;font-size:var(--fs-aux);line-height:1.7;color:#4b5c48;word-break:break-word}
.conn-ops>span:first-child{flex:none;color:#98a486}
.conn-ops strong{font-weight:600}
.conn-ops em{font-style:normal;color:#98a486}
.conn-ops a{color:var(--green,#355849);text-decoration:none;border-bottom:1px solid #cfdcc0}
.conn-ops a:hover{border-bottom-color:var(--green,#355849)}

/* 渠道接入 · 绑定/重新登录的流程卡。
   原来整段塞在 .notice 里（单行 flex），状态文字、验证码输入框和按钮被排成一行后互相挤压换行，
   表现就是「几个按钮错位、验证码框和提交按钮分家」。这里改成纵向分区：
   状态 → 验证码 → 操作条，按钮始终同一行、同一高度、右对齐。 */
.mt-login-flow{display:grid;margin:14px 0 0;padding:15px 17px 13px;border:1px solid #e4ebd9;border-radius:12px;background:#f8faf3}
.mt-login-status{display:flex;align-items:flex-start;gap:9px}
.mt-login-dot{flex:none;width:8px;height:8px;border-radius:50%;margin-top:8px;background:#b9c6a8;box-shadow:0 0 0 3px #b9c6a826}
.mt-login-flow[data-state="sms"] .mt-login-dot{background:#c19a55;box-shadow:0 0 0 3px #c19a5526}
.mt-login-flow[data-state="done"] .mt-login-dot{background:#6f9159;box-shadow:0 0 0 3px #6f915926}
.mt-login-flow[data-state="failed"] .mt-login-dot{background:#b47166;box-shadow:0 0 0 3px #b4716626}
.mt-login-copy{min-width:0;display:grid;gap:3px}
.mt-login-copy strong{font-size:var(--fs-control);font-weight:600;color:#3f5745}
.mt-login-copy p{font-size:var(--fs-aux);line-height:1.7;color:#8d9b81}
.mt-login-copy b{font-weight:600;color:#5c7350}
.mt-login-badge{flex:none;margin-left:auto;padding:3px 9px;border-radius:999px;background:#eef2e6;color:#7d8f6a;font-size:var(--fs-aux);line-height:1.5;white-space:nowrap}
.mt-login-flow[data-state="sms"] .mt-login-badge{background:#f6eedc;color:#96753b}
.mt-login-flow[data-state="done"] .mt-login-badge{background:#e6efdc;color:#577644}
.mt-login-flow[data-state="failed"] .mt-login-badge{background:#f7e9e5;color:#a3746a}
.mt-login-sep{height:1px;background:#e6ecdb;margin:12px 0}
/* 验证码一行：标签 + 定宽输入框 + 按钮。用 flex 而不是 grid ——
   grid 的 auto 轨道会把剩余宽度分给按钮，按钮就被拉成一条，看着像「错位」。 */
.mt-login-code{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mt-login-code>label{flex:none;font-size:var(--fs-control);color:#7f8e72;white-space:nowrap}
.mt-login-code .field{flex:1 1 360px;max-width:420px;min-width:150px;min-height:34px;margin:0}
.mt-login-code .btn{flex:none}
.mt-login-flow .btn{margin-top:0;min-height:34px;padding:6px 14px;font-size:var(--fs-control)}
.mt-login-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.mt-login-note{font-size:var(--fs-aux);color:#9aa78e}
.mt-login-buttons{display:flex;align-items:center;gap:8px;margin-left:auto}
.mt-login-diagnostics{margin-top:10px;font-size:var(--fs-aux);color:#8d9b81}
.mt-login-diagnostics summary{cursor:pointer;color:#7f8e72}
.mt-login-diagnostics ul{margin:6px 0 0;padding-left:18px;line-height:1.75}
.mt-login-form{max-width:460px}
.mt-login-form .field,.mt-login-form select{width:100%}
.mt-login-form .btn{justify-self:start;margin-top:2px}
@media(max-width:720px){
  .mt-login-code{gap:8px}
  .mt-login-code>label{display:none}
  .mt-login-code .field{flex:1 1 100%;width:100%}
  .mt-login-buttons{width:100%;margin-left:0}
  .mt-login-buttons .btn{flex:1}
}

.catalog-display-switch{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.catalog-display-switch>span{color:var(--muted);font-size:var(--fs-control);margin-right:4px}.catalog-visual-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.catalog-visual-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--paper);box-shadow:0 3px 12px #253b2c08}.catalog-visual-image{display:grid;place-items:center;width:100%;aspect-ratio:1/1;padding:0;border:0;background:var(--surface);color:var(--muted);cursor:pointer;overflow:hidden}.catalog-visual-image img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.catalog-visual-image:hover img{transform:scale(1.035)}.catalog-visual-info{display:grid;gap:9px;padding:13px}.catalog-visual-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.catalog-visual-title strong{font-size:var(--fs-control);line-height:1.5}.catalog-visual-title span{flex:0 0 auto;padding:3px 7px;border-radius:999px;background:var(--surface);color:var(--muted);font-size:var(--fs-caption)}.catalog-visual-title span.is-live{background:#e8f2e8;color:var(--green)}.catalog-visual-price{margin:0;color:var(--green);font-size:var(--fs-h3);font-weight:650}.catalog-visual-price small,.catalog-visual-sn,.catalog-visual-owner{color:var(--muted);font-size:var(--fs-aux);font-weight:400}.catalog-visual-sn{margin:0}.catalog-visual-actions{display:flex;gap:14px;padding-top:8px;border-top:1px solid var(--line)}@media(max-width:1100px){.catalog-visual-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:780px){.catalog-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catalog-visual-info{padding:10px}.catalog-visual-actions{gap:10px}}@media(max-width:420px){.catalog-visual-grid{grid-template-columns:1fr}}

.catalog-pagination{justify-content:flex-start;flex-wrap:wrap;margin-top:22px}.catalog-pagination .catalog-page-total{white-space:nowrap;margin-right:0}.catalog-page-size{width:auto;min-width:132px;padding:8px 12px}.catalog-page-controls{display:flex;align-items:center;gap:6px}.catalog-page-number{width:40px;height:40px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);font:inherit;cursor:pointer}.catalog-page-number.active{background:var(--green);border-color:var(--green);color:#fff}.catalog-page-number:disabled{opacity:.55;cursor:default}.catalog-pagination .catalog-page-ellipsis{display:grid;place-items:center;width:24px;margin-right:0;color:var(--muted)}.catalog-page-jump{display:flex;align-items:center;gap:8px;margin-left:auto}.catalog-page-jump label{display:flex;align-items:center;gap:5px;white-space:nowrap}.catalog-page-jump .field{width:76px;padding:8px}.catalog-page-jump .btn{white-space:nowrap}@media(max-width:780px){.catalog-page-jump{margin-left:0}.catalog-pagination{justify-content:flex-start;gap:8px}}

.meituan-nav-heading{margin-top:21px;color:#607766;letter-spacing:.7px;font-weight:650}
.meituan-nav-group{display:flex;flex-direction:column;gap:2px;margin:0 0 9px}
.meituan-subnav{padding-left:18px}
.meituan-subnav .icon{opacity:.82}
@media(min-width:721px){body.sidebar-collapsed .meituan-nav-group{margin-bottom:8px}}
