.toast-region{bottom:var(--space-4);right:var(--space-4);left:var(--space-4);align-items:flex-end;gap:var(--space-2);z-index:200;pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{pointer-events:auto;width:100%;max-width:24rem;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:var(--color-surface);border:1px solid var(--color-border)}.toast--success{background:var(--color-success-bg);border-color:var(--color-success)}.toast--error{background:var(--color-danger-bg);border-color:var(--color-danger-border)}@media (width<=420px){.toast-region{align-items:stretch}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-target);padding:0 var(--space-4);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-base);cursor:pointer;border:1px solid #0000;transition:background-color .15s,border-color .15s;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.6}.btn--primary{background:var(--color-accent);color:var(--color-accent-contrast)}.btn--primary:hover:not(:disabled){background:var(--color-accent-strong)}.btn--secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.btn--secondary:hover:not(:disabled){border-color:var(--color-accent)}.btn--danger{background:var(--color-surface);border-color:var(--color-danger);color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger-bg)}.btn--ghost{color:var(--color-accent-strong);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--color-danger-bg,#0000000d)}.btn__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1rem;height:1rem;animation:.6s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn__spinner{animation-duration:1.4s}}.async-state{align-items:flex-start;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;display:flex}.async-state--error{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.async-state__title{margin:0;font-weight:700}.async-state__spinner{border:3px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;width:1.5rem;height:1.5rem;animation:.7s linear infinite async-spin}@keyframes async-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.async-state__spinner{animation-duration:1.6s}}.field{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.field__label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:600}.field__control{min-height:var(--tap-target);padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text)}.field__control:disabled{opacity:.6}.field__hint{font-size:var(--font-size-sm);color:var(--color-text-muted)}.field__error{font-size:var(--font-size-sm);color:var(--color-danger);font-weight:600}.correction-form{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.correction-form__row{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.correction-form__note{margin-top:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.correction-form__error{margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.item-detail{gap:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);grid-template-columns:minmax(0,12rem) 1fr;display:grid}.item-detail__image{border-radius:var(--radius-sm);background:var(--color-bg);object-fit:contain;width:100%;height:auto}.item-detail__title{margin:0 0 var(--space-2)}.item-detail__meta{gap:var(--space-2) var(--space-4);color:var(--color-text-muted);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.item-detail__description{color:var(--color-text);max-width:60ch}.back-link{margin-bottom:var(--space-4);align-items:center;display:inline-flex}@media (width<=560px){.item-detail{grid-template-columns:1fr}.item-detail__image{max-width:10rem}}.login-page{min-height:100%;padding:var(--space-5);justify-content:center;align-items:center;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:24rem;padding:var(--space-6);box-shadow:var(--shadow-sm)}.login-card__title{margin:0 0 var(--space-2)}.login-card__subtitle{margin:0 0 var(--space-5);color:var(--color-text-muted)}.login-card__notice{margin:0 0 var(--space-4);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning);font-size:var(--font-size-sm)}.login-card__error{margin:0 0 var(--space-4);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);font-size:var(--font-size-sm)}.login-card__hint{margin-top:var(--space-5);font-size:var(--font-size-sm);color:var(--color-text-muted)}.stock-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.stock-item+.stock-item{margin-top:var(--space-2)}.stock-item__link{align-items:center;gap:var(--space-3);padding:var(--space-3);color:inherit;border-radius:var(--radius-md);text-decoration:none;display:flex}.stock-item__thumb{border-radius:var(--radius-sm);object-fit:contain;background:var(--color-bg);flex:none}.stock-item__body{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.stock-item__title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.stock-item__meta{gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);display:flex}.stock-item__category{text-transform:capitalize}.stock-item__stock{align-items:flex-end;gap:var(--space-1);text-align:right;flex-direction:column;flex:none;display:flex}.stock-item__count--low{color:var(--color-warning);font-weight:700}.stock-item__badge{padding:0 var(--space-2);white-space:nowrap;border-radius:999px;font-size:.75rem;font-weight:600}.stock-item__badge--warning{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.stock-item__badge--info{background:var(--color-accent);color:var(--color-accent-contrast)}@media (width<=480px){.stock-item__link{flex-wrap:wrap}.stock-item__stock{text-align:left;flex-basis:100%;align-items:flex-start}}.list-controls{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.list-controls .field{min-width:10rem}.list-controls__search{flex:16rem}.list-summary{margin:var(--space-3) 0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.pagination{justify-content:center;align-items:center;gap:var(--space-3);margin-top:var(--space-5);display:flex}.pagination__status{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center;min-width:8rem}.stock-list{margin:0;padding:0;list-style:none}:root{--color-bg:#f7f8fa;--color-surface:#fff;--color-border:#cbd2d9;--color-border-strong:#8a97a6;--color-text:#1a2027;--color-text-muted:#4b5563;--color-accent:#0d6b6b;--color-accent-strong:#084f4f;--color-accent-contrast:#fff;--color-danger:#b3261e;--color-danger-bg:#fdecea;--color-danger-border:#f2b8b5;--color-warning:#7a4f01;--color-warning-bg:#fff4e0;--color-warning-border:#f3d38a;--color-success:#1e6b3a;--color-success-bg:#e8f5ec;--color-focus-ring:#0d6b6b;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.75rem;--line-height-base:1.5;--radius-sm:4px;--radius-md:8px;--shadow-sm:0 1px 2px #10182014;--shadow-md:0 4px 12px #1018201f;--tap-target:44px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--color-bg:#14181c;--color-surface:#1d2329;--color-border:#3a4450;--color-border-strong:#5b6774;--color-text:#eef1f4;--color-text-muted:#b7c0ca;--color-accent:#3fb6b6;--color-accent-strong:#6fd0d0;--color-accent-contrast:#06201f;--color-danger:#ff8a80;--color-danger-bg:#3a1f1d;--color-danger-border:#5c2b27;--color-warning:#f0c674;--color-warning-bg:#3a2f14;--color-warning-border:#5c4a1f;--color-success:#7bd39a;--color-success-bg:#17301f;--color-focus-ring:#6fd0d0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);min-width:320px;margin:0}h1,h2,h3{line-height:1.25}a{color:var(--color-accent-strong)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-100%;left:var(--space-3);background:var(--color-accent);color:var(--color-accent-contrast);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);z-index:100;transition:top .15s;position:absolute}.skip-link:focus{top:var(--space-3)}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.app-header__brand{font-weight:700;font-size:var(--font-size-lg);margin:0}.app-header__user{align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-muted);display:flex}.app-main{width:100%;max-width:72rem;padding:var(--space-5) var(--space-4) var(--space-7);flex:1;margin:0 auto}.page-heading{margin:0 0 var(--space-5);font-size:var(--font-size-xl)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.cluster{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}
