:root{--ink:#213b34;--forest:#173a35;--green:#246b56;--muted:#7a8b80;--line:#dfe7e0;--bg:#f4f6f1;--sand:#e8dec6;--danger:#b44636;--shadow:0 12px 40px #20382d0c;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:0;background:transparent;color:inherit}button:disabled{opacity:.5;cursor:wait}a{color:var(--green);text-decoration:none}svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.boot{padding:80px;text-align:center;color:var(--muted)}.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--forest);color:#dce7de;padding:30px 20px;display:flex;flex-direction:column;position:fixed;width:236px;height:100vh;gap:30px}.brand{display:flex;gap:12px;align-items:center;padding:0 6px}.brand-symbol{display:grid;place-items:center;width:40px;height:40px;border:1px solid #b4cfb770;border-radius:12px;font-size:24px;color:#e4dec8}.brand strong{display:block;color:white;font-size:18px;font-weight:650;letter-spacing:.2px}.brand small{font-size:10px;letter-spacing:2px;color:#98b0a4}.nav-label{font-size:10px;letter-spacing:2px;color:#829c8e;padding:0 12px;margin-bottom:12px}.nav{display:grid;gap:7px}.nav button{display:flex;align-items:center;gap:12px;border-radius:9px;padding:13px 14px;text-align:left;font-size:14px;color:#c0d1c7}.nav button:hover{background:#ffffff09}.nav button.active{background:#e7e6d9;color:var(--forest);font-weight:600}.nav button span{margin-left:auto;font-size:11px;opacity:.7}.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff18;padding:24px 8px 0}.user{display:flex;gap:10px;align-items:center;margin-bottom:14px}.avatar{background:#d7e1d1;color:#274b3b;border-radius:50%;width:36px;height:36px;display:grid;place-items:center}.user strong{font-size:13px;display:block}.user small{color:#89a496;font-size:11px}.side-actions{display:flex;gap:15px;font-size:12px;color:#8ea89a}.main{grid-column:2;min-width:0}.topbar{height:78px;border-bottom:1px solid var(--line);padding:0 36px;display:flex;align-items:center;justify-content:space-between;background:#fbfcf8}.topbar strong{font-size:15px}.topbar small{color:var(--muted);font-size:12px;margin-left:14px}.environment{display:flex;align-items:center;gap:7px;font-size:11px;color:#788c7c;border:1px solid var(--line);border-radius:20px;padding:6px 10px}.environment:before{content:'';width:6px;height:6px;border-radius:50%;background:#8ca580}.content{padding:34px 36px 48px;max-width:1560px;margin:auto}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}.page-heading h1{font-weight:600;font-size:30px;letter-spacing:-.6px;margin:9px 0}.page-heading p{margin:0;font-size:13px;color:var(--muted);line-height:1.7}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--line);padding:10px 16px;background:white;font-size:13px;font-weight:500;white-space:nowrap}.btn:hover{background:#eef3ec}.btn.primary{background:var(--forest);color:#fff;border-color:var(--forest)}.btn.primary:hover{background:#285146}.btn.small{padding:7px 11px;font-size:12px}.btn.danger{color:var(--danger)}.btn.ghost{background:none}.hero{border-radius:16px;background:#e6ecdf;display:grid;grid-template-columns:1fr 300px;overflow:hidden;padding:34px 36px;margin-bottom:24px;border:1px solid #dce4d5}.hero h2{font-size:29px;font-weight:550;line-height:1.55;letter-spacing:-.4px;margin:12px 0}.hero p{font-size:13px;color:#64786a;max-width:550px;line-height:1.85;margin:0 0 22px}.hero-art{display:flex;align-items:center;justify-content:center;position:relative}.paper-art{width:192px;height:206px;background:#fbfcf6;border:1px solid #c8d4c0;border-radius:7px;transform:rotate(8deg);box-shadow:-20px 18px 0 #cfdbc9;padding:24px;color:#82977d}.paper-art b{font-size:14px;display:block;border-bottom:1px solid #dce3d7;padding-bottom:16px;color:#36553d}.paper-art i{display:block;height:9px;background:#e7ebdf;margin-top:17px;border-radius:3px}.paper-art i:nth-child(3){width:68%}.paper-art .stamp{font-size:9px;letter-spacing:2px;position:absolute;bottom:23px;right:22px;color:#a0ae8e}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:30px}.stat{background:white;border:1px solid var(--line);border-radius:12px;padding:20px 22px}.stat-head{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.stat strong{font-size:32px;display:block;margin-top:16px;font-weight:550}.stat small{color:var(--muted);font-size:11px}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.panel-heading h2{margin:0;font-size:17px;font-weight:600}.panel-heading span{font-size:12px;color:var(--muted)}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.search{position:relative;flex:1;min-width:180px}.search svg{position:absolute;top:12px;left:13px;color:var(--muted);width:18px}.search input{padding-left:40px}.toolbar select{width:auto;max-width:210px;min-width:120px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:11px 12px;background:#fcfdf9;color:var(--ink);font-size:13px;min-width:0}input:focus,select:focus,textarea:focus{border-color:#6e9a7d;box-shadow:0 0 0 3px #70976a12}textarea{min-height:85px;resize:vertical}label{display:block;font-size:12px;font-weight:500;margin-bottom:7px}label small{color:var(--muted);font-weight:400}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.product-card{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;position:relative;transition:box-shadow .15s,border-color .15s}.product-card:hover{box-shadow:var(--shadow)}.product-card.selected{border-color:#47866a;box-shadow:0 0 0 2px #47866a30}.product-visual{height:200px;background:#eef1e8;position:relative;display:grid;place-items:center}.product-visual img{width:100%;height:100%;object-fit:contain;padding:16px;mix-blend-mode:multiply}.no-photo{color:#abb8a4;display:grid;justify-items:center;gap:8px;font-size:11px}.no-photo svg{width:42px;height:42px;stroke-width:1}.product-check{position:absolute;left:14px;top:14px;background:#fff;border-radius:5px;width:22px;height:22px;padding:3px;z-index:1}.product-check input{width:16px;height:16px;margin:0;accent-color:var(--green)}.product-tag{position:absolute;right:14px;top:14px;font-size:10px;background:#f9fbf4d9;border-radius:4px;padding:5px 7px;color:#668165}.product-body{padding:18px 20px}.product-meta{font-size:11px;color:var(--muted);margin-bottom:8px;display:flex;justify-content:space-between}.product-body h3{font-size:16px;margin:0 0 10px;font-weight:600}.product-bottom{border-top:1px solid #edf0e9;padding-top:14px;display:flex;justify-content:space-between;align-items:center}.price{font-size:20px;font-weight:600;letter-spacing:-.4px}.price small{font-size:11px;font-weight:400;color:var(--muted);letter-spacing:0}.cost{font-size:11px;color:#839081;margin:7px 0 0}.selection-bar{position:sticky;bottom:20px;z-index:3;background:var(--forest);color:white;border-radius:12px;box-shadow:var(--shadow);padding:14px 20px;display:flex;align-items:center;justify-content:space-between;margin-top:24px}.selection-bar .btn{background:#e9e5d5;color:var(--forest);border:0}.empty{padding:56px 20px;text-align:center;color:var(--muted);font-size:13px}.empty svg{width:38px;height:38px;display:block;margin:0 auto 18px;color:#a8b9a4}.empty strong{display:block;color:#556f59;font-size:16px;margin-bottom:9px}.table-wrap{overflow:auto}table.data-table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}table.data-table th{text-align:left;background:#f7f9f3;padding:13px 15px;color:#849283;font-size:11px;font-weight:500}table.data-table td{padding:16px 15px;border-bottom:1px solid #edf1e9}table.data-table tr:last-child td{border:0}.tag{font-size:11px;padding:4px 8px;border-radius:5px;background:#eef4ea;color:#71936c;display:inline-block}.tag.gray{background:#f0f2ee;color:#899487}.split{display:grid;grid-template-columns:1.6fr 1fr;gap:22px}.supplier-item{display:flex;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid #eef2e9}.supplier-item:last-child{border:0}.supplier-logo{width:43px;height:43px;background:#eef2e5;color:#839172;border-radius:10px;display:grid;place-items:center;font-size:19px}.supplier-info{flex:1}.supplier-info strong{font-size:14px;display:block;margin-bottom:6px}.supplier-info small{color:var(--muted);font-size:11px}.category-row{display:flex;align-items:center;gap:10px;padding:13px 8px;font-size:13px;border-bottom:1px solid #f0f3ec}.category-row small{margin-left:auto;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid .full{grid-column:1/-1}.field-hint{font-size:11px;color:var(--muted);line-height:1.7;margin-top:6px}.notice{background:#f7f3e7;color:#8b7754;font-size:12px;line-height:1.8;padding:12px 16px;border:1px solid #ede4d0;border-radius:8px;margin:16px 0}.notice.error{background:#fbeee9;color:var(--danger);border-color:#f0d7cd}.quote-line input,.quote-line select{padding:8px 7px;font-size:12px}.quote-line td{vertical-align:top}.quote-table{min-width:1040px}.quote-product{display:flex;gap:10px;align-items:center;width:170px;white-space:normal}.quote-product img{width:40px;height:44px;object-fit:contain}.quote-product strong{display:block;font-size:12px}.quote-product small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.quote-line .qty-field{display:grid;gap:6px;width:135px}.quote-line .number-field{width:90px}.quote-line .cbm-field{width:138px;display:grid;gap:6px}.quote-summary{background:#edf3e7;padding:22px 24px;border-radius:9px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:16px}.quote-summary .amount{font-size:27px;font-weight:600}.quote-summary small{color:var(--muted);font-size:11px;display:block;margin:6px 0}.quote-summary b{font-size:13px;font-weight:500}.save-note{font-size:11px;color:var(--muted);margin-top:18px}.template-workspace{display:grid;grid-template-columns:minmax(400px,1fr) 268px;gap:20px}.canvas-shell{background:#e4e9df;border:1px solid #d8e1d3;border-radius:12px;overflow:auto;padding:26px;min-height:650px}.canvas-holder{margin:0 auto;position:relative}.template-canvas{background:#fff;box-shadow:0 8px 24px #394b3017;transform-origin:top left;position:relative}.canvas-element{position:absolute;border:1px dashed transparent;user-select:none;cursor:move;line-height:1.4;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}.canvas-element:hover{border-color:#b1c9ac}.canvas-element.chosen{border:1px solid #418369;background:#41836908}.resize-handle{position:absolute;right:0;bottom:0;width:11px;height:11px;background:#418369;cursor:se-resize;border:2px solid white}.canvas-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:inherit}.canvas-table th{height:32px;background:#e9f1ed;border-bottom:2px solid #173a35;font-size:9px;font-weight:500}.canvas-table td{border-bottom:1px solid #dfe7e0;height:72px;text-align:center;font-size:9px;color:#9aa899}.props{padding:18px;align-self:start}.props h3{font-size:13px;margin:0 0 18px}.props .form-grid{gap:12px}.props label{font-size:11px}.props input,.props select,.props textarea{padding:8px;font-size:12px}.element-list{display:grid;gap:6px}.element-list button{text-align:left;font-size:12px;padding:9px;border:1px solid var(--line);border-radius:5px;display:flex;align-items:center;justify-content:space-between}.element-list button.active{border-color:#6a927b;background:#eef4eb}.column-item{display:flex;gap:6px;align-items:center;font-size:11px;padding:6px 0}.column-item input{width:15px}.column-item span{flex:1}.column-item button{padding:2px 4px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.auth-story{background:var(--forest);color:#dce5d7;padding:54px 9%;display:flex;flex-direction:column;justify-content:space-between}.auth-story h1{font-size:42px;font-weight:500;line-height:1.55;letter-spacing:-1px;margin-top:70px}.auth-story p{font-size:14px;color:#9db6a6;line-height:1.9;max-width:380px}.auth-story footer{font-size:10px;letter-spacing:2px;color:#7d9d88}.auth-form{display:flex;align-items:center;justify-content:center;padding:40px}.auth-box{max-width:360px;width:100%}.auth-box h2{font-size:27px;font-weight:600;margin:10px 0}.auth-box p{font-size:13px;color:var(--muted);line-height:1.7;margin:0 0 30px}.auth-box .field{margin-bottom:19px}.auth-box .btn{width:100%;margin-top:8px}.auth-foot{font-size:11px;color:var(--muted);text-align:center;margin-top:24px}dialog{border:0;border-radius:14px;box-shadow:0 30px 100px #142b2638;width:min(660px,calc(100vw - 32px));padding:28px;max-height:90vh;color:var(--ink)}dialog::backdrop{background:#152e2660;backdrop-filter:blur(3px)}.dialog-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.dialog-title h2{font-size:20px;font-weight:600;margin:0}.dialog-title button{font-size:24px;color:var(--muted)}.dialog-actions{display:flex;justify-content:end;gap:10px;margin-top:26px}.photo-upload{display:flex;gap:16px;align-items:center;padding:16px;border:1px dashed #cbd8c6;border-radius:8px;margin-bottom:20px}.photo-upload img{width:70px;height:70px;object-fit:contain}.photo-upload input{padding:5px;border:0;background:transparent}.photo-upload small{display:block;font-size:11px;color:var(--muted);margin:6px 0}.account-list{margin-top:20px}.error-text{color:var(--danger);font-size:12px;margin:12px 0;line-height:1.6}#toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(30px);background:#173a35;color:white;z-index:20;padding:13px 22px;border-radius:9px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;box-shadow:var(--shadow)}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}@media(min-width:1500px){.product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1150px){.sidebar{width:204px;padding:26px 15px}.shell{grid-template-columns:204px minmax(0,1fr)}.content{padding:26px 24px}.topbar{padding:0 24px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1fr 200px;padding:25px}.template-workspace{grid-template-columns:1fr}.props{display:grid;grid-template-columns:1fr 1fr;gap:20px}}@media(max-width:760px){.shell{display:block}.sidebar{position:static;width:100%;height:auto;padding:16px;gap:14px}.brand small,.nav-label,.sidebar-foot{display:none}.brand strong{font-size:16px}.brand-symbol{width:32px;height:32px}.nav{display:flex;overflow-x:auto;gap:4px}.nav button{font-size:12px;padding:10px;white-space:nowrap}.nav button svg{width:17px}.nav button span{display:none}.topbar{height:58px;padding:0 18px}.topbar small{display:none}.content{padding:24px 16px}.page-heading{align-items:start}.page-heading h1{font-size:25px}.hero{grid-template-columns:1fr;padding:24px}.hero-art{display:none}.hero h2{font-size:24px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:16px}.stat strong{font-size:25px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-visual{height:145px}.product-body{padding:13px}.product-body h3{font-size:14px}.product-meta{font-size:10px}.product-bottom{flex-wrap:wrap;gap:10px}.price{font-size:17px}.split{grid-template-columns:1fr}.panel{padding:18px}.form-grid{gap:12px}.quote-summary{flex-direction:column;align-items:start}.template-workspace{display:block}.props{display:block;margin-top:20px}.canvas-shell{min-height:0;padding:15px}.auth-shell{display:block}.auth-story{padding:30px}.auth-story h1,.auth-story p,.auth-story footer{display:none}.auth-form{padding:40px 24px}.auth-box{max-width:400px}.page-heading .actions{justify-content:end}.environment{font-size:10px}}@media(max-width:420px){.product-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.page-heading{flex-wrap:wrap}.toolbar select{max-width:100%}}
[hidden]{display:none!important}
.sidebar{top:0;left:0}.product-visual{overflow:hidden}.product-visual img{position:absolute;inset:0;min-width:0;min-height:0}
.mobile-actions{display:none}@media(max-width:760px){.mobile-actions{display:flex;gap:8px;font-size:11px;color:var(--muted)}.environment{display:none}}
.photo-button{padding:0;background:transparent;border:0;cursor:zoom-in;flex-shrink:0}.large-photo{display:block;width:100%;max-height:75vh;object-fit:contain}#photo-dialog{width:min(960px,calc(100vw - 24px));padding:20px}.picker-toolbar{display:flex;gap:12px;margin-bottom:16px}.picker-toolbar input{flex:1;min-width:0}.picker-toolbar select{max-width:220px}.picker-image{width:64px;height:64px;object-fit:contain;border-radius:8px;background:#f5f5ee}.picker-choice{display:flex;flex:1;align-items:center;gap:14px;cursor:pointer}.picker-choice input{width:18px;flex-shrink:0}.supplier-link{font-weight:600;text-align:left;text-decoration:underline;text-underline-offset:4px}.quote-product{width:270px;align-items:flex-start}.quote-product>div{flex:1;min-width:0;display:grid;gap:7px}.quote-product img{width:52px;height:58px}.remove-line{color:var(--danger);font-size:22px;padding:6px 0}.add-next{margin-top:18px}.text-variables{display:flex;flex-wrap:wrap;gap:6px}.text-variables .btn{padding:5px 7px;font-size:10px}.quote-table{min-width:1160px}.quote-summary .notice{margin:0}.quote-summary{flex-wrap:wrap}.supplier-info{min-width:0}.supplier-item{flex-wrap:wrap}@media(max-width:760px){.picker-toolbar{flex-direction:column}.picker-toolbar select{max-width:none}.picker-image{width:54px;height:54px}.supplier-item .btn{font-size:11px}.quote-summary{align-items:flex-start}.large-photo{max-height:65vh}}
.nav a{display:flex;align-items:center;gap:12px;border-radius:9px;padding:13px 14px;text-align:left;font-size:14px;color:#c0d1c7}.nav a:hover{background:#ffffff09}.nav a.active{background:#e7e6d9;color:var(--forest);font-weight:600}.nav a span{margin-left:auto;font-size:11px;opacity:.7}.tabbar{display:flex;align-items:flex-end;gap:2px;padding:10px 36px 0;background:#fbfcf8;border-bottom:1px solid var(--line);overflow-x:auto;position:sticky;top:0;z-index:5}.tab{display:flex;align-items:center;flex-shrink:0;border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;color:#5f7268;font-size:13px}.tab a{display:flex;align-items:center;gap:6px;padding:9px 6px 9px 14px;color:inherit;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}.tab:first-child a{padding:9px 14px}.tab button{padding:4px 10px 4px 4px;color:#9aa8a0;font-size:15px}.tab button:hover{color:var(--danger)}.tab:hover{background:#f0f3ec}.tab.active{background:var(--bg);border-color:var(--line);color:var(--forest);font-weight:600;margin-bottom:-1px;padding-bottom:1px}.tab.dirty a:after{content:'';width:6px;height:6px;border-radius:50%;background:#c49a3c}.canvas-element.overflow{border:1px dashed #c4553f;background:#c4553f0d}.form-section{font-size:14px;margin:8px 0 0;font-weight:600}.form-section small{font-size:11px;color:var(--muted);font-weight:400;margin-left:8px}@media(max-width:1150px){.tabbar{padding:8px 24px 0}}@media(max-width:760px){.nav a{font-size:12px;padding:10px;white-space:nowrap}.nav a svg{width:17px}.nav a span{display:none}.tabbar{padding:6px 12px 0}.tab{font-size:12px}}
.column-item .column-label{flex:1;min-width:0;padding:5px 7px;font-size:12px;border-color:transparent;background:transparent}.column-item .column-label:hover,.column-item .column-label:focus{border-color:var(--line);background:#fcfdf9}
.column-item .column-label{border-color:var(--line);background:#fff}.label-edit{color:#8aa093;font-size:13px}.canvas-image{width:100%;height:100%;object-fit:contain;pointer-events:none}.canvas-placeholder{display:grid;place-items:center;align-content:center;gap:4px;width:100%;height:100%;font-size:11px;color:#8b9a90;background:#f4f6f1;border:1px dashed #c9d5c6;text-align:center;line-height:1.4}.canvas-placeholder svg{width:22px;height:22px}.image-upload{margin-top:6px}.image-upload input{padding:6px;font-size:11px}
.catalog-only{display:flex;gap:8px;align-items:center;font-size:13px}.catalog-only input{width:16px}.share-title{font-size:15px;margin:26px 0 12px}.share-item{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:10px;display:grid;gap:8px}.share-item.off{opacity:.6}.share-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.share-head small{color:var(--muted);font-size:11px}.share-item input{font-size:12px;padding:7px 9px}

/* ===== 2026-10-21 手机适配增强（允许双指缩放，不设置 user-scalable=no / maximum-scale） ===== */
@media (max-width: 760px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  /* iOS Safari 输入框字号 <16px 会自动放大页面，统一提到 16px */
  input:not([type=checkbox]):not([type=radio]), select, textarea { font-size: 16px; }
  .btn { min-height: 40px; padding: 11px 15px; }
  .btn.small { min-height: 34px; }
  .nav a { min-height: 42px; }
  .mobile-actions button { min-height: 34px; padding: 4px 8px; }
  .tabbar { -webkit-overflow-scrolling: touch; }
  .table-wrap { -webkit-overflow-scrolling: touch; }
  .content { padding-bottom: calc(48px + env(safe-area-inset-bottom)); }
  .selection-bar { bottom: calc(12px + env(safe-area-inset-bottom)); }
  dialog { padding: 20px; max-height: calc(100vh - 40px); }
  .dialog-actions { flex-wrap: wrap; }
  .dialog-actions .btn { flex: 1; }
  .quote-line input, .quote-line select { font-size: 16px; }
  .props input, .props select, .props textarea { font-size: 16px; }
  .auth-story { padding: 24px 22px 18px; }
  .auth-form { padding: 32px 22px; }
  .page-heading p { font-size: 14px; }
  .product-body h3 { font-size: 15px; }
  .panel-heading h2 { font-size: 16px; }
  .hero p { font-size: 14px; }
  .page-heading h1 { font-size: 26px; }
}
@media (max-width: 420px) {
  .product-grid { gap: 10px; }
  .product-body { padding: 12px; }
  .product-bottom { gap: 8px; }
  .stats { gap: 8px; }
  .stat { padding: 14px; }
  .form-grid { gap: 10px; }
  .toolbar { gap: 8px; }
}
.pager{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;margin:22px 0 6px}.pager .btn{min-width:38px}.pager-gap{color:var(--muted);padding:0 2px}.pager-info{color:var(--muted);font-size:12px;margin-left:6px}.product-bottom .actions{gap:6px;justify-content:flex-end}
