@import url('./fonts/innomuse/plus-jakarta.css');
:root{color-scheme:light;--bg:#f1f2f1;--surface:#fff;--soft:#f7f8f7;--hover:#f4f5f4;--text:#25282b;--muted:#626969;--line:#e3e7e4;--line-strong:#cdd2ce;--red:#e2231a;--red-hover:#bd1d16;--red-soft:#fff1ef;--danger:#b42318;--danger-soft:#fef3f2;--success:#067647;--success-soft:#ecfdf3;--warn:#b54708;--warn-soft:#fffaeb;--neutral:#475467;--neutral-soft:#f2f4f7;--radius:14px;--shadow:0 20px 45px rgb(37 40 43 / .15);font-family:'Plus Jakarta Sans','Segoe UI',sans-serif}
*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}h1,h2,p{margin:0}h1{font-size:21px;line-height:1.25}h2{font-size:17px;line-height:1.35}small{color:var(--muted)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.wordmark{display:inline-flex;align-items:baseline;text-decoration:none;font-size:23px;font-weight:700;letter-spacing:-1px}.wordmark span{color:var(--red)}.wordmark b{color:var(--text)}.eyebrow{margin-bottom:3px;color:var(--red);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);padding:0 12px;outline:0}input,select{height:42px}textarea{padding-block:10px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgb(226 35 26 / .1)}input[type=checkbox]{width:20px;height:20px;accent-color:var(--red);box-shadow:none}label,legend{font-weight:600}label>span,.stack-form label span{color:var(--danger)}
.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);font-weight:600;min-height:40px;padding:0 16px;white-space:nowrap}.button:hover,.icon-button:hover{background:#f1f1f1}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.55}.button--primary{border-color:transparent;background:linear-gradient(150deg,var(--red),var(--red-hover));color:#fff}.button--primary:hover{background:var(--red-hover)}.button--danger{border:0;background:var(--danger-soft);color:var(--danger)}.button--danger:hover{background:#fee4e2}.button--wide{width:100%}.icon-button{min-width:40px;padding:0 10px}.banner{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid;padding:11px 13px;border-radius:12px}.banner--error{border-color:#fecdca;background:var(--danger-soft);color:var(--danger)}.banner button{border:0;background:none;color:inherit;font-weight:700;text-decoration:underline}.spinner{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.login-page{display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#f5f6f5 0 50%,#eceeed 50%)}.login-shell{display:grid;grid-template-columns:minmax(240px,360px) minmax(320px,430px);width:min(880px,100%);overflow:hidden;border:1px solid var(--line);border-radius:28px;background:var(--surface)}.login-brand{display:flex;flex-direction:column;justify-content:space-between;min-height:500px;padding:38px;background:linear-gradient(155deg,#fff7f5,#f8d9d5)}.login-brand p{max-width:260px;font-size:17px;font-weight:600}.login-card{padding:38px}.login-heading{margin-bottom:26px}.login-heading>p:last-child{margin-top:7px;color:var(--muted)}#login-form{display:grid;gap:10px;margin-top:18px}#login-form label:not(:first-child){margin-top:8px}.password-field{position:relative}.password-field input{padding-right:68px}.password-field .icon-button{position:absolute;top:1px;right:1px;height:40px;min-height:40px;border:0;background:transparent;color:var(--muted);font-size:12px}.login-card .banner{margin-top:16px}
.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100dvh;padding:16px;gap:16px}.sidebar{position:sticky;top:16px;display:flex;flex-direction:column;height:calc(100dvh - 32px);border:1px solid var(--line);border-radius:24px;background:#f8f9f8;padding:12px}.sidebar__head{padding:12px 10px 22px}.nav-label{padding:16px 12px 5px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.nav-item{display:flex;align-items:center;min-height:44px;margin:3px 0;padding:0 12px;border-radius:12px;color:var(--muted);font-weight:600;text-decoration:none}.nav-item:hover{background:var(--surface);color:var(--text)}.nav-item.is-active{background:linear-gradient(150deg,var(--red),var(--red-hover));color:#fff}.sidebar__foot{display:grid;gap:12px;margin-top:auto;padding:14px 10px 4px;border-top:1px solid var(--line)}.sidebar__foot div{display:grid}.sidebar__foot small{margin-top:2px}.nav-danger{width:max-content;border:0;background:none;padding:5px 0;color:var(--muted);font-weight:600}.nav-danger:hover{color:var(--danger)}.workspace{min-width:0}.topbar{display:flex;align-items:center;gap:12px;min-height:72px;padding:10px 18px;margin-bottom:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}.topbar>div{min-width:0;margin-right:auto}.menu-toggle{display:none}main{display:grid;gap:16px;outline:0}.view{display:grid;gap:16px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric,.panel{border:1px solid var(--line);border-radius:20px;background:var(--surface)}.metric{display:grid;gap:5px;min-width:0;padding:20px}.metric>span{color:var(--muted);font-weight:600}.metric strong{font-size:27px;font-variant-numeric:tabular-nums}.panel{overflow:hidden}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line)}.panel__head p{margin-top:3px;color:var(--muted)}.panel__head a{color:var(--red);font-weight:700;text-decoration:none}.panel__head a:hover{text-decoration:underline}.state{display:grid;place-items:center;gap:9px;min-height:180px;padding:24px;color:var(--muted);text-align:center}.state button{margin-top:6px}.compact-list,.timeline{display:grid}.compact-row,.timeline-row{display:grid;gap:4px;padding:14px 20px;border-top:1px solid var(--line)}.compact-row:first-child,.timeline-row:first-child{border-top:0}.compact-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.compact-row button{border:0;background:none;padding:0;text-align:left;font-weight:700}.compact-row button:hover{color:var(--red)}.compact-row span,.timeline-row p{color:var(--muted)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.filter{display:grid;grid-template-columns:minmax(260px,460px) 180px auto;gap:8px;min-width:0}.result-count{color:var(--muted);white-space:nowrap}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:20px;background:var(--surface)}table{width:100%;min-width:760px;border-collapse:collapse}th,td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:uppercase}tbody tr:hover{background:var(--hover)}tbody tr:last-child td{border-bottom:0}.cell-main{display:grid;min-width:180px}.cell-main small{font-weight:400}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.badge{display:inline-flex;width:max-content;align-items:center;min-height:26px;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700}.badge--active{background:var(--success-soft);color:var(--success)}.badge--expired{background:var(--warn-soft);color:var(--warn)}.badge--revoked{background:var(--danger-soft);color:var(--danger)}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px}.pagination span{color:var(--muted);font-variant-numeric:tabular-nums}.timeline-row{grid-template-columns:minmax(0,1fr) auto}.timeline-row time{color:var(--muted);font-size:12px;white-space:nowrap}.settings-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:16px}.stack-form{display:grid;gap:8px;padding:20px}.stack-form label:not(:first-child){margin-top:8px}.stack-form .button{width:max-content;margin-top:8px}.form-message{min-height:21px;color:var(--muted)}.form-message.is-error{color:var(--danger)}.form-message.is-success{color:var(--success)}.danger-zone{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding:20px}.danger-zone p{margin-top:5px;color:var(--muted)}
.backdrop{position:fixed;inset:0;z-index:40;background:rgb(37 40 43 / .3)}dialog{width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:22px;padding:0;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}dialog::backdrop{background:rgb(37 40 43 / .35)}.detail-dialog{width:min(820px,calc(100% - 32px))}.modal{display:grid;gap:18px;padding:22px}.modal--wide{min-width:0}.modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal__actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;align-content:start;gap:6px;min-width:0}.field--wide{grid-column:1/-1}fieldset.field{margin:0;border:0;padding:0}.check{display:flex;align-items:center;gap:9px;min-height:34px;font-weight:500}.secret-value{overflow-wrap:anywhere;border:1px solid #fecdc8;border-radius:14px;background:var(--red-soft);padding:15px;color:#8f1711;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:16px;font-weight:700;line-height:1.6;user-select:all}.secret-dialog .modal>p,#uncertain-dialog .modal>p,#action-dialog .modal>p{color:var(--muted)}#uncertain-dialog code{overflow-wrap:anywhere;border-radius:10px;background:var(--soft);padding:11px}.toast{position:fixed;right:20px;bottom:20px;z-index:100;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:12px 16px;box-shadow:0 10px 28px rgb(37 40 43 / .14);font-weight:600}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-box{display:grid;gap:4px;border:1px solid var(--line);border-radius:14px;padding:14px}.detail-box dt{color:var(--muted);font-size:12px}.detail-box dd{margin:0;overflow-wrap:anywhere;font-weight:600}.detail-section{display:grid;gap:10px;margin-top:18px}.detail-section h3{font-size:15px}.device-list{display:grid;border:1px solid var(--line);border-radius:14px}.device-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px;border-top:1px solid var(--line)}.device-row:first-child{border-top:0}.detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.empty-inline{padding:13px;border:1px dashed var(--line-strong);border-radius:12px;color:var(--muted)}
@media(max-width:980px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.filter{grid-template-columns:minmax(0,1fr) 170px auto}.result-count{align-self:flex-start}}
@media(max-width:760px){.app-shell{display:block;padding:12px}.sidebar{position:fixed;top:12px;bottom:12px;left:12px;z-index:50;width:248px;height:auto;translate:-280px 0;visibility:hidden;transition:translate .5s cubic-bezier(.22,1,.36,1),visibility 0s .5s}.sidebar.is-open{translate:0 0;visibility:visible;transition:translate .5s cubic-bezier(.22,1,.36,1)}.menu-toggle{display:inline-flex}.topbar{min-height:68px;padding:9px 12px}.topbar .eyebrow{display:none}.topbar h1{font-size:18px}.topbar .button{padding-inline:11px}.filter{grid-template-columns:1fr}.filter .button{width:100%}.table-wrap{border:0;background:none;overflow:visible}table{display:block;min-width:0}thead{display:none}tbody{display:grid;gap:10px}tr{display:grid;grid-template-columns:minmax(0,1fr) auto;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:13px}td{display:none;border:0;padding:2px 0}td:first-child,td:nth-child(3),td:last-child{display:block}td:first-child{grid-row:1/3}td:nth-child(3){grid-column:2;grid-row:1}td:last-child{grid-column:2;grid-row:2}.timeline-row{grid-template-columns:1fr}.timeline-row time{white-space:normal}.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-card{padding:28px}.form-grid,.detail-grid{grid-template-columns:1fr}.field--wide{grid-column:auto}.modal__actions{flex-direction:column-reverse}.modal__actions .button{width:100%}}
.compact-row>div{display:grid;gap:4px;min-width:0}.compact-row>div>button{text-align:left;justify-self:start}.compact-row>div>span{color:var(--muted);font-size:12px}
.device-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px}.device-active{color:var(--success);font-weight:600}.button--compact{min-height:34px;padding-inline:12px}.conflict-box{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #fedf89;border-radius:12px;background:var(--warn-soft);padding:12px;color:var(--warn)}
@media(max-width:430px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:15px}.metric strong{font-size:23px}.metric small{font-size:11px}.panel__head{align-items:flex-start;padding:16px}.compact-row{grid-template-columns:1fr}.topbar{margin-bottom:12px}.topbar .button{font-size:12px}.pagination{justify-content:space-between}.pagination .button{padding-inline:11px}.login-page{padding:16px}.login-card{padding:24px 20px}.device-row{align-items:flex-start;gap:10px}.device-controls{align-items:flex-end;flex-direction:column}.conflict-box{align-items:stretch;flex-direction:column}}
