:root { --navy:#052f50; --blue:#075f9e; --green:#278d4d; --red:#b92d38; --ink:#173548; --muted:#687d8a; --line:#d9e4e9; --pale:#f2f7f8; --white:#fff; --shadow:0 20px 55px rgba(4,44,73,.12); }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); font-family:"Segoe UI",Arial,sans-serif; line-height:1.55; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
.login-page { min-height:100vh; color:#fff; background:radial-gradient(circle at 20% 15%,rgba(62,176,104,.28),transparent 25%),linear-gradient(135deg,#042d4a,#07547d); }
.login-shell { width:min(1120px,calc(100% - 40px)); min-height:100vh; margin:auto; display:grid; grid-template-columns:1fr 480px; gap:80px; align-items:center; padding:55px 0; }
.login-brand img { width:220px; margin-bottom:55px; }
.login-brand>p { color:#94e1b0; font-size:.78rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.login-brand h1 { max-width:550px; font-size:clamp(2.4rem,5vw,4.5rem); line-height:1.05; letter-spacing:-.045em; }
.login-brand>a { display:inline-block; margin-top:30px; border-bottom:1px solid rgba(255,255,255,.5); color:rgba(255,255,255,.76); }
.login-card { padding:48px; color:var(--ink); background:#fff; box-shadow:0 35px 100px rgba(0,0,0,.24); }
.login-kicker,.admin-page-header p,.panel-heading p,.upload-panel>p { margin:0 0 8px; color:var(--green); font-size:.74rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.login-card h2 { margin:0 0 12px; color:var(--navy); font-size:2rem; }
.login-card>p:not(.login-kicker,.login-security) { color:var(--muted); }
.login-form { margin-top:28px; }
.login-form label,.admin-panel label { display:block; margin-bottom:20px; color:var(--navy); font-size:.84rem; font-weight:750; }
.login-form input,.admin-panel input,.admin-panel textarea,.admin-panel select { width:100%; margin-top:7px; padding:12px 14px; border:1px solid #bacdd7; border-radius:2px; outline:0; background:#fff; }
.login-form input:focus,.admin-panel input:focus,.admin-panel textarea:focus,.admin-panel select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(7,95,158,.12); }
.login-form>button,.admin-primary { display:inline-flex; min-height:46px; align-items:center; justify-content:center; gap:18px; padding:0 22px; border:1px solid var(--blue); border-radius:2px; color:#fff; background:var(--blue); font-weight:800; }
.login-form>button { width:100%; margin-top:8px; }
.login-form>button:hover,.admin-primary:hover { border-color:var(--navy); background:var(--navy); }
.verification-block { display:grid; grid-template-columns:1fr auto; align-items:center; gap:4px 20px; margin:5px 0 20px; padding:17px 18px; border-left:4px solid var(--green); background:var(--pale); }
.verification-block span { color:var(--muted); font-size:.78rem; font-weight:750; text-transform:uppercase; }
.verification-block strong { grid-row:1/3; grid-column:2; color:var(--navy); font:800 1.8rem/1 monospace; letter-spacing:.18em; }
.verification-block small { color:var(--muted); }
.login-security { margin:22px 0 0; color:var(--muted); font-size:.76rem; }
.admin-alert { padding:13px 16px; border-left:4px solid; margin-bottom:15px; font-size:.9rem; }
.admin-alert.error { border-color:var(--red); color:#81252d; background:#fcebec; }
.admin-alert.success { border-color:var(--green); color:#1b6337; background:#e5f5ea; }

.admin-body { background:#edf3f5; }
.admin-topbar { position:fixed; inset:0 0 auto 0; z-index:20; height:72px; display:flex; align-items:center; justify-content:space-between; padding:0 28px; color:#fff; background:var(--navy); }
.admin-topbar>a { display:flex; align-items:center; gap:18px; font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.admin-topbar img { width:128px; }
.admin-topbar>div { display:flex; align-items:center; gap:20px; font-size:.82rem; }
.admin-topbar form { margin:0; }
.admin-topbar button { padding:8px 12px; border:1px solid rgba(255,255,255,.35); color:#fff; background:transparent; }
.admin-layout { display:grid; grid-template-columns:250px 1fr; min-height:100vh; padding-top:72px; }
.admin-sidebar { position:fixed; top:72px; bottom:0; width:250px; padding:28px 16px; color:#294b60; background:#fff; border-right:1px solid var(--line); }
.admin-sidebar a { display:flex; align-items:center; gap:12px; padding:13px 15px; border-radius:4px; font-size:.9rem; font-weight:700; }
.admin-sidebar a:hover { color:var(--blue); background:var(--pale); }
.admin-sidebar a span { width:22px; color:var(--green); text-align:center; font-size:1.2rem; }
.admin-main { grid-column:2; width:100%; max-width:1500px; padding:42px clamp(24px,4vw,58px) 80px; }
.password-warning { display:flex; justify-content:space-between; gap:20px; margin-bottom:24px; padding:15px 18px; border-left:4px solid #d99a26; color:#694b13; background:#fff5db; }
.password-warning span { color:#7f642d; font-size:.88rem; }
.password-warning a { font-weight:800; text-decoration:underline; }
.admin-page-header { display:flex; align-items:flex-end; justify-content:space-between; gap:35px; margin-bottom:30px; }
.admin-page-header h1 { margin:0 0 7px; color:var(--navy); font-size:clamp(2rem,4vw,3.2rem); line-height:1.08; letter-spacing:-.04em; }
.admin-page-header>div>span { color:var(--muted); }
.admin-secondary { display:inline-flex; min-height:42px; align-items:center; justify-content:center; padding:0 17px; border:1px solid #a8bec9; color:var(--navy); background:#fff; font-weight:750; }
.admin-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:28px; }
.admin-stats article { padding:22px 24px; border:1px solid var(--line); background:#fff; }
.admin-stats span,.admin-stats strong { display:block; }
.admin-stats span { color:var(--muted); font-size:.78rem; font-weight:750; text-transform:uppercase; }
.admin-stats strong { margin-top:12px; color:var(--navy); font-size:2.25rem; }
.admin-panel { padding:28px; border:1px solid var(--line); background:#fff; box-shadow:0 7px 20px rgba(5,47,80,.04); }
.panel-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:22px; }
.panel-heading h2,.admin-panel h2 { margin:0; color:var(--navy); font-size:1.35rem; }
.panel-heading>a { color:var(--blue); font-size:.84rem; font-weight:750; }
.admin-table-wrap { overflow-x:auto; }
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th { padding:12px 14px; color:var(--muted); background:var(--pale); font-size:.74rem; text-align:left; text-transform:uppercase; }
.admin-table td { padding:17px 14px; border-bottom:1px solid var(--line); vertical-align:middle; }
.admin-table td strong,.admin-table td small { display:block; }
.admin-table td small { margin-top:3px; color:var(--muted); }
.status-pill { display:inline-flex; padding:5px 9px; border-radius:50px; font-size:.72rem; font-weight:800; }
.status-pill.published { color:#176238; background:#dff3e6; }
.status-pill.draft { color:#6d5b21; background:#f5edcd; }
.row-actions { display:flex; gap:12px; align-items:center; }
.row-actions a,.row-actions button { padding:0; border:0; color:var(--blue); background:transparent; font-size:.82rem; font-weight:750; }
.row-actions button { color:var(--red); }
.row-actions form { margin:0; }
.admin-empty { padding:60px 20px; text-align:center; }
.admin-empty>span { color:#9eb3bd; font-size:3rem; }
.admin-empty h3 { margin:12px 0; color:var(--navy); }
.admin-empty p { color:var(--muted); }
.admin-empty .admin-primary { margin-top:15px; }

.editor-grid { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:22px; align-items:start; }
.editor-main textarea { min-height:470px; resize:vertical; line-height:1.7; }
.editor-side { display:grid; gap:22px; }
.admin-full { width:100%; }
.cover-preview { width:100%; aspect-ratio:16/10; margin:18px 0; object-fit:cover; }
.file-input { padding:15px; border:1px dashed #9eb5c0; background:var(--pale); }
.admin-panel small { color:var(--muted); }
.slide-admin-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,.65fr); gap:22px; align-items:start; }
.capacity-badge { padding:8px 13px; border-radius:50px; color:var(--green); background:#e1f3e7; font-weight:800; }
.slide-list { display:grid; gap:22px; }
.slide-row { display:grid; grid-template-columns:220px 1fr auto; gap:22px; padding:20px; border:1px solid var(--line); }
.slide-row>img { width:100%; height:155px; object-fit:cover; }
.slide-row form { margin:0; }
.compact-row { display:grid; grid-template-columns:100px 1fr; gap:15px; align-items:end; }
.checkbox-label { display:flex !important; gap:9px; align-items:center; min-height:45px; }
.checkbox-label input { width:18px !important; margin:0 !important; }
.danger-button { padding:8px 10px; border:1px solid #e3b3b7; color:var(--red); background:#fff4f5; font-weight:750; }
.upload-panel { position:sticky; top:100px; }
.upload-panel h2 { margin-bottom:22px; }
.upload-dropzone { display:grid !important; place-items:center; padding:35px 18px; border:2px dashed #9fb7c2; background:var(--pale); text-align:center; }
.upload-dropzone span { color:var(--green); font-size:2.3rem; }
.upload-dropzone small { display:block; }
.upload-dropzone input { margin-top:15px; padding:0; border:0; background:transparent; }
.limit-message { padding:20px; color:#6c541d; background:#fff4d5; }
.password-panel { max-width:650px; }
.password-panel form { max-width:500px; }

@media (max-width:1050px) { .admin-stats { grid-template-columns:1fr 1fr; } .editor-grid,.slide-admin-grid { grid-template-columns:1fr; } .upload-panel { position:static; } .slide-row { grid-template-columns:180px 1fr; } .slide-row>form:last-child { grid-column:2; } }
@media (max-width:760px) { .login-shell { grid-template-columns:1fr; gap:35px; padding:30px 0; } .login-brand h1 { font-size:2.5rem; } .login-brand img { margin-bottom:25px; } .login-card { padding:30px 24px; } .admin-topbar { height:auto; min-height:72px; padding:12px 16px; } .admin-topbar>a span,.admin-topbar>div>a,.admin-topbar>div>span { display:none; } .admin-layout { display:block; padding-top:72px; } .admin-sidebar { position:static; width:100%; padding:10px; border-bottom:1px solid var(--line); } .admin-sidebar nav { display:grid; grid-template-columns:1fr 1fr; } .admin-sidebar a { padding:10px; } .admin-main { padding:28px 16px 60px; } .admin-page-header { align-items:flex-start; flex-direction:column; } .admin-stats { gap:10px; } .admin-stats article { padding:17px; } .slide-row { grid-template-columns:1fr; } .slide-row>img { height:210px; } .slide-row>form:last-child { grid-column:auto; } .password-warning { flex-direction:column; } }
@media (max-width:420px) { .admin-stats,.admin-sidebar nav { grid-template-columns:1fr; } .verification-block { grid-template-columns:1fr; } .verification-block strong { grid-row:auto; grid-column:auto; } }
