:root { --red:#ed1a3b; --wine:#7a2430; --ink:#242424; --muted:#707070; --line:#e8e8e8; --surface:#fff8f9; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; font-family:Inter,Segoe UI,Arial,sans-serif; color:var(--ink); background:#fff; }
button,input { font:inherit; }
button { cursor:pointer; }
a { color:var(--wine); }
.auth-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(135deg,#fff 0%,#fff8f9 100%); }
.auth-panel { width:min(430px,100%); padding:32px; background:#fff; border:1px solid var(--line); box-shadow:0 18px 45px #7a24301a; }
.brand-logo { display:block; width:190px; max-width:100%; margin:0 auto 28px; object-fit:contain; }
h1 { margin:0 0 8px; font-size:clamp(1.8rem,5vw,2.5rem); }
.muted { color:var(--muted); }
.field { display:grid; gap:6px; margin:18px 0; }
.field label { font-weight:600; font-size:.9rem; }
.field input, .search-row input { width:100%; border:1px solid #ccc; padding:12px 13px; border-radius:6px; }
.check { display:flex; gap:8px; align-items:center; margin:14px 0 20px; font-size:.9rem; }
.primary,.secondary { border:0; border-radius:6px; padding:12px 18px; font-weight:700; }
.primary { width:100%; background:var(--red); color:#fff; }
.primary.compact { width:auto; }
.secondary { background:#f2e7e9; color:var(--wine); }
.primary:disabled { opacity:.6; cursor:wait; }
.error { margin:12px 0; padding:10px; background:#fff0f0; color:#a30000; border-left:3px solid #c60000; }
.auth-links { display:flex; justify-content:space-between; gap:12px; margin-top:24px; font-size:.82rem; }
.session-header { padding:8px 18px; color:var(--wine); background:#f8eef0; font-size:.82rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.page-content { max-width:1180px; margin:auto; padding:32px 22px 56px; }
.page-content.narrow { max-width:760px; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.eyebrow { color:var(--red); text-transform:uppercase; font-size:.75rem; font-weight:800; letter-spacing:.12em; }
.menu-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; }
.menu-tile { position:relative; min-height:138px; display:grid; place-items:center; gap:8px; padding:18px; border:1px solid var(--line); background:#fff; color:var(--ink); font-weight:700; }
.menu-tile:hover,.catalog-card:hover,.client-item:hover { border-color:var(--red); transform:translateY(-2px); }
.tile-icon { color:var(--red); font-size:2rem; line-height:1; }
.badge { position:absolute; top:8px; right:8px; min-width:22px; padding:3px 6px; border-radius:99px; background:var(--red); color:#fff; font-size:.72rem; }
.catalog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.catalog-card { display:grid; gap:8px; text-align:left; padding:0 0 14px; overflow:hidden; border:1px solid var(--line); background:#fff; color:var(--ink); transition:.15s ease; }
.catalog-card img { width:100%; height:220px; object-fit:cover; background:#f5f5f5; }
.catalog-card strong,.catalog-card span { padding:0 14px; }
.catalog-card span { color:var(--muted); font-size:.88rem; }
.search-row { display:flex; gap:10px; margin:22px 0; }
.client-list { display:grid; gap:10px; }
.client-item { display:grid; gap:5px; text-align:left; padding:16px; border:1px solid var(--line); background:#fff; transition:.15s ease; }
.client-item span { color:var(--muted); font-size:.85rem; }
.pdf-page { max-width:1250px; }
.actions { display:flex; gap:8px; }
.pdf-frame { width:100%; height:calc(100vh - 180px); min-height:520px; border:1px solid var(--line); }
@media (max-width:600px) { .auth-panel { padding:24px 20px; } .auth-links { flex-direction:column; } .page-heading { align-items:flex-start; flex-direction:column; } .search-row { flex-direction:column; } .search-row .compact { width:100%; } .actions { width:100%; } .actions button { flex:1; } .pdf-frame { min-height:440px; } }
