html, body { overflow-x: hidden; }

/* Public page layout */
.public-nav { position: relative; z-index: 5; display: flex; align-items: center; justify-content: space-between; min-height: 82px; padding: 0 max(6%, calc((100% - 1280px)/2)); background: #fff; border-bottom: 1px solid #e8ebf3; box-shadow: 0 2px 12px rgba(25,35,65,.04); }
.public-brand { color: #172033; font-size: 1.7rem; font-weight: 850; letter-spacing: -.05em; }
.public-brand span { color: #635bff; }
.public-nav nav { display: flex; align-items: center; gap: 26px; }
.public-nav nav a { color: #68738b; font-size: .82rem; font-weight: 700; transition: color .2s ease, transform .2s ease; }
.public-nav nav a:hover { color: #635bff; transform: translateY(-1px); }
.public-nav .nav-login { margin-left: 12px; color: #4c566e; }
.public-nav .nav-signup { padding: 12px 20px; border-radius: 10px; color: #fff; background: linear-gradient(135deg,#766dff,#5148e8); box-shadow: 0 8px 18px rgba(86,76,232,.2); }
.public-nav .nav-signup:hover, .public-nav .nav-signup:focus { color: #fff; background: linear-gradient(135deg,#655cf5,#463ed8); }

.landing-hero { display: grid; width: 100%; max-width: none; min-height: 600px; margin: 0; padding: 76px max(6%, calc((100% - 1180px)/2)) 88px; grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; border: 0; border-radius: 10px; background: linear-gradient(120deg,#fff 0%,#fff 47%,#f3f2ff 100%); box-shadow: inset 0 -1px 0 #e9ebf4; }
.landing-copy h1 { max-width: 570px; margin: 14px 0 20px; color: #172033; font-size: clamp(2.65rem, 4vw, 4rem); line-height: 1.06; font-weight: 800; letter-spacing: -.065em; }
.landing-copy p { max-width: 520px; color: #718098; font-size: 1.05rem; line-height: 1.75; }
.landing-button { display: inline-flex; align-items: center; gap: 18px; min-height: 46px; padding: 13px 20px; border-radius: 11px; color: #fff; background: linear-gradient(135deg,#766dff,#5148e8); box-shadow: 0 8px 18px rgba(86,76,232,.2); }
.landing-button:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 12px 25px rgba(86,76,232,.3); }
.landing-section { max-width: 1180px; margin: 0 auto; padding: 88px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.feature-item, .public-plan-card { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.feature-item:hover, .public-plan-card:hover { border-color: #d5d1ff; box-shadow: 0 16px 35px rgba(31,42,72,.1); transform: translateY(-4px); }

/* Authenticated pages */
section { border-color: #e7eaf2; box-shadow: 0 10px 30px rgba(31,42,72,.045); }
.page-heading { margin-bottom: 34px; }
.stat-card { transition: transform .2s ease, box-shadow .2s ease; }
.stat-card:hover { box-shadow: 0 12px 28px rgba(31,42,72,.1); transform: translateY(-3px); }
table tbody tr:hover { background: #fafaff; }
.plan-admin-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.plan-admin-row > span:last-child { display: flex; flex-wrap: wrap; gap: 8px; }
.plan-admin-row .danger-button { margin-left: 0; }
.plan-edit-panel { margin-top: 22px; padding: 20px; border: 1px solid #e4e7f0; border-radius: 12px; background: #fafbff; }
.plan-edit-panel h3 { margin: 0 0 5px; color: #354058; }
.plan-edit-panel form { margin: 0; }

@media (max-width: 850px) {
    .landing-hero { min-height: 0; padding: 58px 24px 70px; grid-template-columns: 1fr; }
    .landing-copy { max-width: 700px; margin: 0 auto; text-align: center; }
    .landing-copy p { margin-right: auto; margin-left: auto; }
    .landing-actions { justify-content: center; }
    .hero-visual { width: 100%; max-width: 560px; margin: 0 auto; }
    .landing-section { padding: 60px 24px; }
}

@media (max-width: 700px) {
    .app-shell, .main-content { width: 100%; min-width: 0; }
    .public-nav { display: flex; flex-direction: row !important; align-items: center !important; justify-content: space-between; width: 100%; min-height: 68px; padding: 12px 16px; gap: 10px; }
    .public-nav nav { width: auto !important; display: flex; flex-direction: row; align-items: center; justify-content: flex-end !important; gap: 10px; }
    .public-nav nav a { white-space: nowrap; }
    .public-nav nav > a:not(.nav-login):not(.nav-signup) { display: none; }
    .public-nav .nav-login { margin-left: 0; }
}

@media (max-width: 560px) {
    .public-brand { font-size: 1.4rem; }
    .public-nav { width: 100%; padding-right: 12px; padding-left: 12px; }
    .public-nav nav { gap: 7px; }
    .public-nav nav a { font-size: .72rem; }
    .public-nav .nav-signup { padding: 9px 10px; }
    .landing-hero { padding: 42px 16px 52px; }
    .landing-copy h1 { font-size: 2.6rem; line-height: 1.08; }
    .landing-actions { align-items: center; flex-direction: column; gap: 16px; }
    .landing-section { padding: 48px 16px; }
    .plan-admin-row { align-items: flex-start; flex-direction: column; gap: 10px; }
}
