:root{font-family:Avenir Next,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;--bg: #f5f1e9;--panel: #fffdf9;--ink: #1d1a16;--sub: #6f655a;--brand: #145a42;--brand-soft: #dbeee7;--line: #d8cec2;--danger: #b42318}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(circle at 18% 20%,#e6d5bd 0%,transparent 32%),radial-gradient(circle at 80% 0%,#cee7de 0%,transparent 28%),var(--bg)}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 20px #4a331414}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(460px,100%);padding:28px;display:flex;flex-direction:column;gap:12px}.login-card h1{margin:0;font-size:28px}.login-card p{margin:0 0 8px;color:var(--sub)}label{display:flex;flex-direction:column;gap:6px;font-size:14px}input,select,textarea,button{font:inherit;border-radius:10px;border:1px solid var(--line);padding:10px 12px}button{background:var(--brand);color:#fff;border:none;cursor:pointer}button.active{background:#0d3f2e}button:disabled{opacity:.7}.admin-shell{min-height:100vh;padding:16px;display:grid;grid-template-columns:250px minmax(0,1fr);gap:14px}.admin-sidebar{padding:14px;display:flex;flex-direction:column;min-height:calc(100vh - 32px)}.admin-brand h1{margin:0;font-size:20px}.admin-brand p{margin:6px 0 0;color:var(--sub);font-size:13px}.admin-nav{margin-top:18px;display:flex;flex-direction:column;gap:8px}.admin-nav button,.admin-sidebar-footer button{width:100%;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);display:inline-flex;align-items:center;gap:8px;font-weight:600}.nav-mark{width:20px;height:20px;border-radius:999px;display:inline-grid;place-items:center;background:#efe7db;color:#5b5247;font-size:11px;font-weight:700;flex:0 0 auto}.admin-nav button.active{color:#fff;background:var(--brand);border-color:transparent}.admin-sidebar-footer{margin-top:auto;padding-top:12px}.admin-sidebar-footer button{background:#fff6f6;color:#8a2f2f;border-color:#f1cece}.admin-main{min-width:0;display:flex;flex-direction:column;gap:12px}.admin-content{min-width:0}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.filters{display:flex;gap:8px}section.card{padding:14px}.error{color:var(--danger);font-size:14px}.table-wrap{width:100%;overflow:auto}.empty-state{border:1px dashed var(--line);border-radius:14px;padding:24px 16px;text-align:center;background:#fff;color:var(--sub)}.empty-state.compact{padding:18px 12px}.empty-state-icon{width:44px;height:44px;border-radius:999px;border:1px solid var(--line);margin:0 auto 10px;display:grid;place-items:center;color:#7b7268;background:#faf7f2}.empty-state h3{margin:0;font-size:15px;color:#4a433a}.empty-state p{margin:6px 0 0;font-size:13px}.table-scroll-x{width:100%;overflow-x:auto;overflow-y:hidden;height:12px;margin-bottom:8px}.table-scroll-x-inner{height:1px}table{border-collapse:collapse;width:100%;min-width:1200px}th,td{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:top;font-size:13px}th{color:var(--sub);font-weight:600;position:sticky;top:0;background:#f7f3ec}td.address{max-width:220px}.cell-expand-wrap{display:flex;flex-direction:column;gap:4px;min-width:120px}.link-btn{background:transparent;color:#145a42;border:none;padding:0;font-size:12px;text-align:left;text-decoration:underline;cursor:pointer}.prompt-editor{display:grid;gap:12px}.prompt-textarea{min-height:380px;width:100%;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.45}.prompt-variable-box{border:1px solid var(--line);border-radius:14px;background:#fbf8f2;padding:14px}.prompt-variable-box strong{display:block;margin-bottom:6px}.prompt-variable-box p{margin:0 0 12px;color:var(--sub);font-size:13px}.prompt-variable-list{display:grid;gap:8px}.prompt-variable-item{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:10px;align-items:start}.prompt-variable-item code{display:inline-flex;width:fit-content;border-radius:999px;background:#f1ece3;color:#3b342c;padding:4px 10px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.prompt-variable-item span{color:var(--sub);font-size:13px;line-height:1.5}.product-admin-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px}.product-list-panel,.product-editor-panel{padding:14px}.product-list{display:flex;flex-direction:column;gap:8px}.list-item,.active-list-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}.active-list-item{border-color:var(--brand);background:var(--brand-soft)}.row-select{flex:1;background:transparent;color:var(--ink);border:none;padding:0;text-align:left}.row-select strong,.row-select span{display:block}.row-select span{color:var(--sub);font-size:12px;margin-top:4px}.danger-btn{background:#fff1f1;color:var(--danger);border:1px solid #f4c7c7}.product-form-grid,.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.slot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.point-admin-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px}.point-user-panel,.point-detail-panel{padding:14px}.point-user-list{margin-top:10px;display:flex;flex-direction:column;gap:8px;max-height:70vh;overflow:auto}.point-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.point-kpi-item{padding:10px 12px}.point-kpi-item strong{font-size:20px}.point-grant-box{padding:12px;margin-bottom:12px}.point-grant-box h3{margin:0 0 10px}.point-grant-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}@media(max-width:960px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{min-height:auto}.admin-nav{flex-direction:row;overflow-x:auto;padding-bottom:4px}.admin-nav button{width:auto;white-space:nowrap}}.full-span{grid-column:1 / -1}.checkbox-line{flex-direction:row;align-items:center}.checkbox-line input{width:auto}.template-section{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.slot-editor-list{display:flex;flex-direction:column;gap:12px}.slot-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.svg-check-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.svg-check{border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.5}.svg-check.success{background:#eef8f3;border:1px solid #cde8d8;color:#145a42}.svg-check.warning{background:#fff6e6;border:1px solid #f3d8a6;color:#8a5200}.muted-text{color:var(--sub);font-size:12px}.buyer-show-review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.buyer-show-review-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}.buyer-show-review-media{background:#f4efe7}.buyer-show-review-media img,.buyer-show-review-media video{display:block;width:100%;max-height:320px;object-fit:cover}.buyer-show-review-body{padding:12px}.active-slot-card{border-color:var(--brand);box-shadow:0 0 0 2px #145a421f}.visual-editor{margin-bottom:14px;padding:12px}.visual-preview-stage{position:relative;width:100%;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#faf8f5}.visual-preview-svg,.visual-preview-svg svg{width:100%;height:100%}.visual-preview-svg{position:absolute;inset:0}.visual-slot{position:absolute;border:2px solid #145a42;background:#145a4224;cursor:move;min-width:16px;min-height:16px}.visual-slot.active{border-color:#8a2be2;background:#8a2be22e}.visual-slot-label{position:absolute;top:4px;left:4px;padding:2px 6px;border-radius:999px;background:#ffffffeb;font-size:11px;font-weight:700}.visual-slot-handle{position:absolute;right:-6px;bottom:-6px;width:12px;height:12px;padding:0;border:2px solid #fff;border-radius:999px;background:#145a42;cursor:nwse-resize}@media(max-width:900px){.toolbar{flex-direction:column;align-items:flex-start}.filters{width:100%;flex-wrap:wrap}.filters input,.filters select,.filters button{width:100%}.product-admin-grid,.product-form-grid,.slot-grid{grid-template-columns:1fr}}
