*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{min-height:100dvh}:root{--bg:#f5f2ed;--bg-card:#fff;--text:#1a1d24;--text-muted:#5c6370;--accent:#c17f44;--accent-hover:#a66b38;--accent-soft:#f0e6dc;--border:#e2ddd6;--error:#b91c1c;--success:#15803d;--radius:12px;--radius-sm:8px;--shadow:0 2px 8px #1a1d240f;--shadow-lg:0 8px 24px #1a1d241a;--header-h:52px;--bottom-nav-h:72px;--touch:44px;color:var(--text);background:var(--bg);font-family:DM Sans,system-ui,sans-serif;font-size:16px}*{box-sizing:border-box}body{-webkit-tap-highlight-color:transparent;min-height:100dvh;margin:0}.app-shell{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.topbar{z-index:100;min-height:var(--header-h);padding:0 1rem;padding-top:env(safe-area-inset-top);background:var(--text);color:var(--bg-card);box-shadow:var(--shadow);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar-menu-btn{color:#fff;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin:0 -.25rem 0 0;padding:0;display:flex}.topbar-menu-btn:hover{background:#ffffff1a}.hamburger{flex-direction:column;justify-content:center;gap:5px;width:22px;height:18px;display:flex}.hamburger span{background:currentColor;border-radius:1px;height:2px;display:block}.hamburger span:first-child,.hamburger span:nth-child(2),.hamburger span:nth-child(3){width:100%}.brand{letter-spacing:-.02em;text-align:center;flex:1;font-size:1.15rem;font-weight:700}.drawer-overlay{z-index:200;opacity:0;visibility:hidden;background:#0006;transition:opacity .2s,visibility .2s;position:fixed;inset:0}.drawer-overlay.is-open{opacity:1;visibility:visible}.drawer-panel{z-index:210;background:var(--bg-card);width:280px;max-width:85vw;box-shadow:var(--shadow-lg);padding-top:env(safe-area-inset-top);flex-direction:column;transition:transform .25s ease-out;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.drawer-panel.is-open{transform:translate(0)}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:56px;padding:0 1rem;display:flex}.drawer-title{color:var(--text);font-size:1.1rem;font-weight:700}.drawer-close{min-width:44px;min-height:44px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;margin:-.5rem -.5rem -.5rem 0;font-size:1.5rem;line-height:1;display:flex}.drawer-close:hover{background:var(--accent-soft);color:var(--accent)}.drawer-nav{flex-direction:column;padding:.5rem 0;display:flex;overflow:auto}.drawer-nav a,.drawer-nav .drawer-logout{min-height:48px;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;width:100%;padding:0 1.25rem;font-family:inherit;font-size:1rem;font-weight:500;text-decoration:none;display:flex}.drawer-nav a:hover,.drawer-logout:hover{background:var(--accent-soft);color:var(--accent)}.drawer-nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.drawer-logout{color:var(--text-muted);border-top:1px solid var(--border);margin-top:.5rem;padding-top:1rem}.topbar-right{align-items:center;display:flex}.cart-badge{background:var(--accent);color:#fff;border-radius:var(--radius-sm);justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 .75rem;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.cart-badge:hover{background:var(--accent-hover);color:#fff}.user-menu{align-items:center;gap:.5rem;display:flex}.user-menu span{color:#ffffffe6;font-size:.9rem;font-weight:500}.user-menu .btn{min-height:40px;padding:0 1rem;font-size:.9rem}.btn{min-height:var(--touch);font:inherit;border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0 1.25rem;font-weight:600;transition:background .2s,transform .1s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{color:#ffffffe6;background:0 0}.btn-ghost:hover{background:#ffffff1a}.btn:disabled{opacity:.6;cursor:not-allowed}.bottom-nav{z-index:90;min-height:72px;padding:.5rem 0;padding-bottom:calc(.5rem + env(safe-area-inset-bottom));background:var(--bg-card);border-top:1px solid var(--border);justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #00000014}@media (width>=768px){.bottom-nav{display:none}}.bottom-nav a{min-width:72px;min-height:56px;color:var(--text-muted);border-radius:var(--radius-sm);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:.5rem .25rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:flex}.bottom-nav a:hover,.bottom-nav a.active{background:var(--accent-soft);color:var(--accent)}.bottom-nav .nav-icon{margin-bottom:.25rem;font-size:1.5rem;line-height:1}.bottom-nav a.active .nav-icon{opacity:1}.main{padding:1.25rem 1rem;padding-bottom:calc(var(--bottom-nav-h) + 1.25rem + env(safe-area-inset-bottom));flex:1}@media (width>=768px){.main{padding:1.5rem}}.login-page{min-height:100dvh;padding:1.5rem;padding-top:env(safe-area-inset-top);flex-direction:column;justify-content:center;align-items:center;display:flex}.login-card{background:var(--bg-card);border-radius:var(--radius);width:100%;max-width:360px;box-shadow:var(--shadow-lg);padding:2rem}.login-page h1{text-align:center;color:var(--text);margin:0 0 1.5rem;font-size:1.5rem;font-weight:700}.login-page label{color:var(--text);margin-bottom:1rem;font-size:.9rem;font-weight:500;display:block}.login-page input{width:100%;min-height:var(--touch);font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);margin-top:.35rem;padding:0 1rem}.login-page input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.login-page .btn{width:100%;margin-top:.5rem}.error-msg{color:var(--error);border-radius:var(--radius-sm);background:#fef2f2;margin-top:.75rem;padding:.5rem;font-size:.875rem}.page-title{margin:0 0 1rem;font-size:1.25rem;font-weight:700}.catalog-toolbar{flex-direction:column;gap:.75rem;margin-bottom:1.25rem;display:flex}@media (width>=600px){.catalog-toolbar{flex-flow:wrap;align-items:center}}.search-input{min-width:0;min-height:var(--touch);font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);flex:1;padding:0 1rem}.search-input:focus{border-color:var(--accent);outline:none}.filter-select{min-height:var(--touch);font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);padding:0 2rem 0 1rem}.product-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=480px){.product-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.product-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}}.product-card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.5rem;padding:1.25rem;transition:box-shadow .2s;display:flex}.product-card:hover{box-shadow:var(--shadow-lg)}.product-card h3{color:var(--text);margin:0;font-size:1rem;font-weight:600;line-height:1.3}.product-card .meta{color:var(--text-muted);font-size:.85rem}.product-card .price{color:var(--accent);margin-top:.25rem;font-size:1.1rem;font-weight:700}.product-card .btn{min-height:44px;margin-top:auto}.loading-msg,.empty-msg{text-align:center;color:var(--text-muted);padding:2rem}.order-page{flex-direction:column;gap:1.25rem;display:flex}@media (width>=768px){.order-page{grid-template-columns:1fr 320px;align-items:start;gap:1.5rem;display:grid}}.panel{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.panel h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.panel h2:not(:first-child){margin-top:1.25rem}.panel label{margin-bottom:.75rem;display:block}.panel label span,.panel label .label-text{margin-bottom:.35rem;font-size:.9rem;font-weight:500;display:block}.panel select,.panel input[type=number]{width:100%;min-height:44px;font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);padding:0 .75rem}.panel select:focus,.panel input:focus{border-color:var(--accent);outline:none}.cart-line{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 0;display:flex}.cart-line:last-child{border-bottom:none}.cart-line .info strong{font-size:.95rem;display:block}.cart-line .info .meta{color:var(--text-muted);margin-top:.15rem;font-size:.8rem}.cart-line-actions{align-items:center;gap:.5rem;display:flex}.cart-line-actions input{width:56px;min-height:40px;font:inherit;text-align:center;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 .25rem}.cart-line-actions .line-total{text-align:right;min-width:4rem;font-weight:600}.summary-row{justify-content:space-between;padding:.5rem 0;font-size:.95rem;display:flex}.summary-row.total{border-top:1px solid var(--border);margin-top:.5rem;padding-top:.75rem;font-size:1.1rem;font-weight:700}.panel .btn{width:100%;margin-top:1rem}.message-ok{color:var(--success);border-radius:var(--radius-sm);background:#f0fdf4;margin-top:.75rem;padding:.5rem;font-size:.9rem}.admin-import-page{max-width:720px}.admin-import-page .page-title{margin-bottom:.5rem}.admin-import-page>p{color:var(--text-muted);margin:0 0 1.5rem;font-size:.95rem}.import-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=480px){.import-grid{grid-template-columns:repeat(2,1fr)}}.import-section{border:2px dashed var(--border);border-radius:var(--radius);background:var(--bg);padding:1.25rem;transition:border-color .2s}.import-section:hover{border-color:var(--accent)}.import-section h3{margin:0 0 .5rem;font-size:1rem;font-weight:600}.import-section input[type=file]{min-height:44px;padding:.5rem;font-size:.9rem}.import-result{background:var(--text);color:var(--bg);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-all;max-height:200px;margin-top:1.5rem;padding:1rem;font-family:ui-monospace,monospace;font-size:.8rem;overflow:auto}
