From 3c48b69880e06ceec6d8b894f3f22b5433b9cf0c Mon Sep 17 00:00:00 2001 From: Heidrich Digital Date: Wed, 17 Jun 2026 12:12:48 +0000 Subject: [PATCH] =?UTF-8?q?Admin-Politur=20(ui-ux-design-pro):=20warmes=20?= =?UTF-8?q?Papier-Off-White,=20Fraunces-Titel,=20weiche=20get=C3=B6nte=20S?= =?UTF-8?q?chatten,=20Lesezeichen-Marker,=20volle=20Zust=C3=A4nde/Focus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layouts/Admin.astro | 1 + src/styles/admin.css | 202 +++++++++++++++++++++++++--------------- 2 files changed, 130 insertions(+), 73 deletions(-) diff --git a/src/layouts/Admin.astro b/src/layouts/Admin.astro index 31bb7de..bfd9e35 100644 --- a/src/layouts/Admin.astro +++ b/src/layouts/Admin.astro @@ -1,5 +1,6 @@ --- import '@fontsource-variable/public-sans'; +import '@fontsource-variable/fraunces'; import '../styles/admin.css'; import { getSettings } from '../lib/store.js'; diff --git a/src/styles/admin.css b/src/styles/admin.css index 6883b64..1177101 100644 --- a/src/styles/admin.css +++ b/src/styles/admin.css @@ -1,111 +1,167 @@ -/* hd-commerce Admin — Shopify-inspiriert, hell/grau. Akzentfarbe aus settings (CSS-Var --accent). */ +/* hd-commerce Admin — „Warmth & Approachability" (ui-ux-design-pro). + Helles, warmes Papier-Off-White, eine Akzentfarbe (Brand, aus settings), + weiche getönte Schatten + Hairlines (EINE Tiefe-Strategie), Fraunces für Titel. + Var-Namen bleiben stabil (Inline-Styles der Seiten hängen daran). */ :root{ - --s-bg:#f1f1f1; --s-surface:#ffffff; --s-sunken:#f6f6f7; - --s-border:#e1e3e5; --s-border-2:#d2d5d8; - --s-ink:#1a1a1a; --s-text:#303030; --s-subtle:#616161; --s-faint:#8a8a8a; + /* Flächen — warmes Papier; Sidebar = Canvas, Cards = Weiß (kein Farb-Fragmentieren) */ + --s-bg:#f6f3ec; /* App-Canvas + Sidebar */ + --s-surface:#ffffff; /* Cards/erhöht */ + --s-sunken:#f1ebe1; /* Inputs/Tabellenkopf/inset */ + /* Hairlines — warm, niedrige Deckkraft, 3 Stufen */ + --s-line-soft:rgba(58,46,34,.06); + --s-border:rgba(58,46,34,.11); + --s-border-2:rgba(58,46,34,.18); + /* Text — warmes Ink, 4 Stufen */ + --s-ink:#2b2620; /* primär */ + --s-text:#4c453c; /* sekundär */ + --s-subtle:#766c5f; /* tertiär */ + --s-faint:#9a9082; /* muted */ + /* Akzent (Brand, via Inline-Style überschrieben) + Tönung */ --accent:#b8566a; --accent-dark:#8d3f50; - --s-acc-l:color-mix(in srgb,var(--accent) 14%, white); - --s-amber:#ffd79d; --s-amber-t:#5e4200; --s-amber-bg:#fff5ea; - --s-red:#fee9e8; --s-red-t:#8e1f0b; - --s-blue:#ebf0ff; --s-blue-t:#1f3d7a; - --s-gray:#e3e3e3; --s-gray-t:#4a4a4a; - --s-radius:10px; --s-shadow:0 1px 0 rgba(0,0,0,.04),0 1px 3px rgba(0,0,0,.06); + --s-acc-l:color-mix(in srgb,var(--accent) 12%, #fff); + --s-acc-ring:color-mix(in srgb,var(--accent) 26%, transparent); + /* Semantik — warm abgestimmt */ + --s-green-bg:#e5f0e7; --s-green-t:#2f6b4f; + --s-amber-bg:#fbf0db; --s-amber-t:#7c4d10; + --s-red:#fbe7e3; --s-red-t:#9a2b1c; + --s-blue:#eaedfb; --s-blue-t:#37508c; + --s-gray:#ece5da; --s-gray-t:#5a5249; + /* Radius + getönte Schatten (eine Strategie) */ + --s-radius:14px; --s-radius-sm:9px; + --s-shadow:0 1px 2px rgba(60,45,33,.05), 0 6px 16px -10px rgba(60,45,33,.14); + --s-shadow-pop:0 12px 32px -10px rgba(60,45,33,.26); --s-font:'Public Sans Variable',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; + --s-display:'Fraunces Variable',Georgia,'Times New Roman',serif; + --s-ease:cubic-bezier(.2,.6,.2,1); } *{box-sizing:border-box} -.admin-body{margin:0;background:var(--s-bg);color:var(--s-text);font-family:var(--s-font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased} +.admin-body{margin:0;background:var(--s-bg);color:var(--s-text);font-family:var(--s-font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility} .admin-body a{color:inherit;text-decoration:none} -.admin-shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh} -.s-side{background:var(--s-surface);border-right:1px solid var(--s-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh} -.s-brand{display:flex;align-items:center;gap:10px;padding:16px 16px 14px;border-bottom:1px solid var(--s-border)} -.s-brand-logo{width:30px;height:30px;border-radius:7px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px} -.s-brand-name{font-weight:700;font-size:14px;color:var(--s-ink);line-height:1.1} -.s-brand-sub{font-size:11px;color:var(--s-faint)} -.s-nav{padding:10px 8px;display:flex;flex-direction:column;gap:2px;flex:1;overflow:auto} -.s-nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;font-weight:500;font-size:13.5px;color:var(--s-text)} -.s-nav a svg{width:18px;height:18px;flex:none;color:var(--s-subtle)} -.s-nav a:hover{background:var(--s-sunken)} +:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px} +.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh} + +/* Sidebar — gleiche Fläche wie Canvas + Hairline (fragmentiert nicht) */ +.s-side{background:var(--s-bg);border-right:1px solid var(--s-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh} +.s-brand{display:flex;align-items:center;gap:11px;padding:18px 16px 16px;border-bottom:1px solid var(--s-line-soft)} +.s-brand-logo{width:34px;height:34px;border-radius:10px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 2px 6px -2px color-mix(in srgb,var(--accent) 60%, transparent)} +.s-brand-name{font-family:var(--s-display);font-weight:560;font-size:16px;color:var(--s-ink);line-height:1.1;letter-spacing:-.01em} +.s-brand-sub{font-size:11px;color:var(--s-faint);margin-top:1px} +.s-nav{padding:12px 10px;display:flex;flex-direction:column;gap:2px;flex:1;overflow:auto} +.s-nav a{position:relative;display:flex;align-items:center;gap:11px;padding:8px 11px;border-radius:9px;font-weight:500;font-size:13.5px;color:var(--s-text);transition:background .15s var(--s-ease),color .15s var(--s-ease)} +.s-nav a svg{width:18px;height:18px;flex:none;color:var(--s-subtle);transition:color .15s var(--s-ease)} +.s-nav a:hover{background:var(--s-surface);color:var(--s-ink)} +.s-nav a:hover svg{color:var(--s-ink)} .s-nav a.active{background:var(--s-acc-l);color:var(--accent-dark);font-weight:600} .s-nav a.active svg{color:var(--accent-dark)} -.s-nav-sec{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--s-faint);padding:14px 12px 6px;font-weight:700} -.s-side-foot{padding:12px 14px;border-top:1px solid var(--s-border);font-size:12px;color:var(--s-faint)} +.s-nav a.active::before{content:'';position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)} /* Lesezeichen-Marker = Signatur */ +.s-nav-sec{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--s-faint);padding:16px 12px 6px;font-weight:700} +.s-side-foot{padding:13px 16px;border-top:1px solid var(--s-line-soft);font-size:12px;color:var(--s-faint)} .s-side-foot a{color:var(--accent);font-weight:600} + +/* Main + Topbar */ .s-main{display:flex;flex-direction:column;min-width:0} -.s-topbar{position:sticky;top:0;z-index:10;background:var(--s-surface);border-bottom:1px solid var(--s-border);padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px} +.s-topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--s-bg) 82%, transparent);backdrop-filter:saturate(1.4) blur(8px);-webkit-backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--s-border);padding:14px 30px;display:flex;align-items:center;justify-content:space-between;gap:16px} .s-crumbs{font-size:12px;color:var(--s-faint);margin-bottom:3px;display:flex;align-items:center;gap:6px} -.s-crumbs a{color:var(--s-subtle)}.s-crumbs a:hover{color:var(--accent)} -.s-title{font-size:20px;font-weight:700;color:var(--s-ink);letter-spacing:-.01em} +.s-crumbs a{color:var(--s-subtle);transition:color .15s}.s-crumbs a:hover{color:var(--accent)} +.s-title{font-family:var(--s-display);font-size:23px;font-weight:560;color:var(--s-ink);letter-spacing:-.015em;line-height:1.1} .s-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap} -.s-content{padding:24px 28px 60px;max-width:1120px;width:100%} -.s-btn{display:inline-flex;align-items:center;gap:7px;border-radius:8px;font-size:13px;font-weight:600;padding:8px 14px;cursor:pointer;border:1px solid var(--s-border-2);background:var(--s-surface);color:var(--s-text);transition:.12s;font-family:inherit} -.s-btn:hover{background:var(--s-sunken)} -.s-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 1px 0 rgba(0,0,0,.08)} -.s-btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)} -.s-btn-danger{color:var(--s-red-t);border-color:#f0c6c0}.s-btn-danger:hover{background:var(--s-red)} +.s-content{padding:26px 30px 72px;max-width:1140px;width:100%} + +/* Buttons — Zustände vollständig */ +.s-btn{display:inline-flex;align-items:center;gap:7px;border-radius:var(--s-radius-sm);font-size:13px;font-weight:600;padding:8px 14px;cursor:pointer;border:1px solid var(--s-border-2);background:var(--s-surface);color:var(--s-text);font-family:inherit;transition:background .15s var(--s-ease),border-color .15s,transform .15s,box-shadow .15s} +.s-btn:hover{background:var(--s-bg);color:var(--s-ink);transform:translateY(-1px);box-shadow:var(--s-shadow)} +.s-btn:active{transform:translateY(0);box-shadow:none} +.s-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none} +.s-btn-primary{background:var(--accent);border-color:transparent;color:#fff;box-shadow:0 1px 0 rgba(0,0,0,.06),0 4px 10px -4px color-mix(in srgb,var(--accent) 55%, transparent)} +.s-btn-primary:hover{background:var(--accent-dark);color:#fff;box-shadow:0 2px 0 rgba(0,0,0,.06),0 8px 18px -6px color-mix(in srgb,var(--accent) 60%, transparent)} +.s-btn-danger{color:var(--s-red-t);border-color:color-mix(in srgb,var(--s-red-t) 26%, #fff);background:var(--s-surface)} +.s-btn-danger:hover{background:var(--s-red);color:var(--s-red-t)} .s-btn-sm{padding:5px 10px;font-size:12px} + +/* Cards */ .s-card{background:var(--s-surface);border:1px solid var(--s-border);border-radius:var(--s-radius);box-shadow:var(--s-shadow)} -.s-card-pad{padding:18px 20px} -.s-card-head{padding:14px 20px;border-bottom:1px solid var(--s-border);font-weight:700;color:var(--s-ink);font-size:14px;display:flex;justify-content:space-between;align-items:center} -.s-grid{display:grid;gap:16px} -.s-stack{display:flex;flex-direction:column;gap:16px} -.s-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px} -.s-kpi{background:var(--s-surface);border:1px solid var(--s-border);border-radius:var(--s-radius);padding:16px 18px;box-shadow:var(--s-shadow)} -.s-kpi-label{font-size:12px;color:var(--s-subtle);font-weight:600;display:flex;align-items:center;gap:7px} -.s-kpi-val{font-size:26px;font-weight:700;color:var(--s-ink);margin-top:8px;letter-spacing:-.02em} -.s-kpi-sub{font-size:12px;color:var(--s-faint);margin-top:2px} +.s-card-pad{padding:20px 22px} +.s-card-head{padding:15px 22px;border-bottom:1px solid var(--s-line-soft);font-weight:700;color:var(--s-ink);font-size:14px;display:flex;justify-content:space-between;align-items:center} +.s-grid{display:grid;gap:18px}.s-stack{display:flex;flex-direction:column;gap:18px} + +/* KPIs */ +.s-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px} +.s-kpi{background:var(--s-surface);border:1px solid var(--s-border);border-radius:var(--s-radius);padding:18px 20px;box-shadow:var(--s-shadow);transition:transform .18s var(--s-ease),box-shadow .18s} +.s-kpi:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(60,45,33,.05),0 14px 28px -14px rgba(60,45,33,.22)} +.s-kpi-label{font-size:11px;color:var(--s-subtle);font-weight:600;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:7px} +.s-kpi-val{font-size:28px;font-weight:700;color:var(--s-ink);margin-top:9px;letter-spacing:-.02em;font-variant-numeric:tabular-nums} +.s-kpi-sub{font-size:12px;color:var(--s-faint);margin-top:3px} + +/* Tabellen */ .s-table-wrap{overflow:auto} .s-table{width:100%;border-collapse:collapse;font-size:13.5px} -.s-table th{text-align:left;padding:11px 16px;font-size:12px;color:var(--s-subtle);font-weight:600;background:var(--s-sunken);border-bottom:1px solid var(--s-border);white-space:nowrap} -.s-table td{padding:12px 16px;border-bottom:1px solid var(--s-border);vertical-align:middle} +.s-table th{text-align:left;padding:11px 16px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--s-subtle);font-weight:700;background:var(--s-sunken);border-bottom:1px solid var(--s-border);white-space:nowrap} +.s-table th:first-child{border-top-left-radius:var(--s-radius)}.s-table th:last-child{border-top-right-radius:var(--s-radius)} +.s-table td{padding:13px 16px;border-bottom:1px solid var(--s-line-soft);vertical-align:middle} .s-table tr:last-child td{border-bottom:none} -.s-table tbody tr.clk{cursor:pointer} -.s-table tbody tr.clk:hover{background:var(--s-sunken)} +.s-table tbody tr.clk{cursor:pointer;transition:background .12s} +.s-table tbody tr.clk:hover{background:var(--s-bg)} .s-table .num{text-align:right;font-variant-numeric:tabular-nums} .s-prodcell{display:flex;align-items:center;gap:12px} -.s-prodcell img{width:38px;height:46px;object-fit:cover;border-radius:6px;border:1px solid var(--s-border);background:#f0ede8} +.s-prodcell img{width:40px;height:48px;object-fit:cover;border-radius:7px;border:1px solid var(--s-border);background:var(--s-sunken)} .s-prodcell .nm{font-weight:600;color:var(--s-ink)} .s-muted{color:var(--s-faint)} .s-link{color:var(--accent);font-weight:600} -.s-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.4} -.s-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.85} -.s-badge.green{background:#e3f1ed;color:#004c3f} + +/* Badges — Punkt + warm getönte Pille */ +.s-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.5} +.s-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.9} +.s-badge.green{background:var(--s-green-bg);color:var(--s-green-t)} .s-badge.amber{background:var(--s-amber-bg);color:var(--s-amber-t)} .s-badge.gray{background:var(--s-gray);color:var(--s-gray-t)} .s-badge.red{background:var(--s-red);color:var(--s-red-t)} .s-badge.blue{background:var(--s-blue);color:var(--s-blue-t)} -.s-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px} + +/* Formulare — Inputs „inset", eigene Controls */ +.s-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px} .s-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px} .s-field.full{grid-column:1/-1} .s-label{font-size:13px;font-weight:600;color:var(--s-text)} -.s-input,.s-textarea,.s-select{border:1px solid var(--s-border-2);border-radius:8px;padding:9px 12px;font:inherit;font-size:14px;background:var(--s-surface);color:var(--s-ink);width:100%;font-family:inherit} -.s-textarea{min-height:120px;resize:vertical;line-height:1.5} -.s-input:focus,.s-textarea:focus,.s-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--s-acc-l)} -.s-input[type=color]{padding:4px;height:40px;cursor:pointer} +.s-input,.s-textarea,.s-select{border:1px solid var(--s-border-2);border-radius:9px;padding:10px 12px;font:inherit;font-size:14px;background:#fcfbf8;color:var(--s-ink);width:100%;font-family:inherit;transition:border-color .15s,box-shadow .15s,background .15s} +.s-input::placeholder,.s-textarea::placeholder{color:var(--s-faint)} +.s-textarea{min-height:130px;resize:vertical;line-height:1.55} +.s-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;cursor:pointer} +.s-input:focus,.s-textarea:focus,.s-select:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--s-acc-ring)} +.s-input[type=color]{padding:4px;height:42px;cursor:pointer;background:#fff} .s-help{font-size:12px;color:var(--s-faint)} -.s-check{display:flex;align-items:center;gap:8px;font-size:14px} -.s-check input{width:16px;height:16px;accent-color:var(--accent)} -.s-two-col{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start} -.s-flash{background:var(--s-acc-l);color:var(--accent-dark);border:1px solid color-mix(in srgb,var(--accent) 30%, white);padding:10px 16px;border-radius:8px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px} -.s-empty{padding:40px;text-align:center;color:var(--s-faint)} -.s-section-title{font-size:13px;font-weight:700;color:var(--s-ink);margin:0 0 4px} -/* funnel */ +.s-check{display:flex;align-items:center;gap:9px;font-size:14px;cursor:pointer} +.s-check input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer} +.s-two-col{display:grid;grid-template-columns:1fr 330px;gap:18px;align-items:start} + +/* Flash, Empty, Sektionstitel */ +.s-flash{background:var(--s-green-bg);color:var(--s-green-t);border:1px solid color-mix(in srgb,var(--s-green-t) 22%, #fff);padding:11px 16px;border-radius:10px;font-weight:600;margin-bottom:18px;display:flex;align-items:center;gap:9px} +.s-empty{padding:48px 24px;text-align:center;color:var(--s-faint)} +.s-section-title{font-size:13px;font-weight:700;color:var(--s-ink);margin:0 0 4px;letter-spacing:.01em} + +/* Funnel + Balken */ .s-funnel{display:flex;flex-direction:column;gap:10px} .s-funnel-row{display:flex;align-items:center;gap:14px} .s-funnel-row .fl{width:140px;font-size:13px;color:var(--s-subtle);font-weight:600;flex:none} -.s-funnel-bar{flex:1;height:30px;background:var(--s-sunken);border-radius:6px;overflow:hidden;position:relative} -.s-funnel-fill{height:100%;background:var(--accent);border-radius:6px;display:flex;align-items:center;padding:0 10px;color:#fff;font-size:12px;font-weight:700;min-width:38px} +.s-funnel-bar{flex:1;height:32px;background:var(--s-sunken);border-radius:8px;overflow:hidden;position:relative} +.s-funnel-fill{height:100%;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 78%, #fff));border-radius:8px;display:flex;align-items:center;padding:0 11px;color:#fff;font-size:12px;font-weight:700;min-width:40px;font-variant-numeric:tabular-nums;transition:width .5s var(--s-ease)} .s-funnel-mini{display:flex;align-items:center;gap:10px;margin-top:6px} -.s-fm-step{flex:1;text-align:center;background:var(--s-sunken);border-radius:8px;padding:12px 8px} -.s-fm-step .v{font-size:20px;font-weight:700;color:var(--s-ink)} -.s-fm-step .l{font-size:11px;color:var(--s-subtle);font-weight:600} +.s-fm-step{flex:1;text-align:center;background:var(--s-sunken);border-radius:10px;padding:13px 8px} +.s-fm-step .v{font-size:21px;font-weight:700;color:var(--s-ink);font-variant-numeric:tabular-nums} +.s-fm-step .l{font-size:11px;color:var(--s-subtle);font-weight:600;margin-top:2px} .s-fm-arrow{color:var(--s-faint);font-size:18px} .s-bar-track{height:8px;background:var(--s-sunken);border-radius:999px;overflow:hidden} -.s-bar-track i{display:block;height:100%;background:var(--accent);border-radius:999px} +.s-bar-track i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .5s var(--s-ease)} + +/* Medien + Tabs */ .s-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px} -.s-media-item{border:1px solid var(--s-border);border-radius:8px;overflow:hidden;background:var(--s-surface)} -.s-media-item img{width:100%;height:110px;object-fit:cover;background:var(--s-sunken)} -.s-media-item .mi{padding:8px 10px;font-size:11px;color:var(--s-subtle);display:flex;flex-direction:column;gap:6px} -.s-tabs{display:flex;gap:6px;border-bottom:1px solid var(--s-border);margin-bottom:20px;flex-wrap:wrap} -.s-tab{padding:9px 14px;font-size:13.5px;font-weight:600;color:var(--s-subtle);border-bottom:2px solid transparent;cursor:pointer} +.s-media-item{border:1px solid var(--s-border);border-radius:10px;overflow:hidden;background:var(--s-surface);box-shadow:var(--s-shadow);transition:transform .18s var(--s-ease)} +.s-media-item:hover{transform:translateY(-2px)} +.s-media-item img{width:100%;height:112px;object-fit:cover;background:var(--s-sunken)} +.s-media-item .mi{padding:9px 11px;font-size:11px;color:var(--s-subtle);display:flex;flex-direction:column;gap:6px} +.s-tabs{display:flex;gap:6px;border-bottom:1px solid var(--s-border);margin-bottom:22px;flex-wrap:wrap} +.s-tab{padding:10px 15px;font-size:13.5px;font-weight:600;color:var(--s-subtle);border-bottom:2px solid transparent;cursor:pointer;transition:color .15s} +.s-tab:hover{color:var(--s-ink)} .s-tab.active{color:var(--accent-dark);border-color:var(--accent)} -@media(max-width:860px){.admin-shell{grid-template-columns:1fr}.s-side{position:static;height:auto}.s-nav{flex-direction:row;flex-wrap:wrap}.s-kpis{grid-template-columns:1fr 1fr}.s-form-grid{grid-template-columns:1fr}.s-two-col{grid-template-columns:1fr}} + +@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}} +@media(max-width:860px){.admin-shell{grid-template-columns:1fr}.s-side{position:static;height:auto}.s-nav{flex-direction:row;flex-wrap:wrap}.s-nav a.active::before{display:none}.s-kpis{grid-template-columns:1fr 1fr}.s-form-grid{grid-template-columns:1fr}.s-two-col{grid-template-columns:1fr}}