:root{--ink:#17201c;--muted:#66706b;--green:#1d573d;--cream:#f3f0e8;--line:#dcded8;--white:#fff;--danger:#8f2e2e}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--cream)}button,.button{border:0;border-radius:10px;background:var(--green);color:#fff;padding:13px 18px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}summary{list-style:none}.secondary{background:#e6ebe7;color:var(--green)}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.brand{padding:10vw;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(135deg,#153c2d,#1e5a40);color:#fff}.brand h1{font-size:clamp(42px,6vw,78px);line-height:1;margin:22px 0}.brand>p:last-child{max-width:520px;color:#d4e0d9}.mark{width:58px;height:58px;display:grid;place-items:center;border:1px solid #b6cbbf;border-radius:50%;font:700 28px Georgia}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:42px;box-shadow:0 18px 60px #17201c14}.login>.card{align-self:center;margin:8vw;max-width:520px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;color:#789184}.card h2,.card h1{margin:10px 0 28px}form{display:grid;gap:18px}label{display:grid;gap:7px;font-size:13px;font-weight:700}input,select{width:100%;border:1px solid var(--line);border-radius:9px;padding:12px;font:inherit;background:#fff}.error,.success,.notice{padding:12px 14px;border-radius:9px;margin:14px 0}.error{background:#fbeaea;color:var(--danger)}.success{background:#e8f5ed;color:var(--green)}small{display:block;margin-top:20px;color:var(--muted)}.setup{min-height:100vh;display:grid;place-items:center;padding:32px}.setup .card{width:min(680px,100%)}.ekegr-page > section{padding:10px}.two,.three{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:10px}.three{grid-template-columns:repeat(3,1fr)}.shell,.page{max-width:1240px;margin:auto;padding:38px 24px}.welcome{margin:54px 0 28px}.welcome p{color:var(--muted)}.welcome h1{font-size:42px;margin:5px 0}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid article{background:#fff;padding:24px;border:1px solid var(--line);border-radius:14px}.grid strong,.grid span{display:block}.grid strong{font-size:26px}.grid span{color:var(--muted);margin-top:8px}.appbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:38px;position:sticky;top:0;z-index:20}.logo{font-weight:900;color:var(--green);text-decoration:none;letter-spacing:.08em}.logo small{display:inline;margin:0;color:var(--muted);font-size:10px}.appbar nav{display:flex;gap:24px;flex:1}.appbar nav a,.linkbtn{color:var(--muted);text-decoration:none;font-weight:700;font-size:14px;background:none;padding:8px}.appbar nav a.active{color:var(--green)}.appbar form{display:block}.contextbar{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;gap:20px}.contextbar span,.contextbar strong{display:block}.contextbar span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.contextbar form{display:flex;gap:10px}.contextbar select{min-width:180px}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.module-grid>a,.module-grid>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;text-decoration:none;color:var(--ink)}.module-grid b,.module-grid span{display:block}.module-grid span{color:var(--muted);margin-top:7px;font-size:14px}.disabled{opacity:.55}.pagehead{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.pagehead h1{font-size:36px;margin:6px 0}.pagehead p{color:var(--muted)}.actions{display:flex;gap:10px}.actions details{position:relative}.popover{position:absolute;right:0;top:48px;width:330px;background:#fff;border:1px solid var(--line);box-shadow:0 20px 60px #17201c22;border-radius:14px;padding:20px;z-index:15}.popover.wide{width:min(720px,90vw)}.checks{display:flex;gap:18px;flex-wrap:wrap}.checks label{display:flex;align-items:center}.checks input{width:auto}.search{grid-template-columns:1fr auto;margin:20px 0}.tablewrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:14px 16px;text-align:left;border-bottom:1px solid #eceeea;white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}td{font-size:14px}.empty{text-align:center;color:var(--muted);padding:44px}.pill{font-size:12px;padding:7px 10px}.pill.on{background:#e4f3e9;color:var(--green)}.pill.off{background:#f3e7e7;color:var(--danger)}.tablewrap form{display:block}.narrow{max-width:560px}.narrow small{margin:0}@media(max-width:800px){.login{grid-template-columns:1fr}.brand{display:none}.login>.card{margin:24px}.grid,.module-grid{grid-template-columns:1fr 1fr}.two,.three{grid-template-columns:1fr}.appbar nav{gap:8px}.contextbar,.pagehead{align-items:stretch;flex-direction:column}.contextbar form{display:grid}.actions{align-self:stretch}.popover{position:fixed;left:16px;right:16px;top:90px;width:auto}.grid{grid-template-columns:1fr 1fr}}
@import url('/assets/sprint04.css');
@import url('/assets/sprint05.css');
.muted{color:var(--muted)}.role-matrix{margin-top:26px}.matrix-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.matrix-head h2{margin-bottom:6px}.matrix-head p{margin-top:0}.matrix-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.matrix-role{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.matrix-role summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;cursor:pointer}.matrix-role summary:hover{background:#f7f8f5}.matrix-role summary span strong,.matrix-role summary span small{display:block}.matrix-role summary span small{margin:3px 0 0}.matrix-role summary b{white-space:nowrap;color:var(--green);font-size:13px}.permission-list{border-top:1px solid var(--line);max-height:360px;overflow:auto;padding:8px 16px}.permission-list>div{display:grid;grid-template-columns:minmax(170px,1fr) minmax(180px,1.25fr) auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #eceeea}.permission-list>div:last-child{border-bottom:0}.permission-list code{font-size:12px;overflow-wrap:anywhere}.permission-list span{font-size:12px;color:var(--muted)}.permission-list em{font-size:10px;font-style:normal;text-transform:uppercase;border-radius:999px;padding:4px 7px;background:#eef1ee}.permission-list .risk-high,.permission-list .risk-critical{background:#f7e8e8;color:var(--danger)}
.mfa-setup,.recovery-codes{margin-top:18px}.mfa-setup code,.recovery-codes code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.secret-code{display:inline-block;padding:10px 12px;background:#f0f3ef;border-radius:8px;font-size:18px;letter-spacing:.12em;overflow-wrap:anywhere}.mfa-setup textarea{width:100%;margin:12px 0 18px;padding:12px;border:1px solid var(--line);border-radius:9px}.code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.code-grid code{padding:12px;background:#f0f3ef;border-radius:8px;text-align:center;font-weight:700;letter-spacing:.08em}@media print{.appbar,.pagehead,.recovery-codes button,.two,.mfa-setup{display:none}.recovery-codes{box-shadow:none;border:0}.code-grid{grid-template-columns:repeat(2,1fr)}}
.session-list{margin-top:26px}.session-list .matrix-head form{display:block}.session-list td small{margin:3px 0 0}
.main-nav{display:flex;align-items:center;gap:8px}.nav-group{position:relative}.nav-group summary{cursor:pointer;padding:9px 11px;border-radius:8px;color:var(--ink);font-size:13px;font-weight:700}.nav-group summary:hover,.nav-group[open] summary{background:#eef3ef;color:var(--green)}.nav-group>div{position:absolute;z-index:100;top:42px;left:0;min-width:220px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 30px #17201c1c}.nav-group>div a{display:block!important;padding:9px 11px!important;border-radius:7px;white-space:nowrap}.nav-group>div a:hover{background:#eef3ef;color:var(--green)}.nav-home{white-space:nowrap}.main-nav>a:last-child{white-space:nowrap}@media(max-width:1050px){.main-nav{gap:2px}.main-nav>a,.nav-group summary{font-size:12px;padding:8px 7px}}@media(max-width:700px){.appbar{height:auto;min-height:68px;flex-wrap:wrap;padding:10px 14px}.main-nav{order:3;width:100%;overflow-x:auto;padding-top:6px}.nav-group>div{position:fixed;left:12px;right:12px;top:112px}.appbar .notify-wrap{margin-left:auto}}
@media(max-width:800px){.matrix-grid{grid-template-columns:1fr}.permission-list>div{grid-template-columns:1fr auto}.permission-list span{grid-column:1/-1}}
