:root{font-family:Inter,"Segoe UI","Malgun Gothic",sans-serif;color:#233630;background:#f5f7f6;font-size:14px;--green:#146b50;--muted:#778780;--line:#e1e7e3}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);border-radius:7px;background:white;padding:9px 14px;color:inherit;font-weight:600}button:hover{background:#edf3ef}button:disabled{opacity:.55;cursor:wait}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#105840}.ghost{background:transparent;border:0;color:#62756c}.muted{color:var(--muted)}.error{color:#a13c34}.brand-mark{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#166b50;color:white;font-size:23px;font-weight:800}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#173f30;font-weight:700;font-size:18px}.brand small{display:block;font-size:9px;letter-spacing:2.3px;color:#81948a;margin-top:4px}aside{position:fixed;inset:0 auto 0 0;width:236px;background:#fff;border-right:1px solid var(--line);padding:30px 21px}.nav-label{color:#91a098;font-size:11px;margin:43px 12px 15px;letter-spacing:1px}nav a{display:flex;align-items:center;gap:13px;color:#64766c;text-decoration:none;padding:12px 14px;margin:5px 0;border-radius:7px;font-weight:500}nav a.active{background:#e8f2ec;color:#176749;font-weight:700}nav a:hover{background:#f2f6f3}.nav-icon{width:20px;text-align:center;font-size:19px}.nav-separator{height:1px;background:var(--line);margin:22px 10px}.aside-bottom{position:absolute;bottom:25px;font-size:12px;color:#6e8076}.aside-bottom small{display:block;margin:12px 0 0 15px;font-size:10px;color:#99a59e}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2c9569;margin-right:6px}main{margin-left:236px}header{height:78px;padding:0 38px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:12px}.slash{padding:0 18px;color:#b9c4bd}.header-right{display:flex;align-items:center;gap:16px}.admin-badge{background:#edf3ee;color:#3b6953;border-radius:5px;padding:5px 9px;font-size:11px}#content{padding:36px 38px;min-height:calc(100vh - 130px);max-width:1660px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px;gap:18px}.eyebrow{color:#3e8a69;letter-spacing:2px;font-size:10px;font-weight:700}.page-head h1{font-size:27px;letter-spacing:-1px;font-weight:650;margin:9px 0}.page-head p{margin:8px 0 0;color:var(--muted);font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:25px}.stat{background:white;border:1px solid var(--line);padding:23px;border-radius:9px}.stat small{color:#708279}.stat strong{display:block;font-size:31px;font-weight:600;margin:15px 0 10px;letter-spacing:-1px}.stat span{color:#8b9a91;font-size:11px}.panel{border:1px solid var(--line);background:white;border-radius:9px;overflow:hidden;margin-bottom:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:21px 24px;border-bottom:1px solid var(--line)}.panel h2{font-size:15px;margin:0}.panel-body{padding:24px}.grid-two{display:grid;grid-template-columns:1.5fr 1fr;gap:23px}.connection{display:flex;align-items:center;gap:14px;padding:19px 0;border-bottom:1px solid #edf1ee}.connection:last-child{border:0}.connection-icon{width:39px;height:39px;border-radius:8px;background:#edf2ed;display:grid;place-items:center;color:#45735a;font-size:18px;font-weight:bold}.connection strong{font-size:13px}.connection small{display:block;color:#8c9991;font-size:11px;margin-top:5px}.connection .badge{margin-left:auto}.badge{display:inline-block;border-radius:4px;background:#edf4f0;color:#3a7c5b;padding:4px 8px;font-size:11px;white-space:nowrap;margin:2px 3px 2px 0}.badge.gray{background:#f0f2f1;color:#849087}.badge.amber{background:#faf2e4;color:#98742c}.toolbar{padding:17px 22px;display:flex;gap:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.toolbar input{flex:1;min-width:180px;max-width:360px}.toolbar select{width:145px}input,select,textarea{border:1px solid #dbe3dd;border-radius:6px;background:white;padding:10px 12px;color:#283e31;min-width:0}textarea{resize:vertical;min-height:88px}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-weight:500;font-size:11px;color:#839087;background:#fafbfa;padding:14px 21px;white-space:nowrap}td{padding:17px 21px;border-top:1px solid #edf1ee;vertical-align:middle}td strong{font-weight:600}td small{display:block;color:#97a29c;font-size:10px;margin-top:5px}tbody tr:hover{background:#fafcfb}.table-scroll{overflow-x:auto}.link-button{background:none;border:0;padding:0;color:#27694d;text-align:left}.empty{text-align:center;color:#8c9b92;padding:60px 20px;line-height:1.9}.empty strong{display:block;color:#526b5d;margin:12px;font-size:15px}.pagination{display:flex;align-items:center;justify-content:space-between;padding:15px 22px;color:#87988d;font-size:12px}.pagination button{margin-left:8px;font-size:11px}.notice{padding:16px 20px;border-radius:7px;border:1px solid #e4e6d2;background:#f8f8ee;color:#7b794d;font-size:12px;line-height:1.8;margin-bottom:22px}.event{display:flex;gap:13px;padding:15px 0;border-bottom:1px solid #edf1ee}.event:last-child{border:0}.event-dot{width:8px;height:8px;background:#a0b9aa;border-radius:50%;margin-top:6px}.event p{margin:0;font-size:12px}.event small{display:block;color:#95a198;margin-top:7px;font-size:10px}.quick{display:flex;gap:10px;flex-wrap:wrap;padding-top:8px}footer{padding:18px 38px;border-top:1px solid var(--line);color:#9aa79e;font-size:10px;display:flex;justify-content:space-between}dialog{border:1px solid var(--line);border-radius:12px;width:720px;max-width:calc(100vw - 28px);max-height:90vh;padding:0;box-shadow:0 18px 90px #173b302b}dialog::backdrop{background:#142d2455;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 26px;border-bottom:1px solid var(--line)}.dialog-heading h2{font-size:18px;margin:0}#editor{padding:24px 26px}label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#6a7d71;margin-bottom:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.full{grid-column:1/-1}.role-list{display:flex;gap:9px;flex-wrap:wrap;padding:8px 0}.role-list label{flex-direction:row;align-items:center;border:1px solid var(--line);border-radius:5px;padding:7px 10px;margin:0}.role-list input{margin:0}.form-section{font-size:13px;color:#54705f;margin:24px 0 15px;padding-top:18px;border-top:1px solid var(--line)}.repeat-row{display:flex;gap:9px;margin:9px 0}.repeat-row input{flex:1}.repeat-row select{width:125px}.form-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.login-screen{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 5% 90%,#ddece1,transparent 65%),#f4f7f4}.login-screen[hidden],#shell[hidden]{display:none}.login-card{width:420px;max-width:calc(100vw - 40px);padding:44px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 20px 70px #2b52380b}.login-card h1{font-size:27px;line-height:1.5;margin:20px 0 12px;letter-spacing:-1px}.login-card form{margin-top:30px}.login-card button{width:100%}.footnote{font-size:10px;color:#9ba89f;margin:25px 0 0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#183d2f;color:#fff;max-width:85vw;padding:14px 22px;border-radius:7px;z-index:100;box-shadow:0 8px 30px #16312322}code{font-size:12px;background:#f0f4f1;padding:3px 6px;border-radius:4px}pre{white-space:pre-wrap;line-height:1.8}.loading{padding:90px;text-align:center;color:#87988a}.detail-summary{line-height:1.8}.pill-id{font-size:10px;color:#809087;font-family:monospace}@media(max-width:1050px){aside{width:198px;padding:25px 14px}main{margin-left:198px}#content{padding:26px}.stats{grid-template-columns:repeat(2,1fr)}.grid-two{grid-template-columns:1fr}}@media(max-width:700px){aside{position:relative;width:100%;padding:16px}.nav-label,.aside-bottom{display:none}nav{display:flex;overflow:auto;margin-top:16px}nav a{white-space:nowrap;margin:0;padding:10px}.nav-icon,.nav-separator{display:none}main{margin:0}header{height:60px;padding:0 20px}#content{padding:20px}.page-head{align-items:flex-start}.page-head h1{font-size:23px}.stats{gap:10px}.stat{padding:16px}.form-grid{grid-template-columns:1fr}.repeat-row{flex-wrap:wrap}footer span{display:none}}
