:root{--bg: #fffff2;--bg-soft: #ffffd6;--fg: #15110a;--fg-soft: #2c241a;--muted: #7a6f55;--card-bg: #ffffff;--qr-bg: var(--accent);--qr-fg: var(--accent-ink);--border: #ececa8;--border-strong: #d9d95c;--accent: #ffff00;--accent-strong: #e6e600;--accent-ink: #000000;--ink: #15110a;--ink-soft: #2c241a;--danger: #c0392b;--danger-fg-on-dark: #ff6b5a;--danger-bg: #fce8e6;--danger-border: #f1b9b2;--danger-shadow: #9a2b1e;--ok: #2e7d32;--ok-bg: #e6f4ea;--ok-border: #bcdfc4;--info-bg: #eef2ff;--info-border: #c7d2fe;--info-fg: #3730a3;--neutral-bg: #fafafa;--neutral-bg-hover: #f3f4f6;--neutral-fg: #6b7280;--neutral-fg-strong: #374151;--neutral-border: #e5e7eb;--placeholder-fg: #9ca3af;--input-bg: #ffffff;--table-bg: #ffffff;--chip-bg: #ffffff;--btn-disabled-bg: #ece6cd;--btn-disabled-fg: #8e8770;--header-bg: #000000;--header-fg: #ffffff;--header-nav-fg: #f3eecf;--header-hover-bg: rgba(255, 255, 0, .18);--header-active-bg: rgba(255, 255, 0, .16);--row-hover-bg: rgba(255, 255, 0, .05);--hero-bg: #000000;--hero-fg: #ffffff;--hero-label-fg: #cfc8a3;--wallet-hero-label-fg: #cfc8a3;--wallet-hero-edge: var(--accent);--dropzone-active-bg: #ffffe0;--dialog-overlay: rgba(15, 13, 6, .55);--dialog-bg: #ffffff;--dialog-footer-bg: #fafaf6;--dialog-shadow: 0 25px 50px -12px rgba(15, 13, 6, .35), 0 0 0 1px rgba(15, 13, 6, .05);--shadow-sm: 0 1px 2px rgba(21, 17, 10, .06);--shadow-md: 0 4px 12px rgba(21, 17, 10, .08);--shadow-lg: 0 10px 30px rgba(21, 17, 10, .12);--radius: 10px;--radius-lg: 14px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--bg: #14110a;--bg-soft: #1f1a0e;--fg: #f4ecd4;--fg-soft: #e6dcbd;--muted: #9c9276;--card-bg: #1c1810;--qr-bg: var(--card-bg);--qr-fg: var(--accent);--border: #3a3220;--border-strong: #786735;--ink: #f4ecd4;--ink-soft: #c8bf9c;--accent-ink: #000000;--danger: #ff6b5a;--danger-bg: rgba(192, 57, 43, .18);--danger-border: rgba(255, 107, 90, .4);--danger-shadow: #5a1a12;--ok: #6cd07a;--ok-bg: rgba(46, 125, 50, .2);--ok-border: rgba(108, 208, 122, .35);--info-bg: rgba(67, 56, 202, .18);--info-border: rgba(165, 180, 252, .35);--info-fg: #c7d2fe;--neutral-bg: #1f1b12;--neutral-bg-hover: #2a2417;--neutral-fg: #b0a78a;--neutral-fg-strong: #e6dcbd;--neutral-border: #3a3220;--placeholder-fg: #7a7158;--input-bg: #1f1a0f;--table-bg: #1c1810;--chip-bg: #1f1a0f;--btn-disabled-bg: #2d2718;--btn-disabled-fg: #6f6648;--header-bg: #000000;--header-fg: #ffffff;--header-nav-fg: #ddd29c;--header-hover-bg: rgba(255, 255, 0, .18);--header-active-bg: rgba(255, 255, 0, .16);--row-hover-bg: rgba(255, 255, 0, .07);--hero-bg: #000000;--hero-fg: #ffffff;--hero-label-fg: #cfc8a3;--wallet-hero-label-fg: #cfc8a3;--wallet-hero-edge: var(--accent);--dropzone-active-bg: rgba(255, 255, 0, .12);--dialog-overlay: rgba(0, 0, 0, .65);--dialog-bg: #1c1810;--dialog-footer-bg: #181408;--dialog-shadow: 0 25px 50px -12px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 0, .08);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .5)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);min-height:100vh}a{color:var(--ink);text-decoration-color:var(--accent-strong);text-underline-offset:2px}a:hover{text-decoration-thickness:2px}h1,h2,h3,h4{color:var(--ink);letter-spacing:-.01em}h2{margin:0 0 var(--space-4)}h3{margin:0 0 var(--space-3)}.page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.page-head h2{margin-bottom:0}header.app-header{background:var(--header-bg);color:var(--header-fg);padding:var(--space-3) var(--space-5);display:flex;align-items:center;gap:var(--space-4);box-shadow:var(--shadow-md);border-bottom:3px solid var(--accent);position:sticky;top:0;z-index:50}header.app-header .brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--header-fg)}header.app-header .brand img{width:36px;height:36px;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}header.app-header h1{font-size:1.35rem;margin:0;color:var(--header-fg);font-weight:800;letter-spacing:.01em}header.app-header h1 .accent{color:var(--accent)}header.app-header nav{display:flex;gap:var(--space-1);margin-left:auto;align-items:center;flex-wrap:nowrap}header.app-header .nav-links{display:flex;gap:var(--space-1)}header.app-header nav a,header.app-header nav button{white-space:nowrap;color:var(--header-nav-fg);background:transparent;border:0;text-decoration:none;font-size:.95rem;cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:6px;font-family:inherit;transition:background .12s,color .12s}header.app-header nav a:hover,header.app-header nav button:hover{background:var(--header-hover-bg);color:var(--accent)}header.app-header nav a.active{background:var(--header-active-bg);color:var(--accent)}header.app-header .balance{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--accent);color:var(--accent-ink);padding:var(--space-1) var(--space-3);border-radius:999px;font-weight:700;font-size:.9rem;box-shadow:0 0 0 2px #ffff0040;transition:box-shadow .12s ease}header.app-header .balance svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}header.app-header .balance:hover,header.app-header .balance:focus-visible{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 4px #ffff0059}header.app-header .balance--debt{background:var(--danger-bg);color:var(--danger);box-shadow:0 0 0 2px var(--danger-border)}header.app-header .balance--debt:hover,header.app-header .balance--debt:focus-visible{background:var(--danger-bg);color:var(--danger);box-shadow:0 0 0 4px var(--danger-border)}header.app-header .nav-menu{display:contents}header.app-header .nav-menu--collapsed{--nav-menu-bg: var(--header-bg);display:inline-flex;position:relative}header.app-header nav button.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;flex:none}header.app-header nav button.nav-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}header.app-header nav button.nav-toggle[aria-expanded=true]{background:var(--nav-menu-bg);color:var(--accent);border-radius:var(--radius) var(--radius) 0 0}header.app-header .nav-links--menu{display:none}header.app-header .nav-links--menu.is-open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;min-width:12rem;max-height:calc(100vh - 5rem);overflow-y:auto;padding:var(--space-2);background:var(--nav-menu-bg);border-bottom:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) var(--radius);box-shadow:var(--shadow-md)}header.app-header .nav-links--menu a{padding:var(--space-3) var(--space-4)}@media (max-width: 720px){header.app-header nav{flex-wrap:wrap}header.app-header nav button.nav-toggle,header.app-header .nav-links--menu.is-open{display:none}}@media (max-width: 400px){header.app-header h1{display:none}}main{padding:var(--space-5);max-width:1100px;margin:0 auto}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.card.elevated{box-shadow:var(--shadow-md)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}.product-card{display:flex;flex-direction:column;gap:var(--space-2);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.product-card__desc{margin:0}.product-card__meta{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-1)}.product-card__placeholder{height:160px;border-radius:var(--radius-md, 8px);background:repeating-linear-gradient(45deg,var(--bg-soft) 0 10px,transparent 10px 20px),var(--card-bg);border:1px dashed var(--border)}.product-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.product-card img{width:100%;height:160px;object-fit:contain;border-radius:8px;background:transparent}.product-card h3{margin:0;font-size:1.1rem}.product-card .price{font-weight:800;color:var(--accent-ink);font-size:1.2rem;background:var(--accent);display:inline-block;padding:var(--space-1) var(--space-2);border-radius:6px;align-self:flex-start}.product-card button{margin-top:0}button.primary,a.primary{background:var(--accent);color:var(--accent-ink);border:0;padding:var(--space-2) var(--space-4);border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 2px 0 var(--accent-strong);transition:transform 80ms ease,box-shadow 80ms ease,background .12s ease}button.primary:hover,a.primary:hover{background:var(--accent-strong)}button.primary:active,a.primary:active{transform:translateY(1px);box-shadow:0 1px 0 var(--accent-strong)}button.primary:disabled{background:var(--btn-disabled-bg);color:var(--btn-disabled-fg);cursor:not-allowed;box-shadow:none}button.ghost{background:transparent;color:var(--ink);border:1px solid var(--border-strong);padding:var(--space-2) var(--space-4);border-radius:8px;cursor:pointer;font-family:inherit;font-size:.95rem;transition:background .12s ease,border-color .12s ease}button.ghost:hover{background:var(--bg-soft);border-color:var(--accent)}button.danger{background:transparent;color:var(--danger);border:1px solid var(--danger-border);padding:var(--space-2) var(--space-4);border-radius:8px;cursor:pointer;font-family:inherit;font-size:.95rem}button.danger:hover{background:var(--danger-bg)}button.icon-button{display:inline-flex;align-items:center;justify-content:center;padding-inline:var(--space-2)}input,textarea,select{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:8px;font-size:1rem;font-family:inherit;background:var(--input-bg);color:var(--fg);transition:border-color .12s ease,box-shadow .12s ease}input:focus,textarea:focus,select:focus{outline:0;border-color:var(--accent-strong);box-shadow:0 0 0 3px #ffff004d}input::placeholder,textarea::placeholder{color:var(--placeholder-fg)}input[type=checkbox]{width:auto;accent-color:var(--accent-strong)}label{display:block;margin-bottom:var(--space-2);font-weight:600;color:var(--ink-soft)}.select-button{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--fg);font:inherit;font-size:1rem;font-weight:400;text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.select-button:hover{border-color:var(--border-strong)}.select-button:focus-visible,.select-button.is-open{outline:0;border-color:var(--accent-strong);box-shadow:0 0 0 3px #ffff004d}.select-button__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-button__chevron,.select-option__check{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.select-button__chevron{color:var(--muted);transition:transform .15s ease}.select-button.is-open .select-button__chevron{transform:rotate(180deg)}.select-list{position:fixed;z-index:1100;max-height:280px;overflow-y:auto;margin:0;padding:var(--space-1);list-style:none;background:var(--dialog-bg);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);animation:select-in .1s ease-out}@keyframes select-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.select-list--up{animation-name:select-in-up}@keyframes select-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.select-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-2);border-radius:6px;color:var(--fg);cursor:pointer;white-space:nowrap}.select-option.is-active{background:var(--bg-soft)}.select-option[aria-selected=true]{font-weight:600}.select-option__check{color:var(--accent-ink);width:16px;height:16px}.select-option[aria-selected=true] .select-option__check{background:var(--accent);border-radius:50%;padding:1px}@media (prefers-reduced-motion: reduce){.select-list,.select-button__chevron{animation:none;transition:none}}.row{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap}.row>*{flex:1;min-width:0}.alert{padding:var(--space-3) var(--space-4);border-radius:8px;margin-bottom:var(--space-4)}.alert.error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.alert.ok{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-border)}.alert.info{background:var(--bg-soft);color:var(--ink);border:1px solid var(--border-strong)}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;background:var(--table-bg)}th,td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border)}th{background:var(--bg-soft);color:var(--ink);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}th,td.num,td.when{white-space:nowrap}td.num{text-align:right;font-variant-numeric:tabular-nums}th.num{text-align:right}tr:last-child td{border-bottom:0}tr:hover td{background:var(--row-hover-bg)}.muted{color:var(--muted)}.center{text-align:center}.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-5);border-radius:12px;background-color:var(--neutral-bg);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'><rect width='100%25' height='100%25' fill='none' stroke='%23c4c4c4' stroke-width='2' stroke-dasharray='10 8' rx='12' ry='12'/></svg>");background-size:100% 100%;background-repeat:no-repeat;color:var(--neutral-fg);text-align:center;cursor:pointer;transition:background-color .12s ease,transform .12s ease;width:100%;height:100%;min-height:160px}.dropzone:hover{background-color:var(--neutral-bg-hover);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'><rect width='100%25' height='100%25' fill='none' stroke='%239ca3af' stroke-width='2' stroke-dasharray='10 8' rx='12' ry='12'/></svg>")}.dropzone.dragging{background-color:var(--dropzone-active-bg);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'><rect width='100%25' height='100%25' fill='none' stroke='%23f5c400' stroke-width='2.5' stroke-dasharray='10 8' rx='12' ry='12'/></svg>");transform:scale(1.005)}.dropzone.busy{opacity:.7;cursor:progress}.dropzone.compact{padding:var(--space-4);min-height:96px;gap:var(--space-2)}.dropzone input[type=file]{display:none}.dropzone .dz-icon{width:32px;height:32px;color:var(--neutral-fg);display:block}.dropzone .dz-title{font-weight:500;color:var(--neutral-fg-strong);font-size:1rem}.dropzone .dz-hint{font-size:.85rem;color:var(--placeholder-fg)}.dropzone .dz-preview{display:flex;align-items:center;gap:var(--space-3);width:100%}.dropzone .dz-preview img{width:64px;height:64px;object-fit:contain;border-radius:8px;flex-shrink:0;border:1px solid var(--neutral-border);background:var(--card-bg)}.dropzone .dz-preview .dz-info{flex:1;text-align:left;min-width:0}.dropzone .dz-preview .dz-info .dz-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--neutral-fg-strong)}.amount--debt{color:var(--danger);font-weight:600}.tag{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:999px;background:var(--bg-soft);color:var(--ink);font-size:.8rem;border:1px solid var(--border-strong)}.hero{background:var(--hero-bg);color:var(--hero-fg);padding:var(--space-6) var(--space-6);border-radius:var(--radius-lg);border-bottom:4px solid var(--accent);box-shadow:var(--shadow-lg)}.hero h2{color:var(--hero-fg);font-size:2rem;margin-bottom:var(--space-2)}.hero p{color:var(--hero-label-fg)}.hero .hero-logo{width:80px;height:80px;margin-bottom:var(--space-4);display:block}.admin-new-product{margin-bottom:var(--space-5)}.admin-new-product__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:var(--space-5);align-items:stretch}@media (max-width: 720px){.admin-new-product__grid{grid-template-columns:1fr}}.admin-new-product__fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-3);grid-template-rows:auto 1fr;align-content:start}.admin-new-product__description,.admin-new-product__tags{grid-column:1 / -1}.admin-new-product__description textarea{height:100%;min-height:160px;resize:vertical}.admin-new-product__image{display:flex;flex-direction:column;min-height:100%}.admin-new-product__image .dropzone{flex:1;min-height:200px}.admin-new-product__actions{margin-top:var(--space-4);display:flex;justify-content:flex-start}.field{display:flex;flex-direction:column}.field label{margin-bottom:var(--space-1)}.row-actions{display:inline-flex;gap:var(--space-2);align-items:center;flex-wrap:nowrap}.row-actions button{white-space:nowrap}.admin-products-table td{vertical-align:middle}.product-name{display:flex;flex-direction:column;gap:var(--space-1)}.product-name .muted{font-size:.9em}.product-row--inactive .product-name,.product-row--inactive td[data-label=Pris]{color:var(--muted)}.image-cell{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:10px;background-color:var(--neutral-bg);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'><rect width='100%25' height='100%25' fill='none' stroke='%23c4c4c4' stroke-width='2' stroke-dasharray='6 5' rx='10' ry='10'/></svg>");background-size:100% 100%;background-repeat:no-repeat;cursor:pointer;overflow:hidden;transition:background-color .12s ease,transform .12s ease}.image-cell:hover{background-color:var(--neutral-bg-hover)}.image-cell.dragging{background-color:var(--dropzone-active-bg);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'><rect width='100%25' height='100%25' fill='none' stroke='%23f5c400' stroke-width='2' stroke-dasharray='6 5' rx='10' ry='10'/></svg>");transform:scale(1.04)}.image-cell.busy{opacity:.6;cursor:progress}.image-cell img{width:100%;height:100%;object-fit:contain;display:block;border-radius:10px}.image-cell__placeholder{font-size:1.5rem;color:var(--placeholder-fg);font-weight:500;line-height:1}.avatar{--avatar-size: 24px;flex:none;display:inline-block;width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;object-fit:cover;background:var(--bg-soft);vertical-align:middle}.avatar.avatar--initial{display:inline-flex;align-items:center;justify-content:center;font-size:calc(var(--avatar-size) * .45);font-weight:700;font-style:normal;line-height:1;color:var(--muted);border:1px solid var(--border)}header.app-header .balance--avatar{padding-left:var(--space-1)}header.app-header .balance__avatar{--avatar-size: 22px;box-shadow:0 0 0 1.5px var(--accent-ink)}.tabbar__avatar{--avatar-size: 24px}.tabbar a.active .tabbar__avatar{box-shadow:0 0 0 2px var(--accent)}.leaderboard-avatar{--avatar-size: 26px}.leaderboard-name>:is(.avatar,.avatar-zoom){align-self:center}button.avatar-zoom{display:inline-grid;place-items:center;flex:none;min-width:0;min-height:0;padding:0;border:0;border-radius:50%;background:none;cursor:zoom-in;vertical-align:middle}button.avatar-zoom>*{grid-area:1 / 1}button.avatar-zoom .avatar{cursor:inherit;transition:filter .12s ease}button.avatar-zoom[aria-expanded=true]{cursor:zoom-out}.avatar-zoom__icon{position:relative;z-index:1;color:#fff;stroke-width:2.5;opacity:0;pointer-events:none;transition:opacity .12s ease}button.avatar-zoom:hover .avatar,button.avatar-zoom:focus-visible .avatar{filter:brightness(.55)}button.avatar-zoom:hover .avatar-zoom__icon,button.avatar-zoom:focus-visible .avatar-zoom__icon{opacity:1}button.avatar-zoom:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.avatar-blob{position:fixed;z-index:1000;max-width:none;border-radius:50%;object-fit:cover;background:var(--bg-soft);pointer-events:none;box-shadow:0 0 0 4px var(--accent),0 18px 40px #00000059;transform:translate(-50%,-50%);animation:avatar-blob-in .56s cubic-bezier(.2,.8,.2,1) both}.avatar-blob--closing{animation:avatar-blob-out .16s cubic-bezier(.4,0,1,1) forwards}@keyframes avatar-blob-in{0%{transform:translate(-50%,-50%) scale(.15)}40%{transform:translate(-50%,-50%) scale(1.14,.88)}60%{transform:translate(-50%,-50%) scale(.93,1.07)}78%{transform:translate(-50%,-50%) scale(1.04,.97)}to{transform:translate(-50%,-50%) scale(1)}}@keyframes avatar-blob-out{0%{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) scale(.15);opacity:0}}@media (prefers-reduced-motion: reduce){.avatar-blob,.avatar-blob--closing{animation:none}}.admin-user-who{display:flex;align-items:center;gap:var(--space-3);min-width:0}.admin-user-who .avatar{--avatar-size: 34px}.admin-user-who__text{min-width:0}.admin-user-who__name{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--space-2);font-weight:600;overflow-wrap:anywhere}.admin-user-who__name .tag-pending{margin-left:0}.admin-user-who__email{font-size:.85rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-pic{position:relative;flex:none;display:inline-flex}.admin-user-pic__remove{position:absolute;top:-6px;right:-6px;display:grid;place-items:center;width:20px;height:20px;min-width:0;min-height:0;padding:0;border-radius:50%;border:1px solid var(--border-strong);background:var(--card-bg);color:var(--muted);cursor:pointer}.admin-user-pic__remove:hover,.admin-user-pic__remove:focus-visible{color:var(--danger);border-color:var(--danger-border)}.admin-user-pic__remove .icon{width:12px;height:12px}@media (max-width: 720px){.admin-users-table td[data-label=Kund]{justify-content:flex-start;text-align:left;max-width:none}.admin-users-table td[data-label=Kund]:before{display:none}}.account-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-5);background:var(--hero-bg);color:var(--hero-fg);padding:var(--space-5);border-radius:var(--radius-lg);border-bottom:4px solid var(--wallet-hero-edge);box-shadow:var(--shadow-lg)}.account-hero--debt{--wallet-hero-edge: var(--danger-fg-on-dark)}.account-hero__who{display:flex;align-items:center;gap:var(--space-4);min-width:0}.account-hero__text{flex:1 1 auto;min-width:0}.profile-avatar{--avatar-size: 64px;border:3px solid var(--wallet-hero-edge);background:#ffffff14}.profile-avatar.avatar--initial{display:flex;border-width:3px;font-size:1.5rem;font-weight:800;color:var(--accent);border-color:var(--wallet-hero-edge)}.avatar-editor{position:relative;flex:none}.avatar-editor__pick{position:relative;display:block;min-width:0;min-height:0;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.avatar-editor__pick img.profile-avatar{display:block}.avatar-editor__pick .profile-avatar{transition:filter .15s ease}.avatar-editor__pick:hover .profile-avatar,.avatar-editor__pick:focus-visible .profile-avatar{filter:brightness(.75)}.avatar-editor__badge,.avatar-editor__remove{position:absolute;display:grid;place-items:center;width:26px;height:26px;padding:0;min-width:0;min-height:0;border-radius:50%;border:2px solid var(--hero-bg)}.avatar-editor__badge{right:-4px;bottom:-4px;background:var(--accent);color:var(--accent-ink);transition:transform .15s ease}.avatar-editor__pick:hover .avatar-editor__badge,.avatar-editor__pick:focus-visible .avatar-editor__badge{transform:scale(1.12)}.avatar-editor__remove{top:-4px;right:-4px;background:var(--hero-bg);color:var(--hero-fg);border-color:#ffffff4d;cursor:pointer}.avatar-editor__remove:hover,.avatar-editor__remove:focus-visible{color:var(--danger-fg-on-dark);border-color:var(--danger-fg-on-dark)}.avatar-editor__badge .icon,.avatar-editor__remove .icon{width:14px;height:14px}.avatar-editor--busy .profile-avatar{animation:avatar-busy .9s ease-in-out infinite alternate}@keyframes avatar-busy{to{opacity:.45}}@media (prefers-reduced-motion: reduce){.avatar-editor--busy .profile-avatar{animation:none;opacity:.6}}.avatar-editor__error{position:absolute;top:calc(100% + var(--space-2));left:0;z-index:2;width:max-content;max-width:18rem;margin:0}.account-hero__name{font-size:1.25rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.account-hero__meta{margin:var(--space-1) 0 0;font-size:.85rem;color:var(--wallet-hero-label-fg);overflow-wrap:anywhere}.account-hero__balance{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.account-hero__label{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--wallet-hero-label-fg)}.account-hero__amount{font-size:2.25rem;font-weight:800;color:var(--accent);letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums;white-space:nowrap}.account-hero--debt .account-hero__amount{color:var(--danger-fg-on-dark)}.account-hero__note{margin:var(--space-1) 0 0;max-width:24ch;font-size:.85rem;color:var(--wallet-hero-label-fg)}.account-hero__topup{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-3)}.account-hero__topup .icon{transition:transform .15s ease}.account-hero__topup[aria-expanded=true] .icon{transform:rotate(45deg)}@media (max-width: 640px){.account-hero{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.account-hero__balance{align-items:stretch;text-align:left;padding-top:var(--space-4);border-top:1px solid rgba(255,255,255,.12)}.account-hero__amount{font-size:2rem}}.account-hero button.ghost{color:var(--hero-fg);border-color:#ffffff40}.account-hero button.ghost:hover{background:var(--header-hover-bg);border-color:var(--accent)}.motto-inline{display:inline-flex;align-items:center;gap:var(--space-2);max-width:calc(100% + var(--space-2));margin:var(--space-1) 0 0 calc(-1 * var(--space-2));padding:var(--space-1) var(--space-2);background:transparent;border:1px solid transparent;border-radius:8px;color:var(--hero-fg);font:inherit;font-style:italic;text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease}.motto-inline:hover,.motto-inline:focus-visible{background:var(--header-hover-bg);border-color:#ff06}.motto-inline__text{min-width:0;overflow-wrap:anywhere}.motto-inline__empty{color:var(--wallet-hero-label-fg)}.motto-inline .icon{flex:none;width:15px;height:15px;color:var(--wallet-hero-label-fg)}.motto-edit{margin-top:var(--space-2);transform-origin:left center;animation:motto-edit-in .2s cubic-bezier(.2,.8,.2,1)}@keyframes motto-edit-in{0%{opacity:0;transform:scaleX(.6)}}.motto-inline__text--saved{position:relative;isolation:isolate}.motto-inline__text--saved:after{content:"";position:absolute;top:.1em;right:-.15em;bottom:.1em;left:-.15em;z-index:-1;border-radius:3px;background:#ff06;transform-origin:left center;animation:motto-saved 1.2s cubic-bezier(.2,.8,.2,1) forwards}@keyframes motto-saved{0%{transform:scaleX(0);opacity:1}35%{transform:scaleX(1);opacity:1}65%{opacity:1}to{transform:scaleX(1);opacity:0}}@media (prefers-reduced-motion: reduce){.motto-edit{animation:none}.motto-inline__text--saved:after{animation-duration:1ms}}.motto-edit__row{display:flex;align-items:stretch;gap:var(--space-2)}.motto-edit__row input{flex:1 1 auto;width:auto;min-width:0}.motto-edit__row button{flex:none}.motto-edit__count{display:block;margin-top:var(--space-1);font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--wallet-hero-label-fg)}.motto-edit__count--over{color:var(--danger-fg-on-dark);font-weight:700}.motto-edit .alert{margin:var(--space-2) 0 0}.wallet{display:flex;flex-direction:column}.wallet>*+*{margin-top:var(--space-5)}.wallet>:is(h2,h3)+*{margin-top:var(--space-4)}.wallet>:is(h2,h3){margin-bottom:0}.wallet>.topup-fold{margin-top:0}.topup-fold{display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s cubic-bezier(.4,0,1,1)}.topup-fold--open{grid-template-rows:1fr;transition:grid-template-rows .42s cubic-bezier(.2,.8,.2,1)}.topup-fold__inner{min-height:0;overflow:hidden}@supports (overflow-clip-margin: 1px){.topup-fold__inner{overflow:clip;overflow-clip-margin:var(--space-4)}}.wallet>.account-hero{position:relative;z-index:1}.topup-fold .wallet-topup{margin-top:var(--space-3);transform:translateY(calc(-100% - var(--space-3)));visibility:hidden;transition:visibility 0s linear .26s;animation:topup-drawer-close .26s cubic-bezier(.4,0,1,1) both}.topup-fold--open .wallet-topup{transform:none;visibility:visible;transition:none;animation:topup-drawer .6s both}@keyframes topup-drawer-close{0%{transform:none}to{transform:translateY(calc(-100% - var(--space-3)))}}@keyframes topup-drawer{0%{transform:translateY(calc(-100% - var(--space-3)));animation-timing-function:cubic-bezier(.2,.8,.2,1)}70%{transform:translateY(6px);animation-timing-function:ease-in-out}86%{transform:translateY(-2px);animation-timing-function:ease-in-out}to{transform:none}}.topup-fold--open .wallet-swish__qr{animation:topup-qr-wobble .52s ease-in-out .38s both}@keyframes topup-qr-wobble{0%,to{transform:none}30%{transform:rotate(-6deg) scale(1.06)}60%{transform:rotate(4deg) scale(1.02)}80%{transform:rotate(-2deg)}}@media (prefers-reduced-motion: reduce){.topup-fold,.topup-fold--open,.topup-fold .wallet-topup{transition:none}.topup-fold .wallet-topup,.topup-fold--open .wallet-topup,.topup-fold--open .wallet-swish__qr{animation:none}}.wallet-topup__text{margin:0;white-space:pre-line}.wallet-topup__code-row{display:flex;align-items:stretch;gap:var(--space-2)}.wallet-topup__code{flex:1 1 auto;display:flex;align-items:center;min-width:0;padding:var(--space-1) var(--space-3);background:var(--bg-soft);border:1px solid var(--border-strong);border-radius:var(--radius);font-size:1rem;font-weight:600;white-space:nowrap;overflow-x:auto}.wallet-topup__code-row button.ghost{padding:var(--space-1) var(--space-3)}.wallet-topup__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-5)}.wallet-topup__grid>.wallet-details{border-left:1px solid var(--border);padding-left:var(--space-5);display:flex;flex-direction:column;justify-content:center}@media (max-width: 960px){.wallet-topup__grid{grid-template-columns:minmax(0,1fr)}.wallet-topup__grid>.wallet-details{border-left:0;padding-left:0;border-top:1px solid var(--border);padding-top:var(--space-4)}}.wallet-topup>.wallet-topup__text{margin-top:var(--space-4)}.wallet-swish{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5)}.wallet-swish__body{flex:1 1 14rem;min-width:0}.wallet-swish__body h4{margin:0 0 var(--space-2);font-size:1.05rem}.wallet-swish__qr{flex:none;width:184px;line-height:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--qr-bg)}.qr-code{width:100%;height:auto;display:block}.qr-code__bg{fill:var(--qr-bg)}.qr-code__fg{fill:var(--qr-fg)}.wallet-swish--phone{flex-direction:column;align-items:stretch;gap:var(--space-4)}.wallet-swish--phone .wallet-swish__body{flex:none}.wallet-swish__open{display:block;text-align:center;text-decoration:none;padding:var(--space-3) var(--space-4);font-size:1.05rem;margin-bottom:var(--space-3)}.wallet-swish__toggle{margin-top:var(--space-3);font-size:.9rem}.wallet-swish--phone .wallet-swish__qr{align-self:center;margin-inline:auto;width:208px}.wallet-minimum{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);font-size:.9rem}.wallet-minimum__figure{font-weight:700;color:var(--ink);border:1px solid var(--border-strong);border-radius:999px;padding:0 var(--space-2)}.wallet-details{margin:0}.wallet-details__row{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:var(--space-3);align-items:baseline;padding:var(--space-3) 0}.wallet-details__row+.wallet-details__row{border-top:1px solid var(--border)}.wallet-details__row:first-child{padding-top:0}.wallet-details__row:last-child{padding-bottom:0}.wallet-details dt{color:var(--muted);font-size:.875rem}.wallet-details dd{margin:0;min-width:0}.wallet-details__value{font-weight:600;font-variant-numeric:tabular-nums}@media (max-width: 420px){.wallet-details__row{grid-template-columns:minmax(0,1fr);gap:var(--space-1)}}.chip{background:var(--chip-bg);border:1.5px solid var(--border);color:var(--ink);padding:var(--space-2) var(--space-4);border-radius:999px;font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background .12s ease,border-color .12s ease,transform 80ms ease}.chip:hover{background:var(--bg-soft);border-color:var(--border-strong)}.chip.active{background:var(--accent);border-color:var(--accent-strong);color:var(--accent-ink);box-shadow:0 1px 0 var(--accent-strong)}.chip--bad{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger);cursor:default}.sparkline{color:var(--accent);vertical-align:middle}.price-chart{margin:var(--space-3) 0}.alert-text{white-space:pre-wrap;font:inherit;margin:0}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);background:var(--card-bg);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center}.empty-state__icon{font-size:2.5rem;line-height:1}.tx-note{display:inline-flex;flex-direction:column;gap:2px}.tx-ref{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;color:var(--muted);white-space:nowrap}@media (max-width: 720px){.tx-ref{white-space:normal;overflow-wrap:anywhere}}.input--mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}@media (max-width: 720px){.tx-note{align-items:flex-end}}.tag-topup{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok)}.tag-purchase{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.tag-refund{background:var(--bg-soft);border-color:var(--border-strong);color:var(--ink)}.tag-admin_adjustment{background:var(--info-bg);border-color:var(--info-border);color:var(--info-fg)}.tag-pending{margin-left:var(--space-2);background:var(--neutral-bg);border-color:var(--neutral-border);color:var(--neutral-fg)}.admin-user-motto{display:flex;align-items:center;gap:var(--space-2);min-width:0;max-width:100%}.admin-user-motto .motto-line{font-style:italic;color:var(--muted);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-motto button{flex:none}.admin-users-table td[data-label=Motto]{max-width:11rem;overflow:hidden}.admin-users-table td[data-label=Kund]{max-width:15rem}@media (min-width: 721px){.admin-users-table .row-actions button{padding:var(--space-1) var(--space-3);font-size:.9rem}}.history-toggle{display:inline-flex;align-items:center;justify-content:center;padding-inline:var(--space-2)}.history-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s ease}.history-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.user-row--open td{border-bottom-color:transparent}.user-history>td{background:var(--neutral-bg);padding:var(--space-2) var(--space-4) var(--space-4)}.user-history p{margin:0}.user-history .table-wrap{box-shadow:none;border-left:2px solid var(--neutral-border);border-radius:0;padding-left:var(--space-3)}.user-history table{background:none;border-radius:0}.user-history th{background:none;color:var(--muted);font-size:.75rem}.user-history th,.user-history td{padding:var(--space-2) var(--space-3);border-bottom-color:var(--neutral-border)}.user-history tr:hover>td,.user-history:hover>td{background:var(--neutral-bg)}@media (max-width: 720px){.table-wrap tr.user-row--open{margin-bottom:0;border-bottom:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:none}.table-wrap tr.user-history{border-top:1px dashed var(--neutral-border);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding-top:var(--space-1);background:var(--neutral-bg)}.table-wrap .user-history>td{display:block;background:none;padding:0;text-align:left}.user-history .table-wrap{border-left:0;padding-left:0}.user-history .table-wrap tr{background:none;border:0;border-top:1px solid var(--neutral-border);border-radius:0;box-shadow:none;margin:0;padding:var(--space-2) 0}.user-history .table-wrap tr:first-child{border-top:0}.table-wrap td:not([data-label]) .row-actions .history-toggle{flex:none}}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--dialog-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:dialog-fade-in .14s ease-out}@keyframes dialog-fade-in{0%{opacity:0}to{opacity:1}}.dialog-panel{background:var(--dialog-bg);border:1px solid var(--border);border-radius:14px;box-shadow:var(--dialog-shadow);width:100%;max-width:460px;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;overflow:hidden;animation:dialog-scale-in .16s cubic-bezier(.16,1,.3,1)}@keyframes dialog-scale-in{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog-header{padding:var(--space-5) var(--space-5) var(--space-2)}.dialog-title{font-size:1.1rem;font-weight:700;margin:0 0 var(--space-1);color:var(--ink);letter-spacing:-.01em}.dialog-description{margin:0;font-size:.92rem;color:var(--muted);line-height:1.45}.dialog-body{padding:var(--space-3) var(--space-5);overflow-y:auto}.dialog-footer{padding:var(--space-3) var(--space-5) var(--space-4);display:flex;justify-content:flex-end;gap:var(--space-2);border-top:1px solid var(--border);background:var(--dialog-footer-bg)}.dialog-form{display:flex;flex-direction:column;gap:var(--space-3)}button.danger-solid{background:var(--danger);color:#fff;border:0;padding:var(--space-2) var(--space-4);border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit;box-shadow:0 2px 0 var(--danger-shadow);transition:background .12s ease,transform 80ms ease}button.danger-solid:hover{filter:brightness(1.05)}button.danger-solid:active{transform:translateY(1px);box-shadow:0 1px 0 var(--danger-shadow)}:root[data-theme=dark] .dropzone{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'><rect width='100%25' height='100%25' fill='none' stroke='%234a4128' stroke-width='2' stroke-dasharray='10 8' rx='12' ry='12'/></svg>")}:root[data-theme=dark] .dropzone:hover{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'><rect width='100%25' height='100%25' fill='none' stroke='%23786735' stroke-width='2' stroke-dasharray='10 8' rx='12' ry='12'/></svg>")}:root[data-theme=dark] .dropzone.dragging{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'><rect width='100%25' height='100%25' fill='none' stroke='%23f5c400' stroke-width='2.5' stroke-dasharray='10 8' rx='12' ry='12'/></svg>")}:root[data-theme=dark] .image-cell{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'><rect width='100%25' height='100%25' fill='none' stroke='%234a4128' stroke-width='2' stroke-dasharray='6 5' rx='10' ry='10'/></svg>")}:root[data-theme=dark] .image-cell.dragging{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'><rect width='100%25' height='100%25' fill='none' stroke='%23f5c400' stroke-width='2' stroke-dasharray='6 5' rx='10' ry='10'/></svg>")}.login-providers{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-top:var(--space-6)}.login-providers a{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:14rem;text-align:center}.login-provider-logo{height:1.4em;width:auto}.login-hint{display:flex;flex-direction:column;gap:var(--space-1);max-width:30rem;margin:var(--space-6) auto 0;padding:var(--space-4) var(--space-4);text-align:left;border:1px dashed var(--border);border-left:4px solid var(--accent-strong);border-radius:var(--radius-lg);background:#ffff001a}.login-hint strong{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;opacity:.75}.login-hint span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.dialog-illustration{display:block;max-height:40vh;max-width:60%;margin:0 auto}.tabbar{display:none}@media (max-width: 720px){header.app-header{padding:var(--space-2) var(--space-4);gap:var(--space-2);padding-top:max(var(--space-2),env(safe-area-inset-top))}header.app-header .nav-links{display:none}header.app-header nav{gap:var(--space-2)}.tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;inset:auto 0 0 0;z-index:60;background:var(--header-bg);border-top:1px solid rgba(255,255,255,.08);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:var(--space-2) var(--space-1);color:var(--header-fg);text-decoration:none;font-size:.72rem;opacity:.65;-webkit-tap-highlight-color:transparent}.tabbar a.active{opacity:1;color:var(--accent)}.tabbar svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}main{padding-bottom:calc(56px + env(safe-area-inset-bottom) + var(--space-5))}button,.primary,.ghost,.danger,input:not([type=checkbox]),select,textarea{min-height:44px}input[type=checkbox]{width:22px;height:22px}.row-actions button{padding-inline:var(--space-4)}header.app-header .brand,header.app-header .balance{min-height:44px;display:inline-flex;align-items:center}}.subnav{display:none}@media (max-width: 720px){.subnav{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none}.subnav::-webkit-scrollbar{display:none}.subnav a{flex:none;padding:var(--space-2) var(--space-4);min-height:44px;display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--card-bg);color:var(--ink);text-decoration:none;white-space:nowrap}.subnav a.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}}.check{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:calc(var(--space-2) * -1);cursor:pointer}@media (max-width: 720px){.table-wrap{overflow-x:visible;box-shadow:none}.table-wrap table{background:none}.table-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block;width:auto}.table-wrap tr{background:var(--table-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3)}.table-wrap tr:hover td{background:none}.table-wrap tr:last-child{margin-bottom:0}.table-wrap td{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);border:0;padding:var(--space-1) 0;white-space:normal;text-align:right}.table-wrap td:before{content:attr(data-label);flex:none;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left}.table-wrap td:not([data-label]){justify-content:flex-start}.table-wrap td:not([data-label]) .row-actions{width:100%}.table-wrap td:not([data-label]) .row-actions button{flex:1}}.shop-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.shop-toolbar .chips{margin-bottom:0}.shop-toolbar__sort{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.shop-toolbar__sort .select-button{width:auto}.shop-empty{grid-column:1 / -1;margin:0}.chip--tag{display:inline-flex;align-items:center;gap:var(--space-2)}.chip__check{width:16px;height:16px;margin-left:calc(-1 * var(--space-1));fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chip__count{min-width:1.4em;padding:0 var(--space-1);border-radius:999px;background:var(--bg-soft);color:var(--muted);font-size:.8rem;font-weight:600;text-align:center}.shop-filter-summary{margin:calc(-1 * var(--space-2)) 0 var(--space-4);color:var(--muted)}.link-button{background:none;border:0;padding:0;font:inherit;color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent-strong);text-underline-offset:2px;cursor:pointer}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-1)}.tag-list .tag{padding:0 var(--space-2);border:1px solid var(--border);border-radius:999px;background:var(--bg-soft);color:var(--muted);font-size:.8rem}.shop-layout{padding-bottom:88px}.stepper{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--border);border-radius:999px;padding:2px;background:var(--card-bg);margin:0;min-inline-size:0}.stepper button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s ease,color .12s ease,transform 80ms ease}.stepper button:hover:not(:disabled){background:var(--bg-soft)}.stepper button:active:not(:disabled){transform:scale(.92)}.stepper button:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}.stepper button:disabled{color:var(--muted);opacity:.4;cursor:not-allowed}.stepper .stepper__remove{color:var(--muted)}.stepper .stepper__remove:hover:not(:disabled){background:var(--danger-bg);color:var(--danger)}.stepper span{min-width:2.5ch;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.product-card .stepper{align-self:stretch;justify-content:space-between}.card-cta-in{animation:card-cta-in .2s cubic-bezier(.2,.8,.2,1)}@keyframes card-cta-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.card-cta-in{animation-duration:.13s}}.cart{--from-w: 200px;position:fixed;right:var(--space-5);bottom:var(--space-5);z-index:70;width:min(380px,calc(100vw - 2 * var(--space-5)));max-height:calc(100vh - 64px - 2 * var(--space-5));display:flex;flex-direction:column;gap:var(--space-3);overflow-y:auto;background:var(--accent);border:1.5px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-5);clip-path:inset(calc(100% - 52px) 0 0 calc(100% - var(--from-w)) round 26px);visibility:hidden;transition:clip-path .24s cubic-bezier(.4,0,.2,1),background .24s ease,visibility 0s linear .24s;pointer-events:none}.cart>*{opacity:0;transition:opacity 80ms ease}.cart--open{clip-path:inset(0 round var(--radius-lg));background:var(--card-bg);visibility:visible;transition:clip-path .24s cubic-bezier(.4,0,.2,1),background .24s ease,visibility 0s;pointer-events:auto}.cart--open>*{opacity:1;transition:opacity .14s ease .12s}.cart--emptying{opacity:0;transition:clip-path .24s cubic-bezier(.4,0,.2,1),background .24s ease,opacity .14s ease .17s,visibility 0s linear .32s}.cart-bar--leaving{opacity:0;pointer-events:none;transition:none}.cart-bar{animation:cart-bar-in .22s cubic-bezier(.2,.8,.2,1)}@keyframes cart-bar-in{0%{opacity:0;transform:translateY(16px) scale(.9)}to{opacity:1;transform:none}}.cart>.cart__checkout{transition:opacity 80ms ease,transform 80ms ease,box-shadow 80ms ease,background .12s ease}.cart--open>.cart__checkout{transition:opacity .14s ease .12s,transform 80ms ease,box-shadow 80ms ease,background .12s ease}@media (prefers-reduced-motion: reduce){.cart{transition-duration:.15s,.15s,0s;transition-delay:0s,0s,.15s}.cart--open{transition-delay:0s}.cart>*,.cart--open>*{transition-duration:80ms;transition-delay:0s}.cart--open>*{transition-delay:70ms}.cart-bar{transition-delay:0s,0s,90ms}.cart--emptying{transition-duration:.15s,.15s,90ms,0s;transition-delay:0s,0s,70ms,.16s}.cart-bar{animation-duration:.14s}@keyframes cart-bar-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}}.cart__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.cart__head h3{margin:0}.cart__head-actions{display:inline-flex;align-items:stretch;border:1px solid var(--border);border-radius:999px;background:var(--card-bg);overflow:hidden;margin:0;padding:0;min-inline-size:0}.cart__head-actions>button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:34px;padding:0;border:0;background:none;cursor:pointer;transition:background .12s ease,color .12s ease}.cart__head-actions>button+button{border-left:1px solid var(--border)}.cart__head-actions>button:focus-visible{outline:2px solid var(--accent-strong);outline-offset:-2px}.cart__head-actions>button:disabled{opacity:.4;cursor:not-allowed}.cart__close{color:var(--muted)}.cart__close:hover{background:var(--bg-soft);color:var(--ink)}.cart__grabber{display:none}.cart__empty-button{color:var(--danger)}.cart__empty-button:hover:not(:disabled){background:var(--danger-bg)}.cart__lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.cart__line{display:grid;grid-template-columns:48px minmax(0,1fr) auto;grid-template-areas:"thumb name total" "thumb unit qty";column-gap:var(--space-3);row-gap:var(--space-1);align-items:center;padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.cart__line--bare{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name total" "unit qty"}.cart__line:last-child{border-bottom:0;padding-bottom:0}.cart__thumb{grid-area:thumb;width:48px;height:48px;align-self:start}.cart__thumb img{width:100%;height:100%;object-fit:contain;border-radius:8px}.cart__name{grid-area:name;font-weight:600;overflow-wrap:anywhere}.cart__line-total{grid-area:total;justify-self:end;font-weight:700;font-variant-numeric:tabular-nums}.cart__unit{grid-area:unit;font-size:.85rem;font-variant-numeric:tabular-nums}.cart__line .stepper{grid-area:qty;justify-self:end}.cart__totals{display:flex;flex-direction:column;gap:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--border-strong)}.cart__sum{display:flex;justify-content:space-between;gap:var(--space-4)}.cart__short{color:var(--danger);font-weight:700}.cart__debt{margin:0;color:var(--danger);font-size:.9rem}.cart__debt a{color:inherit;text-decoration-color:currentColor}.cart__checkout{width:100%}button.link{background:none;border:0;padding:0;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit}button.link:hover{color:var(--ink)}.cart__scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;padding:0}.cart-bar{display:flex;align-items:center;gap:var(--space-3);position:fixed;right:var(--space-5);bottom:var(--space-5);z-index:71;min-height:52px;padding:var(--space-2) var(--space-5) var(--space-2) var(--space-4);border:0;border-radius:999px;background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:700;box-shadow:var(--shadow-lg);cursor:pointer;transition:transform 80ms ease,background .12s ease}.cart-bar:hover{background:var(--accent-strong)}.cart-bar{transition:transform 80ms ease,background .12s ease,opacity .12s ease .13s}.cart-bar[aria-expanded=true]{opacity:0;pointer-events:none;transition:opacity 0ms}.cart-bar:active{transform:translateY(1px)}.cart-bar:focus-visible{outline:3px solid var(--accent-ink);outline-offset:2px}.cart-bar__count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;border-radius:999px;background:var(--accent-ink);color:var(--accent)}@media (max-width: 720px){.cart{inset:auto 0 0 0;width:auto;max-height:80vh;background:var(--card-bg);border-width:1.5px 0 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));clip-path:none;transform:translateY(101%);transition:transform .2s ease,visibility 0s linear .2s}.cart>*{opacity:1}.cart--open{transform:none;transition:transform .2s ease,visibility 0s}.cart--emptying{opacity:1;transition:transform .2s ease,visibility 0s linear .2s}.cart__grabber{display:block;flex:none;align-self:stretch;height:28px;margin:calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) calc(-1 * var(--space-2));touch-action:none;cursor:grab;position:relative}.cart__grabber:after{content:"";position:absolute;left:50%;top:12px;width:40px;height:4px;margin-left:-20px;border-radius:999px;background:var(--border-strong)}.cart__head{touch-action:none}.cart__scrim{background:#00000073}.cart-bar{left:var(--space-3);right:var(--space-3);bottom:calc(56px + env(safe-area-inset-bottom) + var(--space-2));padding:var(--space-2) var(--space-4)}.cart-bar strong{margin-left:auto}}.product-card__stock{margin:0;min-height:1.5em;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3);color:var(--muted);font-size:.95rem;font-variant-numeric:tabular-nums}.stock-badge{display:inline-flex;align-items:center;gap:4px;cursor:default}.stock-badge svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.stock-badge--out{color:var(--danger);font-weight:600}.inline-check{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);font-weight:600;color:var(--ink-soft)}.inline-check input{width:auto;min-width:20px;min-height:20px}.field__hint{display:block;margin-top:var(--space-1);font-size:.85rem}.admin-new-product__stock{border-top:1px solid var(--border);margin-top:var(--space-4);padding-top:var(--space-4)}.stock-fields{display:flex;flex-wrap:wrap;gap:var(--space-4)}.stock-fields__place{display:flex;gap:var(--space-3);flex:1 1 240px}.stock-fields__place .field{flex:1;min-width:0}.shelf-list{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.shelf{font-size:.9rem;color:var(--muted);white-space:nowrap}.shelf strong{color:var(--ink);font-variant-numeric:tabular-nums}.shelf--front strong{color:var(--ink)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.shrinkage{margin-bottom:var(--space-5)}.shrinkage--bad{border-color:var(--danger-border)}.shrinkage h3{margin-bottom:var(--space-2)}.shrinkage__headline{margin:0 0 var(--space-2)}.shrinkage--bad .shrinkage__headline strong{color:var(--danger)}.shrinkage__list{margin:0 0 var(--space-2);padding-left:var(--space-5);color:var(--muted)}.stock-table td.num{vertical-align:top}.shelf-cell{display:inline-flex;flex-direction:column;align-items:flex-end}.shelf-cell strong{font-size:1.05rem}.shelf-cell--low strong{color:var(--danger)}.shelf-cell__counted{font-size:.75rem;white-space:nowrap}.stock-row--low td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.places{margin-top:var(--space-4)}.places__body{margin-top:var(--space-3)}.places__list{list-style:none;margin:0 0 var(--space-4);padding:0}.places__list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.places__list li:last-child{border-bottom:0}.places__list .tag{margin-left:var(--space-2)}.round__places{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-4)}.round__places .field{flex:1 1 200px}.round__resume{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.round__list{list-style:none;margin:var(--space-4) 0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.round__row{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-3) var(--space-4)}.round__row--done{border-color:var(--border-strong);background:var(--bg-soft)}.round__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.round__name{font-weight:600;overflow-wrap:anywhere}.round__tag{margin-left:var(--space-2);font-size:.7rem}.round__entry{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-2)}.round__matches{padding:var(--space-2) var(--space-3)}.round__diff{font-weight:600}.round__diff--missing{color:var(--danger)}.round__take{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--border)}.round__hint{font-size:.85rem}.round__buy{margin:var(--space-4) 0}.round__buy ul{margin:0;padding-left:var(--space-5)}.round__submit{position:sticky;bottom:var(--space-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--card-bg);border:1px solid var(--border-strong);border-radius:999px;box-shadow:var(--shadow-lg)}.numfield{display:inline-flex;align-items:center;gap:var(--space-1);border:1px solid var(--border-strong);border-radius:999px;padding:var(--space-1);background:var(--input-bg)}.numfield__prefix{padding:0 var(--space-2);color:var(--muted);font-size:.85rem;white-space:nowrap}.numfield button{min-width:40px;min-height:40px;padding:0;border:0;border-radius:999px;background:var(--bg-soft);color:var(--ink);font-size:1.2rem;line-height:1;cursor:pointer}.numfield button:hover{background:var(--accent);color:var(--accent-ink)}.numfield input{width:4.5ch;border:0;background:none;text-align:center;font-weight:700;font-size:1.05rem;font-variant-numeric:tabular-nums;padding:0}.numfield input:focus{outline:0;box-shadow:none}.numfield input::-webkit-outer-spin-button,.numfield input::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.numfield input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.stock-result{border:1px solid var(--ok-border);background:var(--ok-bg);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.stock-result h3{margin-bottom:var(--space-2)}.stock-result p{margin:0 0 var(--space-2)}.stock-result ul{margin:0 0 var(--space-3);padding-left:var(--space-5)}.stock-result--missing{border-color:var(--danger-border);background:var(--danger-bg)}.stock-result--missing strong{color:var(--danger)}.history__list{list-style:none;margin:var(--space-4) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.history__event{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.history__summary{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:var(--space-2) var(--space-4);border:0;background:none;font:inherit;color:var(--fg);text-align:left;cursor:pointer;flex-wrap:wrap}.history__summary:hover{background:var(--row-hover-bg)}.history__what{flex:1;min-width:0}.history__missing{color:var(--danger)}.history__when{white-space:nowrap;font-size:.85rem}.history__detail{padding:0 var(--space-4) var(--space-3);border-top:1px solid var(--border)}.history__detail p{margin:var(--space-2) 0}.history__detail ul{list-style:none;margin:0;padding:0}.history__detail li{padding:var(--space-1) 0;font-size:.95rem}.history__product{font-weight:600}.history__up{color:var(--ok);font-weight:700;font-variant-numeric:tabular-nums}.history__down{color:var(--danger);font-weight:700;font-variant-numeric:tabular-nums}.dialog-description{white-space:pre-line}@media (max-width: 720px){.subnav{-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}.round__submit{bottom:calc(56px + env(safe-area-inset-bottom) + var(--space-2))}.numfield button{min-width:44px;min-height:44px}.stock-fields__place{flex:1 1 100%}.subnav+.chips{margin-top:var(--space-5);gap:var(--space-3);margin-bottom:var(--space-5)}.subnav+.chips .chip{flex:1 1 auto;min-height:44px;white-space:nowrap}}.import-group{margin-top:var(--space-5)}.import-group h3{margin-bottom:var(--space-2)}.import-confirm{margin-top:var(--space-5)}header.app-header nav button.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;flex:none}header.app-header nav button.theme-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.period-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-5)}.period-tabs button{flex:none;padding:var(--space-2) var(--space-4);min-height:44px;border:1px solid var(--border);border-radius:999px;background:var(--card-bg);color:var(--ink);white-space:nowrap;cursor:pointer}.period-tabs button:hover{background:var(--row-hover-bg)}.period-tabs button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}td.rank{font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}.leaderboard-name{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.4em;min-width:0}.leaderboard-name>:not(.avatar,.avatar-zoom,.motto){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 721px){table.leaderboard td:nth-child(2){max-width:0;width:100%;overflow:hidden}table.leaderboard .leaderboard-name{display:flex}}.leaderboard-name .motto{font-style:italic;color:var(--muted);min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.landing-peek{margin-top:var(--space-5);color:var(--hero-label-fg);position:relative}.landing-peek a{color:var(--accent)}.cropper{display:flex;flex-direction:column;gap:var(--space-4)}.cropper__stage{position:relative;width:min(100%,320px);aspect-ratio:1;margin:0 auto;overflow:hidden;border-radius:var(--radius);background:var(--hero-bg);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.cropper__stage:active{cursor:grabbing}.cropper__stage:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.cropper__img{position:absolute;top:50%;left:50%;max-width:none;pointer-events:none}.cropper__mask{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:0 0 0 2px var(--accent),0 0 0 999px #0000008c;pointer-events:none}.cropper__zoom{display:flex;align-items:center;gap:var(--space-3);width:min(100%,320px);margin:0 auto;color:var(--muted);font-weight:700}.cropper__zoom input{flex:1;padding:0;border:0;background:none;box-shadow:none;accent-color:var(--accent-strong)}
