*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:#fff;color:#14213d}body{background:#fff}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.topbar{height:72px;position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;padding:0 24px;background:rgba(255,255,255,.96);border-bottom:1px solid #e7edf5;backdrop-filter:blur(16px);box-shadow:0 2px 14px rgba(20,33,61,.05)}.brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:800;letter-spacing:-.5px;color:#14213d}.brand img{width:45px;height:45px;object-fit:cover;border-radius:9px}.brand>span>span{color:#1778f2}.brand b{color:#14213d}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.user-chip,.admin-chip,.logout{padding:9px 12px;border:1px solid #dce5ef;border-radius:10px;color:#5c6d82;font-size:13px;background:#fff}.admin-chip{color:#1769d1;border-color:#bcd7fb;background:#f4f9ff}.logout:hover{border-color:#1778f2;color:#1778f2}.mobile-menu{display:none;background:none;border:0;color:#29415f;font-size:24px;margin-right:12px}.layout{display:flex;padding-top:72px}.sidebar{width:245px;position:fixed;top:72px;bottom:0;border-right:1px solid #e7edf5;background:#fbfcfe;padding:22px 14px;z-index:15}.sidebar nav a{display:flex;align-items:center;gap:13px;padding:12px 14px;margin:3px 0;border-radius:10px;color:#66778b;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active{background:#edf6ff;color:#1778f2;box-shadow:inset 3px 0 #1778f2}.nav-title{font-size:10px;color:#9aaabd;letter-spacing:1.5px;margin:18px 14px 7px}.sidebar-bottom{position:absolute;bottom:20px;left:14px;right:14px}.secure{padding:13px;background:#f5f9fd;border:1px solid #dce8f4;border-radius:12px;color:#477096}.secure small{display:block;color:#8b9bae;margin:4px 0 0 27px}.content{margin-left:245px;width:calc(100% - 245px);padding:30px 34px 50px;max-width:1600px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.page-head h1{margin:0;font-size:29px;color:#14213d}.page-head p{margin:7px 0 0;color:#718198}.search{background:#fff;border:1px solid #dce5ef;color:#14213d;border-radius:10px;padding:12px 15px;outline:0;min-width:250px}.search:focus{border-color:#4d98f5;box-shadow:0 0 0 3px #1778f214}.hero{padding:26px;border-radius:18px;background:linear-gradient(120deg,#f1f8ff,#fff);border:1px solid #d7e7f8;display:flex;align-items:center;justify-content:space-between;gap:20px;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:350px;height:350px;right:-150px;top:-170px;border-radius:50%;background:#1778f20b}.hero h2{font-size:30px;margin:0 0 7px;color:#14213d}.hero p{color:#62758d;margin:0;line-height:1.6}.hero-logo{width:115px;height:115px;object-fit:cover;border-radius:16px;position:relative;z-index:1;box-shadow:0 8px 30px rgba(23,120,242,.14)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.stat,.panel,.card{background:#fff;border:1px solid #e1e8f0;border-radius:15px;box-shadow:0 5px 18px rgba(20,33,61,.035)}.stat{padding:19px}.stat .ico{font-size:24px;color:#1778f2}.stat strong{display:block;font-size:25px;margin-top:10px;color:#14213d}.stat span{font-size:12px;color:#78899c}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.card{padding:18px;transition:.2s}.card:hover{transform:translateY(-2px);border-color:#b8d7fa;box-shadow:0 10px 25px rgba(20,33,61,.07)}.card h3{margin:0 0 7px;font-size:17px}.card p{margin:0;color:#718198;font-size:13px;line-height:1.55}.tag{display:inline-block;font-size:10px;border:1px solid #b9d8fb;color:#1778f2;background:#f4f9ff;border-radius:20px;padding:5px 8px;margin-bottom:13px}.btn{display:inline-flex;justify-content:center;align-items:center;border:1px solid #d3dfeb;border-radius:9px;background:#fff;color:#31506f;padding:10px 14px;font-weight:700;font-size:13px;cursor:pointer}.btn:hover{background:#f7fbff;border-color:#9fc7f5}.btn-primary{background:linear-gradient(90deg,#1778f2,#2b8cff);border:0;color:white;box-shadow:0 5px 14px rgba(23,120,242,.18)}.btn-primary:hover{background:linear-gradient(90deg,#0f6de4,#1778f2);color:#fff}.btn-danger{background:#fff4f5;border-color:#f0c4ca;color:#d53b4c}.card-actions{display:flex;gap:8px;margin-top:15px}.table-wrap{overflow:auto;border:1px solid #e1e8f0;border-radius:14px}.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{padding:13px 14px;text-align:left;border-bottom:1px solid #edf1f5;font-size:13px}.table th{color:#718198;font-size:11px;text-transform:uppercase;letter-spacing:.7px;background:#fafcff}.table td{color:#40536b}.notice{padding:13px;border-radius:10px;margin-bottom:18px;background:#ecfbf4;border:1px solid #bde8d0;color:#19724a}.error{background:#fff2f3;border-color:#efc2c8;color:#c63748}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-group{display:flex;flex-direction:column;gap:7px}.form-group.full{grid-column:1/-1}.form-group label{font-size:12px;color:#718198}.form-control,select,textarea{width:100%;background:#fff;border:1px solid #d8e2ec;border-radius:9px;padding:12px;color:#14213d;outline:0}.form-control::placeholder,textarea::placeholder{color:#a1afbd}textarea{min-height:110px;resize:vertical}.form-control:focus,select:focus,textarea:focus{border-color:#4d98f5;box-shadow:0 0 0 3px #1778f214}.panel{padding:22px;margin-bottom:20px}.panel h2{margin:0 0 18px;font-size:19px}.empty{padding:40px;text-align:center;color:#7f8fa1;border:1px dashed #d4e0eb;border-radius:12px}.profile{display:grid;grid-template-columns:250px 1fr;gap:20px}.profile-side{text-align:center}.avatar{width:100px;height:100px;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;background:#edf6ff;border:2px solid #74b1f8;font-size:35px;color:#1778f2}.mini-list{display:grid;gap:10px}.mini-item{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid #edf1f5;color:#718198}.admin-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}.admin-grid .stat{min-height:110px}.article{padding:20px}.article h3{font-size:21px;margin:0 0 9px}.article .meta{font-size:11px;color:#8192a5;margin-bottom:15px}.article p{line-height:1.7;color:#62758d}.download-list{display:grid;gap:10px}.download-row{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#fafcff;border:1px solid #e0e8f1;border-radius:12px}.download-row small{display:block;color:#8192a5;margin-top:4px}.badge{font-size:10px;color:#176fdc;background:#edf6ff;padding:5px 8px;border-radius:12px}.pricing-intro{text-align:center;max-width:780px;margin:0 auto 32px}.pricing-intro h1{font-size:40px;letter-spacing:-1px;margin:0;color:#14213d}.pricing-intro p{font-size:16px;color:#708198;margin:10px 0 0}.pricing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:stretch}.pricing-card{position:relative;background:#fff;border:1px solid #dfe7f0;border-radius:16px;padding:26px;display:flex;flex-direction:column;box-shadow:0 8px 25px rgba(20,33,61,.05)}.pricing-card.featured{border:2px solid #2582ef;background:linear-gradient(180deg,#f6fbff,#fff);box-shadow:0 12px 30px rgba(23,120,242,.10)}.pricing-badge{position:absolute;top:-15px;left:50%;transform:translateX(-50%);background:#1778f2;color:#fff;padding:7px 18px;border-radius:22px;font-weight:800;font-size:12px;white-space:nowrap}.pricing-tier{font-size:11px;font-weight:800;color:#1778f2;text-transform:uppercase;letter-spacing:1.2px;margin-bottom:10px}.pricing-card h2{margin:0;font-size:27px;color:#14213d}.pricing-duration{font-weight:700;color:#51647b;margin-top:9px}.pricing-desc{min-height:50px;color:#718198;line-height:1.5;font-size:13px;margin:12px 0 18px}.pricing-price{font-size:40px;font-weight:900;letter-spacing:-1px;color:#1778f2}.pricing-monthly{font-size:13px;color:#62758d;margin:4px 0 12px}.pricing-old{text-decoration:line-through;color:#a0acb9;margin-left:5px}.pricing-save{display:inline-block;width:max-content;background:#e7f8ef;color:#16804c;border-radius:16px;padding:5px 9px;font-size:11px;font-weight:800;margin-bottom:15px}.pricing-card .btn{width:100%;padding:12px}.pricing-card hr{width:100%;border:0;border-top:1px solid #e8edf3;margin:24px 0 18px}.pricing-card h3{font-size:14px;margin:0 0 13px}.feature-list{list-style:none;padding:0;margin:0;display:grid;gap:11px}.feature-list li{font-size:13px;color:#52667e;display:flex;gap:9px;line-height:1.4}.feature-list li:before{content:"✓";display:grid;place-items:center;flex:0 0 20px;height:20px;border-radius:50%;background:#e8f3ff;color:#1778f2;font-size:12px;font-weight:900}.pricing-foot{margin-top:auto;padding-top:20px;text-align:center}.pricing-foot span{display:inline-block;background:#f1f5f9;color:#64748b;border-radius:18px;padding:6px 12px;font-size:11px;font-weight:700}.pricing-admin-actions{display:flex;gap:7px;flex-wrap:wrap}.muted{color:#718198}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.check{display:flex;align-items:center;gap:8px;color:#52667e;font-size:13px}.check input{width:16px;height:16px}@media(max-width:1150px){.pricing-grid{grid-template-columns:repeat(2,1fr)}.stats,.admin-grid{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.mobile-menu{display:block}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar-open .sidebar{transform:translateX(0)}.content{margin-left:0;width:100%;padding:25px 15px}.user-chip{display:none}.topbar{padding:0 14px}.page-head{align-items:stretch;flex-direction:column}.search{min-width:0;width:100%}.hero{flex-direction:column;align-items:flex-start}.stats,.grid,.admin-grid,.form-grid,.profile,.pricing-grid{grid-template-columns:1fr}.profile-side{text-align:left}.avatar{margin:0 0 15px}.pricing-intro h1{font-size:32px}.pricing-card{padding:22px}.pricing-desc{min-height:auto}}

/* Membership access checkboxes */
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:8px 0 6px}
.check-grid .check{display:flex;align-items:center;gap:8px;padding:11px 12px;border:1px solid #dce6ee;border-radius:10px;background:#fff;cursor:pointer}
.check-grid .check:hover{border-color:#2f80ed;background:#f7fbff}

/* Guest landing page */
.guest-hero{padding:58px 34px 28px;background:#fff}
.guest-hero-inner{max-width:1280px;margin:0 auto;padding:46px;border:1px solid #d7e7f8;border-radius:22px;background:linear-gradient(120deg,#f1f8ff,#fff);display:flex;align-items:center;justify-content:space-between;gap:40px;box-shadow:0 12px 35px rgba(20,33,61,.05)}
.guest-hero h1{font-size:46px;line-height:1.1;letter-spacing:-1.5px;margin:14px 0;color:#14213d}
.guest-hero h1 span{color:#1778f2}
.guest-hero p{max-width:760px;color:#62758d;font-size:16px;line-height:1.7;margin:0}
.guest-hero-logo{width:150px;height:150px;object-fit:cover;border-radius:22px;box-shadow:0 12px 35px rgba(23,120,242,.14)}
.guest-content{max-width:1280px;margin:0 auto;padding:20px 34px 40px}
.guest-login-note{max-width:1212px;margin:0 auto 50px;padding:25px 30px;border:1px solid #dce8f4;border-radius:16px;background:#f7fbff;display:flex;justify-content:space-between;align-items:center;gap:20px}
.guest-login-note h2{margin:0 0 6px;color:#14213d}.guest-login-note p{margin:0;color:#718198;line-height:1.5}
@media(max-width:760px){.guest-hero{padding:30px 15px 15px}.guest-hero-inner{padding:28px;flex-direction:column;align-items:flex-start}.guest-hero h1{font-size:34px}.guest-hero-logo{width:100px;height:100px}.guest-content{padding:15px}.guest-login-note{margin:0 15px 30px;flex-direction:column;align-items:flex-start}}


/* Review fixes: preserve logo proportions and make action rows responsive. */
.brand img,
.hero-logo,
.guest-hero-logo {
    object-fit: contain;
    background: #fff;
}

.card-actions {
    flex-wrap: wrap;
    align-items: center;
}

.card-actions .btn {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.table-wrap {
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
}

.form-control,
select,
textarea,
.search {
    min-width: 0;
}

@media (max-width: 760px) {
    .guest-hero-inner {
        gap: 22px;
    }

    .guest-login-note {
        margin-left: 0;
        margin-right: 0;
        padding: 20px;
    }

    .download-row {
        align-items: flex-start;
        gap: 12px;
        flex-wrap: wrap;
    }

    .card-actions .btn {
        flex: 1 1 130px;
    }
}
