/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-light: #e5e5e5;--bs-gray-dark: #343a40;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-success-light: #d4edda;--bs-info: #0dcaf0;--bs-info-light: #d1ecf1;--bs-warning: #ffc107;--bs-warning-light: #fff3cd;--bs-danger: #dc3545;--bs-danger-light: #f8d7da;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--gutter: 1rem;--slate-50: #f8fafc;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-400: #94a3b8;--slate-500: #64748b;--slate-600: #475569;--slate-700: #334155;--slate-800: #1e293b;--slate-900: #0f172a;--accent: #2563eb;--accent-light: #dbeafe;--accent-dark: #1d4ed8;--body-bg: var(--slate-100);--surface-bg: #fff;--border-color: var(--slate-200);--sidebar-bg: var(--slate-900);--sidebar-text: var(--slate-300);--sidebar-text-active: #fff;--sidebar-bg-active: var(--slate-800);--radius: .5rem;--shadow-sm: 0 1px 2px 0 rgb(15 23 42 / .05);--shadow: 0 1px 3px 0 rgb(15 23 42 / .1), 0 1px 2px -1px rgb(15 23 42 / .1)}html{background-color:var(--body-bg)}body{color:var(--bs-dark);font-family:var(--bs-font-sans-serif);font-size:.9rem;line-height:1.5;background-color:var(--body-bg)}.card{box-sizing:border-box;background-color:var(--surface-bg);border:thin solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem;margin-bottom:var(--gutter)}.thin-container{max-width:50rem;margin:0 auto}details{margin-bottom:1rem;width:100%;padding:.5rem;border:thin solid var(--bs-gray-light);border-radius:.25rem}details summary{cursor:pointer}details textarea{margin:1rem 0;width:calc(100% - 1rem);height:10rem}form{margin-bottom:var(--gutter)}form div{padding-top:.5rem}label{font-weight:500;color:var(--slate-700)}input[type=text],input[type=email],input[type=password],input[type=search],select,textarea{font:inherit;color:inherit;padding:.4rem .6rem;border:thin solid var(--border-color);border-radius:var(--radius);background-color:var(--surface-bg)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}input[type=submit],button{font:inherit;font-weight:500;padding:.4rem .9rem;border:thin solid var(--accent);border-radius:var(--radius);background-color:var(--accent);color:#fff;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}input[type=submit]:hover,button:hover{background-color:var(--accent-dark);border-color:var(--accent-dark)}.app-shell{display:flex;min-height:100vh}.sidebar{display:flex;flex-direction:column;flex:0 0 14rem;width:14rem;background-color:var(--sidebar-bg);color:var(--sidebar-text)}.sidebar-brand{display:flex;align-items:center;gap:.75rem;padding:1.25rem var(--gutter);border-bottom:thin solid rgb(255 255 255 / .08)}.sidebar-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:var(--radius);background-color:var(--accent);color:#fff;font-weight:700;font-size:.8rem;letter-spacing:.05em;flex-shrink:0}.sidebar-brand-text{display:flex;flex-direction:column;color:#fff;font-weight:600;line-height:1.3}.sidebar-brand-text small{color:var(--sidebar-text);font-weight:400;font-size:.75rem}.sidebar-nav{flex:1;padding:.75rem 0}.sidebar-nav ul{margin:0;padding:0;list-style:none}.sidebar-nav a{display:flex;align-items:center;gap:.75rem;padding:.6rem var(--gutter);margin:.125rem .5rem;border-radius:var(--radius);text-decoration:none;color:var(--sidebar-text);font-weight:500;transition:background-color .15s ease,color .15s ease}.sidebar-nav a ion-icon{font-size:1.1rem;flex-shrink:0}.sidebar-nav a:hover{background-color:var(--sidebar-bg-active);color:var(--sidebar-text-active)}.sidebar-nav .is-active a{background-color:var(--accent);color:#fff}.sidebar-logout{margin:0;padding:.75rem .5rem;border-top:thin solid rgb(255 255 255 / .08)}.sidebar-logout .link-button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.6rem var(--gutter);border-radius:var(--radius);border:none;background:none;cursor:pointer;font:inherit;font-weight:500;text-transform:none;color:var(--sidebar-text)}.sidebar-logout .link-button ion-icon{font-size:1.1rem}.sidebar-logout .link-button:hover{background-color:var(--sidebar-bg-active);color:var(--sidebar-text-active)}.app-main{display:flex;flex-direction:column;flex:1;min-width:0;background-color:var(--body-bg)}.topbar{padding:1rem 1.5rem;background-color:var(--surface-bg);border-bottom:thin solid var(--border-color)}.content{flex:1;padding:1.5rem}.footer{padding:0 1.5rem}.footer:not(:empty){padding:1rem 1.5rem}body.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-container{width:100%;max-width:22rem;padding:1rem}.login-card{padding:2rem}.login-brand{padding:0;margin-bottom:1.5rem;border-bottom:0}.login-brand-text{color:var(--slate-800)}.login-brand-text small{color:var(--slate-500)}.login-card h1{font-size:1.25rem}.login-card input[type=email],.login-card input[type=password]{width:100%;box-sizing:border-box}.login-card button{width:100%}@media(max-width:768px){.app-shell{flex-direction:column}.sidebar{flex:0 0 auto;width:100%;flex-direction:row;align-items:center;flex-wrap:wrap}.sidebar-brand{border-bottom:none}.sidebar-nav{padding:.5rem}.sidebar-nav ul{display:flex;flex-wrap:wrap}.sidebar-logout{margin-left:auto;border-top:none}}h1,h2,h3,h4,h5,h6{margin:0 0 1em;color:var(--slate-800);font-weight:600}h1{font-size:1.5rem;padding-bottom:.75rem;border-bottom:thin solid var(--border-color)}h2{font-size:1.15rem}a{color:var(--accent)}a:hover{color:var(--accent-dark)}.link-subtle{color:var(--bs-gray);text-decoration:none}.link-subtle:hover{color:var(--bs-purple);text-decoration:underline}.text-warning{font-weight:700;color:var(--bs-warning)}code{display:inline-block;white-space:nowrap;padding:.1rem .4rem;background-color:var(--slate-50);border:thin solid var(--border-color);border-radius:.3rem;font-size:.85em}table{width:100%;background-color:var(--surface-bg);border:thin solid var(--border-color);border-radius:var(--radius);border-collapse:separate;border-spacing:0;font-size:.9em;margin-bottom:var(--gutter);box-shadow:var(--shadow-sm);overflow:hidden}table thead th{background-color:var(--slate-50);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;color:var(--slate-500);border-top:0}table table{border:0;margin:0}table table td{border-top:0;padding-top:0}table th,table td{text-align:left;padding:.5rem .75rem;border-top:solid thin var(--bs-gray-light);vertical-align:top}table tr:hover th,table tr:hover td:not(td[colspan]){background-color:var(--bs-light)}table td[colspan]{border-bottom:.25rem solid var(--bs-gray-light);font-size:1rem;color:var(--bs-dark);padding-left:0;font-weight:700;padding-top:1.5rem}table tr.highlight th,table tr.highlight td,table tr.highlight:hover th,table tr.highlight:hover td:not(td[colspan]){background-color:var(--bs-warning-light)}table tr.error th,table tr.error td,table tr.error:hover th,table tr.error:hover td:not(td[colspan]){background-color:var(--bs-danger-light)}table ion-icon{font-size:1rem;position:relative;top:.2em}.table-scroll{overflow-x:auto;border-radius:var(--radius);border:thin solid var(--border-color);box-shadow:var(--shadow-sm);margin-bottom:var(--gutter)}.table-scroll table{border:0;border-radius:0;box-shadow:none;margin-bottom:0;overflow:visible}.table-scroll table th+th,.table-scroll table td+td{border-left:thin solid var(--border-color)}.table-scroll thead th{position:relative;z-index:1}.table-scroll td:first-child,.table-scroll th:first-child{position:sticky;left:0;z-index:2;min-width:12rem;background-color:var(--slate-50)}.table-scroll thead th:first-child{z-index:3}.table-scroll tr:hover td:first-child,.table-scroll tr:hover th:first-child{background-color:var(--bs-light)}.author-image{display:inline-block;width:2rem;height:2rem;border-radius:2rem}.author-image-small{display:inline-block;width:1.2rem;height:1.2rem;border-radius:2rem;margin-right:.5rem}.badge{padding:.1rem .4rem;display:inline-block;background-color:var(--accent-light);color:var(--accent-dark);border-radius:.3rem;font-size:.8rem;font-weight:500}.badge.success{background-color:var(--bs-success-light);color:#24663b}.badge+.badge{margin-left:.5rem}label.badge{padding:.5rem;margin-bottom:.5rem}label.badge input{margin-right:.5rem}.processed{font-size:1.2rem;color:var(--bs-danger)}.processed-success{color:var(--bs-success)}ion-icon[name=logo-gitlab]{color:var(--bs-orange)}table tbody+tbody tr:first-child th,table tbody+tbody tr:first-child td{border-top-width:.25rem;border-color:var(--bs-gray-dark)}table .version tr:first-child th,table .version tr:first-child td{background-color:var(--bs-success-light)}.filter-bar{box-sizing:border-box;background-color:var(--surface-bg);border:thin solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1rem 1.25rem;margin-bottom:1rem}.filter-form{margin-bottom:0}.filter-tags{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding-bottom:.75rem;margin-bottom:.75rem;border-bottom:thin solid var(--border-color)}.filter-tag{margin:0}.filter-conjunction{color:var(--slate-400);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;padding-top:0}.filter-row label{margin:0}.filter-row input[type=text]{min-width:14rem}.show-dev-link{display:inline-block;margin-top:.75rem;font-size:.85rem}.branches-table{table-layout:fixed}.branches-table th:nth-child(1),.branches-table td:nth-child(1){width:40%}.branches-table th:nth-child(2),.branches-table td:nth-child(2){width:8%}.branches-table th:nth-child(3),.branches-table td:nth-child(3){width:11%}.branches-table th:nth-child(4),.branches-table td:nth-child(4){width:10%}.branches-table th:nth-child(5),.branches-table td:nth-child(5){width:14%}.branches-table th:nth-child(6),.branches-table td:nth-child(6){width:17%}.branch-name{font-weight:600}.commit-title{font-weight:400;color:var(--slate-500);margin-top:.2rem}.project-id{font-weight:400;color:var(--slate-400)}.project-description{color:var(--slate-500);margin-top:-.5rem}.btn-link{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;border:thin solid var(--border-color);border-radius:var(--radius);background-color:var(--surface-bg);text-decoration:none;font-weight:500}.btn-link:hover{background-color:var(--slate-50);border-color:var(--accent)}.btn-link ion-icon{font-size:1rem}.site-card{box-sizing:border-box;background-color:var(--surface-bg);border:thin solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem;margin-bottom:1rem}.site-card[open]{padding-bottom:1.5rem}.site-card summary{display:flex;align-items:center;gap:.5rem;cursor:pointer;list-style:none}.site-card summary::-webkit-details-marker{display:none}.site-card summary:before{content:"▸";display:inline-block;width:1em;color:var(--slate-400);transition:transform .15s ease}.site-card[open]>summary:before{transform:rotate(90deg)}.site-card summary h2{margin:0}.site-card h3{margin:1.5rem 0 .5rem;font-size:1rem;color:var(--slate-600)}.site-card .badge{margin:.5rem 0}.site-card .languages{margin-left:.5rem;color:var(--slate-600);font-size:.85rem}.env-table{margin-top:.75rem}.env-table th{width:10rem;font-weight:600;color:var(--slate-700)}.site-card textarea{font-family:var(--bs-font-monospace);font-size:.8rem;background-color:var(--slate-50);border:thin solid var(--border-color);border-radius:var(--radius);padding:.75rem;resize:vertical}
