:root { --ink:#17201d; --muted:#6d7571; --paper:#f3f1eb; --white:#fff; --orange:#ef5b32; --line:#dedfdc; --green:#2c7a49; --red:#b43d29; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#f7f7f5; font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
.admin-login-body { min-height:100vh; display:grid; place-items:center; padding:25px; background:linear-gradient(135deg,#171f1c,#30403a); }
.admin-login-card { width:min(430px,100%); padding:42px; background:white; box-shadow:0 30px 100px rgba(0,0,0,.3); }
.admin-brand { display:flex; gap:15px; align-items:center; margin-bottom:32px; }
.admin-brand > span,.admin-logo > span { width:48px;height:48px;display:grid;place-items:center;background:var(--orange);color:white;border-radius:50%;font:bold 23px Georgia,serif; }
.admin-brand h1 { margin:0 0 5px; font-size:25px; }.admin-brand p { margin:0;color:var(--muted);font-size:12px; }
.admin-login-card form { display:grid; gap:18px; }.admin-login-card label,.form-section label { display:grid;gap:8px;font-size:13px;font-weight:700; }
.admin-login-card input,.form-section input,.form-section select,.form-section textarea,.order-admin-head select { width:100%;border:1px solid var(--line);padding:12px 13px;background:#fff;outline:0; }
.admin-login-card input:focus,.form-section input:focus,.form-section select:focus,.form-section textarea:focus { border-color:var(--orange);box-shadow:0 0 0 3px rgba(239,91,50,.1); }
.admin-login-card button { border:0;background:var(--orange);color:#fff;padding:14px;cursor:pointer;font-weight:800; }.admin-login-card>a { display:block;margin-top:24px;color:var(--muted);font-size:12px; }
.admin-shell { min-height:100vh; display:grid; grid-template-columns:245px 1fr; }
.admin-sidebar { position:sticky;top:0;height:100vh;background:var(--ink);color:#fff;padding:28px 18px;display:flex;flex-direction:column; }
.admin-logo { display:flex;gap:12px;align-items:center;padding:0 10px 28px;border-bottom:1px solid rgba(255,255,255,.1); }
.admin-logo>span { width:42px;height:42px; }.admin-logo div { display:flex;flex-direction:column; }.admin-logo strong { font-size:20px;letter-spacing:.12em; }.admin-logo small { margin-top:5px;color:rgba(255,255,255,.45);font-size:9px;letter-spacing:.12em; }
.admin-sidebar nav { display:grid;gap:5px;padding-top:26px; }.admin-sidebar nav a,.sidebar-bottom a { padding:12px 14px;border-radius:5px;color:rgba(255,255,255,.65);font-size:13px; }
.admin-sidebar nav a:hover,.admin-sidebar nav a.active { background:rgba(255,255,255,.1);color:#fff; }.admin-sidebar nav a.active { border-left:3px solid var(--orange); }
.sidebar-bottom { margin-top:auto;display:grid;border-top:1px solid rgba(255,255,255,.1);padding-top:15px; }
.admin-main { min-width:0;padding:34px 40px 70px; }.admin-topbar { display:flex;justify-content:space-between;align-items:center;margin-bottom:32px; }.admin-topbar p { margin:0 0 7px;color:var(--muted);font-size:11px; }.admin-topbar h1 { margin:0;font-size:30px; }.admin-topbar>span { font-size:12px;color:var(--muted); }
.admin-alert { padding:13px 16px;margin-bottom:20px;font-size:13px; }.admin-alert.success { background:#e3f3e8;color:#245f38; }.admin-alert.error { background:#ffe7df;color:#8f311c; }
.stat-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px; }.stat-grid article { min-height:155px;background:#fff;border:1px solid var(--line);padding:23px;display:flex;flex-direction:column; }.stat-grid span { color:var(--muted);font-size:12px; }.stat-grid strong { font:700 36px Georgia,serif;margin:13px 0; }.stat-grid a,.stat-grid small { margin-top:auto;color:var(--muted);font-size:11px; }.stat-grid a:hover { color:var(--orange); }
.admin-panel { background:#fff;border:1px solid var(--line);padding:26px;margin-bottom:22px; }.panel-heading { display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:24px; }.panel-heading h2,.form-section h2 { margin:0 0 6px;font-size:18px; }.panel-heading p,.form-section>p,.setting-title p { margin:0;color:var(--muted);font-size:11px;line-height:1.6; }
.primary-admin-button,.secondary-button { display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:0;background:var(--orange);color:#fff;font-weight:800;font-size:12px;cursor:pointer; }.secondary-button { background:var(--ink); }
.table-wrap { overflow:auto; }.table-wrap table { width:100%;border-collapse:collapse;min-width:800px; }.table-wrap th { text-align:left;color:var(--muted);font-size:10px;letter-spacing:.08em;padding:12px;border-bottom:1px solid var(--line); }.table-wrap td { padding:14px 12px;border-bottom:1px solid #ececea;font-size:12px;vertical-align:middle; }.table-wrap td>a { color:var(--orange); }.table-wrap tr:last-child td { border-bottom:0; }
.product-cell { display:flex;align-items:center;gap:12px;min-width:245px; }.product-cell img,.mini-visual { width:52px;height:52px;object-fit:cover;background:#ddd;flex:none; }.product-cell div { display:flex;flex-direction:column;gap:5px; }.product-cell small,.table-sub { display:block;color:var(--muted);font-size:9px; }
.product-actions { display:flex;align-items:center;gap:12px;white-space:nowrap; }.product-actions>a { color:var(--orange); }.product-actions form { display:inline;margin:0; }.product-actions button { border:0;background:transparent;color:var(--red);padding:0;cursor:pointer;font-size:12px; }.product-actions button:hover { text-decoration:underline; }
.mini-visual.visual-ink { background:#353c38; }.mini-visual.visual-pastel { background:#db9f7d; }.mini-visual.visual-line { background:#ddd3c2; }.mini-visual.visual-botanical { background:#9bb19b; }.mini-visual.visual-grain { background:#d9b56d; }.mini-visual.visual-watercolor { background:#92bbc1; }.mini-visual.visual-chalk { background:#394a44; }.mini-visual.visual-paper { background:#c9b9a4; }
.ok-dot,.warn-dot,.status-label { display:inline-flex;padding:6px 9px;border-radius:99px;font-size:10px;font-weight:800; }.ok-dot,.status-paid,.status-published { background:#dff2e5;color:#27633b; }.warn-dot,.status-pending,.status-draft { background:#fff0ce;color:#8a5910; }.status-cancelled,.status-refunded { background:#eee;color:#666; }
.quick-actions { display:grid;grid-template-columns:repeat(3,1fr);gap:18px; }.quick-actions a { background:var(--ink);color:#fff;padding:25px;display:flex;gap:18px;align-items:center; }.quick-actions b { width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--orange);font-size:26px; }.quick-actions span { display:flex;flex-direction:column;gap:5px; }.quick-actions small { color:rgba(255,255,255,.52); }
.admin-empty { padding:55px;text-align:center;color:var(--muted);font-size:13px;background:var(--paper); }
.form-columns { display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start; }.form-main { min-width:0; }.form-section { display:grid;gap:20px; }.form-section em { color:var(--orange);font-style:normal; }.two-fields { display:grid;grid-template-columns:1fr 1fr;gap:16px; }.form-section textarea { resize:vertical;line-height:1.7; }.sticky-card { position:sticky;top:24px; }.sticky-card .primary-admin-button { width:100%; }.link-danger { width:100%;border:0;background:transparent;color:var(--red);padding:10px;cursor:pointer; }
.upload-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px; }.upload-box { min-height:180px;padding:18px;border:1px dashed #bbb;background:#fafaf8;align-content:start; }.upload-box>img { width:130px;height:130px;object-fit:cover; }.upload-box small { color:var(--muted);font-weight:400;line-height:1.5; }.gallery-preview { display:flex;gap:7px;flex-wrap:wrap; }.gallery-preview img { width:65px;height:65px;object-fit:cover; }
.delivery-section { border-left:4px solid var(--orange); }.filter-tabs { display:flex;gap:5px;flex-wrap:wrap; }.filter-tabs a { padding:8px 11px;background:var(--paper);font-size:11px; }.filter-tabs a.active { background:var(--ink);color:#fff; }.order-type-filters { margin-top:8px; }.admin-back { margin-bottom:14px;font-size:12px;color:var(--muted); }
.order-admin-head { display:flex;justify-content:space-between;align-items:center;gap:25px; }.order-admin-head h2 { font-size:25px;margin:12px 0 6px; }.order-admin-head p { color:var(--muted);font-size:12px; }.order-admin-head form { display:flex;align-items:end;gap:10px; }.order-admin-head label { display:grid;gap:7px;font-size:11px; }
.admin-main .order-page { padding:0;min-height:0; }.admin-main .order-success { display:none; }.admin-main .order-detail-grid { margin-top:0; }.admin-main .delivery-box,.admin-main .payment-pending { margin-bottom:0; }
.settings-form { max-width:900px; }.setting-title { display:flex;align-items:flex-start;justify-content:space-between;gap:25px; }.switch { display:flex!important;grid-template-columns:auto auto!important;align-items:center;gap:9px!important; }.switch input { width:auto!important; }.settings-submit { min-width:160px; }.admin-note { color:var(--muted);font-size:11px;line-height:1.7; }
.admin-search { display:flex;gap:8px;min-width:min(430px,100%); }.admin-search input { min-width:0;flex:1;border:1px solid var(--line);padding:10px 12px;outline:0; }.admin-search input:focus { border-color:var(--orange); }.member-admin-actions { display:flex;align-items:center;gap:7px;min-width:390px; }.member-admin-actions select { min-height:38px;border:1px solid var(--line);padding:0 9px;background:#fff; }.member-admin-actions .secondary-button { min-height:38px;padding:0 12px;white-space:nowrap; }.member-admin-actions .link-danger { width:auto;white-space:nowrap; }

.traffic-monitor { min-width:0;--traffic-green:#176443;--traffic-soft:#edf6f1; }
.traffic-heading { display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:18px; }
.traffic-heading h2 { margin:0 0 7px;font-size:17px; }.traffic-heading p { margin:0;color:var(--muted);font-size:11px; }
.traffic-ranges { display:flex;align-items:center;gap:4px;flex-wrap:wrap; }.traffic-ranges a { padding:8px 11px;font-size:11px;border:1px solid transparent; }.traffic-ranges a:hover { border-color:#bcd7ca; }.traffic-ranges a.active { background:var(--traffic-green);color:#fff; }
.traffic-summary { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px; }
.traffic-summary article { min-width:0;background:#fff;border:1px solid #d8e5de;border-radius:13px;padding:19px;min-height:128px;display:flex;flex-direction:column; }
.traffic-summary span { color:var(--muted);font-size:11px; }.traffic-summary strong { margin:10px 0 8px;font:700 29px Georgia,serif;color:var(--traffic-green); }.traffic-summary small { margin-top:auto;color:var(--muted);font-size:10px; }
.traffic-detail-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(420px,1.45fr);gap:14px;margin-bottom:18px; }
.traffic-card { min-width:0;min-height:365px;background:#fff;border:1px solid #d8e5de;border-radius:15px;padding:19px; }
.traffic-card-title { display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px; }.traffic-card-title h3 { margin:0;font-size:13px; }.traffic-card-title span { color:var(--muted);font-size:10px; }
.traffic-ranking { list-style:none;padding:0;margin:0;display:grid; }.traffic-ranking li { display:grid;grid-template-columns:27px minmax(0,1fr) 64px 22px;align-items:center;gap:9px;min-height:41px;border-bottom:1px solid #e7eee9;font-size:11px; }.traffic-ranking li:last-child { border-bottom:0; }
.traffic-ranking a { white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }.traffic-ranking a:hover { color:var(--traffic-green); }.traffic-ranking strong { text-align:right;color:var(--traffic-green); }
.traffic-rank { width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:var(--traffic-soft);color:var(--traffic-green);font-weight:800; }
.traffic-bar { width:64px;height:5px;border:0;border-radius:10px;overflow:hidden;background:#e6eee9;appearance:none;-webkit-appearance:none; }.traffic-bar::-webkit-progress-bar { background:#e6eee9;border-radius:10px; }.traffic-bar::-webkit-progress-value { background:#86b7a0;border-radius:10px; }.traffic-bar::-moz-progress-bar { background:#86b7a0;border-radius:10px; }
.traffic-empty { min-height:260px;display:grid;place-items:center;color:var(--muted);font-size:11px; }
.traffic-table { min-width:570px!important; }.traffic-table th { background:var(--traffic-soft);color:#254b3b!important;font-size:10px!important;letter-spacing:0!important; }.traffic-table td { padding-top:12px!important;padding-bottom:12px!important; }.traffic-table td:not(:first-child),.traffic-table th:not(:first-child) { text-align:center; }
.traffic-daily { min-height:0;margin-bottom:15px; }.traffic-daily .traffic-table { min-width:780px!important; }
.traffic-footnote { margin:0;color:#607068;font-size:9px;line-height:1.8; }

@media (max-width:1400px) { .traffic-detail-grid { grid-template-columns:1fr 1fr; }.traffic-source-card { grid-column:1/-1; } }
@media (max-width:1100px) { .stat-grid,.quick-actions { grid-template-columns:1fr 1fr; }.form-columns { grid-template-columns:1fr; }.sticky-card { position:static; }.form-side { order:-1; }.traffic-summary { grid-template-columns:repeat(3,1fr); } }
@media (max-width:900px) { .traffic-detail-grid { grid-template-columns:1fr; }.traffic-source-card { grid-column:auto; } }
@media (max-width:760px) { .admin-shell { grid-template-columns:minmax(0,1fr); }.admin-sidebar { position:static;height:auto;padding:16px; }.admin-logo { padding-bottom:14px; }.admin-sidebar nav { display:flex;overflow:auto;padding-top:15px;scrollbar-width:none; }.admin-sidebar nav::-webkit-scrollbar { display:none; }.admin-sidebar nav a { white-space:nowrap; }.sidebar-bottom { display:none; }.admin-main { width:100%;max-width:100vw;padding:24px 15px 60px; }.admin-topbar>span { display:none; }.stat-grid,.quick-actions,.two-fields,.upload-grid { grid-template-columns:1fr; }.panel-heading,.order-admin-head { align-items:flex-start;flex-direction:column; }.order-admin-head form { width:100%;flex-wrap:wrap; }.order-admin-head form label { flex:1; }.admin-panel { padding:19px; }.table-wrap { min-width:0;max-width:100%; }.traffic-heading { align-items:flex-start;flex-direction:column; }.traffic-summary { grid-template-columns:1fr 1fr; }.traffic-card { min-height:0;padding:15px; }.traffic-ranking li { grid-template-columns:26px minmax(0,1fr) 20px; }.traffic-bar { display:none; } }
