:root{--bg:#f6f7fb;--card-bg:#fff;--text:#1f2430;--muted:#6b7280;--border:#e3e6ee;--accent:#2b50a4;--accent-hover:#21407f;--danger:#b91c1c;--danger-bg:#fdecec;--sans:system-ui, "Segoe UI", Roboto, Arial, sans-serif}*{box-sizing:border-box}body{font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}.auth-screen{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100svh;padding:24px;display:flex}.auth-card{background:var(--card-bg);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:14px;width:100%;max-width:360px;padding:32px 28px;display:flex;box-shadow:0 10px 25px #1118270f}.brand{text-align:center;color:var(--accent);letter-spacing:-.5px;margin:0;font-size:28px;font-weight:700}.subtitle{text-align:center;color:var(--muted);margin:0 0 8px;font-size:14px}.auth-card label{flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.auth-card input{border:1px solid var(--border);border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:15px}.auth-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2b50a41f}.auth-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:6px;padding:11px 14px;font-size:15px;font-weight:600}.auth-card button:hover:not(:disabled){background:var(--accent-hover)}.auth-card button:disabled{opacity:.6;cursor:default}.error{background:var(--danger-bg);color:var(--danger);border-radius:8px;margin:0;padding:9px 12px;font-size:13px}.footer-note{color:var(--muted);font-size:12px}.centered{min-height:100svh;color:var(--muted);justify-content:center;align-items:center;display:flex}.app-shell{min-height:100svh}.topbar{background:var(--card-bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.brand-small{color:var(--accent);font-size:18px;font-weight:700}.topbar-right{align-items:center;gap:12px;font-size:14px;display:flex}.role-badge{color:var(--accent);background:#2b50a41a;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.link-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;padding:6px 12px;font-size:13px}.link-btn:hover{background:var(--bg)}.content{width:100%;max-width:960px;margin:0 auto;padding:28px 20px}.content h2{margin:0 0 6px}.content h3{margin:24px 0 10px}.branch-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.branch-list li{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.branch-list .code{color:var(--muted);background:var(--bg);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.card-text{color:var(--text);margin:0;font-size:14px;line-height:1.5}.muted{color:var(--muted);font-size:14px}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 14px;font-family:inherit;font-size:14px;font-weight:600}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.6;cursor:default}.layout{min-height:100svh;display:flex}.sidebar{background:var(--card-bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:18px;width:220px;padding:16px 12px;display:flex}.sidebar-brand{color:var(--accent);padding:6px 10px;font-size:18px;font-weight:700}.nav{flex-direction:column;gap:4px;display:flex}.nav-link{color:var(--text);border-radius:8px;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none}.nav-link:hover{background:var(--bg)}.nav-link.active{color:var(--accent);background:#2b50a41a;font-weight:600}.main-area{flex-direction:column;flex:1;min-width:0;display:flex}.page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h2{margin:0}.data-table{border-collapse:collapse;background:var(--card-bg);border:1px solid var(--border);border-radius:10px;width:100%;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 14px;font-size:14px}.data-table th{background:var(--bg);color:var(--muted);font-weight:600}.data-table tr:last-child td{border-bottom:none}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:20px}.form-card{margin-bottom:20px}.form-card h3{margin:0 0 14px}.product-form{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.product-form label{flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.product-form input{border:1px solid var(--border);border-radius:8px;padding:9px 11px;font-family:inherit;font-size:14px}.product-form input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2b50a41f}.product-form .error{grid-column:1/-1}.form-actions{grid-column:1/-1;justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.load-error{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.stack-form{flex-direction:column;gap:12px;display:flex}.stack-form label{flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.stack-form input{border:1px solid var(--border);border-radius:8px;padding:9px 11px;font-family:inherit;font-size:14px}.stack-form input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2b50a41f}.success{color:#1c7a3f;background:#e7f6ec;border-radius:8px;margin:0;padding:9px 12px;font-size:13px}.product-form .full-width{grid-column:1/-1}.photo-col{width:64px}.thumb{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:44px;height:44px}.thumb-empty{background:var(--bg);color:var(--muted);justify-content:center;align-items:center;font-size:12px;display:inline-flex}.preview-thumb{width:64px;height:64px;margin-top:6px}.field-label{font-size:13px;font-weight:600}.photo-field{flex-direction:column;gap:8px;display:flex}.photo-current{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.checkbox-row{align-items:center;gap:8px;font-size:13px;display:flex}.checkbox-row input[type=checkbox]{width:auto}.checkbox-row label{font-weight:500}.row-inactive{opacity:.55}.tag-inactive{color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:999px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:600}.page-center{max-width:460px;margin:0 auto}
