*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --navy:#0B1F3A;--blue:#1E5FA8;--ice:#E8F2FB;--border:#D0E4F5;
  --text:#0B1F3A;--muted:#6B8CAE;--ok:#2E9E6B;--err:#C0392B;
}
body{font-family:'Segoe UI',system-ui,sans-serif;background:#F0F4F9;color:var(--text);min-height:100vh;}

.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;}
.login-box{background:#fff;border:1px solid var(--border);padding:2.5rem;width:100%;max-width:400px;box-shadow:0 12px 40px rgba(11,31,58,0.1);}
.login-box h1{font-size:1.4rem;margin-bottom:0.3rem;}
.login-box p{font-size:0.85rem;color:var(--muted);margin-bottom:1.5rem;}
.field{margin-bottom:1rem;}
.field label{display:block;font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);margin-bottom:0.35rem;}
.field input{width:100%;padding:0.7rem 0.9rem;border:1px solid var(--border);font-size:0.9rem;}
.field input:focus{outline:none;border-color:var(--blue);}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.4rem;padding:0.7rem 1.4rem;font-size:0.8rem;font-weight:600;border:none;cursor:pointer;text-decoration:none;}
.btn-prim{background:var(--blue);color:#fff;width:100%;}
.btn-prim:hover{background:#174d8a;}
.btn-sec{background:#fff;color:var(--text);border:1px solid var(--border);}
.btn-sec:hover{background:var(--ice);}
.btn-danger{background:#fff;color:var(--err);border:1px solid #f5c4c0;}
.btn-sm{padding:0.45rem 0.9rem;font-size:0.72rem;}
.err-msg{color:var(--err);font-size:0.8rem;margin-top:0.8rem;display:none;}

.admin-layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh;}
.sidebar{background:var(--navy);color:#fff;padding:1.5rem 0;display:flex;flex-direction:column;}
.sidebar-brand{padding:0 1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,0.1);margin-bottom:1rem;}
.sidebar-brand strong{display:block;font-size:1rem;}
.sidebar-brand span{font-size:0.68rem;opacity:0.5;letter-spacing:0.1em;text-transform:uppercase;}
.nav-item{display:block;width:100%;text-align:left;padding:0.65rem 1.25rem;background:transparent;border:none;color:rgba(255,255,255,0.65);font-size:0.82rem;cursor:pointer;border-left:3px solid transparent;}
.nav-item:hover,.nav-item.active{background:rgba(255,255,255,0.06);color:#fff;border-left-color:var(--blue);}
.btn-logout{display:block;width:100%;text-align:left;padding:0.65rem 1.25rem;background:transparent;border:none;color:rgba(255,255,255,0.5);font-size:0.75rem;cursor:pointer;font-family:inherit;}
.btn-logout:hover{color:#fff;background:rgba(255,255,255,0.06);}
.logo-upload-box{border:2px dashed var(--border);padding:1.5rem;text-align:center;background:var(--ice);margin:1rem 0;}
.logo-preview{width:80px;height:80px;margin:0 auto 1rem;object-fit:contain;border:1px solid var(--border);background:#fff;display:block;}
.panel-title{font-size:1.1rem;color:var(--navy);margin-bottom:1rem;padding-bottom:0.5rem;border-bottom:2px solid var(--blue);}
.sidebar-foot{margin-top:auto;padding:1rem 1.25rem;border-top:1px solid rgba(255,255,255,0.1);}
.sidebar-foot a{color:rgba(255,255,255,0.5);font-size:0.75rem;text-decoration:none;display:block;margin-bottom:0.5rem;}
.sidebar-foot a:hover{color:#fff;}

.main{padding:1.5rem 2rem;overflow:auto;}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem;}
.topbar h2{font-size:1.35rem;font-weight:600;}
.topbar-actions{display:flex;gap:0.5rem;flex-wrap:wrap;align-items:center;}
.cms-status-bar{width:100%;display:flex;flex-wrap:wrap;gap:0.75rem 1.25rem;font-size:0.72rem;margin-top:0.5rem;padding:0.5rem 0.75rem;background:var(--ice);border:1px solid var(--border);}
.cms-status-bar .ok{color:var(--ok);font-weight:600;}
.cms-status-bar .warn{color:#B8860B;font-weight:600;}
.cms-status-bar .err{color:var(--err);font-weight:600;}
.cms-preview-wrap{display:none;margin-top:1.5rem;border:1px solid var(--border);background:#fff;}
.cms-preview-wrap.open{display:block;}
.cms-preview-head{padding:0.6rem 1rem;background:var(--ice);font-size:0.8rem;border-bottom:1px solid var(--border);}
.cms-preview-wrap iframe{width:100%;height:min(520px,55vh);border:none;display:block;}
.cms-module-intro{border-left:4px solid var(--blue);}
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--ok);color:#fff;padding:0.8rem 1.2rem;font-size:0.85rem;z-index:999;display:none;box-shadow:0 4px 20px rgba(0,0,0,0.15);}
.toast.show{display:block;}

.panel{display:none;}
.panel.active{display:block;}
.card{background:#fff;border:1px solid var(--border);padding:1.25rem;margin-bottom:1rem;}
.card h3{font-size:0.95rem;margin-bottom:1rem;padding-bottom:0.6rem;border-bottom:1px solid var(--border);}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
@media(max-width:900px){.admin-layout{grid-template-columns:1fr;}.sidebar{flex-direction:row;flex-wrap:wrap;padding:1rem;}.grid-2,.grid-3{grid-template-columns:1fr;}}

.array-item{border:1px solid var(--border);padding:1rem;margin-bottom:0.8rem;background:var(--ice);}
.array-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.8rem;}
.array-head strong{font-size:0.85rem;}
textarea.field-ta{min-height:70px;resize:vertical;font-family:inherit;}
.hint{font-size:0.72rem;color:var(--muted);margin-top:0.25rem;}

.help-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;}
@media(max-width:800px){.help-grid{grid-template-columns:1fr;}}
.help-box{padding:1rem;border:1px solid var(--border);background:var(--ice);transition:background 0.2s;}
.help-box:hover{background:#fff;}
.help-box strong{display:block;margin-bottom:0.4rem;font-size:0.9rem;}
.help-box p{font-size:0.8rem;color:var(--muted);margin:0;line-height:1.5;}
.help-link{font-size:0.72rem;color:var(--blue);font-weight:600;margin-top:0.5rem;display:inline-block;}

.gal-admin-preview{width:100%;max-height:180px;object-fit:cover;margin-top:0.8rem;border:1px solid var(--border);}
.gal-admin-preview.empty{height:100px;display:flex;align-items:center;justify-content:center;background:var(--ice);color:var(--muted);font-size:0.8rem;}
.gal-upload-row{display:flex;gap:0.5rem;margin-top:0.6rem;flex-wrap:wrap;}

.toggle-list{display:flex;flex-direction:column;gap:0.5rem;}
.toggle-row{display:flex;align-items:center;gap:0.75rem;padding:0.65rem 0.9rem;background:var(--ice);border:1px solid var(--border);cursor:pointer;}
.toggle-row input{width:18px;height:18px;accent-color:var(--blue);}
.toggle-label{flex:1;font-size:0.88rem;}
.toggle-badge{font-size:0.65rem;font-weight:700;text-transform:uppercase;padding:0.2rem 0.5rem;letter-spacing:0.06em;}
.toggle-badge.on{background:#E8FFF4;color:#1A6B3A;}
.toggle-badge.off{background:#FFF0F0;color:#8B3030;}

.nav-badge{background:#E8A020;color:#fff;font-size:0.65rem;padding:0.1rem 0.45rem;border-radius:10px;margin-left:4px;}

.app-toolbar{display:flex;gap:0.5rem;margin-bottom:1rem;flex-wrap:wrap;}
.app-table-wrap{overflow-x:auto;}
.app-table{width:100%;border-collapse:collapse;font-size:0.82rem;}
.app-table th,.app-table td{padding:0.65rem 0.75rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:top;}
.app-table th{background:var(--ice);font-size:0.68rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted);}
.app-table tr.unread td{background:#FFFBF0;font-weight:500;}
.app-actions{display:flex;gap:0.35rem;flex-wrap:wrap;white-space:nowrap;}

.app-modal{position:fixed;inset:0;background:rgba(11,31,58,0.5);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem;}
.app-modal-inner{background:#fff;padding:1.5rem 2rem;max-width:560px;width:100%;max-height:85vh;overflow:auto;position:relative;border:1px solid var(--border);}
.app-modal-close{position:absolute;top:0.5rem;right:0.75rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--muted);}
.app-cover{background:var(--ice);padding:0.8rem;font-size:0.85rem;line-height:1.6;max-height:200px;overflow:auto;white-space:pre-wrap;}
