:root{--bg:#edf1f5;--bg-soft:#f7f9fc;--panel:#ffffff;--panel-soft:#f3f6fa;--card:#f8fafc;--card-alt:#f1f5f9;--line:#d7dfe8;--line-strong:#bcc9d8;--line-soft:#e7edf3;--text:#142133;--muted:#607287;--title:#22324a;--accent:#2f5ea8;--accent-soft:#eaf1fb;--accent-line:#b9cae8;--danger:#b42318;--danger-soft:#fff4f3;--warning:#b45309;--warning-soft:#fff7ed;--info-soft:#eef8ff;--shadow:0 10px 26px rgba(15,23,42,.06);--shadow-soft:0 2px 8px rgba(15,23,42,.04)}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f8fafc,#edf2f7);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial}
a{color:#244b87;text-decoration:none}.wrap{max-width:1620px;margin:0 auto;padding:24px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.login{max-width:440px;margin:8vh auto 0;padding:24px}.login h1{margin:0 0 8px;font-size:24px}.muted{color:var(--muted)}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1}.field{display:grid;gap:6px;margin:12px 0}label{font-size:13px;font-weight:700;color:#31435a;letter-spacing:.01em}input,button,select,textarea{width:100%;background:#fff;color:var(--text);border:1px solid var(--line-strong);border-radius:12px;padding:11px 12px;font:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input:hover,select:hover,textarea:hover{border-color:#9eb1c9;background:#fcfdff}input:focus,select:focus,textarea:focus{border-color:#7da0d8;box-shadow:0 0 0 4px rgba(47,94,168,.10)}textarea{min-height:320px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.45;background:#fbfdff}button{cursor:pointer}.btn{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;box-shadow:var(--shadow-soft)}.btn:hover{filter:brightness(.99)}.btn.secondary{background:#eef3f8;color:#20324a;border-color:#c7d3e1}.btn.danger{background:var(--danger-soft);color:#a0281f;border-color:#efc5c1}.btn.warning{background:var(--warning-soft);color:#9a3412;border-color:#f4cfa7}.btn.info{background:var(--info-soft);color:#1f5f8b;border-color:#c6dff0}.btn.ghost{background:#fff;color:#44566c;border-color:#cad5e0}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.toolbar button,.toolbar a{width:auto}.layout{display:grid;grid-template-columns:320px 1fr;gap:18px}.sidebar,.editor{padding:18px}.sidebar{border-right:1px solid var(--line);background:linear-gradient(180deg,#f4f7fa,#ebf0f5)}.editor{background:linear-gradient(180deg,#fbfcfe,#f5f8fb)}.list{display:grid;gap:10px;max-height:72vh;overflow:auto;padding-right:4px}.item{border:1px solid #d8e1ea;background:linear-gradient(180deg,#fff,#f8fafc);border-radius:14px;padding:12px;cursor:pointer;text-align:left;box-shadow:var(--shadow-soft)}.item:hover{border-color:#b6c4d3;background:#ffffff}.item.active{border-color:#96afd2;background:linear-gradient(180deg,#eef4fd,#e7eef9);box-shadow:0 0 0 3px rgba(47,94,168,.08)}.item strong{display:block;color:var(--title)}.item small{display:block;color:var(--muted);margin-top:4px}.item-draggable{display:flex;align-items:flex-start;gap:10px}.drag-handle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #d8e1ea;border-radius:10px;background:#fff;color:#64748b;font-size:15px;line-height:1;cursor:grab}.item-body{min-width:0;flex:1}.item.dragging{opacity:.55}.item.drag-over{border-color:#6e94d3;box-shadow:0 0 0 3px rgba(47,94,168,.12)}.item.drag-over .drag-handle{border-color:#9fb7de;color:#244b87;background:#eef4fd}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.search{margin:12px 0 14px}.status{margin:12px 0 0;padding:10px 12px;border-radius:12px;border:1px solid var(--line);display:none}.status.show{display:block}.status.ok{border-color:#a7f3d0;background:#ecfdf5;color:#166534}.status.err{border-color:#fecaca;background:#fef2f2;color:#991b1b}.helper{font-size:12px;color:var(--muted);line-height:1.55}.badge{display:inline-block;padding:4px 8px;border:1px solid var(--line);border-radius:999px;font-size:12px;color:#334155;background:#fff}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.tab-btn{width:auto;padding:9px 14px;border-radius:999px;border:1px solid var(--line-strong);background:#fff;color:#3a4a5f}.tab-btn.active{background:var(--accent-soft);border-color:var(--accent-line);color:#244b87;font-weight:700}.tab-panel{display:none}.tab-panel.active{display:block}.section{margin:18px 0;padding:18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#ffffff,#fafcff);box-shadow:var(--shadow-soft)}.section h3{margin:0;font-size:16px;color:var(--title)}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:-18px -18px 14px;padding:13px 16px;border-bottom:1px solid var(--line-soft);background:linear-gradient(180deg,#f9fbfd,#f1f5f9);border-top-left-radius:16px;border-top-right-radius:16px}.grid-2,.grid-3,.grid-4{display:grid;gap:12px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.table-card{border:1px solid #d7e1ea;border-radius:14px;padding:14px;background:linear-gradient(180deg,#f9fbfd,#f2f6fa);margin:10px 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.table-card h4{margin:0;color:#253850;font-size:14px}.inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-actions button{width:auto}.upload-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.upload-box input[type=file]{max-width:260px;background:#fff}.path-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.mini{font-size:11px;color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:var(--panel-soft);border:1px solid #d6e0ea;font-size:12px;color:#40536a}.hidden{display:none!important}.chip{display:inline-block;padding:4px 8px;border:1px solid #d8e2ec;background:#f8fafc;border-radius:999px;font-size:12px;color:#334155}.selector-chip-group{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0}.selector-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #d8e2ec;background:#f8fafc;border-radius:999px;font-size:13px;color:#334155;cursor:pointer;user-select:none}.selector-chip input{width:auto;margin:0;padding:0}.selector-chip:hover{border-color:#b9c7d7;background:#fff}.selector-chip:has(input:checked){background:#eaf1fb;border-color:#a9c0e6;color:#244b87;font-weight:700}.separator{height:1px;background:var(--line);margin:14px 0}.sticky-top{position:sticky;top:0;z-index:2;background:rgba(248,250,252,.96);backdrop-filter:blur(6px);padding-bottom:12px}.promo-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.promo-admin-card{border:1px solid #d7e1ea;border-radius:16px;padding:14px;background:linear-gradient(180deg,#f9fbfd,#f2f6fa);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.promo-admin-preview{aspect-ratio:1 / 1;border:1px dashed #c7d3e1;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#64748b;font-weight:700}.promo-admin-preview img{width:100%;height:100%;object-fit:cover;display:block}.editor .section:nth-of-type(odd){background:linear-gradient(180deg,#fdfefe,#f7faff)}.editor .section:nth-of-type(even){background:linear-gradient(180deg,#ffffff,#f9fbfd)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#c4ced8;border-radius:999px;border:2px solid #eef2f6}::-webkit-scrollbar-track{background:#eef2f6}@media (max-width:1100px){.layout{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}.grid-2,.grid-3,.grid-4,.promo-admin-grid{grid-template-columns:1fr}}

.backup-meta{display:grid;gap:4px}.backups-actions{display:flex;gap:8px;flex-wrap:wrap}.backups-actions>*{width:auto}

.promo-admin-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.promo-exhausted-toggle{width:auto}.promo-exhausted-toggle.active{background:#b91c1c;border-color:#b91c1c;color:#fff}.promo-admin-preview.has-ribbon{position:relative}.promo-admin-ribbon{position:absolute;left:-30%;top:46%;width:160%;transform:rotate(-36deg);background:rgba(185,28,28,.92);color:#fff;text-align:center;font-weight:900;letter-spacing:.14em;font-size:24px;line-height:1;padding:12px 0;pointer-events:none;text-transform:uppercase;box-shadow:0 10px 24px rgba(127,29,29,.24)}
