:root{--navy:#0f2350;--navy2:#0b1a3d;--brand:#c93d17;--brand2:#e0531f;--ink:#1d2433;--muted:#667085;--line:#e4e8f0;--bg:#f4f6fa;--card:#fff;--ok:#0b8a4a;--err:#c2261d;--warn:#b26a00;--r:10px}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body.adm{font:14px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:#2457c5;text-decoration:none}a:hover{text-decoration:underline}
.side{position:fixed;inset:0 auto 0 0;width:232px;background:linear-gradient(180deg,var(--navy2),var(--navy));color:#cdd6ea;overflow-y:auto;z-index:20}
.brand{display:flex;gap:10px;align-items:center;padding:18px 16px;color:#fff;text-decoration:none!important}
.brand .bm{width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,var(--brand),#ff8a3c);display:grid;place-items:center;font-weight:800;color:#fff}
.brand b{display:block;font-size:15px}.brand small{display:block;font-size:11px;color:#9fb0d4}
.side nav{padding:4px 8px 24px}
.side nav a{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;color:#cdd6ea;margin:1px 0;text-decoration:none}
.side nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.side nav a.on{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 3px 0 0 var(--brand)}
.side .sec{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#7f91bb;margin:14px 10px 4px}
.main{margin-left:232px;min-height:100vh}
.main.solo{margin-left:0}
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;background:#fff;border-bottom:1px solid var(--line);padding:10px 22px}
.top h1{font-size:18px;margin:0;flex:1}
.top-r{display:flex;gap:8px;align-items:center}.who{color:var(--muted);font-size:13px}
.burger{display:none;border:0;background:none;font-size:22px;cursor:pointer}
.content{padding:22px;max-width:1280px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:18px}
.card h2{font-size:15px;margin:0 0 12px}
.grid{display:grid;gap:18px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.edit-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px}
.stat b{display:block;font-size:26px;color:var(--navy)}.stat span{color:var(--muted);font-size:12.5px}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:7px 14px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none!important;white-space:nowrap}
.btn:hover{border-color:#c7cfdd}
.btn.primary{background:linear-gradient(90deg,var(--brand),var(--brand2));border-color:transparent;color:#fff}
.btn.primary:hover{filter:brightness(1.05)}
.btn.navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.danger{color:var(--err);border-color:#f2c9c6}.btn.danger:hover{background:#fff5f4}
.btn.ghost{background:transparent}
.btn.sm{padding:4px 9px;font-size:12.5px}
.btn.wide{width:100%;justify-content:center;padding:10px}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.field{margin:0 0 14px}
.field label{display:block;font-weight:600;font-size:13px;margin:0 0 5px}
.field label.check{display:flex;gap:8px;align-items:center;font-weight:500}
input[type=text],input[type=url],input[type=email],input[type=password],input[type=number],input[type=search],input[type=datetime-local],select,textarea{width:100%;padding:8px 10px;border:1px solid #cfd6e3;border-radius:8px;font:inherit;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid #bcd0ff;border-color:#7a9ce8}
textarea{resize:vertical}
textarea.code{font:12.5px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.help{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.title-input{font-size:20px!important;font-weight:700;padding:10px 12px!important}
table.list{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
table.list th,table.list td{padding:9px 12px;border-bottom:1px solid #eef1f6;text-align:left;vertical-align:middle}
table.list th{background:#f8f9fc;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
table.list tr:hover td{background:#fbfcff}
table.list .t a{font-weight:600}
.row-actions{font-size:12px;color:var(--muted);margin-top:2px}.row-actions a{margin-right:8px}
.thumb{width:48px;height:36px;object-fit:cover;border-radius:6px;background:#eef1f6;display:block}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.toolbar form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.toolbar input,.toolbar select{width:auto}
.pill{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11.5px;font-weight:600;background:#eef1f6;color:#475069}
.pill.publish{background:#e6f6ee;color:var(--ok)}.pill.draft{background:#fff4e0;color:var(--warn)}.pill.private{background:#ecebff;color:#5b3fd1}
.notice{padding:11px 14px;border-radius:8px;margin-bottom:14px;background:#e9f7ef;border:1px solid #bfe6cf;color:#0a5c34}
.notice.err{background:#fff1f0;border-color:#f3c5c1;color:#9b1c14}.notice.warn{background:#fff8e6;border-color:#f3dca6;color:#7a4b00}.notice.info{background:#eef4ff;border-color:#c9d8fb;color:#1e3f8a}
.pager{display:flex;gap:4px;margin:14px 0;flex-wrap:wrap}.pager a,.pager b,.pager span{padding:5px 10px;border-radius:7px;border:1px solid var(--line);background:#fff}.pager b{background:var(--navy);color:#fff;border-color:var(--navy)}
.muted{color:var(--muted)}.small{font-size:12.5px}
.catbox{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.catbox label{display:flex;gap:8px;align-items:flex-start;font-weight:500;margin:3px 0}
.imgpick{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.imgpick input{flex:1;min-width:160px}
.imgprev{display:block;max-width:100%;max-height:120px;border-radius:8px;border:1px solid var(--line);margin-top:6px}
.featured-box img{width:100%;border-radius:8px;border:1px solid var(--line)}
.progress{height:14px;background:#e8ecf4;border-radius:10px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brand),#ff9a3c);transition:width .3s}
.log{max-height:260px;overflow:auto;background:#0f1730;color:#cfe0ff;border-radius:8px;padding:10px 12px;font:12px/1.5 ui-monospace,Menlo,Consolas,monospace}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.media-item{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;cursor:pointer}
.media-item img{width:100%;height:110px;object-fit:cover;display:block;background:#eef1f6}
.media-item .cap{font-size:11px;padding:5px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.media-item.sel{outline:3px solid var(--brand)}
.modal{position:fixed;inset:0;background:rgba(10,18,40,.55);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.modal.open{display:flex}
.modal-box{background:#fff;border-radius:12px;width:min(980px,100%);max-height:90vh;display:flex;flex-direction:column}
.modal-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}.modal-h b{flex:1}
.modal-b{padding:14px 16px;overflow:auto}
.modal-f{padding:10px 16px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}
.menu-tree{list-style:none;margin:0;padding:0}.menu-tree li{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px;margin:6px 0}
.menu-tree li.child{margin-left:32px;background:#fafbfe}
.menu-row{display:grid;grid-template-columns:28px 1fr 1fr 110px 110px auto;gap:8px;align-items:center}
.drag{cursor:grab;color:var(--muted);text-align:center}
.serp{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff}
.serp .u{color:#1a6b2b;font-size:12.5px}.serp .t{color:#1a0dab;font-size:18px;line-height:1.3;margin:2px 0}.serp .d{color:#4d5156;font-size:13px}
.counter{float:right;font-weight:500;color:var(--muted);font-size:12px}.counter.bad{color:var(--err)}
.login{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 20%,#1d3a7a,var(--navy2))}
.login-box{width:min(380px,100%);background:#fff;border-radius:14px;padding:26px;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.brand.big{color:var(--navy);padding:0 0 18px}.brand.big small{color:var(--muted)}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:8px 12px;border-radius:8px 8px 0 0;color:var(--muted);font-weight:600}.tabs a.on{color:var(--navy);box-shadow:inset 0 -2px 0 var(--brand)}
.kv{display:grid;grid-template-columns:180px 1fr;gap:6px 12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0}
.editor-wrap{border:1px solid #cfd6e3;border-radius:8px;overflow:hidden;background:#fff}
.editor-tabs{display:flex;gap:2px;background:#f4f6fa;border-bottom:1px solid #cfd6e3;padding:4px 4px 0}
.editor-tabs button{border:0;background:none;padding:6px 12px;border-radius:6px 6px 0 0;font:inherit;font-weight:600;color:var(--muted);cursor:pointer}
.editor-tabs button.on{background:#fff;color:var(--ink)}
.editor-wrap textarea{border:0;border-radius:0;min-height:520px}
@media (max-width:1100px){.edit-grid{grid-template-columns:1fr}.g4{grid-template-columns:1fr 1fr}}
@media (max-width:820px){.side{transform:translateX(-100%);transition:transform .2s}.menu-open .side{transform:none}.main{margin-left:0}.burger{display:block}.g2,.g3,.g4{grid-template-columns:1fr}.content{padding:14px}.top-r .who{display:none}.menu-row{grid-template-columns:24px 1fr}.kv{grid-template-columns:1fr}}
