@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:wght@500;600&family=Source+Sans+3:wght@400;500;600;700&display=swap');

:root {
  --teal:#00bfa6; --teal-dark:#008f7d; --night:#012a36; --night-2:#1a2b3c;
  --solar:#f9a826; --paper:#f5f8f8; --line:#dce6e7; --muted:#687d82;
  --danger:#b42318; --success:#177245; --radius:8px; --shadow:0 10px 30px rgba(1,42,54,.08);
}
* { box-sizing:border-box; }
html,body { min-height:100%; }
body { margin:0; background:var(--paper); color:var(--night); font-family:'Source Sans 3',system-ui,sans-serif; display:flex; flex-direction:column; }
a { color:#087f72; }
.ek-navbar { background:var(--night-2)!important; border-bottom:1px solid rgba(255,255,255,.07); min-height:62px; }
.navbar-brand { color:#fff!important; font-size:1rem; letter-spacing:.02em; }
.navbar-brand small { display:block; color:#91a5ab; font-size:.63rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; line-height:1; }
.navbar-brand strong { color:var(--teal); margin-right:.35rem; }
.navbar-nav .nav-link { color:#c4d0d3; font-size:.88rem; font-weight:600; padding:.5rem .7rem!important; border-radius:4px; }
.navbar-nav .nav-link:hover,.navbar-nav .nav-link.active { color:#fff; background:rgba(0,191,166,.14); }
.iam-user { display:flex; align-items:center; gap:.55rem; font-size:.8rem; }
.iam-user b { color:var(--solar); font-size:.62rem; letter-spacing:.08em; }
.iam-main { padding-top:62px; flex:1; min-height:calc(100vh - 120px); }
.ek-footer { background:var(--night-2); color:#9eb0b5; font-size:.78rem; }
.ek-footer-brand { display:flex; gap:.5rem; align-items:center; color:#fff; font-weight:600; }
.ek-footer-meta a { color:#a9b8bc; text-decoration:none; }
.iam-page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:1.5rem; }
.iam-page-head h1 { font-family:'EB Garamond',Georgia,serif; font-size:2.25rem; font-weight:600; margin:.1rem 0; color:var(--night); }
.iam-page-head p { margin:0; color:var(--muted); max-width:780px; }
.iam-eyebrow { color:var(--teal-dark); font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.btn-iam { background:var(--teal); border-color:var(--teal); color:var(--night); font-weight:700; }
.btn-iam:hover,.btn-iam:focus { background:var(--teal-dark); border-color:var(--teal-dark); color:#fff; }
.iam-kpis { display:grid; grid-template-columns:repeat(5,minmax(150px,1fr)); gap:1rem; }
.iam-kpi { background:#fff; border:1px solid var(--line); border-top:3px solid var(--teal); border-radius:var(--radius); padding:1rem 1.1rem; box-shadow:0 3px 16px rgba(1,42,54,.04); }
.iam-kpi span { display:block; color:var(--muted); font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.iam-kpi strong { display:block; font-family:'EB Garamond',serif; font-size:2rem; margin-top:.15rem; }
.iam-kpi-warn { border-top-color:var(--solar); background:#fffaf0; }
.iam-panel,.iam-table-wrap,.iam-form { background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 3px 18px rgba(1,42,54,.045); }
.iam-panel { padding:1.15rem; height:100%; }
.iam-panel h2,.iam-panel-head h2 { font-size:1rem; font-weight:700; margin:0; }
.iam-panel-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:.75rem; }
.iam-panel-head a { font-size:.78rem; text-decoration:none; font-weight:700; }
.iam-finding-list { list-style:none; margin:0; padding:0; }
.iam-finding-list li { padding:.7rem 0; border-top:1px solid #edf1f2; display:flex; justify-content:space-between; gap:1rem; }
.iam-finding-list li:first-child { border-top:0; }
.iam-finding-list b { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.78rem; }
.iam-finding-list span { color:var(--muted); text-align:right; font-size:.8rem; }
.iam-empty { color:var(--muted); padding:1.5rem!important; text-align:center; }
.iam-shortcuts { display:grid; grid-template-columns:repeat(8,1fr); gap:.7rem; }
.iam-shortcuts a { border:1px solid var(--line); border-radius:6px; padding:.85rem; color:var(--night); text-decoration:none; font-weight:700; text-align:center; }
.iam-shortcuts a:hover { border-color:var(--teal); background:#effcf9; }
.iam-shortcuts span { color:var(--teal-dark); margin-right:.35rem; }
.iam-subnav { display:flex; gap:.35rem; margin:-.5rem 0 1rem; }
.iam-subnav a { padding:.45rem .85rem; border-radius:20px; background:#e9efef; color:#52676c; text-decoration:none; font-size:.82rem; font-weight:700; }
.iam-subnav a.active { background:var(--night); color:#fff; }
.iam-filter { display:grid; grid-template-columns:minmax(260px,1fr) 190px auto; gap:.65rem; margin-bottom:1rem; }
.iam-filter-accounts { grid-template-columns:minmax(220px,1fr) 160px minmax(190px,240px) minmax(190px,240px) auto; }
.iam-table-wrap { overflow:hidden; }
.iam-table { margin:0; font-size:.82rem; }
.iam-table thead th { background:var(--night); color:#fff; border:0; font-size:.68rem; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; padding:.72rem .7rem; }
.iam-table tbody td { border-color:#e8eeee; padding:.62rem .7rem; white-space:nowrap; max-width:290px; overflow:hidden; text-overflow:ellipsis; }
.iam-table tbody tr:hover td { background:#f0faf8; }
.iam-table code { color:#075e55; background:#e9f6f4; padding:.12rem .3rem; border-radius:3px; }
.iam-table-foot { border-top:1px solid var(--line); padding:.65rem .8rem; color:var(--muted); font-size:.75rem; }
.iam-status { display:inline-flex; align-items:center; border-radius:20px; padding:.18rem .5rem; font-size:.66rem; font-weight:800; letter-spacing:.04em; }
.status-active { color:#0b6840; background:#dcf7e9; }.status-draft,.status-planned { color:#825800; background:#fff0c7; }
.status-archived,.status-disabled,.status-revoked { color:#5d686b; background:#e8edef; }.status-blocked,.status-suspended { color:#9b1c14; background:#fde4e1; }
.iam-form { padding:1.4rem; }
.iam-form .form-label { font-size:.77rem; font-weight:700; color:#4d6469; margin-bottom:.3rem; }
.iam-form .form-control,.iam-form .form-select,.iam-filter .form-control,.iam-filter .form-select { border-color:#cbd9db; border-radius:5px; }
.iam-form .form-control:focus,.iam-form .form-select:focus { border-color:var(--teal); box-shadow:0 0 0 .2rem rgba(0,191,166,.12); }
.iam-check { min-height:58px; display:flex; align-items:center; gap:.4rem; padding-left:2.2rem; border:1px solid #cbd9db; border-radius:5px; margin-top:1.45rem; }
.iam-form-actions { border-top:1px solid var(--line); margin-top:1.4rem; padding-top:1.2rem; display:flex; align-items:center; gap:1rem; }
.iam-form-actions span { color:var(--muted); font-size:.8rem; }
.iam-login-wrap { min-height:calc(100vh - 120px); display:grid; place-items:center; padding:3rem 1rem; background:linear-gradient(135deg,#eef8f6 0%,#f7f9f9 55%,#fff7e7 100%); }
.iam-login-card { width:min(100%,430px); padding:2rem; background:#fff; border-radius:10px; border-top:5px solid var(--teal); box-shadow:var(--shadow); }
.iam-login-card h1 { font-family:'EB Garamond',serif; font-size:2.2rem; margin:.2rem 0; }
.iam-login-card>p { color:var(--muted); margin-bottom:1.5rem; }
.iam-login-card small { display:block; color:var(--muted); margin-top:1.2rem; line-height:1.45; }
.iam-preview-hero { background:linear-gradient(135deg,#e8f8f5 0%,#f7faf9 62%,#fff4dd 100%); border-bottom:1px solid var(--line); }
.iam-preview-hero h1 { font-family:'EB Garamond',Georgia,serif; font-size:clamp(2.2rem,5vw,4.2rem); line-height:.98; margin:.45rem 0 1rem; max-width:850px; }
.iam-preview-hero p { color:#4d6469; font-size:1.08rem; line-height:1.6; max-width:820px; margin:0; }
.iam-preview-content { max-width:1600px; }
.iam-preview-note { background:#fff; border:1px solid var(--line); border-left:4px solid var(--solar); border-radius:var(--radius); padding:.9rem 1rem; color:#50666b; }
.iam-preview-note code { color:#075e55; background:#e9f6f4; padding:.12rem .35rem; border-radius:3px; }
.iam-preview-panel { padding:0; overflow:hidden; }
.iam-preview-panel .iam-panel-head { padding:1rem 1.15rem; margin:0; }
.iam-preview-panel .iam-panel-head span { color:var(--muted); font-size:.75rem; }
.iam-preview-panel .iam-table tbody td { height:45px; }
.iam-preview-breakdown h2 { font-size:1rem; margin:0 0 .65rem; }
.iam-preview-breakdown>div { display:flex; justify-content:space-between; align-items:center; padding:.65rem 0; border-top:1px solid #e8eeee; }
.iam-preview-breakdown>div span { color:#435b60; }
.iam-preview-breakdown>div strong { font-family:'EB Garamond',Georgia,serif; font-size:1.35rem; }
.iam-detail-page { max-width:1800px; }
.iam-detail-breadcrumb { display:flex; gap:.5rem; align-items:center; color:var(--muted); font-size:.8rem; margin-bottom:1.2rem; }
.iam-detail-breadcrumb a { font-weight:700; text-decoration:none; }
.iam-detail-head { align-items:center; }
.iam-detail-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1px; overflow:hidden; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); }
.iam-detail-summary>div { background:#fff; padding:.9rem 1rem; min-height:76px; }
.iam-detail-summary span { display:block; color:var(--muted); font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.iam-detail-summary strong { display:block; margin-top:.35rem; font-size:.95rem; }
.iam-detail-summary .iam-status { display:inline-flex; }
.iam-relationship-flow { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.65rem; padding:1rem; background:var(--night); color:#d7e1e3; border-radius:var(--radius); }
.iam-relationship-flow strong { color:#fff; border:1px solid rgba(0,191,166,.45); background:rgba(0,191,166,.12); padding:.38rem .7rem; border-radius:4px; }
.iam-relationship-flow span { color:#a8b8bc; font-size:.8rem; }
.iam-relation-section { background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 3px 18px rgba(1,42,54,.045); overflow:hidden; }
.iam-relation-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1rem 1.15rem; }
.iam-relation-section-head h2 { margin:0; font-size:1.05rem; }
.iam-relation-section-head p { color:var(--muted); margin:.25rem 0 0; font-size:.82rem; }
.iam-relation-section-head>span { white-space:nowrap; color:var(--teal-dark); background:#e9f6f4; border-radius:20px; padding:.2rem .55rem; font-size:.7rem; font-weight:800; }
.iam-record-link { font-weight:700; text-decoration:none; }
.iam-dashboard { max-width:1800px; }
.iam-dashboard .iam-kpis { grid-template-columns:repeat(6,minmax(140px,1fr)); }
.iam-dashboard-breakdown>a { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.62rem 0; border-top:1px solid #e8eeee; color:var(--night); text-decoration:none; }
.iam-dashboard-breakdown>a:hover span { color:var(--teal-dark); }
.iam-dashboard-breakdown>a strong { font-family:'EB Garamond',Georgia,serif; font-size:1.35rem; color:var(--teal-dark); }
.iam-dashboard-latest>a { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-top:1px solid #e8eeee; padding:.72rem 0; color:var(--night); text-decoration:none; }
.iam-dashboard-latest>a:hover b { color:var(--teal-dark); }
.iam-dashboard-latest>a>span:first-child { min-width:0; }
.iam-dashboard-latest b,.iam-dashboard-latest small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.iam-dashboard-latest small { color:var(--muted); font-size:.75rem; margin-top:.12rem; }
.iam-policy-grid { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.iam-policy-grid div { background:#f6f9f9; border-left:3px solid var(--teal); padding:.8rem; }
.iam-policy-grid b,.iam-policy-grid span { display:block; }.iam-policy-grid span { color:var(--muted); font-size:.8rem; }
.iam-steps { margin:1rem 0; padding-left:1.2rem; }.iam-steps li { margin:.45rem 0; }
.iam-unlock { max-width:540px; padding:1rem; background:#fff7e7; border:1px solid #f4d59c; border-radius:var(--radius); }
.iam-error { max-width:650px; margin:8vh auto; padding:2rem; background:#fff; border-top:5px solid var(--solar); box-shadow:var(--shadow); }
.iam-alert-fade { opacity:.2; transition:opacity .5s ease; }
@media(max-width:1199px) { .iam-kpis,.iam-dashboard .iam-kpis{grid-template-columns:repeat(3,1fr)}.iam-shortcuts{grid-template-columns:repeat(4,1fr)}.iam-user{margin-top:1rem;padding-bottom:1rem}.navbar-nav{padding-top:1rem} }
@media(max-width:767px) { .iam-page-head{align-items:flex-start;flex-direction:column;gap:1rem}.iam-page-head h1{font-size:1.9rem}.iam-kpis{grid-template-columns:1fr 1fr}.iam-shortcuts{grid-template-columns:1fr 1fr}.iam-filter{grid-template-columns:1fr}.iam-policy-grid{grid-template-columns:1fr}.iam-form{padding:1rem} }
@media(max-width:440px) { .iam-kpis{grid-template-columns:1fr}.iam-shortcuts{grid-template-columns:1fr} }
