:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#23372f;background:#f3f5f3;--muted:#6a7c71;--line:#e1e9e3;--green:#13795f}*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.045em}h2{font-size:1.15rem}h3{margin:24px 0 16px;font-size:1rem}.muted{color:var(--muted);font-size:.84rem;line-height:1.7}.eyebrow{font-size:.61rem;letter-spacing:.16em;font-weight:700;color:var(--muted);margin:0 0 10px}.brand{font-size:.8rem;letter-spacing:.13em;font-weight:750;display:flex;align-items:center;gap:10px}.brand span{background:#bed08d;color:#20392a;display:grid;place-items:center;width:32px;height:36px;border-radius:7px;font-size:1.4rem}button,input{font:inherit}button{background:white;border:1px solid var(--line);padding:10px 13px;border-radius:7px;cursor:pointer;font-size:.75rem;color:inherit}button:hover{background:#eaf4ec}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover{background:#0c654f}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c5b574;outline-offset:3px}[hidden]{display:none!important}.app-shell{display:grid;grid-template-columns:225px minmax(0,1fr);min-height:100vh}aside{position:sticky;top:0;height:100vh;background:#1a2d24;color:#d8e5dd;padding:32px 24px;display:flex;flex-direction:column}aside .eyebrow{margin-top:44px;color:#8aa493}nav{display:grid;gap:10px}nav a{color:#b6cbbd;text-decoration:none;padding:11px 4px;font-size:.82rem}nav a:hover{color:white}.sidebar-foot{margin-top:auto;border-top:1px solid #3c5545;padding-top:20px;font-size:.72rem;color:#94ad9b}.sidebar-foot b{color:#c2d88a}.sidebar-foot p{line-height:1.7;margin:10px 0 20px}.sidebar-foot span{display:block;margin-bottom:10px}.sidebar-foot button{width:100%;background:transparent;border-color:#3c5545;color:#d8e5dd}.workspace{padding:40px;max-width:1500px;width:100%;margin:auto}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}header .muted{margin-top:12px}header>div:last-child{font-size:.63rem;color:var(--muted);display:flex;gap:10px;align-items:center}.connection-card,.panel,.role-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:25px;box-shadow:0 8px 35px #203c2205}.connection-card{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.connection-card strong{font:600 1.4rem ui-monospace,monospace;display:block;margin-bottom:8px}.role-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.role-card{padding:20px;min-height:130px}.role-card h3{margin:0 0 12px}.role-card p{margin-top:10px}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.table-scroll{overflow:auto;margin-top:24px}table{width:100%;border-collapse:collapse;font-size:.75rem;text-align:left}th{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f5f7f5;padding:12px}td{padding:16px 12px;border-bottom:1px solid var(--line)}td small{display:block;color:var(--muted);margin-top:5px;max-width:250px;line-height:1.5}td:last-child{min-width:280px}td button{margin:2px;padding:7px 9px;font-size:.65rem}.pill{display:inline-block;background:#edf1ed;color:#657a6a;border-radius:5px;padding:5px 7px;font-size:.65rem}.good{background:#e5f3e9;color:#2f7850}.pending{background:#fbf3dc;color:#8c6d2f}.bad{background:#fcebea;color:#a14743}.action-help{color:var(--muted);font-size:.67rem;line-height:1.8;margin-top:20px}.lower-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;margin-top:24px}dl{display:grid;grid-template-columns:135px 1fr;gap:12px;font-size:.76rem;line-height:1.6}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}ol{list-style:none;padding:0;max-height:320px;overflow:auto}li{padding:15px 0;border-bottom:1px solid var(--line);font-size:.75rem}li small{display:block;color:var(--muted);line-height:1.8;margin-top:7px}li .pill{float:right}footer{color:var(--muted);font-size:.66rem;margin-top:28px}.notice{padding:14px 18px;background:#e9f3eb;border:1px solid #caddcf;border-radius:8px;margin-bottom:20px;font-size:.78rem;line-height:1.6}.notice.error{background:#fbedeb;border-color:#e2c6c2;color:#964843}.login-view{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 15% 5%,#dfeada,transparent 65%)}.login-card{background:white;border:1px solid var(--line);border-radius:16px;max-width:430px;width:calc(100% - 40px);padding:36px;box-shadow:0 25px 80px #26432610}.login-card .brand{margin-bottom:35px}.login-card h1{font-size:1.8rem;margin-bottom:14px}.login-card form{margin-top:24px}label{display:block;font-size:.78rem;margin-bottom:8px}input:not([type=radio]){display:block;width:100%;border:1px solid var(--line);border-radius:7px;padding:12px;background:#f4f7f4;margin-bottom:18px}.login-card button{width:100%;margin-top:12px}#login-error{color:#a14743;font-size:.75rem}#boot{min-height:100vh;display:grid;place-items:center;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:12px;padding:28px;max-width:460px;width:calc(100% - 32px)}dialog::backdrop{background:#192c2280}dialog p{margin:14px 0}.choice{padding:15px;border:1px solid var(--line);border-radius:8px}#mobile-logout{display:none}@media(max-width:1150px){.role-summary{grid-template-columns:repeat(2,1fr)}.lower-grid{grid-template-columns:1fr}.workspace{padding:28px}header{align-items:flex-start}}@media(max-width:800px){.app-shell{grid-template-columns:1fr}aside{position:static;height:auto;padding:18px 22px;flex-direction:row;justify-content:space-between;align-items:center}aside .eyebrow,.sidebar-foot{display:none}nav{display:flex;gap:12px}nav a{font-size:.65rem}#mobile-logout{display:block}.workspace{padding:24px 18px}header{display:block}header>div:last-child{margin-top:18px}.connection-card{display:block}.connection-card>p{margin-top:16px}.panel{padding:20px}dl{grid-template-columns:1fr}dd{margin-top:-9px}}@media(max-width:500px){aside{display:block}nav{margin-top:12px;justify-content:space-between}.role-summary{gap:10px}.role-card{padding:15px}.role-card h3{font-size:.82rem}.heading{align-items:flex-start}.connection-card strong{font-size:1.2rem}}