:root{--bg:#f3f4f7;--surface:#ffffff;--surface-soft:#f8f9fb;--text:#2b3445;--muted:#768192;--line:#d8dbe0;--accent:#5856d6;--accent-dark:#413fc4;--accent-soft:rgba(88,86,214,0.11);--ink:#212631;--sidebar:#212631;--sidebar-muted:#a9b2c3;--sidebar-hover:rgba(255,255,255,0.08);--warn:#f9b115;--danger:#e55353;--ok:#2eb85c;--info:#39f;--shadow:0 16px 38px rgba(33,38,49,0.08);--shadow-soft:0 2px 10px rgba(33,38,49,0.06);--font-sans:"Inter","Segoe UI",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);font-family:var(--font-sans);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.page-shell{width:100%;min-height:100vh;margin:0;padding:0}.panel-layout{display:grid;grid-template-columns:276px minmax(0,1fr);min-height:100vh;grid-gap:0;gap:0;align-items:start}.panel-content{min-width:0;padding:24px}.panel-menu{position:-webkit-sticky;position:sticky;top:0;min-height:100vh;border:0;border-right:1px solid rgba(255,255,255,.08);border-radius:0;background:var(--sidebar);box-shadow:none;padding:18px 16px;display:flex;flex-direction:column;gap:22px}.panel-menu-head{display:flex;justify-content:space-between;gap:12px;padding:0 6px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.panel-menu-head p{margin:6px 0 0;color:var(--sidebar-muted);font-size:.86rem;overflow-wrap:anywhere;line-height:1.35}.panel-menu-actions,.panel-nav{display:grid;grid-gap:8px;gap:8px}.panel-nav a{min-height:44px;display:flex;align-items:center;border-radius:8px;padding:0 12px;color:var(--sidebar-muted);font-weight:700;border:1px solid transparent}.panel-nav a:focus-visible,.panel-nav a:hover{background:var(--sidebar-hover);border-color:rgba(255,255,255,.08);color:#fff}.panel-menu .brand,.panel-menu .brand-lockup{color:#fff}.panel-menu .ghost-button,.panel-menu .secondary-button{width:100%;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#fff}.panel-menu .ghost-button:hover,.panel-menu .secondary-button:hover{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.2)}.desktop-actions,.menu-backdrop,.menu-close-button,.mobile-menu-button{display:none}.hero,.login-panel,.project-card,.section-block,.stat-card{border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:var(--shadow-soft)}.hero,.section-block{padding:20px}.section-block{margin-top:18px}.detail-hero{display:grid;grid-gap:22px;gap:22px}.button-row,.card-head,.hero-grid,.link-row,.stats-grid,.topbar,.topbar-actions,.topbar-meta{display:flex;gap:12px}.topbar{justify-content:space-between;border-bottom:1px solid var(--line);margin:-20px -20px 0;padding:14px 20px;background:#fff;border-radius:6px 6px 0 0}.button-row,.link-row,.topbar,.topbar-actions{align-items:center;flex-wrap:wrap}.topbar-search{flex:1 1 320px;max-width:520px;position:relative;display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:.84rem;font-weight:800}.inventory-search input,.topbar-search input,.topbar-search-results{width:100%;border:1px solid var(--line);border-radius:6px;padding:9px 12px;color:var(--text);box-shadow:0 1px 0 rgba(24,38,54,.03)}.inventory-search input,.topbar-search input{min-height:42px;background:var(--surface-soft)}.inventory-search input:focus,.topbar-search input:focus,.topbar-search-results:focus{border-color:rgba(88,86,214,.55);box-shadow:0 0 0 3px rgba(88,86,214,.13);outline:0}.topbar-search-results{position:absolute;z-index:20;top:calc(100% + 4px);left:0;min-height:0;background:#fff;box-shadow:0 16px 36px rgba(24,38,54,.16)}.topbar-search-results option{padding:10px 12px;font-weight:800}.brand,.brand-title,.category-pill,.eyebrow,.status-pill{letter-spacing:0}.brand{font-weight:800;font-size:1.15rem;color:var(--ink)}.brand-lockup,.brand-logo-full{display:inline-flex;align-items:center;min-width:0}.brand-lockup{gap:10px;color:var(--ink)}.brand-mark{width:42px;height:42px;flex:0 0 42px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 2px 8px rgba(33,38,49,.08)}.brand-mark img{width:78%;height:78%;object-fit:contain}.brand-title{min-width:0;color:currentColor;font-size:1.13rem;font-weight:900;line-height:1.05}.panel-menu .brand-mark{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.96)}.brand-logo-full img{width:100%;height:auto;object-fit:contain}.login-brand-logo{width:118px;margin-bottom:12px}.detail-brand{margin-top:14px;font-size:clamp(2rem,4vw,4rem);line-height:1}.eyebrow{color:var(--accent);font-size:.74rem;font-weight:900;text-transform:uppercase}.topbar-meta{margin-top:6px;color:var(--muted);flex-wrap:wrap;font-size:.92rem}.hero-grid{margin-top:20px;justify-content:space-between;align-items:stretch}.compact-hero-grid{margin-top:18px;align-items:stretch}.hero-copy{max-width:680px}.compact-hero-copy{max-width:520px}.hero-copy h1,.login-panel h1,.project-card h3,.section-head h2,.stat-card strong{margin:0}.hero-copy h1{margin-top:8px;font-size:clamp(2.2rem,4vw,4.2rem);line-height:1}.compact-hero-copy h1{font-size:clamp(1.65rem,2.2vw,2.35rem)}.hero-copy p,.login-panel p,.meta-grid span,.project-card p,.section-head p,.stat-card span{margin:0;color:var(--muted);line-height:1.55}.hero-copy p{margin-top:14px;max-width:58rem}.compact-hero-copy p{margin-top:8px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(128px,1fr));flex:1 1;grid-gap:12px;gap:12px;align-content:stretch;justify-content:stretch}.stat-card{min-width:0;padding:16px;border-top:3px solid var(--info);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease}.stat-button{text-align:left;color:inherit;cursor:pointer}.stat-button.active-card,.stat-button:hover{border-color:rgba(88,86,214,.35);box-shadow:0 10px 24px rgba(88,86,214,.15);transform:translateY(-1px)}.stat-button.active-card{background:var(--accent-soft)}.stat-card strong{display:block;font-size:2.05rem;line-height:1;color:var(--ink)}.warn-card strong{color:var(--warn)}.warn-card{border-top-color:var(--warn)}.danger-card strong{color:var(--danger)}.danger-card{border-top-color:var(--danger)}.muted-card strong{color:var(--muted)}.muted-card{border-top-color:#9da5b1}.section-head{display:grid;grid-gap:6px;gap:6px;margin-bottom:18px}.inline-section-head{grid-template-columns:minmax(0,1fr) minmax(300px,520px);align-items:end;gap:16px}.filter-section-head{grid-template-columns:minmax(0,1fr) auto;align-items:center}.section-head h2{font-size:clamp(1.18rem,1.6vw,1.55rem);color:var(--ink)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.project-card{padding:16px;display:flex;flex-direction:column;gap:14px}.card-head{justify-content:space-between;align-items:start}.category-pill,.status-pill{display:inline-flex;min-height:28px;align-items:center;padding:0 9px;border-radius:999px;font-size:.78rem;font-weight:800}.category-pill{background:var(--surface-soft);color:var(--text)}.status-pill.online{background:rgba(20,132,95,.12);color:var(--ok)}.status-pill.slow{background:rgba(183,121,31,.14);color:var(--warn)}.status-pill.offline{background:rgba(194,65,61,.12);color:var(--danger)}.status-pill.missing{background:rgba(194,65,61,.18);color:#9b1c1c}.status-pill.unknown{background:var(--surface-soft);color:var(--muted)}.project-card h3{font-size:1.28rem;margin-top:10px;line-height:1.15}.meta-grid{display:grid;grid-gap:5px;gap:5px;font-size:.92rem}.monitor-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:0 1px 0 rgba(24,38,54,.03)}.monitor-table{width:100%;min-width:1280px;border-collapse:collapse}.compact-table{min-width:920px}.monitor-table td,.monitor-table th{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.monitor-table th{color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase;background:#f8f9fb;position:-webkit-sticky;position:sticky;top:0;z-index:1}.monitor-table tbody tr:last-child td{border-bottom:0}.monitor-table tbody tr:hover td{background:#f8fbff}.monitor-table td{color:var(--muted)}.monitor-table td strong{display:block;color:var(--text)}.monitor-table td span{display:inline-flex;margin-top:4px}.monitor-table a{color:var(--accent);font-weight:800}.table-code{display:inline-block;max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem;color:var(--ink)}.domain-aliases{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.domain-aliases a{border-radius:999px;background:var(--surface-soft);padding:3px 8px;color:var(--muted);font-size:.78rem;font-weight:800}.dependency-list{display:flex;flex-wrap:wrap;gap:6px;min-width:240px}.dependency-pill{display:inline-grid;grid-template-columns:8px minmax(0,1fr);align-items:center;column-gap:7px;row-gap:1px;max-width:230px;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);padding:5px 9px;color:var(--text)!important;font-weight:800}.dependency-pill small,.dependency-pill strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dependency-pill strong{font-size:.78rem}.dependency-pill small{grid-column:2;color:var(--muted);font-size:.68rem;font-weight:800}.dependency-status{width:8px;height:8px;border-radius:999px;background:var(--muted)}.dependency-status.online{background:var(--ok)}.dependency-status.slow{background:var(--warn)}.dependency-status.missing,.dependency-status.offline{background:var(--danger)}.dependency-more,.muted-cell{color:var(--muted);font-size:.78rem;font-weight:800}.gitlab-link,.gitlab-missing,.source-pill{display:inline-flex;min-height:28px;align-items:center;border-radius:999px;padding:0 9px;font-size:.78rem;font-weight:900}.gitlab-link{background:var(--accent-soft);color:var(--accent-dark)!important}.gitlab-missing{background:var(--surface-soft);color:var(--muted)}.source-pill{background:#edf7f1;color:#19724a}.source-pill.docker-source{background:#eef5ff;color:#1d5ea8}.source-pill.provider-source{background:#fff5dc;color:#8a5a00}.table-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.detail-list{display:grid;grid-gap:8px;gap:8px;margin-top:18px}.detail-list p{margin:0;color:var(--muted);line-height:1.55}.detail-list strong{color:var(--text)}.detail-status-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.domain-text{color:var(--muted);font-weight:800}.monitor-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.filter-bar{display:grid;grid-template-columns:minmax(220px,2fr) repeat(5,minmax(120px,1fr));grid-gap:12px;gap:12px}.quick-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.inventory-search{display:grid;grid-gap:6px;gap:6px;margin-bottom:12px;color:var(--muted);font-size:.9rem;font-weight:800}.quick-filter-button{display:inline-flex;min-height:34px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);padding:0 12px;font-weight:800}.quick-filter-button.active,.quick-filter-button:hover{border-color:rgba(88,86,214,.35);background:var(--accent-soft);color:var(--accent-dark)}.quick-filter-button.link-button{color:var(--accent-dark)}.filter-bar label,.skill-filter-bar label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:.9rem;font-weight:800}.filter-bar input,.filter-bar select,.skill-filter-bar input,.skill-filter-bar select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:6px;padding:9px 12px;background:#fff;color:var(--text);box-shadow:0 1px 0 rgba(24,38,54,.03)}.filter-bar input:focus,.filter-bar select:focus,.login-form input:focus,.monitor-form input:focus,.monitor-form select:focus,.monitor-form textarea:focus,.skill-filter-bar input:focus,.skill-filter-bar select:focus{border-color:rgba(88,86,214,.55);box-shadow:0 0 0 3px rgba(88,86,214,.13);outline:0}.skill-filter-bar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,160px);grid-gap:12px;gap:12px}.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.skill-card{border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:14px;display:grid;grid-gap:10px;gap:10px;box-shadow:0 1px 0 rgba(24,38,54,.03)}.skill-card h3{margin:0;font-size:1.05rem;line-height:1.2}.skill-card p{margin:0;color:var(--muted);line-height:1.45}.skill-card code{overflow-wrap:anywhere;color:var(--accent-dark);font-size:.78rem}.edit-form{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.login-form label,.monitor-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:.9rem;font-weight:700}.login-form input,.monitor-form input,.monitor-form select,.monitor-form textarea{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;padding:9px 10px;color:var(--text);background:#fff}.monitor-form textarea{min-height:84px;resize:vertical}.wide-field{grid-column:1/-1}.checkbox-label{display:flex!important;align-items:center;gap:8px!important}.checkbox-label input{width:18px;min-height:18px}.danger-button,.ghost-button,.primary-button,.primary-link,.secondary-button,.secondary-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border-radius:6px;border:1px solid var(--line);font-weight:800}.primary-button,.primary-link{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 8px 20px rgba(88,86,214,.18)}.primary-button:hover,.primary-link:hover{background:var(--accent-dark)}.ghost-button,.secondary-button,.secondary-link{background:#fff;color:var(--text)}.ghost-button:hover,.secondary-button:hover,.secondary-link:hover{border-color:rgba(88,86,214,.28);background:#f8f8ff}.danger-button{margin-top:10px;background:#fff;color:var(--danger);border-color:rgba(194,65,61,.35)}.compact-action-button{margin-top:0}.audit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.audit-card{border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:14px;display:grid;grid-gap:8px;gap:8px}.audit-card h3,.audit-card p{margin:0}.audit-card h3{color:var(--ink);font-size:1rem}.audit-card strong{color:var(--danger);font-size:2rem;line-height:1}.audit-card p{color:var(--muted);line-height:1.4;overflow-wrap:anywhere}.compact-link{min-height:34px;padding:0 10px}.delete-form{margin-top:14px}.edit-details{border-top:1px solid var(--line);padding-top:12px}.edit-details summary{cursor:pointer;color:var(--accent);font-weight:800}.login-shell{min-height:100vh;display:grid;place-items:center;padding:18px}.login-panel{width:min(460px,100%);padding:24px;display:grid;grid-gap:20px;gap:20px}.login-panel h1{margin-top:8px;font-size:2.5rem}.login-form{display:grid;grid-gap:14px;gap:14px}.form-error{margin:0;color:var(--danger);font-weight:800}@media (max-width:1180px){.panel-layout{grid-template-columns:232px minmax(0,1fr)}.panel-content{padding:16px 16px 34px}.audit-grid,.detail-grid,.filter-bar,.hero-grid,.inline-section-head,.monitor-form,.project-grid,.skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){body{background:#fff}.page-shell{width:100%;padding:0 0 84px}.panel-layout{display:block}.panel-content{padding:56px 0 0}.mobile-menu-button{position:fixed;top:10px;left:10px;z-index:50;display:inline-flex;min-height:40px;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(24,38,54,.14);padding:0 12px;color:var(--text)}.menu-icon{display:grid;grid-gap:4px;gap:4px}.mobile-menu-button .menu-icon span{display:block;width:16px;height:2px;border-radius:999px;background:var(--text)}.mobile-menu-button strong{font-size:.92rem}.panel-menu{position:fixed;z-index:70;inset:0 auto 0 0;width:min(320px,86vw);min-height:100vh;border-radius:0;box-shadow:18px 0 44px rgba(24,38,54,.14);transform:translateX(-105%);transition:transform .18s ease}.panel-menu.is-open{transform:translateX(0)}.menu-backdrop{position:fixed;z-index:60;inset:0;background:rgba(23,32,42,.38)}.menu-backdrop.is-open,.menu-close-button{display:block}.menu-close-button{width:36px;height:36px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);font-weight:900}.hero,.section-block{border-left:0;border-right:0;border-radius:0;box-shadow:none;padding:18px}.section-block{margin-top:8px}.hero-copy h1{font-size:2.25rem}.project-card,.stat-card{box-shadow:none}.project-grid{gap:8px}.audit-grid,.detail-grid,.edit-form,.filter-bar,.hero-grid,.inline-section-head,.monitor-form,.project-grid,.skill-filter-bar,.skill-grid,.stats-grid{grid-template-columns:1fr}.card-head,.link-row,.topbar,.topbar-actions{flex-direction:column;align-items:stretch}.topbar-search{max-width:none;width:100%}.danger-button,.ghost-button,.primary-button,.primary-link,.secondary-button,.secondary-link{width:100%}}