:root{--bg:#f5f7fb;--ink:#15223a;--muted:#64748b;--line:#e5eaf2;--nav:#10203a;--nav2:#1a3150;--primary:#1964d8;--primary-dark:#124eac;--card:#fff;--green:#0b7a53;--green-bg:#e4f7ee;--amber:#9a5a0a;--amber-bg:#fff3db;--red:#b33131;--red-bg:#fff1f0;--shadow:0 12px 32px rgba(18,36,68,.045)}
*{box-sizing:border-box}html{font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;min-height:100vh}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}.layout{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr)}.sidebar{background:var(--nav);color:#fff;padding:28px 17px;display:flex;flex-direction:column;gap:34px}.brand{display:flex;align-items:center;gap:12px}.brand strong{display:block;font-size:16px;letter-spacing:-.02em}.brand small{display:block;color:#9db2ce;font-size:12px;margin-top:3px}.brand-mark{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#4a96ff,#1254c6);display:grid;place-items:center;color:#fff;font-weight:800;font-size:13px;box-shadow:0 7px 16px rgba(0,0,0,.14)}.sidebar nav{display:grid;gap:5px}.sidebar nav a{color:#c6d4e6;padding:12px 14px;border-radius:9px;font-size:14px;font-weight:600}.sidebar nav a:hover,.sidebar nav a.active{background:var(--nav2);color:#fff;text-decoration:none}.sidebar-bottom{margin-top:auto;padding:0 12px;display:grid;gap:20px}.sidebar-bottom small{color:#8ca3c0}.text-button{background:none;border:0;padding:0;color:inherit;cursor:pointer;font-weight:600}.sidebar .text-button{color:#c6d4e6}.workspace{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 34px;color:var(--muted);font-size:13px}.topbar-badge{background:#eef4ff;color:#1454b6;padding:7px 12px;border-radius:999px;font-weight:700}.workspace main{max-width:1510px;margin:auto;padding:36px 34px 70px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.page-heading h1{margin:4px 0 7px;font-size:32px;letter-spacing:-.045em;line-height:1.15}.page-heading p:not(.eyebrow){color:var(--muted);margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--primary);font-weight:800;font-size:11px;margin:0}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:9px;padding:11px 15px;font-size:13px;font-weight:700;cursor:pointer;min-height:42px;text-decoration:none;white-space:nowrap}.button:hover{text-decoration:none}.button.primary{background:var(--primary);color:#fff}.button.primary:hover{background:var(--primary-dark)}.button.secondary{border-color:#d6e2f4;background:#fff;color:#1a4c91}.button.secondary:hover{background:#f4f8ff}.button.danger{background:var(--red-bg);color:var(--red);border-color:#f5d6d3}.small-button{min-height:32px;padding:6px 10px}.button-row{display:flex;gap:9px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.stat-card,.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.stat-card{padding:23px}.stat-card span{color:var(--muted);font-size:13px;font-weight:600}.stat-card strong{display:block;font-size:36px;letter-spacing:-.05em;margin:9px 0 12px}.stat-card a{font-size:12px;font-weight:700}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;align-items:start}.card{padding:24px;margin-bottom:18px}.grid-two .card{margin-bottom:0}.card h2{font-size:17px;letter-spacing:-.02em;margin:0 0 16px}.card h3{font-size:14px;margin:0 0 12px}.card p{font-size:14px;line-height:1.55}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.card-heading h2{margin:0}.card-heading a{font-size:12px;font-weight:700}.status-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--line);font-size:13px}.status-row:first-of-type{border-top:0}.pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-weight:700;font-size:11px;white-space:nowrap}.pill.green{background:var(--green-bg);color:var(--green)}.pill.amber{background:var(--amber-bg);color:var(--amber)}.pill.blue{background:#e8f1ff;color:#1d5ec0}.pill.large{padding:10px 15px;font-size:13px}.muted{color:var(--muted)}.small{font-size:12px!important}.empty{color:var(--muted);padding:15px 0}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:680px}th{text-align:left;color:#8390a3;font-size:11px;letter-spacing:.07em;text-transform:uppercase;font-weight:800;padding:10px 12px;border-bottom:1px solid var(--line)}td{font-size:13px;padding:15px 12px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:0}td a{font-weight:800}.clamp{max-width:270px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-card{padding:10px 12px}.footnote{margin:10px 12px 3px;color:var(--muted);font-size:11px!important}.toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.tabs{display:flex;gap:5px;background:#e9eef6;padding:4px;border-radius:10px}.tabs a{padding:9px 15px;color:#64748b;border-radius:7px;font-size:12px;font-weight:700}.tabs a:hover{text-decoration:none}.tabs a.selected{background:#fff;color:var(--ink);box-shadow:0 2px 5px rgba(0,0,0,.06)}.back{display:inline-block;font-size:12px;font-weight:700;margin-bottom:18px}.detail-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.75fr)}.details{margin:0}.details>div{padding:13px 0;border-bottom:1px solid var(--line)}.details>div:last-child{border:0}.details dt{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#8a98aa;margin-bottom:6px}.details dd{margin:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.preserve{white-space:pre-wrap}.photo-box{margin-top:24px}.photo-box img{width:100%;max-height:420px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#f7f9fc}.stack{display:grid;gap:14px}.stack label{display:grid;gap:7px;font-size:12px;font-weight:700}.stack input:not([type=checkbox]),.stack select,.stack textarea{width:100%;border:1px solid #cfdae9;border-radius:8px;background:#fff;color:var(--ink);padding:11px 12px;outline:none;font-size:13px}.stack input:focus,.stack select:focus,.stack textarea:focus{border-color:#5a97eb;box-shadow:0 0 0 3px #eaf3ff}.stack textarea{resize:vertical}.optional{font-weight:400;color:var(--muted)}.stack .check{display:flex;align-items:center;gap:9px;font-weight:600}.check input{accent-color:var(--primary)}.stack .button{justify-self:start}.user-list,.edit-list{display:grid;gap:10px;max-height:700px;overflow:auto}.user-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.user-row>div{display:flex;align-items:center;gap:11px}.avatar{width:30px;height:30px;background:#eaf2ff;border-radius:9px;display:grid;place-items:center;color:#2f65ac;font-size:11px;font-weight:800}.count{font-size:12px;color:var(--muted);font-weight:600}.edit-item{border:1px solid var(--line);border-radius:10px;padding:16px;display:grid;gap:14px}.edit-item .stack{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.edit-item .stack label:nth-of-type(2){grid-column:auto}.edit-item .stack label:has(textarea){grid-column:1/-1}.edit-item .stack button{grid-column:1/-1}.item-head{display:flex;align-items:center;justify-content:space-between}.danger-text{color:var(--red)}hr{border:0;border-top:1px solid var(--line);margin:27px 0}.alert{padding:12px 15px;margin-bottom:16px;border-radius:9px;font-size:13px;font-weight:600}.alert.error{background:var(--red-bg);color:var(--red)}.alert.success{background:var(--green-bg);color:var(--green)}.auth-body{background:linear-gradient(135deg,#eff5ff,#f7f9fc 55%,#e9f0fb)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,440px);background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 25px 70px rgba(27,57,105,.12)}.auth-brand{margin-bottom:28px}.auth-brand small{color:var(--muted)}.auth-card h1{font-size:25px;letter-spacing:-.04em;margin:0 0 8px}.auth-card p{font-size:13px;line-height:1.5;margin:0 0 23px}.auth-card .button{width:100%}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#f2f5fa;padding:2px 5px;border-radius:4px}.auth-wrap>.alert{display:none}
@media(max-width:1050px){.grid-two{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:750px){.layout{display:block}.sidebar{padding:14px;gap:12px}.sidebar nav{display:flex;overflow:auto;gap:4px}.sidebar nav a{white-space:nowrap;padding:8px 10px}.sidebar-bottom{display:none}.topbar{height:52px;padding:0 18px}.workspace main{padding:25px 16px 60px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:26px}.stats{grid-template-columns:1fr}.stat-card{padding:18px}.stat-card strong{font-size:28px}.card{padding:19px}.edit-item .stack{grid-template-columns:1fr}.edit-item .stack label:has(textarea){grid-column:auto}}

.auth-wrap>.alert{display:block;width:min(100%,440px);margin-bottom:10px}
.date-export{display:flex;gap:7px}.date-export input{border:1px solid #d6e2f4;border-radius:8px;padding:8px 10px;color:var(--ink);background:#fff;min-height:42px}
.catalog-list{display:grid;gap:10px;max-height:650px;overflow:auto}.catalog-row{display:flex;align-items:center;gap:12px;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 0;flex-wrap:wrap}.inline-edit{display:flex;gap:8px;align-items:center;flex:1;flex-wrap:wrap}.inline-edit input{min-width:150px;flex:1;border:1px solid #cfdae9;border-radius:8px;padding:8px 10px}.flag-grid{display:flex;gap:10px 18px;flex-wrap:wrap}.flag-grid .check{display:flex;align-items:center;gap:5px}.catalog-list .edit-item .stack{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-list .edit-item .flag-grid{grid-column:1/-1}.catalog-list .edit-item .stack button{grid-column:1/-1}@media(max-width:750px){.catalog-list .edit-item .stack{grid-template-columns:1fr}}
.inline-edit select{border:1px solid #cfdae9;border-radius:8px;padding:8px 10px;background:#fff}
.contact-list{display:grid;gap:12px;max-height:760px;overflow:auto}.contact-item{border:1px solid var(--line);border-radius:10px;padding:16px;display:grid;gap:12px}.contact-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.contact-meta{color:var(--muted);font-size:12px;margin-top:6px}.contact-actions{display:flex;gap:8px}.comment-form{max-width:650px}.user-add-form{max-width:360px}

.workspace{min-height:100vh;display:flex;flex-direction:column}
.workspace main{width:100%;flex:1}
.site-footer{text-align:center;padding:12px 20px 24px;font-size:12px;color:var(--muted)}
.site-footer a{color:inherit;text-decoration:none}
.site-footer a:hover,.site-footer a:focus-visible{color:var(--primary);text-decoration:underline}
.auth-body{min-height:100vh;display:flex;flex-direction:column}
.auth-body .auth-wrap{min-height:0;flex:1}

.statistics-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.statistics-filter label{display:grid;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.statistics-filter input{min-height:42px;border:1px solid #cfdae9;border-radius:8px;padding:8px 10px;color:var(--ink);background:#fff}
.statistics-overview{grid-template-columns:repeat(5,minmax(0,1fr))}
.statistics-overview .stat-card{min-width:0}
.statistics-overview .stat-card strong{font-size:30px}
.statistics-overview .stat-card small{color:var(--muted);font-size:12px}
.statistics-groups{align-items:stretch}
.statistics-groups .card{min-width:0}
.stats-table{min-width:500px}
.operator-form{grid-template-columns:repeat(3,minmax(160px,1fr)) auto;align-items:end}
.operator-form .button{align-self:end}
@media(max-width:1100px){.statistics-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.operator-form{grid-template-columns:repeat(2,minmax(160px,1fr))}}
@media(max-width:750px){.statistics-overview{grid-template-columns:1fr}.operator-form{grid-template-columns:1fr}.statistics-filter{align-items:stretch}.statistics-filter label,.statistics-filter .button{width:100%}}
