:root {
    --ink:#161c23;
    --ink-soft:#27313b;
    --paper:#ffffff;
    --surface:#f7f8f8;
    --line:#e5e8ea;
    --muted:#77808a;
    --gold:#75b9e8;
    --danger:#b7483e;
    --radius:10px;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:#20262d;
    background:#f3f4f4;
}
*{box-sizing:border-box} body{margin:0;background:#f3f4f4;color:#20262d}.portal-shell{min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;background:var(--ink);color:#fff;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding-bottom:20px;border-bottom:1px solid #ffffff22;color:#fff;text-decoration:none}.brand-mark{width:42px;height:42px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;font:11px Georgia,serif;color:var(--gold)}.brand strong,.brand small{display:block;letter-spacing:.14em;font:12px Georgia,serif}.brand small{font-size:9px;color:#ffffff99;margin-top:4px}.sidebar-nav{display:grid;gap:5px;margin-top:24px}.sidebar-nav a{padding:10px 11px;border-radius:8px;color:#dce1e4;text-decoration:none;font-size:13px}.sidebar-nav a:hover{background:#ffffff12;color:#fff}.sidebar-foot{margin-top:auto;padding-top:16px;border-top:1px solid #ffffff22}.sidebar-foot strong,.sidebar-foot span{display:block}.sidebar-foot strong{font-size:12px}.sidebar-foot span{font-size:10px;line-height:1.5;color:#ffffff8f;margin-top:5px}
.main-content{min-width:0;background:var(--paper)}.topbar{height:54px;padding:0 28px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.menu-button{display:none;border:0;background:transparent;font-size:20px}.topbar-label{font:15px Georgia,serif}.user-chip{margin-left:auto;padding:6px 10px;border-radius:999px;background:#eef0f1;font-size:11px}.page-head{padding:30px 32px 23px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.eyebrow{color:#58a9dd;letter-spacing:.14em;font-size:11px;margin-bottom:7px}.page-head h1{margin:0;font:400 28px/1.2 Georgia,serif;color:#1d252d}.page-head p{margin:8px 0 0;color:var(--muted);font-size:13px}.role-badge{padding:8px 12px;background:#eef0f1;border-radius:999px;font-size:11px;white-space:nowrap}
.dashboard-body,.portal-form{padding:28px 32px 42px}.form-group-block{margin-bottom:32px}.form-group-block h2,.portal-form legend{margin:0 0 15px;font:400 18px Georgia,serif;color:#202831}.form-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.form-card{position:relative;min-height:170px;padding:18px;border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none;background:#fff;transition:.18s ease}.form-card:hover{transform:translateY(-2px);border-color:#9ecce9;box-shadow:0 12px 30px #18232d12}.card-module{display:block;color:#58a9dd;text-transform:uppercase;letter-spacing:.12em;font-size:10px}.form-card strong{display:block;margin-top:11px;font:400 17px/1.25 Georgia,serif}.form-card p{color:var(--muted);font-size:12px;line-height:1.5}.card-role{position:absolute;left:18px;bottom:16px;font-size:10px;color:#65707a;background:#f1f3f3;border-radius:999px;padding:4px 8px}
.portal-form{max-width:1600px}.notice{padding:12px 14px;margin-bottom:20px;border-left:3px solid #4aa9e8;background:#f0f1f2;font-size:12px}.validation-summary:empty{display:none}.validation-summary{padding:12px 14px;margin-bottom:18px;background:#fff0ee;color:#8d2e26;border-left:3px solid var(--danger)}fieldset{border:0;padding:0;margin:0 0 24px}.portal-form legend{width:100%;padding-bottom:10px;border-bottom:1px solid var(--line)}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}.field-wrap.wide{grid-column:1/-1}.field-wrap>label{display:block;margin-bottom:7px;font-size:13px}.required{color:#d06045}.field-wrap input[type=text],.field-wrap input[type=email],.field-wrap input[type=tel],.field-wrap input[type=password],.field-wrap input[type=number],.field-wrap input[type=date],.field-wrap input[type=datetime-local],.field-wrap input[type=file],.field-wrap select,.field-wrap textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid #dce0e2;border-radius:9px;background:#fff;color:#242a30;font:inherit;outline:none}.field-wrap textarea{min-height:105px;resize:vertical}.field-wrap input:focus,.field-wrap select:focus,.field-wrap textarea:focus{border-color:#52aae3;box-shadow:0 0 0 2px #52aae322}.field-wrap small{display:block;margin-top:5px;color:#939aa0;font-size:10px}.choice-row{display:flex;flex-wrap:wrap;gap:10px 17px;padding:6px 0}.check-item,.radio-item{display:inline-flex!important;align-items:center;gap:7px;margin:0!important;font-size:13px}.check-item input,.radio-item input{width:16px;height:16px}.scale-row{display:grid;grid-template-columns:repeat(11,1fr);gap:5px}.scale-row label{margin:0}.scale-row input{position:absolute;opacity:0}.scale-row span{height:38px;border:1px solid #dce0e2;border-radius:7px;display:grid;place-items:center;font-size:11px;cursor:pointer}.scale-row input:checked+span{background:#19222b;color:#fff;border-color:#19222b}.workflow-hint{padding:12px 14px;border-radius:8px;background:#f7f8f8;color:#67717a;font-size:11px}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:20px}.button{min-height:39px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;border:1px solid #d5d9dc;border-radius:9px;text-decoration:none;font-size:13px;cursor:pointer}.button.ghost{background:#fff;color:#6f777e}.button.primary{border-color:#19222b;background:#19222b;color:#fff}
.success-card{max-width:620px;margin:70px auto;padding:50px;text-align:center;border:1px solid var(--line);border-radius:16px}.success-card h1{font:400 29px Georgia,serif}.success-card p{color:var(--muted)}.success-icon{width:58px;height:58px;margin:0 auto 17px;border-radius:50%;display:grid;place-items:center;background:#e8f7ec;color:#19843b;font-size:28px}.success-card code{display:block;margin:15px 0 22px;color:#69727a}
@media(max-width:1050px){.form-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.portal-shell{display:block}.sidebar{position:fixed;z-index:20;left:-245px;width:230px;transition:left .2s}.sidebar.open{left:0}.topbar{padding:0 16px}.menu-button{display:block}.page-head{padding:22px 18px}.page-head h1{font-size:23px}.dashboard-body,.portal-form{padding:20px 18px 32px}.form-card-grid,.field-grid{grid-template-columns:1fr}.field-wrap.wide{grid-column:auto}.scale-row{grid-template-columns:repeat(6,1fr)}}@media(max-width:450px){.form-card-grid{grid-template-columns:1fr}.role-badge{display:none}.form-actions{display:grid}.button{width:100%}}

/* Authentication */
.auth-page{min-height:100vh;background:#eef1f2}.auth-main{min-height:100vh;display:grid;place-items:center;padding:34px}.auth-shell{width:min(1040px,100%);min-height:650px;display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden;border:1px solid #dfe4e6;border-radius:20px;background:#fff;box-shadow:0 25px 70px #17212a1a}.auth-brand-panel{padding:58px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#151c23,#25323d);color:#fff}.auth-logo{width:62px;height:62px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font:14px Georgia,serif;letter-spacing:.06em}.auth-eyebrow{margin:26px 0 12px;color:#8ecbf2;font-size:11px;letter-spacing:.17em}.auth-brand-panel h1{max-width:520px;margin:0;font:400 40px/1.14 Georgia,serif}.auth-brand-panel>p:not(.auth-eyebrow){max-width:500px;margin:18px 0 0;color:#d0d7dc;font-size:15px;line-height:1.7}.auth-security-note{margin-top:42px;padding-top:22px;border-top:1px solid #ffffff24}.auth-security-note strong,.auth-security-note span{display:block}.auth-security-note strong{font-size:13px}.auth-security-note span{margin-top:7px;color:#aeb8c0;font-size:12px;line-height:1.55}.auth-card{padding:58px;display:flex;flex-direction:column;justify-content:center}.auth-card-head h2{margin:5px 0 0;font:400 32px Georgia,serif}.auth-card-head p{margin:10px 0 0;color:var(--muted);font-size:13px}.auth-form{display:grid;gap:18px;margin-top:30px}.auth-form .field-wrap label{font-size:13px}.auth-form .field-wrap input{min-height:47px}.field-error{display:block;min-height:16px;margin-top:5px;color:#a33830;font-size:11px}.auth-check{display:flex;align-items:center;gap:8px;font-size:12px;color:#59636c}.auth-check input{width:16px;height:16px}.auth-submit{width:100%;min-height:47px}.auth-switch{margin:1px 0 0;text-align:center;color:#727b83;font-size:12px}.auth-switch a{color:#1b75ae;font-weight:600;text-decoration:none}.auth-message-card{width:min(520px,100%);padding:48px;text-align:center;border:1px solid #dfe4e6;border-radius:18px;background:#fff;box-shadow:0 20px 55px #17212a14}.auth-message-card .auth-logo{margin:0 auto}.auth-message-card h1{margin:22px 0 8px;font:400 31px Georgia,serif}.auth-message-card p{margin:0 0 24px;color:var(--muted)}.logout-form{margin:0}.logout-button{padding:6px 10px;border:1px solid #dce0e2;border-radius:999px;background:#fff;color:#4d5861;font-size:11px;cursor:pointer}.logout-button:hover{background:#f2f4f5}
@media(max-width:850px){.auth-main{padding:18px}.auth-shell{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-card{padding:38px;min-height:620px}}@media(max-width:450px){.auth-main{padding:0}.auth-shell{min-height:100vh;border:0;border-radius:0}.auth-card{padding:28px 20px}.auth-card-head h2{font-size:28px}.user-chip{display:none}}

/* Admin */
.nav-divider{height:1px;margin:13px 5px;background:#ffffff20}.nav-caption{padding:4px 11px 2px;color:#7fc4ef;font-size:9px;letter-spacing:.15em}.admin-actions{display:flex;gap:10px;justify-content:flex-end;margin-bottom:26px}.admin-section-title{margin:26px 0 13px;font:400 18px Georgia,serif}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-stat{min-height:105px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff}.admin-stat span{display:block;color:var(--muted);font-size:11px}.admin-stat strong{display:block;margin-top:10px;font:400 30px Georgia,serif}.admin-stat.featured{background:#18222b;color:#fff;border-color:#18222b}.admin-stat.featured span{color:#ffffffa8}.admin-table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px}.admin-table{width:100%;border-collapse:collapse;background:#fff;font-size:12px}.admin-table th{padding:12px 14px;border-bottom:1px solid var(--line);background:#f7f8f8;color:#66717a;text-align:left;font-weight:600;white-space:nowrap}.admin-table td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table tr:last-child td{border-bottom:0}.admin-role{display:inline-flex;padding:4px 8px;border-radius:999px;background:#edf4f8;color:#347da9;font-size:10px}.status-pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px}.status-pill.active{background:#e9f7ed;color:#28733b}.status-pill.inactive{background:#f8eceb;color:#9b4138}.admin-row-actions{display:flex;gap:6px;white-space:nowrap}.admin-row-actions form{margin:0}.button.small{min-height:30px;padding:0 10px;font-size:11px}.admin-alert{padding:11px 13px;margin-bottom:14px;border-radius:9px;font-size:12px}.admin-alert.success{background:#ecf7ef;color:#2d7040}.admin-alert.error{background:#fff0ee;color:#943d35}.admin-edit-form{max-width:900px}.record-id{display:block;margin-top:4px;color:#969da3;font-size:9px;font-family:monospace}
@media(max-width:1000px){.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.admin-stat-grid{grid-template-columns:1fr}.admin-actions{justify-content:stretch}.admin-actions .button{flex:1}.admin-row-actions{display:grid}}
.admin-actions-inline{display:flex;gap:8px;align-items:center}
@media(max-width:600px){.admin-actions-inline{display:grid}.admin-actions-inline .button{width:100%}}

/* Separate Admin Area */
.admin-sidebar{background:#121a21}.sidebar-admin-link{display:inline-block;margin-top:10px;color:#8ecbf2;font-size:11px;text-decoration:none}.sidebar-admin-link:hover{text-decoration:underline}.admin-stat-link{text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}.admin-stat-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px #17212a12}.wide-table{min-width:1250px}.wide-table td{white-space:nowrap}.wide-table .wrap-cell{min-width:220px;white-space:normal;line-height:1.45}.empty-cell{padding:28px!important;text-align:center!important;color:var(--muted)!important}.admin-auth-page .auth-brand-panel{background:linear-gradient(145deg,#101820,#1d2b35)}

/* Admin record editing */
.button.danger{border-color:#b94a42;background:#fff;color:#a43f38}.button.danger:hover{background:#fff1ef}.admin-delete-zone{max-width:900px;margin:0 32px 42px;padding:18px;border:1px solid #eed3d0;border-radius:12px;background:#fff9f8;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 20px;align-items:center}.admin-delete-zone strong{font:400 16px Georgia,serif;color:#7f312b}.admin-delete-zone span{grid-column:1;color:#8f6c68;font-size:11px}.admin-delete-zone form{grid-column:2;grid-row:1/3;margin:0}.admin-file-link{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border:1px solid #dce0e2;border-radius:8px;color:#2677a8;text-decoration:none}.text-muted-admin{display:block;color:var(--muted);font-size:12px;padding:8px 0}.admin-edit-form{max-width:960px}.admin-edit-form .field-error{color:#a33830;font-size:11px}
@media(max-width:760px){.admin-delete-zone{margin:0 18px 32px;grid-template-columns:1fr}.admin-delete-zone span,.admin-delete-zone form{grid-column:1;grid-row:auto}.admin-delete-zone form{margin-top:10px}.admin-delete-zone .button{width:100%}}

/* Portal user ownership in Admin tables */
.small-muted{color:var(--muted);font-size:10px;margin-top:3px;white-space:nowrap}
.admin-table code{font-size:10px;white-space:nowrap;color:#53616b}

.payment-provider-box{border:1px solid var(--line,#ddd);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;background:#fafafa}.payment-provider-box small{color:#777}.read-value{min-height:38px;border:1px solid #e1e1e1;border-radius:7px;padding:9px 11px;background:#fafafa;word-break:break-word}
