body{margin:0;background:var(--adm-bg,#17191d);color:var(--adm-text,#f5f7fa);font:13px var(--adm-font,Segoe UI,sans-serif)}
.cat-logo-picker{display:flex;align-items:center;gap:14px;margin-top:8px}.cat-logo-preview{width:88px;height:88px;object-fit:contain;flex-shrink:0;padding:8px;border:1px solid var(--cat-line);display:grid;place-items:center;background:var(--cat-secondary)}.cat-upload{position:relative;display:inline-flex!important;padding:8px 12px;border:1px solid var(--cat-accent);cursor:pointer;overflow:hidden;min-height:34px}.cat-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;margin:0!important}.cat-upload:focus-within{outline:2px solid var(--cat-accent);outline-offset:2px}.cat-logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.cat-logo-grid img{width:64px;height:64px;object-fit:contain}.cat-logo-grid span{display:block;overflow-wrap:anywhere;font-size:11px}#cat-logo-gallery{padding:14px;border:1px solid var(--cat-line);margin-top:12px}.cat-logo-picker>div{min-width:0}@media(max-width:640px){.cat-logo-picker{align-items:flex-start}.cat-logo-preview{width:64px;height:64px}.cat-logo-picker .cat-actions{align-items:stretch;flex-direction:column}}
#catalog-app{--cat-bg:#17191d;--cat-surface:#202328;--cat-secondary:#272b31;--cat-line:rgba(255,255,255,.12);--cat-text:#f5f7fa;--cat-muted:#b0b7c0;--cat-accent:#3c8dbc;padding:14px;background:var(--cat-bg);color:var(--cat-text);min-height:calc(100vh - 76px);box-sizing:border-box}
body[data-theme=light] #catalog-app,body[data-theme=soft] #catalog-app{--cat-bg:#f3f5f7;--cat-surface:#fff;--cat-secondary:#f9fafb;--cat-line:rgba(38,50,56,.16);--cat-text:#263238;--cat-muted:#606c74}
body[data-theme=midnight] #catalog-app{--cat-bg:#101317;--cat-surface:#1c2128;--cat-secondary:#232933;--cat-accent:#5cb8ff}
body[data-theme=vscode] #catalog-app{--cat-bg:#16181b;--cat-surface:#24272d;--cat-secondary:#2a2e35}
#catalog-app *{box-sizing:border-box}#catalog-app [hidden]{display:none!important}#catalog-app h1{font-size:20px;margin:4px 0}#catalog-app h2{font-size:16px;margin:0 0 12px}#catalog-app h3{font-size:14px;margin:0 0 8px}#catalog-app p{line-height:1.5;margin:6px 0 12px}#catalog-app a{color:var(--cat-accent)}
.cat-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--cat-muted)}.cat-muted,.cat-toolbar p{color:var(--cat-muted)}
.cat-panel{border:1px solid var(--cat-line);background:var(--cat-surface);padding:14px;box-shadow:0 2px 6px #00000008}.cat-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;border-left:3px solid var(--cat-accent);margin-bottom:14px}.cat-toolbar p{margin-bottom:0}.cat-actions,.cat-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#catalog-app button,#catalog-app input,#catalog-app select,#catalog-app textarea{font:inherit;color:var(--cat-text);background:var(--cat-surface);border:1px solid var(--cat-line);border-radius:2px;min-height:34px;padding:7px 10px;max-width:100%}#catalog-app button{cursor:pointer}#catalog-app button:hover{border-color:var(--cat-accent)}#catalog-app button.primary{background:#3c8dbc;color:#fff;border-color:#3c8dbc;font-weight:600}#catalog-app button:disabled{opacity:.55;cursor:default}#catalog-app :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--cat-accent);outline-offset:2px}#catalog-app input[type=checkbox]{min-height:16px;width:16px;accent-color:var(--cat-accent)}
.cat-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;align-items:start}.cat-sidebar{padding:0;overflow:hidden}.cat-search{padding:12px;border-bottom:1px solid var(--cat-line)}.cat-search input{width:100%;margin-top:6px}.cat-app-list{max-height:70vh;overflow:auto;padding:6px}.cat-app-list button{display:block;text-align:left;width:100%;margin-bottom:5px;padding:12px!important}.cat-app-list button[aria-pressed=true]{border-color:var(--cat-accent)!important;background:var(--cat-secondary)!important;box-shadow:inset 3px 0 var(--cat-accent)}.cat-app-list strong,.cat-app-list small{display:block;overflow-wrap:anywhere}.cat-app-list small{color:var(--cat-muted);margin-top:6px}
.cat-tabs{border-bottom:1px solid var(--cat-line);padding-bottom:12px;margin-bottom:14px}.cat-tabs button[aria-pressed=true]{color:var(--cat-accent)!important;border-color:var(--cat-accent)!important;background:var(--cat-secondary)!important}.cat-editor{min-width:0}.cat-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}.cat-fields label{display:block;min-width:0}.cat-fields label>input,.cat-fields label>select,.cat-fields label>textarea{display:block;width:100%;margin-top:6px}.cat-wide{grid-column:1/-1}#catalog-app textarea{resize:vertical;min-height:90px}.cat-footer{border-top:1px solid var(--cat-line);margin-top:16px;padding-top:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.cat-note{padding:12px;background:var(--cat-secondary);border-left:3px solid var(--cat-accent);line-height:1.5;margin:12px 0}.cat-badge{display:inline-block;font-size:11px;padding:4px 7px;border:1px solid var(--cat-line);background:var(--cat-secondary);margin:0 5px 5px 0}.cat-logo{width:52px;height:52px;object-fit:contain;border:1px solid var(--cat-line);padding:5px;background:var(--cat-secondary)}.cat-identity{display:flex;gap:12px;align-items:center;margin-bottom:16px}.cat-price{font-size:22px;font-weight:600}.cat-dependency{padding:12px;border:1px solid var(--cat-line);margin-bottom:10px;background:var(--cat-secondary)}.cat-dependency .cat-fields{margin-top:10px}.cat-dependency-header{display:flex;gap:10px;align-items:center;justify-content:space-between}.cat-table{overflow:auto}#catalog-app table{width:100%;border-collapse:collapse}#catalog-app th,#catalog-app td{text-align:left;padding:10px;border-bottom:1px solid var(--cat-line);vertical-align:top}#catalog-app th{font-size:11px;text-transform:uppercase;background:var(--cat-secondary);color:var(--cat-muted)}#cat-status:empty{display:none}#cat-status:not(:empty){padding:12px;border:1px solid var(--cat-line);border-left:3px solid var(--cat-accent);margin-bottom:14px;background:var(--cat-surface)}#cat-status.error{border-left-color:#dd4b39}.cat-empty{text-align:center;padding:45px 20px;color:var(--cat-muted)}.cat-empty h2{color:var(--cat-text)}.cat-client-filter{display:block;width:100%;margin:12px 0}.cat-install-note{color:var(--cat-muted);font-size:12px}.cat-description{white-space:pre-wrap;overflow-wrap:anywhere}.cat-component{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;margin-bottom:10px}.cat-component label>input,.cat-component label>select{width:100%;margin-top:6px}
#catalog-app .cat-tabs button[aria-pressed=true]{border-bottom:3px solid var(--cat-accent)!important;color:var(--cat-text)!important;background:var(--cat-secondary)!important}
.cat-source-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;padding:14px;background:var(--cat-secondary);border:1px solid var(--cat-line)}.cat-source-picker label{display:block;min-width:0}.cat-source-picker label input,.cat-source-picker label select{display:block;width:100%;margin-top:6px}.cat-source-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid var(--cat-line)}.cat-source-row>div{min-width:0;overflow-wrap:anywhere}.cat-source-row small{display:block;margin-top:5px;color:var(--cat-muted)}.cat-source-row .cat-source-warning{color:var(--adm-warning,#f39c12)}.cat-designer-link{display:inline-flex;align-items:center;min-height:34px;border:1px solid var(--cat-line);padding:7px 10px;text-decoration:none}@media(max-width:640px){.cat-source-picker{grid-template-columns:1fr}}
#catalog-app .cat-app-list button[aria-pressed=true]{border-left:3px solid var(--cat-accent)!important}
@media(max-width:900px){.cat-layout{grid-template-columns:240px minmax(0,1fr)}.cat-fields{grid-template-columns:1fr}.cat-component{grid-template-columns:1fr 1fr}}
@media(max-width:640px){#catalog-app{padding:10px}.cat-layout{grid-template-columns:1fr}.cat-toolbar{align-items:flex-start;flex-direction:column}.cat-app-list{max-height:210px}.cat-tabs{gap:5px}.cat-tabs button{flex:1 1 auto}.cat-component{grid-template-columns:1fr}.cat-panel{padding:12px}.cat-sidebar{padding:0}.cat-fields{gap:12px}.cat-price{font-size:20px}}

.cat-type-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:8px;border-bottom:1px solid var(--cat-line)}
#catalog-app .cat-type-tabs button{font-size:12px;padding:6px;text-align:left}
#catalog-app .cat-type-tabs button[aria-pressed=true]{color:var(--cat-accent);border-color:var(--cat-accent);background:var(--cat-secondary)}
.cat-type-tabs span{float:right;font-variant-numeric:tabular-nums}

.cat-list-identity{display:flex;align-items:center;gap:10px}.cat-list-identity img{flex:none;object-fit:contain;border-radius:4px}.cat-list-identity strong{min-width:0}

#catalog-app .cat-logo-grid button{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;min-width:0;text-align:center}#catalog-app .cat-logo-grid span{width:100%;overflow-wrap:break-word;line-height:1.35}
.cat-inventory-summary{display:flex;align-items:center;gap:12px;padding:14px;background:var(--cat-secondary);border:1px solid var(--cat-line);margin-bottom:14px}.cat-inventory-summary strong{font-size:28px;color:var(--cat-accent);font-variant-numeric:tabular-nums}.cat-client-inventory td{overflow-wrap:anywhere}.cat-client-inventory .cat-editor{min-width:0}

.cat-client-logo{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:none;overflow:hidden;border:1px solid var(--cat-line);background:var(--cat-secondary);color:var(--cat-accent);font-weight:600;margin-right:10px}.cat-client-logo img{width:100%;height:100%;object-fit:contain}.cat-client-inventory .cat-app-list button{display:flex!important;align-items:center}.cat-client-label{min-width:0}.cat-client-inventory .cat-editor>.cat-client-logo{float:left;margin-top:6px}.cat-client-inventory .cat-eyebrow{display:block}
.cat-client-inventory .cat-app-list button{justify-content:flex-start!important}.cat-client-inventory .cat-table table{min-width:580px}.cat-client-inventory [data-inventory-app]{white-space:nowrap}.cat-client-inventory .cat-editor>.cat-muted{clear:both;padding-top:8px}

.cat-module-identity{display:flex;align-items:center;gap:10px}.cat-module-identity small{display:block;margin-top:4px}.cat-module-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;background:var(--cat-secondary);border:1px solid var(--cat-line);color:var(--cat-accent)}.cat-module-icon img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--cat-surface)}

.cat-module-icon,.cat-module-icon img{background:transparent;border:0;box-shadow:none}.cat-module-icon:has(img)>i{visibility:hidden}

#catalog-app .cat-action-primary,#catalog-app .cat-action-secondary,#catalog-app [data-inventory-tab]{display:inline-flex;align-items:center;justify-content:center;gap:7px}
#catalog-app .cat-action-primary{background:var(--cat-accent);border-color:var(--cat-accent);color:#fff;font-weight:600}
#catalog-app .cat-action-primary:hover{filter:brightness(1.08)}
#catalog-app .cat-action-secondary{color:var(--cat-accent);background:var(--cat-secondary);border-color:var(--cat-line)}
.cat-action-icon{width:17px;height:17px;flex:none}
#catalog-app [data-inventory-tab="installed"] .cat-action-icon{color:var(--adm-success,#00a65a)}
#catalog-app [data-inventory-tab="missing"] .cat-action-icon,.cat-state-pending{color:var(--adm-warning,#b97b12)}
.cat-state-pending{margin-top:7px}
#catalog-app .cat-client-inventory button.cat-action-primary{background:var(--cat-accent)!important;border-color:var(--cat-accent)!important;color:#fff!important}#catalog-app .cat-client-inventory button.cat-action-secondary{color:var(--cat-accent)!important;background:var(--cat-secondary)!important}

#catalog-app .cat-state-integrated{display:inline-flex;align-items:center;gap:5px;margin-top:7px;color:#70d9a5;border-color:#357858;background:rgba(0,166,90,.10)}#catalog-app .cat-access-unknown{display:block;color:var(--cat-muted);margin-top:2px}body[data-theme=light] #catalog-app .cat-state-integrated,body[data-theme=soft] #catalog-app .cat-state-integrated{color:#167345;border-color:#9ccdb0;background:#edf8f1}

#catalog-app .cat-client-inventory button.cat-action-secondary{min-height:38px;padding:8px 12px;border-radius:5px;font-weight:600;gap:8px;transition:background .15s,border-color .15s}
#catalog-app .cat-client-inventory button.cat-action-access{color:#8bbfea!important;background:rgba(60,141,188,.13)!important;border-color:#456d8c!important}
#catalog-app .cat-client-inventory button[data-inventory-app]{color:var(--cat-muted)!important;background:var(--cat-surface)!important}
#catalog-app .cat-client-inventory button.cat-action-secondary:hover{border-color:var(--cat-accent)!important;background:var(--cat-secondary)!important;color:var(--cat-text)!important}
body[data-theme=light] #catalog-app .cat-client-inventory button.cat-action-access,body[data-theme=soft] #catalog-app .cat-client-inventory button.cat-action-access{color:#21638c!important;background:#eaf4fb!important;border-color:#afcfe3!important}
#catalog-app .cat-client-inventory button.cat-action-secondary .cat-action-icon{width:19px;height:19px}
/* Persistent selection remains distinct from hover and keyboard focus. */
#catalog-app .cat-type-tabs button[aria-pressed="true"]{background:#256c96!important;color:#fff!important;border-color:#256c96!important;font-weight:700;box-shadow:inset 0 -3px 0 #164764!important}
#catalog-app .cat-type-tabs button[aria-pressed="true"]::before{content:"✓";display:inline-block;margin-right:6px;font-weight:700}
#catalog-app .cat-type-tabs button[aria-pressed="true"] span{color:#fff!important}
#catalog-app .cat-type-tabs button[aria-pressed="false"]:hover{background:var(--cat-secondary)!important;border-color:var(--cat-accent)!important}
#catalog-app .cat-app-list button[aria-pressed="true"]{background:color-mix(in srgb,var(--cat-accent) 18%,var(--cat-surface))!important;border-color:var(--cat-accent)!important;box-shadow:inset 4px 0 0 var(--cat-accent)!important}
