:root { --portal-navy:#071b4d; --portal-blue:#0d5cff; --portal-cyan:#08cbd2; --portal-muted:#68758f; --portal-line:#dfe5f1; --portal-bg:#f4f7fc; --portal-danger:#d92d44; --portal-success:#008c86; }
* { box-sizing:border-box; }
.dual-money { display:inline-grid; gap:2px; line-height:1.15; vertical-align:middle; }
.dual-money strong { color:#071b4d; font-size:1em; font-weight:900; }
.dual-money small { color:#7a8291; font-size:.72em; font-weight:650; }
body.portal-body { margin:0; color:#13234a; background:var(--portal-bg); font-family:Arial,Helvetica,sans-serif; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
.portal-topbar { height:70px; padding:0 28px; display:flex; align-items:center; gap:24px; border-bottom:1px solid var(--portal-line); background:#fff; position:sticky; top:0; z-index:20; }
.portal-topbar .brand { margin-right:auto; }
.portal-topbar a { text-decoration:none; color:inherit; }
.portal-user { display:flex; align-items:center; gap:10px; font-size:12px; }
.portal-avatar { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,var(--portal-blue),var(--portal-cyan)); font-weight:900; }
.portal-link,.portal-button { border:1px solid var(--portal-line); border-radius:8px; background:#fff; color:#24345d; min-height:38px; padding:0 14px; font-size:12px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.portal-button.primary { background:var(--portal-blue); color:#fff; border-color:var(--portal-blue); }
.portal-button.danger { color:var(--portal-danger); }
.auth-shell { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; }
.auth-brand-panel { padding:60px clamp(30px,7vw,110px); color:#fff; display:flex; flex-direction:column; justify-content:center; background:radial-gradient(circle at 25% 25%,rgba(13,92,255,.7),transparent 34%),linear-gradient(145deg,#061744,#092b78 70%,#058c9b); position:relative; overflow:hidden; }
.auth-brand-panel::after { content:""; position:absolute; width:440px; height:440px; right:-160px; bottom:-160px; border-radius:50%; border:70px solid rgba(255,255,255,.04); }
.auth-brand-panel .brand { color:#fff; margin-bottom:80px; }
.auth-brand-panel h1 { font-size:clamp(40px,5vw,66px); line-height:1.02; letter-spacing:-3px; max-width:580px; margin:0 0 22px; }
.auth-brand-panel p { max-width:520px; color:#c8d6ef; line-height:1.65; }
.auth-points { list-style:none; padding:0; display:grid; gap:13px; margin-top:32px; }
.auth-points li { display:flex; gap:10px; align-items:center; font-size:13px; }.auth-points span { width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.12); color:#55eef1; }
.auth-form-panel { display:grid; place-items:center; padding:45px 25px; background:#fff; }
.auth-card { width:min(430px,100%); }
.auth-card h2 { color:var(--portal-navy); font-size:34px; letter-spacing:-1.5px; margin:0 0 8px; }.auth-card>p { color:var(--portal-muted); margin:0 0 28px; font-size:13px; line-height:1.5; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; background:#f1f4f9; padding:4px; border-radius:10px; margin-bottom:24px; }.auth-tabs button { border:0; background:transparent; min-height:40px; border-radius:7px; color:#65718a; font-weight:800; }.auth-tabs button.active { background:#fff; color:var(--portal-blue); box-shadow:0 4px 12px rgba(20,40,80,.08); }
.portal-form { display:grid; gap:16px; }.portal-field { display:grid; gap:7px; }.portal-field label { font-size:11px; font-weight:900; color:#344363; }.portal-field input,.portal-field select,.portal-field textarea { width:100%; border:1px solid #d5dce9; background:#fff; color:#18294f; border-radius:9px; min-height:45px; padding:10px 12px; outline:0; }.portal-field textarea { min-height:90px; resize:vertical; }.portal-field input:focus,.portal-field select:focus,.portal-field textarea:focus { border-color:var(--portal-blue); box-shadow:0 0 0 3px rgba(13,92,255,.09); }
.portal-checkbox { display:flex; align-items:center; gap:9px; font-size:12px; color:#4e5d79; }.portal-checkbox input { accent-color:var(--portal-blue); width:17px; height:17px; }
.portal-submit { border:0; min-height:48px; border-radius:9px; background:linear-gradient(135deg,var(--portal-blue),#0749d1); color:#fff; font-weight:900; margin-top:5px; }.portal-submit:disabled { opacity:.65; cursor:wait; }
.portal-notice { border-radius:9px; padding:12px 14px; font-size:12px; line-height:1.5; margin-bottom:16px; }.portal-notice[hidden] { display:none; }.notice-error { background:#fff0f2; color:#a72035; border:1px solid #ffd3da; }.notice-success { background:#edfcf8; color:#087269; border:1px solid #c9f0e8; }
.first-admin-note { margin-top:20px; background:#f1f6ff; border:1px solid #d8e5ff; border-radius:9px; padding:12px; font-size:10px; color:#52617e; line-height:1.5; }
.legal-acceptance { align-items:flex-start; line-height:1.5; }.legal-acceptance a,.auth-legal-links a { color:var(--portal-blue); }.auth-legal-links { text-align:center; color:var(--portal-muted); font-size:10px; margin:14px 0 0; }
.portal-layout { display:grid; grid-template-columns:240px 1fr; min-height:calc(100vh - 70px); }
.portal-sidebar { background:#fff; border-right:1px solid var(--portal-line); padding:25px 15px; position:sticky; top:70px; height:calc(100vh - 70px); }
.portal-nav { display:grid; gap:6px; }.portal-nav button,.portal-nav a { border:0; width:100%; min-height:43px; border-radius:8px; padding:0 13px; display:flex; align-items:center; gap:11px; background:transparent; color:#53617d; text-decoration:none; font-size:12px; font-weight:800; text-align:left; }.portal-nav button:hover,.portal-nav button.active,.portal-nav a:hover { background:#edf4ff; color:var(--portal-blue); }.portal-nav span { font-size:17px; width:23px; text-align:center; }
.portal-main { padding:34px; min-width:0; }.portal-page-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:28px; }.portal-page-head h1 { font-size:30px; letter-spacing:-1px; margin:0 0 6px; color:var(--portal-navy); }.portal-page-head p { margin:0; color:var(--portal-muted); font-size:12px; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:24px; }.stat-card { background:#fff; border:1px solid var(--portal-line); border-radius:12px; padding:20px; }.stat-card span { color:var(--portal-muted); font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.8px; }.stat-card b { display:block; font-size:28px; color:var(--portal-navy); margin-top:8px; }.stat-card small { color:var(--portal-success); }
.portal-card { background:#fff; border:1px solid var(--portal-line); border-radius:12px; overflow:hidden; margin-bottom:20px; }.portal-card-head { min-height:60px; padding:14px 18px; display:flex; align-items:center; justify-content:space-between; gap:15px; border-bottom:1px solid #e8edf4; }.portal-card-head h2 { margin:0; font-size:15px; }.portal-card-head p { margin:4px 0 0; font-size:10px; color:var(--portal-muted); }
.site-access-panel { border-color:#cddcff; box-shadow:0 12px 35px rgba(13,92,255,.06); }.site-access-form { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:20px; }.site-access-form .portal-field { grid-column:1/-1; }.site-access-form>button { justify-self:start; }.site-toggle { display:flex; gap:12px; border:1px solid var(--portal-line); border-radius:10px; padding:15px; cursor:pointer; }.site-toggle input { width:19px; height:19px; accent-color:var(--portal-blue); flex:0 0 auto; }.site-toggle span { display:grid; gap:5px; }.site-toggle b { font-size:12px; color:var(--portal-navy); }.site-toggle small { font-size:10px; line-height:1.45; color:var(--portal-muted); }
.portal-table-wrap { overflow:auto; }.portal-table { width:100%; border-collapse:collapse; min-width:720px; }.portal-table th { text-align:left; background:#f8faff; color:#6e7991; font-size:9px; text-transform:uppercase; letter-spacing:.6px; padding:11px 14px; }.portal-table td { border-top:1px solid #edf0f5; padding:13px 14px; font-size:11px; vertical-align:middle; }.portal-table td b { display:block; color:#203156; }.portal-table td small { color:#7a859c; }.status-pill { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; border-radius:99px; background:#eef3fb; color:#52617d; font-size:9px; font-weight:900; }.status-pill.active,.status-pill.success,.status-pill.valid,.status-pill.in_stock { background:#e8faf6; color:#087b72; }.status-pill.suspended,.status-pill.invalid,.status-pill.out_of_stock { background:#fff0f2; color:#b2263b; }.status-pill.pending,.status-pill.unchecked { background:#fff7e8; color:#a86a00; }
.table-actions { display:flex; gap:6px; }.icon-action { border:1px solid var(--portal-line); background:#fff; min-height:31px; border-radius:6px; padding:0 9px; color:#344363; font-size:9px; font-weight:800; }
.portal-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.settings-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; padding:20px; }.settings-grid .full { grid-column:1/-1; }
.portal-empty { padding:45px 20px; text-align:center; color:var(--portal-muted); font-size:12px; }.portal-section[hidden] { display:none; }
.drawer-backdrop { position:fixed; z-index:50; inset:0; background:rgba(5,14,40,.55); backdrop-filter:blur(4px); display:flex; justify-content:flex-end; }.drawer-backdrop[hidden] { display:none; }.portal-drawer { width:min(480px,100%); background:#fff; height:100%; padding:25px; overflow:auto; box-shadow:-20px 0 60px rgba(0,0,0,.15); }.drawer-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:25px; }.drawer-head h2 { margin:0; color:var(--portal-navy); }.drawer-close { border:0; width:35px; height:35px; border-radius:50%; background:#f0f3f8; font-size:20px; }
.account-shell { width:min(1060px,calc(100% - 30px)); margin:34px auto; display:grid; grid-template-columns:260px 1fr; gap:22px; }.profile-card,.account-panel { background:#fff; border:1px solid var(--portal-line); border-radius:13px; padding:24px; }.profile-avatar { width:70px; height:70px; border-radius:22px; display:grid; place-items:center; font-size:25px; font-weight:900; color:#fff; background:linear-gradient(135deg,var(--portal-blue),var(--portal-cyan)); }.profile-card h2 { margin:17px 0 4px; }.profile-card p { margin:0; color:var(--portal-muted); font-size:11px; }.profile-role { display:inline-block; margin-top:14px; padding:6px 9px; border-radius:99px; background:#edf4ff; color:var(--portal-blue); font-size:9px; font-weight:900; }
.choice-list { display:flex; flex-wrap:wrap; gap:12px; }.account-submit { max-width:260px; }.account-section { margin-top:20px; }
.account-list-row { min-height:66px; padding:14px 0; display:flex; align-items:center; gap:16px; border-top:1px solid #edf0f5; color:inherit; text-decoration:none; }.account-list-row>span { min-width:0; flex:1; }.account-list-row b { display:block; color:#24355b; font-size:12px; overflow:hidden; text-overflow:ellipsis; }.account-list-row small { display:block; margin-top:5px; color:#77839a; font-size:10px; }.account-list-row i { color:var(--portal-blue); font-size:10px; font-style:normal; font-weight:800; white-space:nowrap; }.account-list-row button { border:1px solid #dce3ee; border-radius:8px; background:#fff; color:#6d7890; padding:7px 10px; font-size:9px; }.account-list-row button:hover { border-color:#ef9aac; color:#d52e4d; }
.portal-table .dual-money { font-size:11px; }
.portal-table .dual-money small,.account-list-row .dual-money small { display:block; margin:0; color:#7a8291; font-size:.72em; }
.account-list-row .dual-money { font-size:10px; }
.privacy-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:6px; }.danger-zone { border-color:#f0c8d0; }.danger-zone .portal-page-head h1 { color:var(--portal-danger); }.privacy-note { padding:13px; border-radius:9px; background:#f4f7fc; color:var(--portal-muted); font-size:11px; line-height:1.55; }.retention-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }.privacy-counts { grid-template-columns:repeat(3,1fr); }
.alert-status { border-radius:99px; padding:6px 9px; background:#edf8f7; color:#078f8c; font-size:9px; font-style:normal; font-weight:800; white-space:nowrap; }.alert-reached { background:#e7f7ee; color:#17864a; }.alert-paused { background:#f1f3f7; color:#737d90; }
.log-filters { padding:18px; display:grid; grid-template-columns:140px 150px 180px minmax(220px,1fr) auto; gap:12px; align-items:end; border-bottom:1px solid var(--portal-line); }.log-filters .portal-field { gap:5px; }.log-filters .portal-button { min-height:42px; }.log-table { min-width:1180px; }.log-table td { vertical-align:top; }.log-row.log-error { background:#fffafb; }.log-row.log-warn { background:#fffdf8; }.log-level { display:inline-flex; padding:5px 7px; border-radius:6px; font-size:8px; font-weight:950; letter-spacing:.7px; }.log-level-info { color:#0b5bcf; background:#eaf3ff; }.log-level-debug { color:#68758d; background:#eff2f6; }.log-level-warn { color:#9b6200; background:#fff3d9; }.log-level-error { color:#b42540; background:#ffe9ee; }.log-message { display:block; max-width:320px; line-height:1.45; color:#42516f; }.log-details summary { cursor:pointer; color:var(--portal-blue); font-size:9px; font-weight:800; }.log-details pre { width:320px; max-height:260px; overflow:auto; margin:8px 0 0; padding:10px; border-radius:8px; background:#101a31; color:#d9e5ff; font-size:9px; line-height:1.45; white-space:pre-wrap; word-break:break-word; }.log-stats .stat-card:nth-child(2) small { color:#c32e49; }.log-stats .stat-card:nth-child(3) small { color:#a66b00; }
.inquiry-message { display:block; max-width:360px; white-space:pre-wrap; line-height:1.5; color:#42516f; }
@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-brand-panel{display:none}.portal-layout{grid-template-columns:1fr}.portal-sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--portal-line);overflow:auto;padding:10px}.portal-nav{display:flex;min-width:max-content}.portal-nav button{width:auto}.stats-grid{grid-template-columns:repeat(2,1fr)}.account-shell{grid-template-columns:1fr}.portal-user span{display:none}.log-filters{grid-template-columns:1fr 1fr}.log-search{grid-column:1/-1}.retention-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.portal-topbar{padding:0 14px}.portal-main{padding:22px 14px}.portal-page-head{flex-direction:column}.stats-grid,.portal-grid-2,.settings-grid,.site-access-form{grid-template-columns:1fr}.settings-grid .full,.site-access-form .portal-field{grid-column:auto}.auth-form-panel{padding:35px 18px}.portal-topbar .portal-link{display:none}.account-list-row{align-items:flex-start;flex-wrap:wrap}.account-list-row>span{flex-basis:100%}}
