:root{--bg:#f4f6f5;--panel:#ffffff;--panel-soft:#f8faf9;--text:#17201c;--muted:#64706a;--line:#dce3df;--line-strong:#cbd5cf;--green:#174d38;--green-2:#216b4e;--green-soft:#e9f3ee;--red:#b42318;--red-soft:#fef0ed;--amber:#9a6700;--amber-soft:#fff8db;--blue:#175cd3;--blue-soft:#eff8ff;--shadow:0 1px 2px rgba(16,24,20,.04);--radius:8px}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr);transition:grid-template-columns .2s ease}.app-shell.sidebar-collapsed{grid-template-columns:68px minmax(0,1fr)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:auto;background:#123c2c;color:#e8f0ec;border-right:1px solid #0c3123;display:flex;flex-direction:column;z-index:10}.brand{height:58px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.1);white-space:nowrap;overflow:hidden}.brand-mark{flex:none;width:31px;height:31px;display:grid;place-items:center;border-radius:7px;background:#fff;color:var(--green);font-size:11px;font-weight:800;letter-spacing:-.5px}.brand-title{font-size:13px;font-weight:700;line-height:1.15}.brand-subtitle{color:#a9c0b6;font-size:10px;margin-top:3px}.nav-scroll{padding:12px 9px;flex:1 1}.nav-group{margin:0 0 13px}.nav-label{color:#8eaea0;text-transform:uppercase;font-size:9px;font-weight:700;letter-spacing:.09em;padding:4px 9px 6px}.nav-item,.nav-label{white-space:nowrap;overflow:hidden}.nav-item{min-height:35px;padding:7px 9px;display:flex;align-items:center;gap:10px;border-radius:6px;color:#cad9d2;font-size:12px}.nav-item svg{flex:none;width:16px;height:16px}.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}.nav-item.active{background:rgba(255,255,255,.12);color:#fff;font-weight:600}.sidebar-footer{border-top:1px solid rgba(255,255,255,.1);padding:9px}.collapse-button{border:0;color:#c7d7d0;background:transparent;width:100%;height:34px;display:flex;align-items:center;gap:10px;border-radius:6px;padding:0 9px}.collapse-button:hover{background:rgba(255,255,255,.07)}.sidebar-collapsed .brand-copy,.sidebar-collapsed .collapse-button span,.sidebar-collapsed .nav-item span,.sidebar-collapsed .nav-label{display:none}.sidebar-collapsed .collapse-button,.sidebar-collapsed .nav-item{justify-content:center;padding-inline:0}.main{min-width:0}.topbar{height:58px;position:-webkit-sticky;position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.environment{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.environment-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px var(--amber-soft)}.user-menu{display:flex;align-items:center;gap:10px}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);color:var(--green);font-size:11px;font-weight:700}.user-name{font-size:12px;font-weight:600}.user-role{font-size:10px;color:var(--muted)}.logout-button{border:0;background:none;color:var(--muted);padding:6px;border-radius:5px}.logout-button:hover{background:var(--bg);color:var(--text)}.content{padding:22px 24px 40px;max-width:1600px;margin:0 auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{margin:0;font-size:20px;letter-spacing:-.02em}.page-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.head-actions{display:flex;gap:8px}.button{min-height:34px;border:1px solid var(--line-strong);border-radius:6px;padding:7px 12px;background:#fff;color:var(--text);font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px;box-shadow:var(--shadow)}.button:hover{background:var(--panel-soft)}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.primary:hover{background:var(--green-2)}.button.danger{color:var(--red);border-color:#f1b8b1}.button:disabled{opacity:.5;cursor:not-allowed}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));grid-gap:10px;gap:10px;margin-bottom:18px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;box-shadow:var(--shadow)}.metric-label{color:var(--muted);font-size:11px;margin-bottom:8px}.metric-value{font-size:20px;font-weight:650;letter-spacing:-.03em}.metric-hint{margin-top:6px;color:var(--muted);font-size:10px}.grid-2{display:grid;grid-template-columns:1.6fr 1fr;grid-gap:12px;gap:12px;margin-bottom:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-head{min-height:44px;padding:10px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.card-head h2{margin:0;font-size:13px}.card-body{padding:14px}.empty-state{min-height:170px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:24px}.empty-state.compact{min-height:100px}.empty-icon{width:34px;height:34px;margin:0 auto 9px;border-radius:8px;display:grid;place-items:center;background:var(--panel-soft);border:1px solid var(--line)}.empty-state strong{display:block;color:var(--text);font-size:12px;margin-bottom:4px}.empty-state p{margin:0;max-width:420px;font-size:11px;line-height:1.5}.notice{border:1px solid #f1d58a;background:var(--amber-soft);color:#6f4d00;border-radius:7px;padding:10px 12px;font-size:12px;margin-bottom:14px;display:flex;gap:9px;align-items:flex-start}.notice.info{border-color:#b2ddff;background:var(--blue-soft);color:#1849a9}.toolbar{min-height:50px;padding:8px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.search{min-width:240px;position:relative;flex:1 1;max-width:380px}.search svg{position:absolute;width:15px;height:15px;left:10px;top:9px;color:var(--muted)}.input,.select,.textarea{width:100%;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:var(--text);padding:8px 10px;outline:none;font-size:12px}.search .input{padding-left:32px}.input:focus,.select:focus,.textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 3px var(--green-soft)}.select{width:auto;min-width:150px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{height:37px;background:var(--panel-soft);color:var(--muted);text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.035em;border-bottom:1px solid var(--line)}td,th{padding:8px 12px;white-space:nowrap}td{height:44px;border-bottom:1px solid #ebefec;vertical-align:middle}tbody tr:hover{background:#fbfcfb}tbody tr:last-child td{border-bottom:0}.cell-primary{font-weight:600;color:var(--text)}.cell-secondary{color:var(--muted);font-size:10px;margin-top:2px}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:650;background:#f0f2f1;color:#4d5953}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.badge.active{color:#087443;background:#ecfdf3}.badge.error,.badge.suspended{color:var(--red);background:var(--red-soft)}.badge.provisioning{color:var(--amber);background:var(--amber-soft)}.pagination{border-top:1px solid var(--line);min-height:44px;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}.tab{padding:9px 11px;color:var(--muted);font-size:12px;border-bottom:2px solid transparent;white-space:nowrap}.tab.active{color:var(--green);border-color:var(--green);font-weight:650}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.field-list{display:grid;grid-template-columns:150px 1fr;margin:0}.field-list dd,.field-list dt{margin:0;padding:9px 0;border-bottom:1px solid #edf0ee;font-size:12px}.field-list dt{color:var(--muted)}.field-list dd{font-weight:550}.form-card{max-width:860px}.form-section{padding:18px;border-bottom:1px solid var(--line)}.form-section:last-child{border-bottom:0}.form-section h2{font-size:13px;margin:0 0 13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:13px;gap:13px}.form-grid .full{grid-column:1/-1}.label{display:block;color:#35433c;font-size:11px;font-weight:650;margin-bottom:5px}.help{color:var(--muted);font-size:10px;margin:5px 0 0}.form-actions{padding:13px 18px;display:flex;justify-content:flex-end;gap:8px;background:var(--panel-soft)}.error-message{border:1px solid #f1b8b1;background:var(--red-soft);color:var(--red);border-radius:6px;padding:9px 11px;font-size:11px;margin-bottom:12px}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-aside{background:#123c2c;color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between}.login-aside h1{font-size:30px;line-height:1.15;letter-spacing:-.04em;max-width:480px;margin:28px 0 12px}.login-aside p{color:#b7ccc2;max-width:460px;line-height:1.65}.login-aside small{color:#8da99c}.login-main{display:grid;place-items:center;padding:32px}.login-box{width:100%;max-width:360px}.login-box h2{margin:0 0 7px;font-size:21px}.login-box>p{color:var(--muted);margin:0 0 24px;font-size:12px}.login-field{margin-bottom:13px}.login-submit{width:100%;margin-top:4px}.login-note{color:var(--muted);font-size:10px;line-height:1.5;margin-top:17px}@media (max-width:1100px){.metric-grid{grid-template-columns:repeat(3,1fr)}.detail-grid{grid-template-columns:1fr 1fr}}@media (max-width:760px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:60px minmax(0,1fr)}.brand-copy,.collapse-button span,.nav-item span,.nav-label{display:none}.collapse-button,.nav-item{justify-content:center;padding-inline:0}.content{padding:16px 12px 30px}.topbar{padding:0 12px}.metric-grid{grid-template-columns:1fr 1fr}.detail-grid,.form-grid,.grid-2{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.login-page{grid-template-columns:1fr}.login-aside,.user-name,.user-role{display:none}.page-head{align-items:center}}