:root{
    --bg:#fff6f6;
    --card:#ffffff;
    --line:#f0d6d6;
    --text:#321414;
    --muted:#8a5b5b;
    --red:#ff4040;
    --red-dark:#d71f2b;
    --red-deep:#b91020;
    --shadow:0 20px 50px rgba(181, 16, 32, .14);
    --radius:28px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
    font-family:Arial,Helvetica,sans-serif;
    color:var(--text);
    background:
        radial-gradient(circle at top left, rgba(255,64,64,.18), transparent 28%),
        radial-gradient(circle at top right, rgba(215,31,43,.12), transparent 22%),
        linear-gradient(180deg,#fff8f8 0%,#fff 100%);
}
img{max-width:100%;display:block}
a{text-decoration:none}
.shell{width:min(1120px, calc(100% - 32px)); margin:34px auto 50px}
.hero-card,.login-card,.top-admin-card,.panel-card{
    background:var(--card);
    border:1px solid rgba(215,31,43,.12);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
}
.hero-card,.top-admin-card{
    padding:28px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:center;
    margin-bottom:24px;
}
.brand-wrap,.login-brand{display:flex;align-items:center;gap:18px}
.brand-logo{width:82px;height:82px;object-fit:contain;border-radius:22px;box-shadow:0 10px 24px rgba(215,31,43,.15)}
.small-logo{width:72px;height:72px}
.eyebrow{
    display:inline-block;
    padding:8px 14px;
    background:#ffe1e3;
    color:var(--red-deep);
    border-radius:999px;
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:12px;
}
h1{margin:0 0 8px;font-size:clamp(28px, 4vw, 44px);line-height:1.03}
h2{margin:0 0 10px;font-size:24px}
p{margin:0;color:var(--muted);line-height:1.5}
.hero-pill{
    white-space:nowrap;
    padding:14px 18px;
    border-radius:999px;
    background:linear-gradient(135deg,var(--red),var(--red-dark));
    color:#fff;
    font-weight:700;
}
.links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.access-card{
    background:linear-gradient(180deg,#ff4c4c 0%, #e32331 100%);
    color:#fff;
    padding:22px;
    border-radius:26px;
    box-shadow:0 22px 40px rgba(215,31,43,.26);
    transition:transform .18s ease, box-shadow .18s ease;
    min-height:220px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}
.access-card:hover{transform:translateY(-4px);box-shadow:0 28px 45px rgba(215,31,43,.32)}
.card-top,.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px}
.mini-tag,.open-indicator{
    display:inline-flex;align-items:center;justify-content:center;
    min-height:34px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.16);
    font-size:12px;font-weight:700
}
.access-card h2{color:#fff;font-size:26px;margin:18px 0 10px}
.access-card p{color:rgba(255,255,255,.88)}
.link-label{font-weight:700}
.arrow{font-size:28px;font-weight:700}
.empty-box{padding:30px;background:#fff;border:1px dashed var(--line);border-radius:22px}
.admin-shell{width:min(1240px, calc(100% - 28px))}
.login-card{max-width:560px;margin:60px auto;padding:28px}
.admin-grid{display:grid;grid-template-columns:1.02fr 1.2fr;gap:20px;align-items:start}
.panel-card{padding:24px}
.admin-actions-top{display:flex;gap:12px;flex-wrap:wrap}
.admin-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.admin-form.single-column{grid-template-columns:1fr}
.admin-form label{display:flex;flex-direction:column;gap:8px;font-weight:700;color:var(--text)}
.admin-form .full{grid-column:1 / -1}
input,textarea{
    width:100%;border:1px solid var(--line);background:#fff;
    border-radius:18px;padding:15px 16px;font-size:16px;color:var(--text);outline:none;
}
input:focus,textarea:focus{border-color:#ff9aa0;box-shadow:0 0 0 4px rgba(255,64,64,.08)}
textarea{resize:vertical;min-height:140px}
.check-line{flex-direction:row !important;align-items:center;gap:10px;font-weight:600;color:var(--muted)}
.check-line input{width:18px;height:18px}
.form-buttons{display:flex;gap:12px;flex-wrap:wrap}
.btn-primary,.btn-secondary,.btn-danger,.mini-btn{
    border:none;cursor:pointer;border-radius:16px;padding:14px 18px;font-weight:700;font-size:15px;
    display:inline-flex;align-items:center;justify-content:center;
}
.btn-primary{background:linear-gradient(135deg,var(--red),var(--red-dark));color:#fff}
.btn-secondary{background:#ffe9eb;color:var(--red-deep)}
.btn-danger{background:#2e1111;color:#fff}
.mini-btn{background:#ffe9eb;color:var(--red-deep);padding:10px 12px;font-size:13px}
.mini-btn.ghost{background:#fff3f4}
.mini-btn.danger{background:#2e1111;color:#fff}
.alert{padding:15px 18px;border-radius:18px;margin-bottom:18px;font-weight:700}
.alert.success{background:#e6fff0;color:#0f7f49}
.alert.error{background:#fff0f1;color:#b91020}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:22px}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:16px;border-bottom:1px solid #f7e1e3;text-align:left;vertical-align:top}
th{background:#fff5f5;font-size:14px}
td small{display:block;margin-top:6px;color:var(--muted);line-height:1.45}
.status-badge{display:inline-flex;padding:8px 12px;border-radius:999px;font-weight:700;font-size:13px}
.status-badge.on{background:#e6fff0;color:#0f7f49}
.status-badge.off{background:#fff2e8;color:#b15f00}
.action-stack{display:flex;flex-wrap:wrap;gap:8px}
@media (max-width: 920px){
    .hero-card,.top-admin-card{flex-direction:column;align-items:flex-start}
    .admin-grid{grid-template-columns:1fr}
}
@media (max-width: 640px){
    .shell{width:min(100% - 20px, 1120px);margin:18px auto 34px}
    .hero-card,.login-card,.top-admin-card,.panel-card{padding:20px;border-radius:22px}
    .brand-wrap,.login-brand{align-items:flex-start}
    .brand-logo{width:68px;height:68px}
    .admin-form{grid-template-columns:1fr}
}
