:root{
    --portal-primary:#183153;
    --portal-secondary:#27496a;
    --portal-accent:#96b8cc;
    --portal-bg:#f5f7fb;
    --portal-card:#ffffff;
    --portal-text:#0f172a;
    --portal-muted:#64748b;
    --portal-radius:24px;
    --portal-soft:#eef6fa;
    --portal-shadow:0 18px 40px rgba(24,49,83,.10);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body.portal-body{
    font-family:Tahoma,Arial,sans-serif;
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--portal-accent) 26%, transparent), transparent 28%),
        radial-gradient(circle at bottom left, color-mix(in srgb, var(--portal-secondary) 16%, transparent), transparent 25%),
        linear-gradient(180deg, #ffffff 0%, var(--portal-bg) 54%, var(--portal-bg) 100%);
    color:var(--portal-text);
    min-height:100vh;
}
a{text-decoration:none;color:inherit}
.portal-shell{width:min(1220px,calc(100% - 32px));margin:0 auto;padding:24px 0 32px}
.portal-stack{display:flex;flex-direction:column;gap:18px}
.portal-hero{
    background:linear-gradient(135deg,var(--portal-primary) 0%, var(--portal-secondary) 45%, var(--portal-accent) 100%);
    color:#fff;
    border-radius:calc(var(--portal-radius) + 6px);
    padding:26px;
    position:relative;
    overflow:hidden;
    box-shadow:var(--portal-shadow);
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:flex-start;
    flex-wrap:wrap;
}
.portal-hero::before,.portal-hero::after{content:'';position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}
.portal-hero::before{width:220px;height:220px;top:-80px;left:-60px}
.portal-hero::after{width:160px;height:160px;bottom:-50px;right:-40px}
.portal-badge{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);padding:10px 16px;border-radius:999px;font-size:13px;backdrop-filter:blur(6px)}
.portal-dot{width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.16)}
.portal-hero h1{margin:16px 0 8px;font-size:32px;line-height:1.3;position:relative;z-index:1}
.portal-hero p{margin:0;max-width:760px;font-size:15px;line-height:1.9;color:rgba(255,255,255,.9);position:relative;z-index:1}
.portal-actions{display:flex;flex-wrap:wrap;gap:10px;position:relative;z-index:1}
.portal-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 18px;border-radius:16px;font-size:15px;font-weight:700;transition:.2s ease;border:1px solid transparent;cursor:pointer}
.portal-btn.primary{background:#fff;color:var(--portal-primary);box-shadow:0 16px 34px rgba(0,0,0,.14)}
.portal-btn.secondary{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.18)}
.portal-btn.soft{background:var(--portal-soft);color:var(--portal-primary);border-color:#dbeaf2}
.portal-btn.danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.portal-btn:hover{transform:translateY(-1px)}
.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.portal-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.portal-card,.portal-stat,.portal-table-card{
    background:var(--portal-card);
    border:1px solid #edf2f7;
    border-radius:var(--portal-radius);
    box-shadow:0 12px 28px rgba(15,23,42,.06);
    overflow:hidden;
}
.portal-stat{padding:18px;position:relative}
.portal-stat::before{content:'';position:absolute;top:0;right:0;width:84px;height:84px;background:radial-gradient(circle,var(--portal-soft),transparent 70%)}
.portal-stat .label{font-size:13px;font-weight:800;color:var(--portal-muted);margin-bottom:10px;display:block}
.portal-stat .value{font-size:31px;font-weight:900;line-height:1.05;color:var(--portal-text)}
.portal-stat .note{margin-top:10px;font-size:12px;color:var(--portal-muted)}
.portal-section-head{padding:18px 20px;border-bottom:1px solid #f1f5f9;background:linear-gradient(180deg,#fff,#fbfdff)}
.portal-section-head h2,.portal-section-head h3{margin:0;font-size:20px;color:var(--portal-primary)}
.portal-section-head p{margin:6px 0 0;color:var(--portal-muted);font-size:13px;line-height:1.8}
.portal-section-body{padding:18px}
.portal-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.portal-list-item{background:#fff;border:1px solid #edf2f7;border-radius:18px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.portal-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid #dbeaf2;background:var(--portal-soft);color:var(--portal-primary)}
.portal-chip.success{background:#ecfdf5;border-color:#bbf7d0;color:#166534}
.portal-chip.warn{background:#fef3c7;border-color:#fde68a;color:#92400e}
.portal-chip.danger{background:#fee2e2;border-color:#fecaca;color:#991b1b}
.portal-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.portal-field{display:flex;flex-direction:column;gap:8px}
.portal-field label{font-weight:800;color:#334155;font-size:14px}
.portal-field input,.portal-field select,.portal-field textarea{
    width:100%;min-height:46px;border:1px solid #dbe4ea;border-radius:14px;padding:11px 14px;background:#f8fbfd;color:#1f2937;font-size:14px;outline:none
}
.portal-field textarea{min-height:110px;resize:vertical}
.portal-field input:focus,.portal-field select:focus,.portal-field textarea:focus{border-color:var(--portal-accent);box-shadow:0 0 0 4px rgba(150,184,204,.18);background:#fff}
.portal-alert{padding:14px 16px;border-radius:16px;font-weight:800;border:1px solid transparent}
.portal-alert.success{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}
.portal-alert.error{background:#fef2f2;color:#991b1b;border-color:#fecaca}
.portal-alert.warn{background:#fff7ed;color:#9a3412;border-color:#fdba74}
.portal-table-wrap{overflow:auto}
.portal-table{width:100%;border-collapse:separate;border-spacing:0}
.portal-table thead th{position:sticky;top:0;background:#f8fbfe;color:#475569;font-size:13px;font-weight:900;padding:15px 12px;border-bottom:1px solid #eaf0f5;text-align:right;white-space:nowrap}
.portal-table tbody td{padding:14px 12px;border-bottom:1px solid #f1f5f9;text-align:right;vertical-align:middle;color:#1e293b}
.portal-table tbody tr:hover td{background:#fbfeff}
.portal-empty{padding:28px 18px;text-align:center;color:var(--portal-muted);font-weight:700;border:1px dashed #cbd5e1;border-radius:18px;background:#fbfdff}
.portal-auth-layout{min-height:100vh;display:grid;place-items:center;padding:24px}
.portal-auth-box{width:min(1080px,100%);display:grid;grid-template-columns:1.15fr .95fr;gap:18px;align-items:stretch}
.portal-pane{background:var(--portal-card);border:1px solid #edf2f7;border-radius:calc(var(--portal-radius) + 6px);box-shadow:0 16px 34px rgba(15,23,42,.08);overflow:hidden}
.portal-pane.pad{padding:24px}
.portal-features{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.portal-feature{display:inline-flex;align-items:center;gap:6px;background:#f3f8ff;color:#27599d;border:1px solid rgba(47,125,246,.12);padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700}
.portal-footer-note{text-align:center;color:var(--portal-muted);margin-top:2px;font-size:13px}
.portal-link{color:var(--portal-primary);font-weight:700}
.portal-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.portal-logo{display:inline-flex;align-items:center;gap:12px;font-weight:800;color:#fff}
.portal-logo .mark{width:42px;height:42px;border-radius:14px;background:rgba(255,255,255,.18);display:grid;place-items:center}
.portal-user-badge{display:inline-flex;align-items:center;gap:10px;background:#f8fbfe;border:1px solid #e5eff6;padding:10px 14px;border-radius:999px;font-weight:700;color:var(--portal-primary)}
@media (max-width: 991px){
  .portal-shell{width:min(100%,calc(100% - 20px));padding:14px 0 24px}
  .portal-hero{padding:20px;border-radius:22px}
  .portal-hero h1{font-size:24px}
  .portal-auth-box,.portal-grid.two{grid-template-columns:1fr}
}
.portal-copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.portal-inline-note{padding:12px 14px;border-radius:16px;background:#f8fbfe;border:1px solid #e5eff6;color:#466075;line-height:1.9;font-size:13px}
.portal-table-card .portal-section-head{background:linear-gradient(180deg,#ffffff,#f8fbfe)}
.portal-table-card .portal-section-body{padding:18px}
.portal-table td .portal-chip,.portal-table th .portal-chip{vertical-align:middle}
.portal-stat[style*='rgba(255,255,255,.14)'] .note{font-size:12px}
.portal-list-item strong{color:var(--portal-text)}
.portal-list-item span{color:var(--portal-muted);font-weight:700}
.portal-table tbody td:first-child{font-weight:800}
@media (max-width: 767px){
  .portal-copy-row{grid-template-columns:1fr}
  .portal-copy-row .portal-btn{width:100%}
}
