@font-face{font-family:"Inter";font-style:normal;font-weight:300;font-display:swap;src:url("/fonts/inter/inter-latin-300-normal.woff2") format("woff2")}@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/inter/inter-latin-400-normal.woff2") format("woff2")}@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/inter/inter-latin-500-normal.woff2") format("woff2")}@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/inter/inter-latin-600-normal.woff2") format("woff2")}@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/inter/inter-latin-700-normal.woff2") format("woff2")}@font-face{font-family:"Inter";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/inter/inter-latin-800-normal.woff2") format("woff2")}@font-face{font-family:"Inter";font-style:normal;font-weight:900;font-display:swap;src:url("/fonts/inter/inter-latin-900-normal.woff2") format("woff2")}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono/ibm-plex-mono-latin-400-normal.woff2") format("woff2")}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono/ibm-plex-mono-latin-500-normal.woff2") format("woff2")}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex-mono/ibm-plex-mono-latin-600-normal.woff2") format("woff2")}*{box-sizing:border-box;margin:0;padding:0}body{font-family:"Inter",sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden}.split{display:flex;height:100vh}.panel-left{width:44%;background:var(--navy);padding:48px 52px;display:flex;flex-direction:column;position:relative;overflow:hidden;color:#fff}.panel-left::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 20%, rgba(74, 158, 255, 0.08) 0%, transparent 50%),radial-gradient(circle at 80% 80%, rgba(74, 158, 255, 0.05) 0%, transparent 50%);pointer-events:none}.hex-grid{position:absolute;inset:0;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 66L0 50V18L28 2l28 16v32L28 66zm0 34L0 84V52l28-16 28 16v32L28 100z' fill='none' stroke='white' stroke-width='1'/%3E%3C/svg%3E");pointer-events:none}.left-logo{display:flex;align-items:center;gap:12px;margin-bottom:auto;position:relative;z-index:2}.left-logo-icon{width:40px;height:40px;background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.15);border-radius:10px;display:flex;align-items:center;justify-content:center}.left-logo-text{font-size:18px;font-weight:700}.left-logo-sub{font-size:11px;color:hsla(0,0%,100%,.4);letter-spacing:.5px;margin-top:1px}.left-body{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 0;z-index:2}.left-headline{font-size:30px;font-weight:700;line-height:1.2;margin-bottom:16px}.left-desc{font-size:15px;color:hsla(0,0%,100%,.55);line-height:1.6;margin-bottom:40px;max-width:320px}.left-features{display:flex;flex-direction:column;gap:14px}.left-feature{display:flex;align-items:flex-start;gap:12px}.feature-icon{width:28px;height:28px;border-radius:7px;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.1);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.feature-title{font-size:13.5px;font-weight:600;line-height:1.3}.feature-desc{font-size:12px;color:hsla(0,0%,100%,.45);line-height:1.4;margin-top:2px}.left-footer{position:relative;font-size:11.5px;color:hsla(0,0%,100%,.25);z-index:2}.panel-right{flex:1;background:#fff;display:flex;align-items:center;justify-content:center;padding:48px 40px;overflow-y:auto}.form-box{width:100%;max-width:380px}.form-title{font-size:24px;font-weight:700;letter-spacing:-0.4px;margin-bottom:6px}.form-subtitle{font-size:13.5px;color:var(--text-soft);margin-bottom:28px;line-height:1.5}.field{margin-bottom:14px}.field-label{font-size:12px;font-weight:600;color:var(--text-mid);margin-bottom:6px;display:block}.field-wrap{position:relative}.field-input{width:100%;height:40px;padding:0 12px;border:1.5px solid var(--border);border-radius:8px;font-size:13.5px;font-family:"Inter",sans-serif;color:var(--text);background:var(--bg);outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.field-input:focus{border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px rgba(30,58,95,.1)}.field-input.has-icon{padding-right:40px}.field-eye{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--text-soft);cursor:pointer;transition:color .15s;padding:4px;background:none;border:none;display:flex;align-items:center}.field-eye:hover{color:var(--text-mid)}.forgot-link{font-size:12px;color:var(--text-soft);text-decoration:none;transition:color .15s;display:block;text-align:right;margin-bottom:16px}.forgot-link:hover{color:var(--navy)}.btn-primary{width:100%;height:42px;background:var(--navy);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;font-family:"Inter",sans-serif;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.btn-primary:hover{background:var(--navy-light);transform:translateY(-1px);box-shadow:0 4px 14px rgba(30,58,95,.3)}.divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-soft);font-size:12px}.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--border)}.sso-row{display:flex;gap:8px;margin-bottom:12px}.btn-sso{flex:1;height:42px;background:#fff;color:var(--text);border:1.5px solid var(--border);border-radius:8px;font-size:12.5px;font-weight:500;font-family:"Inter",sans-serif;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;padding:0 10px}.btn-sso:hover{border-color:var(--border-mid);background:var(--bg);box-shadow:0 2px 6px rgba(0,0,0,.06)}.form-link{font-size:12.5px;color:var(--text-soft);text-align:center}.form-link a{color:var(--navy);font-weight:600;text-decoration:none;transition:opacity .15s}.form-link a:hover{opacity:.7}.devise-errors{background:var(--red-bg);border:1px solid var(--red-border);border-radius:7px;padding:12px 14px;color:var(--red)}.devise-errors h2{font-weight:600}.devise-errors ul li{margin-bottom:2px}@media(max-width: 768px){.split{flex-direction:column}.panel-left{width:100%;padding:32px 24px;min-height:auto}.left-body{padding:24px 0}.left-headline{font-size:22px}.panel-right{padding:32px 20px}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:"Inter",sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden}.split{display:flex;height:100vh}.panel-left{width:44%;background:var(--navy);padding:48px 52px;display:flex;flex-direction:column;position:relative;overflow:hidden;color:#fff}.panel-left::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 20%, rgba(74, 158, 255, 0.08) 0%, transparent 50%),radial-gradient(circle at 80% 80%, rgba(74, 158, 255, 0.05) 0%, transparent 50%);pointer-events:none}.hex-grid{position:absolute;inset:0;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 66L0 50V18L28 2l28 16v32L28 66zm0 34L0 84V52l28-16 28 16v32L28 100z' fill='none' stroke='white' stroke-width='1'/%3E%3C/svg%3E");pointer-events:none}.left-logo{display:flex;align-items:center;gap:12px;margin-bottom:auto;position:relative;z-index:2}.left-logo-icon{width:40px;height:40px;background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.15);border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}.left-logo-text{font-size:18px;font-weight:700}.left-logo-sub{font-size:11px;color:hsla(0,0%,100%,.4);letter-spacing:.5px;margin-top:1px}.left-body{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 0;z-index:2}.left-headline{font-size:30px;font-weight:700;line-height:1.2;margin-bottom:16px}.left-desc{font-size:15px;color:hsla(0,0%,100%,.55);line-height:1.6;margin-bottom:40px;max-width:320px}.left-features{display:flex;flex-direction:column;gap:14px}.left-feature{display:flex;align-items:flex-start;gap:12px}.feature-icon{width:28px;height:28px;border-radius:7px;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.1);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;font-size:14px}.feature-title{font-size:13.5px;font-weight:600;line-height:1.3}.feature-desc{font-size:12px;color:hsla(0,0%,100%,.45);line-height:1.4;margin-top:2px}.left-footer{position:relative;font-size:11.5px;color:hsla(0,0%,100%,.25);z-index:2}.panel-right{flex:1;background:#fff;display:flex;align-items:center;justify-content:center;padding:48px 40px;overflow-y:auto}.form-box{width:100%;max-width:380px}.form-title{font-size:24px;font-weight:700;letter-spacing:-0.4px;margin-bottom:6px}.form-subtitle{font-size:13.5px;color:var(--text-soft);margin-bottom:28px;line-height:1.5}.field{margin-bottom:14px}.field-row{display:flex;gap:12px;margin-bottom:14px}.field-row .field{flex:1;margin-bottom:0}.field-label{font-size:12px;font-weight:600;color:var(--text-mid);margin-bottom:6px;display:block}.field-wrap{position:relative}.field-input{width:100%;height:40px;padding:0 12px;border:1.5px solid var(--border);border-radius:8px;font-size:13.5px;font-family:"Inter",sans-serif;color:var(--text);background:var(--bg);outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.field-input:focus{border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px rgba(30,58,95,.1)}.field-input.has-icon{padding-right:40px}.field-eye{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--text-soft);cursor:pointer;transition:color .15s;padding:4px;background:none;border:none;display:flex;align-items:center}.field-eye:hover{color:var(--text-mid)}.pw-strength{margin-top:8px}.pw-bars{display:flex;gap:4px;margin-bottom:5px}.pw-bar{flex:1;height:3px;border-radius:2px;background:var(--border);transition:background .3s}.pw-bar.weak{background:var(--red)}.pw-bar.medium{background:var(--orange)}.pw-bar.strong{background:var(--green)}.pw-label{font-size:11px;color:var(--text-soft)}.pw-label.weak{color:var(--red)}.pw-label.medium{color:var(--orange)}.pw-label.strong{color:var(--green)}.btn-primary{width:100%;height:42px;background:var(--navy);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;font-family:"Inter",sans-serif;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.btn-primary:hover{background:var(--navy-light);transform:translateY(-1px);box-shadow:0 4px 14px rgba(30,58,95,.3)}.form-link{font-size:12.5px;color:var(--text-soft);text-align:center}.form-link a{color:var(--navy);font-weight:600;text-decoration:none;transition:opacity .15s}.form-link a:hover{opacity:.7}.legal-text{font-size:11px;color:var(--text-soft);text-align:center;line-height:1.5;margin-top:14px}.legal-text a{color:var(--navy);text-decoration:none}.devise-errors{background:var(--red-bg);border:1px solid var(--red-border);border-radius:7px;padding:12px 14px;color:var(--red)}.devise-errors h2{font-weight:600}.devise-errors ul li{margin-bottom:2px}@media(max-width: 768px){.split{flex-direction:column}.panel-left{width:100%;padding:32px 24px;min-height:auto}.left-body{padding:24px 0}.left-headline{font-size:22px}.panel-right{padding:32px 20px}.field-row{flex-direction:column;gap:0}.field-row .field{margin-bottom:14px}}html,body{height:100%}.layout{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;width:var(--nav-w);height:100vh;background-color:var(--navy);overflow-y:auto;overflow-x:hidden;z-index:100;display:flex;flex-direction:column}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.sidebar::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:var(--radius-sm)}.sidebar::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.3)}main,.main{margin-left:var(--nav-w);flex:1;display:flex;flex-direction:column;overflow-y:auto;height:100vh}.layout--auth main,.layout--auth .main{margin-left:0}.sidebar-logo{padding:24px 20px 22px;border-bottom:1px solid hsla(0,0%,100%,.08)}.sidebar-logo-area{padding:24px 20px 22px;border-bottom:1px solid hsla(0,0%,100%,.08)}.logo-mark{display:flex;align-items:center;gap:10px}.logo-icon{width:32px;height:32px;background:linear-gradient(135deg, #4A9EFF 0%, #2D7DD2 100%);border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-icon svg{width:18px;height:18px}.logo-text,.sidebar-logo-name{font-size:15px;font-weight:700;color:#fff;letter-spacing:-0.3px}.logo-sub,.sidebar-logo-sub{font-size:10px;color:hsla(0,0%,100%,.4);letter-spacing:.8px;text-transform:uppercase;margin-top:1px}.sidebar-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:2px;list-style:none}.nav-section-label,.sidebar-section-label{font-size:10px;font-weight:600;color:hsla(0,0%,100%,.3);letter-spacing:1px;text-transform:uppercase;padding:12px 8px 6px;margin-top:8px}.nav-item,.sidebar-nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:6px;font-size:13.5px;font-weight:500;color:hsla(0,0%,100%,.6);cursor:pointer;transition:all .15s;text-decoration:none;position:relative;border:none;background:none}.nav-item:hover,.sidebar-nav-item:hover:not(.active){background:hsla(0,0%,100%,.07);color:hsla(0,0%,100%,.9)}.nav-item.active,.sidebar-nav-item.active{background:hsla(0,0%,100%,.12);color:#fff;border-left:none;padding-left:12px}.nav-item.active::before,.sidebar-nav-item.active::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:18px;background:#4a9eff;border-radius:0 2px 2px 0}.nav-icon{width:16px;height:16px;opacity:.8;flex-shrink:0}.nav-item.active .nav-icon,.sidebar-nav-item.active .nav-icon,.sidebar-nav-item.active svg{opacity:1}.sidebar-nav-item svg{opacity:.8;flex-shrink:0;width:16px;height:16px}.nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:10px;line-height:1.4;flex-shrink:0}.sidebar-footer,.sidebar-footer-area{padding:16px 12px;border-top:1px solid hsla(0,0%,100%,.08);position:relative}@media(max-width: 768px){.sidebar{position:fixed;left:-100%;width:calc(100vw - var(--space-md));max-width:320px;height:100vh;transition:left var(--transition-normal);box-shadow:var(--shadow-lg);z-index:200}.sidebar.open{left:0}main,.main{margin-left:0}.toggle-sidebar{display:block}}@media(min-width: 769px){.toggle-sidebar{display:none}}.section{margin-bottom:var(--space-2xl)}.section-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-lg);color:var(--text-primary)}.section-subtitle{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-lg)}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-lg)}.grid{display:grid;gap:var(--space-lg)}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2, 1fr)}.grid-cols-3{grid-template-columns:repeat(3, 1fr)}@media(max-width: 768px){.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:7px;font-family:"Inter",sans-serif;font-size:14px;font-weight:500;border:1px solid rgba(0,0,0,0);cursor:pointer;transition:all 200ms ease;text-decoration:none;line-height:1.5}.btn:hover{transform:translateY(-1px)}.btn:focus-visible{outline:2px solid var(--navy);outline-offset:2px}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{background:var(--navy-dark)}.btn-secondary{background:#fff;color:var(--text-mid);border-color:var(--border)}.btn-secondary:hover{background:#f7fafc}.btn-ghost{background:rgba(0,0,0,0);color:var(--text-soft);border-color:rgba(0,0,0,0)}.btn-ghost:hover{color:var(--text)}.btn-ghost-danger{background:rgba(0,0,0,0);color:var(--red);border-color:rgba(0,0,0,0)}.btn-ghost-danger:hover{color:var(--red-deep)}.btn-danger{background:var(--red-bg);color:var(--red);border-color:var(--red-border)}.btn-danger:hover{background:#fed7d7}.btn-sm{padding:5px 10px;font-size:13px}.btn-icon{width:34px;height:34px;padding:0;justify-content:center;border-color:var(--border);background:#fff}.btn:disabled,.btn[aria-disabled=true]{background:#e2e8f0;color:#334155;cursor:not-allowed;transform:none;border-color:rgba(0,0,0,0);pointer-events:none}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:5px;font-size:12px;font-weight:600;border:1px solid}.badge-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.badge-critical{background:var(--red-bg);color:var(--red);border-color:var(--red-border)}.badge-high{background:var(--orange-bg);color:var(--orange);border-color:var(--orange-border)}.badge-medium{background:#fffbeb;color:#b45309;border-color:#fde68a}.badge-ok{background:var(--green-bg);color:var(--green);border-color:var(--green-border)}.badge-info{background:var(--blue-bg);color:var(--blue);border-color:var(--blue-border)}.badge-auto{background:var(--auto-bg);color:var(--auto);border-color:var(--auto-border)}.badge-extra{background:var(--extra-bg);color:var(--extra);border-color:var(--extra-border)}.badge-pending{background:var(--orange-bg);color:var(--orange);border-color:var(--orange-border);animation:blink 2s infinite}.badge-active{background:var(--green-bg);color:var(--green);border-color:var(--green-border)}.badge-active .badge-dot{background:var(--green);animation:pulse 2s infinite}.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-mid);margin-bottom:6px}.form-label .req{color:var(--red);margin-left:2px}.input{display:block;width:100%;height:36px;padding:0 12px;border:1px solid var(--border);border-radius:7px;font-family:"Inter",sans-serif;font-size:14px;color:var(--text);background:#fff;outline:none}.input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,58,95,.1)}.input:focus-visible{outline:none}.input.error{border-color:var(--red);box-shadow:0 0 0 3px rgba(229,62,62,.1)}.input:disabled{background:#f7fafc;cursor:not-allowed}textarea.input{height:auto;padding:10px 12px;resize:vertical}.select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23718096' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.form-error{font-size:12px;color:var(--red);margin-top:5px}.form-hint{font-size:12px;color:var(--text-soft);margin-top:5px}.toggle-wrap{display:flex;align-items:center;gap:10px}.toggle{position:relative;width:38px;height:22px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-track{position:absolute;inset:0;border-radius:11px;background:#cbd5e0;transition:background 200ms;cursor:pointer}.toggle input:checked~.toggle-track{background:var(--green)}.toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform 200ms}.toggle input:checked~.toggle-track .toggle-thumb{transform:translateX(16px)}.toggle-label{font-size:14px;color:var(--text-mid)}.table-wrap{border-radius:10px;border:1px solid var(--border);overflow:hidden;background:#fff}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap thead tr{background:#fafbfc}.table-wrap th{padding:10px 16px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-soft);letter-spacing:.3px;border-bottom:1px solid var(--border)}.table-wrap td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px}.table-wrap tr:last-child td{border-bottom:none}.table-wrap tbody tr:hover{background:#fafbfc}.mono{font-family:"IBM Plex Mono",monospace;font-size:13px}.text-soft{color:var(--text-soft)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.card-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:16px}.comp-page-header{background:#fff;padding:28px 28px 20px;border:1px solid var(--border);border-radius:10px}.breadcrumb{font-size:12px;color:var(--text-soft);margin-bottom:6px}.comp-page-title{font-size:22px;font-weight:700;color:var(--navy)}.page-header-row{display:flex;align-items:center;justify-content:space-between}.page-header-actions{display:flex;gap:10px}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity 200ms ease,visibility 200ms ease}.modal-overlay.active{opacity:1;visibility:visible}dialog.modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.15);width:480px;max-width:95vw;overflow:hidden;border:none;padding:0;transform:translateY(20px);transition:transform 200ms ease}dialog.modal[open]{transform:translateY(0)}dialog.modal::backdrop{background:rgba(0,0,0,.4)}.modal-header{padding:24px 28px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:17px;font-weight:600;color:var(--text)}.modal-close{width:28px;height:28px;border-radius:6px;border:none;background:rgba(0,0,0,0);color:var(--text-soft);cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:#f7fafc}.modal-body{padding:24px 28px}.modal-footer{padding:16px 28px;background:#fafbfc;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;border-radius:0 0 16px 16px}.toast-container{position:fixed;top:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{display:inline-flex;align-items:center;gap:10px;padding:14px 18px;border-radius:10px;font-size:14px;font-weight:500;pointer-events:auto;animation:toast-in 300ms ease}.toast-success{background:var(--green-bg);color:var(--green-dark);border:1px solid var(--green-border)}.toast-error{background:var(--red-bg);color:var(--red-deep);border:1px solid var(--red-border)}.toast-icon{width:18px;height:18px;flex-shrink:0}@keyframes toast-in{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.empty-state{padding:48px 24px;text-align:center;border:1px solid var(--border);border-radius:10px;background:#fff}.empty-icon{display:block;width:48px;height:48px;margin:0 auto 14px;opacity:.4}.empty-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:6px}.empty-desc{font-size:14px;color:var(--text-soft);margin-bottom:18px}.gauge-wrap{width:100%}.gauge-label{display:flex;justify-content:space-between;font-size:13px;color:var(--text-mid);margin-bottom:6px}.gauge-label strong{color:var(--text);font-weight:600}.gauge-track{height:8px;border-radius:4px;background:var(--border);overflow:hidden}.gauge-progress{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.gauge-fill{height:100%;border-radius:4px;transition:width .4s ease}.gauge-navy{background:var(--navy)}.gauge-gradient{background:linear-gradient(90deg, var(--navy), #3182CE)}.gauge-tri{display:flex;height:100%}.gauge-tri .g1{background:var(--navy)}.gauge-tri .g2{background:var(--auto)}.gauge-tri .g3{background:var(--extra)}@keyframes blink{0%,100%{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes dropUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.avatar{width:32px;height:32px;border-radius:50%;background:var(--navy-light);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:600;flex-shrink:0}.user-card{display:flex;align-items:center;gap:12px;padding:14px 10px;border-radius:6px;cursor:pointer;transition:background .15s;border:none;background:none;text-align:left;width:100%}.user-card:hover{background:hsla(0,0%,100%,.07)}.user-avatar{width:36px;height:36px;background:linear-gradient(135deg, #4A9EFF, #2D7DD2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-info{flex:1;min-width:0}.user-name{font-size:13px;font-weight:600;color:#fff;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:11px;color:hsla(0,0%,100%,.4);line-height:1.3}.user-chevron{color:#fff;transition:transform .2s;flex-shrink:0}.user-card.open .user-chevron{transform:rotate(90deg)}.user-dropdown{position:absolute;bottom:calc(100% + 8px);left:12px;right:12px;background:#fff;border-radius:10px;box-shadow:0 -4px 24px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.08);overflow:hidden;display:none;z-index:200}.user-dropdown.open{display:block;animation:dropUp .15s ease}@keyframes dropUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.user-dropdown-header{padding:14px 16px 12px;border-bottom:1px solid #f0f4f8;display:flex;align-items:center;gap:10px}.user-dropdown-avatar{width:38px;height:38px;background:linear-gradient(135deg, #4A9EFF, #2D7DD2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}.user-dropdown-avatar img{width:100%;height:100%;object-fit:cover}.user-dropdown-name{font-size:13px;font-weight:700;color:#1a202c;line-height:1.3}.user-dropdown-email{font-size:11.5px;color:#718096;line-height:1.3}.user-dropdown-role-badge{display:inline-block;margin-top:3px;font-size:10px;font-weight:700;background:#eff4fb;color:#1e3a5f;padding:2px 7px;border-radius:4px}.user-dropdown-section{padding:6px 0;border-bottom:1px solid #f0f4f8;font-size:13px}.user-dropdown-section:last-child{border-bottom:none}.user-dropdown-item{display:flex;align-items:center;gap:10px;padding:9px 16px;font-size:13px;color:#2d3748;cursor:pointer;transition:background .12s;text-decoration:none;border:none;background:none}.user-dropdown-item:hover{background:#f7fafc}.user-dropdown-item svg{flex-shrink:0;color:#718096}.user-dropdown-item.danger{color:#e53e3e}.user-dropdown-item.danger svg{color:#e53e3e}.user-dropdown-item.danger:hover{background:#fff5f5}.quota-modal-content{display:flex;flex-direction:column;gap:var(--space-md)}.quota-modal-content p{margin:0;font-size:var(--font-size-sm);color:var(--text)}.alert-banner{background:var(--red);color:#fff;padding:var(--space-sm) var(--space-xl);display:flex;align-items:center;gap:var(--space-md);animation:slideDown .3s ease;margin-bottom:var(--space-lg);border-radius:4px}.alert-banner.hidden{display:none}@keyframes slideDown{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.alert-banner-text{flex-grow:1;font-size:var(--font-size-sm);font-weight:500}.dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-top:var(--space-lg)}.projects-column{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);background:var(--bg-card)}.column-title{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--space-md);color:var(--text)}.project-list{display:flex;flex-direction:column;gap:var(--space-sm)}.project-list-item{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:background .15s,border-color .15s;border:1px solid rgba(0,0,0,0);text-decoration:none;color:inherit;background:var(--bg)}.project-list-item:hover{background:var(--bg);border-color:var(--border)}.project-list-item:hover .project-arrow{opacity:1}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px}.status-dot.critical{background:var(--red)}.status-dot.warning{background:var(--orange)}.status-dot.healthy{background:var(--green)}.project-content{flex:1;min-width:0}.project-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xs)}.project-name{font-family:"IBM Plex Mono",monospace;font-size:var(--font-size-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.project-arrow{opacity:0;transition:opacity .15s;color:var(--text-soft);flex-shrink:0}.project-meta{display:flex;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--text-soft);margin-bottom:var(--space-xs)}.project-repo,.project-date{display:inline-block}.project-tags{display:flex;gap:var(--space-xs);margin-bottom:var(--space-xs)}.tag{font-size:10px;padding:2px 6px;border-radius:var(--radius-full);font-weight:500}.tag.tag-critical{background:var(--red-bg);color:var(--red)}.tag.tag-warning{background:var(--orange-bg);color:var(--orange)}.project-health-bar{height:4px;background:var(--border);border-radius:var(--radius-full)}.project-health-fill{height:100%;border-radius:var(--radius-full);background:var(--green)}.empty-column-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl) var(--space-lg);text-align:center;color:var(--text-soft)}.empty-icon{font-size:32px;margin-bottom:var(--space-md)}.empty-text{margin-bottom:var(--space-md);font-size:var(--font-size-sm)}.project-status-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-lg);margin-top:var(--space-lg)}.project-status-card{border-radius:var(--radius-lg);border-width:1px;border-style:solid;padding:var(--space-lg)}.project-status-card.healthy{background:var(--green-bg);border-color:var(--green-border)}.project-status-card.warning{background:var(--orange-bg);border-color:var(--orange-border)}.project-status-card.critical{background:var(--red-bg);border-color:var(--red-border)}.status-card-title{font-size:var(--font-size-sm);font-weight:600;display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.status-card-count{font-size:18px;font-weight:700}.project-list-mini{display:flex;flex-direction:column;gap:var(--space-xs);max-height:300px;overflow-y:auto}.mini-project-item{display:flex;flex-direction:column;gap:2px}.mini-project-name{font-size:var(--font-size-xs);font-weight:500;color:var(--text)}.mini-health-bar{height:3px;background:var(--border);border-radius:var(--radius-full)}.mini-health-fill{height:100%;border-radius:var(--radius-full);background:var(--green)}.empty-card-state{font-size:var(--font-size-xs);color:var(--text-soft);text-align:center;padding:var(--space-lg)}.kpi-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:var(--space-md);margin-top:var(--space-lg)}.kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:var(--space-xl)}.kpi-card.critical{background:var(--red-bg);border-color:var(--red-border)}.kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-soft);margin-bottom:var(--space-xs)}.kpi-value{font-size:30px;font-weight:700;line-height:1.2;color:var(--text);margin:var(--space-xs) 0}.kpi-card.critical .kpi-value{color:var(--red)}.kpi-delta{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);padding:2px 8px;border-radius:var(--radius-full);font-weight:500}.kpi-delta.up-bad{background:var(--red-bg);color:var(--red)}.kpi-delta.down-good{background:var(--green-bg);color:var(--green)}.kpi-delta.flat{background:var(--bg);color:var(--text-soft)}.kpi-sub-text{font-size:var(--font-size-xs);color:var(--text-soft);margin-top:var(--space-xs)}.dashboard-pills{display:flex;gap:var(--space-sm);align-items:center}.dashboard-pill{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-full);padding:2px 10px;font-size:var(--font-size-xs);color:var(--text-mid)}.activity-column{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);background:var(--bg-card)}.activity-list{display:flex;flex-direction:column;gap:var(--space-sm)}.activity-event{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--border)}.activity-event:last-child{border-bottom:none}.activity-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px}.activity-dot.red{background:var(--red)}.activity-dot.orange{background:var(--orange)}.activity-dot.green{background:var(--green)}.activity-dot.blue{background:var(--blue)}.activity-content{flex:1;min-width:0}.activity-text{font-size:var(--font-size-sm);color:var(--text);margin-bottom:2px}.activity-text strong{font-weight:600}.activity-timestamp{font-size:var(--font-size-xs);color:var(--text-soft)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;padding-bottom:24px;margin-bottom:32px}.page-title-group{flex:1}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-soft);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.breadcrumb-icon{width:12px;height:12px;opacity:.6}.page-title{font-size:28px;font-weight:700;color:var(--navy);margin-bottom:12px}.stats-row{display:flex;align-items:center;gap:16px}.stat-pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-mid)}.stat-pill strong{font-weight:600}.stat-pill .stat-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.header-actions{display:flex;align-items:center;gap:10px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:16px;margin-bottom:32px}.kpi-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:20px;display:flex;flex-direction:column;gap:12px;transition:box-shadow 200ms ease}.kpi-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}.kpi-card.kpi-critical{background:var(--red-bg);border-color:var(--red-border)}.kpi-card.critical{background:var(--red-bg);border-color:var(--red-border)}.kpi-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-soft)}.kpi-value-row{display:flex;align-items:baseline;gap:8px}.kpi-value{font-size:32px;font-weight:700;color:var(--navy);line-height:1}.kpi-critical .kpi-value{color:var(--red)}.kpi-delta{font-size:13px;font-weight:500;padding:4px 8px;border-radius:4px;display:inline-flex;align-items:center;gap:4px}.kpi-delta.up{color:var(--red)}.kpi-delta.down{color:var(--green)}.kpi-delta.flat{color:var(--text-soft)}.kpi-delta.up-bad{color:var(--red)}.kpi-delta.down-good{color:var(--green)}.kpi-sub{font-size:12px;color:var(--text-soft);line-height:1.4}.dash-main-grid{display:grid;grid-template-columns:1fr 300px;gap:24px;margin-bottom:24px}@media(max-width: 1024px){.dash-main-grid{grid-template-columns:1fr}}.dash-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.dash-card-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border)}.dash-card-title{font-size:14px;font-weight:600;color:var(--text)}.dash-card-link{font-size:13px;color:var(--navy);font-weight:500;cursor:pointer;text-decoration:none;transition:opacity 200ms}.dash-card-link:hover{opacity:.8}.proj-fault-item{display:flex;align-items:stretch;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);cursor:pointer;transition:background 200ms}.proj-fault-item:hover{background:#fafbfc}.proj-fault-item:last-child{border-bottom:none}.proj-fault-status{width:3px;flex-shrink:0;border-radius:1.5px}.proj-fault-status.red{background:var(--red)}.proj-fault-status.orange{background:var(--orange)}.proj-fault-status.green{background:var(--green)}.proj-fault-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.proj-fault-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.proj-fault-name{font-size:14px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-fault-issue{font-size:11px;font-weight:600;flex-shrink:0}.proj-fault-issue.red{color:var(--red)}.proj-fault-issue.orange{color:var(--orange)}.proj-fault-issue.green{color:var(--green)}.proj-bar-wrap{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.proj-bar-fill{height:100%;width:100%;border-radius:2px}.proj-bar-fill.red{background:var(--red)}.proj-bar-fill.orange{background:var(--orange)}.proj-bar-fill.green{background:var(--green)}.proj-fault-pct{font-size:11px;font-weight:600;min-width:32px;text-align:right}.proj-fault-pct.red{color:var(--red)}.proj-fault-pct.orange{color:var(--orange)}.proj-fault-pct.green{color:var(--green)}.proj-fault-sub{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-soft)}.proj-fault-sub-sep{opacity:.4}.proj-fault-arrow{flex-shrink:0;width:12px;height:12px;opacity:.65;transition:opacity 200ms}.proj-fault-item:hover .proj-fault-arrow{opacity:1}.proj-empty{padding:32px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-soft)}.proj-empty-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg);border-radius:8px;color:var(--text-soft)}.proj-empty-icon svg{width:20px;height:20px}.proj-empty-text{font-size:13px;line-height:1.5}.proj-empty-cta{margin-top:8px;padding:8px 16px;font-size:13px;background:var(--navy);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background 200ms}.proj-empty-cta:hover{background:var(--navy-dark)}.activity-item{display:flex;align-items:flex-start;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border)}.activity-item:last-child{border-bottom:none}.activity-body{flex:1;min-width:0}.activity-text{font-size:13px;color:var(--text);line-height:1.4;margin-bottom:4px}.activity-text strong{font-weight:600}.activity-time{font-size:11px;color:var(--text-soft)}.onboarding{height:100vh;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 32px;overflow-y:auto}.ob-logo{display:flex;align-items:center;gap:10px;margin-bottom:32px}.ob-logo-icon{width:34px;height:34px;background:var(--navy);border-radius:8px;display:flex;align-items:center;justify-content:center}.ob-logo-text{font-size:15px;font-weight:700;color:var(--navy);letter-spacing:-0.3px}.ob-progress{display:flex;align-items:center;gap:0;margin-bottom:32px;width:100%;max-width:640px}.ob-step{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1;position:relative}.ob-step-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:2px solid var(--border);background:#fff;color:var(--text-soft);transition:all .25s;z-index:1}.ob-step.active .ob-step-num{background:var(--navy);border-color:var(--navy);color:#fff}.ob-step.done .ob-step-num{background:var(--green);border-color:var(--green);color:#fff}.ob-step.inactive .ob-step-num{background:#fff;border-color:var(--border);color:var(--text-soft)}.ob-step-label{font-size:9.5px;font-weight:500;color:var(--text-soft);text-align:center;white-space:nowrap}.ob-step.active .ob-step-label{color:var(--navy);font-weight:600}.ob-step.done .ob-step-label{color:var(--green)}.ob-progress-line{flex:1;height:2px;background:var(--border);margin:0 -1px;margin-bottom:20px;transition:background .3s}.ob-progress-line.done{background:var(--green)}.ob-header{text-align:center;margin-bottom:28px}.ob-title{font-size:26px;font-weight:700;color:var(--text);letter-spacing:-0.5px;margin-bottom:7px}.ob-subtitle{font-size:14px;color:var(--text-soft);line-height:1.5}.ob-substep{display:none;flex-direction:column;align-items:center;width:100%;max-width:520px}.ob-substep.active{display:flex;animation:fadeUp .3s ease both}.repo-search-wrap{position:relative;width:100%;max-width:480px;margin-bottom:12px}.repo-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-soft);pointer-events:none}.repo-search{width:100%;height:40px;padding:0 12px 0 38px;border:1.5px solid var(--border);border-radius:8px;font-size:13.5px;font-family:"Inter",sans-serif;color:var(--text);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}.repo-search:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,58,95,.1)}.repo-search::placeholder{color:var(--text-soft)}.repo-list{width:100%;max-width:480px;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;max-height:248px;overflow-y:auto;margin-bottom:14px}.repo-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}.repo-row:last-child{border-bottom:none}.repo-row:hover{background:var(--bg)}.repo-row.selected{background:#eff4fb}.repo-radio{width:17px;height:17px;border-radius:50%;border:2px solid var(--border-mid);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}.repo-row.selected .repo-radio{border-color:var(--navy);background:var(--navy)}.repo-radio-dot{width:6px;height:6px;border-radius:50%;background:#fff;display:none}.repo-row.selected .repo-radio-dot{display:block}.repo-row-info{flex:1;min-width:0}.repo-row-name{font-size:13px;font-weight:600;color:var(--text);font-family:"IBM Plex Mono",monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repo-row-meta{display:flex;align-items:center;gap:8px;margin-top:3px}.repo-row-lang{font-size:11px;color:var(--text-soft);display:flex;align-items:center;gap:4px}.lang-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.repo-visibility{font-size:10.5px;color:var(--text-soft);background:var(--bg);border:1px solid var(--border);padding:1px 6px;border-radius:4px}.repo-select-note{font-size:11.5px;color:var(--text-soft);text-align:center;margin-bottom:16px;width:100%;max-width:480px}.platform-cards{display:flex;gap:16px;margin-bottom:20px;width:100%;max-width:440px}.platform-card{flex:1;background:#fff;border:2px solid var(--border);border-radius:14px;padding:24px 20px;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:all .2s ease;text-align:center;position:relative}.platform-card:hover{border-color:var(--navy);box-shadow:0 8px 24px rgba(30,58,95,.1);transform:translateY(-2px)}.platform-card.selected{border-color:var(--navy);background:#eff4fb;box-shadow:0 0 0 4px rgba(30,58,95,.08)}.platform-check{position:absolute;top:12px;right:12px;width:18px;height:18px;border-radius:50%;background:var(--navy);display:none;align-items:center;justify-content:center}.platform-card.selected .platform-check{display:flex}.platform-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.platform-icon-gh{background:#24292f}.platform-icon-gl{background:#fc6d26}.platform-name{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px}.platform-desc{font-size:12px;color:var(--text-soft);line-height:1.4}.security-note{display:flex;align-items:center;gap:7px;padding:10px 16px;background:var(--green-bg);border:1px solid var(--green-border);border-radius:8px;font-size:12.5px;color:var(--green);font-weight:500;margin-bottom:16px;width:100%;max-width:440px}.skip-link{font-size:12.5px;color:var(--text-soft);text-decoration:none;transition:color .15s;cursor:pointer;background:none;border:none;font-family:"Inter",sans-serif}.skip-link:hover{color:var(--text-mid)}.config-box{width:100%;max-width:440px;background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:16px}.config-section{padding:20px 24px}.config-section+.config-section{border-top:1px solid var(--border)}.config-section-title{font-size:12px;font-weight:700;color:var(--text-mid);text-transform:uppercase;letter-spacing:.6px;margin-bottom:14px}.gitlab-modes{display:flex;gap:10px;margin-bottom:16px}.gl-mode-btn{flex:1;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;background:var(--bg);font-size:13px;font-weight:500;color:var(--text-mid);cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:8px;font-family:"Inter",sans-serif}.gl-mode-btn:hover{border-color:var(--border-mid);background:#fff}.gl-mode-btn.active{border-color:var(--navy);background:#eff4fb;color:var(--navy);font-weight:600}.gl-url-field{display:none}.gl-url-field.visible{display:block}.btn-oauth{width:100%;height:44px;border:none;border-radius:8px;font-size:14px;font-weight:600;font-family:"Inter",sans-serif;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:9px;color:#fff;margin-bottom:6px}.btn-oauth-gh{background:#24292f}.btn-oauth-gh:hover{background:#1a1f24;box-shadow:0 4px 12px rgba(0,0,0,.2)}.btn-oauth-gl{background:#fc6d26}.btn-oauth-gl:hover{background:#e55d1a;box-shadow:0 4px 12px rgba(252,109,38,.3)}.oauth-hint{font-size:11.5px;color:var(--text-soft);text-align:center;margin-bottom:0}.token-toggle{display:flex;align-items:center;gap:8px;padding:12px 0 0;cursor:pointer;font-size:12.5px;font-weight:500;color:var(--text-mid);user-select:none;border:none;background:none;width:100%;font-family:"Inter",sans-serif}.token-toggle:hover{color:var(--text)}.token-toggle-icon{transition:transform .2s;color:var(--text-soft)}.token-toggle.open .token-toggle-icon{transform:rotate(90deg)}.token-body{display:none;padding-top:12px}.token-body.open{display:block;animation:fadeUp .2s ease both}.token-input-wrap{position:relative;margin-bottom:8px}.token-input{width:100%;height:40px;padding:0 12px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;font-family:"IBM Plex Mono",monospace;color:var(--text);background:var(--bg);outline:none;transition:border-color .15s,box-shadow .15s}.token-input:focus{border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px rgba(30,58,95,.1)}.token-input::placeholder{font-family:"Inter",sans-serif;font-size:12.5px;color:var(--text-soft)}.token-help{font-size:11.5px;color:var(--text-soft)}.token-help a{color:var(--navy);text-decoration:none;font-weight:500}.token-help a:hover{text-decoration:underline}.loader-wrap{display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px}.loader-icon-wrap{width:72px;height:72px;border-radius:18px;background:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:28px;position:relative}@keyframes pulse-ring{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.6);opacity:0}}.loader-ring{position:absolute;inset:-8px;border-radius:24px;border:2px solid var(--navy);animation:pulse-ring 1.8s ease-out infinite}.loader-ring:nth-child(2){animation-delay:.6s}@keyframes ob-spin{to{transform:rotate(360deg)}}.loader-spinner{width:40px;height:40px;border:3px solid hsla(0,0%,100%,.2);border-top-color:#fff;border-radius:50%;animation:ob-spin .9s linear infinite}.loader-title{font-size:22px;font-weight:700;color:var(--text);letter-spacing:-0.4px;margin-bottom:8px;text-align:center}.loader-subtitle{font-size:14px;color:var(--text-soft);text-align:center;margin-bottom:28px}.loader-steps{width:100%;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}.loader-step{display:flex;align-items:center;gap:12px;padding:11px 16px;font-size:13px;color:var(--text-soft);border-bottom:1px solid var(--border);transition:all .3s}.loader-step:last-child{border-bottom:none}.loader-step.running{color:var(--text);font-weight:500}.loader-step.done{color:var(--green)}.loader-step-icon{width:16px;height:16px;flex-shrink:0}@keyframes step-spin{to{transform:rotate(360deg)}}.step-spinner{width:14px;height:14px;border:2px solid var(--border-mid);border-top-color:var(--navy);border-radius:50%;animation:step-spin .8s linear infinite;flex-shrink:0}.loader-bar-wrap{width:100%;background:var(--border);border-radius:4px;height:4px;margin-top:20px;overflow:hidden}@keyframes progress-fill{from{width:0%}to{width:100%}}.loader-bar{height:100%;background:var(--navy);border-radius:4px;animation:progress-fill 3.5s ease-in-out forwards}.loader-leave-notice{display:flex;align-items:flex-start;gap:10px;margin-top:24px;padding:13px 16px;background:var(--green-bg);border:1px solid var(--green-border);border-radius:10px;font-size:13px;color:var(--text-mid);line-height:1.5;width:100%}.loader-leave-notice svg{flex-shrink:0;margin-top:2px;color:var(--green)}.loader-leave-notice strong{color:var(--text);font-weight:600;display:block;margin-bottom:2px}.loader-dashboard-link{display:inline-block;margin-top:14px;font-size:13px;font-weight:600;color:var(--text-soft);text-decoration:none;transition:color .15s}.loader-dashboard-link:hover{color:var(--navy)}.paywall-wrap{width:100%;max-width:560px}.paywall-stats{display:flex;gap:12px;margin-bottom:20px}.paywall-stat{flex:1;background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 16px;text-align:center}.paywall-stat-num{font-size:26px;font-weight:800;letter-spacing:-0.5px;font-family:"IBM Plex Mono",monospace}.paywall-stat-label{font-size:11px;color:var(--text-soft);margin-top:2px}.paywall-stat.danger .paywall-stat-num{color:var(--red)}.paywall-stat.warn .paywall-stat-num{color:var(--orange)}.paywall-stat.ok .paywall-stat-num{color:var(--green)}.paywall-preview{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;position:relative;margin-bottom:20px}.paywall-preview-content{padding:16px;filter:blur(4px);user-select:none;pointer-events:none}.preview-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.preview-row:last-child{border-bottom:none}.preview-lib{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--text);flex:1}.preview-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.preview-badge.red{background:var(--red-bg);color:var(--red)}.preview-badge.orange{background:var(--orange-bg);color:var(--orange)}.preview-badge.green{background:var(--green-bg);color:var(--green)}.paywall-overlay{position:absolute;inset:0;background:linear-gradient(to bottom, rgba(248, 249, 250, 0) 0%, rgba(248, 249, 250, 0.7) 30%, rgba(248, 249, 250, 0.97) 60%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:20px}.paywall-lock{width:44px;height:44px;background:#fff;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.08);margin-bottom:10px}.paywall-lock-label{font-size:13px;font-weight:600;color:var(--text);text-align:center;margin-bottom:4px}.paywall-lock-sub{font-size:12px;color:var(--text-soft);text-align:center}.pricing-cards{display:flex;gap:10px;width:100%;margin-bottom:14px}.pricing-card{flex:1;background:#fff;border:2px solid var(--border);border-radius:12px;padding:16px 14px;cursor:pointer;transition:all .2s;text-align:center;position:relative}.pricing-card:hover{border-color:var(--navy);transform:translateY(-1px)}.pricing-card.featured{border-color:var(--navy);background:var(--navy);color:#fff;box-shadow:0 6px 20px rgba(30,58,95,.25)}.pricing-card.featured:hover{box-shadow:0 10px 28px rgba(30,58,95,.3)}.pricing-badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--orange);color:#fff;font-size:10px;font-weight:700;padding:2px 10px;border-radius:10px;letter-spacing:.3px;white-space:nowrap}.pricing-name{font-size:13px;font-weight:700;margin-bottom:6px}.pricing-price{font-size:22px;font-weight:800;font-family:"IBM Plex Mono",monospace;letter-spacing:-0.5px;margin-bottom:2px}.pricing-card.featured .pricing-price{color:#fff}.pricing-period{font-size:10.5px;color:var(--text-soft);margin-bottom:10px}.pricing-card.featured .pricing-period{color:hsla(0,0%,100%,.6)}.pricing-features{list-style:none;text-align:left;font-size:11.5px;color:var(--text-mid);display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.pricing-card.featured .pricing-features{color:hsla(0,0%,100%,.8)}.pricing-features li{display:flex;align-items:center;gap:5px}.pricing-cta{width:100%;padding:8px 0;border-radius:7px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s;font-family:"Inter",sans-serif;border:1.5px solid var(--navy);color:var(--navy);background:rgba(0,0,0,0)}.pricing-cta:hover{background:var(--navy);color:#fff}.pricing-card.featured .pricing-cta{background:#fff;color:var(--navy);border-color:#fff}.pricing-card.featured .pricing-cta:hover{background:hsla(0,0%,100%,.9)}.runner-wrap{width:100%;max-width:540px}.runner-intro{display:flex;align-items:flex-start;gap:12px;padding:14px 18px;background:#eff4fb;border:1px solid #c3d4ec;border-radius:10px;margin-bottom:20px;font-size:13px;color:var(--navy);line-height:1.5}.runner-intro svg{flex-shrink:0;margin-top:1px}.runner-section-title{font-size:11px;font-weight:700;color:var(--text-mid);text-transform:uppercase;letter-spacing:.7px;margin-bottom:8px}.code-block{position:relative;background:#0d1117;border-radius:10px;overflow:hidden;margin-bottom:16px}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#161b22;border-bottom:1px solid #30363d}.code-block-lang{font-size:11px;font-weight:600;color:#8b949e;font-family:"IBM Plex Mono",monospace;letter-spacing:.3px}.code-copy-btn{display:flex;align-items:center;gap:5px;padding:3px 10px;background:#21262d;border:1px solid #30363d;border-radius:5px;font-size:11px;font-weight:500;color:#8b949e;cursor:pointer;font-family:"Inter",sans-serif;transition:all .15s}.code-copy-btn:hover{background:#30363d;color:#c9d1d9;border-color:#8b949e}.code-copy-btn.copied{color:var(--green);border-color:var(--green);background:rgba(56,161,105,.1)}.code-block-body{padding:14px 16px;overflow-x:auto}.code-block-body pre{margin:0;font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:#c9d1d9;line-height:1.6;white-space:pre}.code-line-comment{color:#8b949e}.code-line-key{color:#79c0ff}.code-line-val{color:#a5d6ff}.code-line-str{color:#a8d8a8}.code-line-var{color:#ffa657}.runner-verify-badge{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--green-bg);border:1px solid var(--green-border);border-radius:8px;font-size:13px;color:var(--green);font-weight:500;margin-bottom:20px}@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.stripe-layout{display:grid;grid-template-columns:320px 1fr;gap:32px;width:100%;max-width:860px;margin:0 auto;align-items:start}.stripe-summary{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:20px}.stripe-summary-header{display:flex;align-items:center;justify-content:space-between}.stripe-brand{display:flex;align-items:center;gap:9px}.stripe-brand-name{font-weight:700;font-size:15px;color:var(--navy)}.stripe-order-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft)}.stripe-plan-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 16px}.stripe-plan-card .plan-name{font-weight:700;font-size:14px;color:var(--navy);display:flex;align-items:center;gap:8px}.stripe-plan-card .plan-badge{font-size:10px;font-weight:700;background:var(--navy);color:#fff;padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:.4px}.stripe-plan-card .plan-price-line{margin-top:6px;font-size:22px;font-weight:700;color:var(--text)}.stripe-plan-card .plan-price-line small{font-size:13px;font-weight:400;color:var(--text-soft)}.stripe-plan-card .plan-features{margin-top:10px;list-style:none;display:flex;flex-direction:column;gap:5px}.stripe-plan-card .plan-features li{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-mid)}.stripe-order-lines{display:flex;flex-direction:column;gap:9px}.stripe-order-line{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text-mid)}.stripe-order-line--tax{font-size:12px;color:var(--text-soft)}.stripe-order-divider{border-top:1px solid var(--border);padding:0;margin:2px 0}.stripe-order-total{font-weight:700;font-size:14px;color:var(--text)}.stripe-reassurance{display:flex;flex-direction:column;gap:7px;padding-top:4px}.stripe-reassurance-item{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-soft)}.stripe-powered{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text-soft);padding-top:4px;border-top:1px solid var(--border)}.stripe-form-col{background:#fff;border:1px solid var(--border);border-radius:14px;padding:28px 28px 24px;display:flex;flex-direction:column;gap:18px}.stripe-form-title{font-size:16px;font-weight:700;color:var(--navy);padding-bottom:4px;border-bottom:1px solid var(--border);margin-bottom:2px}.stripe-field-group{display:flex;flex-direction:column;gap:6px}.stripe-label{font-size:12.5px;font-weight:600;color:var(--text-mid);display:flex;align-items:center;gap:7px}.stripe-label-optional{font-weight:400;font-size:11.5px;color:var(--text-soft);background:var(--bg);padding:1px 7px;border-radius:4px;border:1px solid var(--border)}.stripe-input-wrap{display:flex;align-items:center;gap:9px;border:1.5px solid var(--border);border-radius:8px;padding:0 12px;height:42px;background:#fff;transition:border-color .15s,box-shadow .15s;position:relative}.stripe-input-wrap:focus-within,.stripe-input-wrap.focused{border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,58,95,.08)}.stripe-input-prefilled{background:var(--bg);cursor:default}.stripe-input-text{font-size:13.5px;color:var(--text-mid);flex:1}.stripe-card-input{flex:1;border:none;outline:none;background:rgba(0,0,0,0);font-size:14px;font-family:"IBM Plex Mono",monospace;color:var(--text);letter-spacing:.5px}.stripe-card-input::placeholder{color:var(--border-mid);font-family:"Inter",sans-serif;letter-spacing:0}.stripe-card-number{padding-right:8px}.stripe-card-brands{display:flex;gap:5px;align-items:center;flex-shrink:0}.stripe-select-wrap{padding-right:28px}.stripe-select{appearance:none;cursor:pointer;font-family:"Inter",sans-serif !important;letter-spacing:0 !important}.stripe-card-block{display:flex;flex-direction:column;gap:0}.stripe-pay-btn{display:flex;align-items:center;justify-content:center;gap:9px;background:var(--navy);color:#fff;border:none;border-radius:9px;height:48px;width:100%;font-family:"Inter",sans-serif;font-size:15px;font-weight:600;cursor:pointer;margin-top:4px;transition:background .15s,transform .1s}.stripe-pay-btn:hover{background:var(--navy-dark)}.stripe-pay-btn:active{transform:scale(0.99)}.stripe-pay-btn.loading{opacity:.7;pointer-events:none}.stripe-legal{font-size:11.5px;color:var(--text-soft);line-height:1.6;text-align:center}.ob-spinner{width:16px;height:16px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:ob-spin .7s linear infinite}.payment-confirm-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:460px;margin:0 auto;text-align:center;padding:16px 0 24px}.payment-confirm-icon{width:68px;height:68px;background:var(--green-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--green-border)}.payment-confirm-title{font-size:22px;font-weight:700;color:var(--text)}.payment-confirm-sub{font-size:14px;color:var(--text-mid);line-height:1.6}.payment-confirm-receipt{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-top:4px}.receipt-line{display:flex;justify-content:space-between;align-items:center;padding:11px 18px;font-size:13px;color:var(--text-mid);border-bottom:1px solid var(--border)}.receipt-line:last-child{border-bottom:none}.receipt-line span:last-child{font-weight:600;color:var(--text)}.btn-primary:focus-visible,.btn-oauth:focus-visible,.stripe-pay-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.token-input:focus-visible,.repo-search:focus-visible,.stripe-card-input:focus-visible{outline:none}.onboarding .btn-primary{width:100%;height:42px;background:var(--navy);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;font-family:"Inter",sans-serif;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.onboarding .btn-primary:hover{background:var(--navy-light);transform:translateY(-1px);box-shadow:0 4px 14px rgba(30,58,95,.3)}.onboarding .btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.repo-list::-webkit-scrollbar{width:5px}.repo-list::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:3px}.btn-step1-next{width:100% !important;max-width:440px !important;margin-bottom:12px !important;opacity:.4;cursor:not-allowed}.btn-step1-next:disabled{opacity:.4;cursor:not-allowed}.btn-step3-next{width:100% !important;max-width:480px !important;margin-bottom:12px !important;opacity:.4;cursor:not-allowed}.btn-step3-next:disabled{opacity:.4;cursor:not-allowed}.btn-token-validate{width:100% !important;margin-top:12px !important;height:40px !important;font-size:13.5px !important}.btn-step4-next{width:100% !important;max-width:540px !important;margin-bottom:12px !important}.btn-step2-continue{width:100% !important;height:42px !important;font-size:14px !important}.btn-step8-dashboard{width:100% !important;max-width:420px !important;margin-top:8px !important}.badge-recommended{font-size:10px;background:#eff4fb;color:var(--navy);padding:2px 7px;border-radius:4px;font-weight:600;letter-spacing:.3px;text-transform:none}.config-section-hidden{display:none}.config-section-visible{display:block}.token-selfhosted-notice{display:none;align-items:flex-start;gap:9px;padding:10px 14px;background:#fff8f0;border:1px solid #fbd38d;border-radius:8px;margin-bottom:14px;font-size:12.5px;color:#744210;line-height:1.5}.token-selfhosted-notice.visible{display:flex}.token-selfhosted-notice-icon{flex-shrink:0;margin-top:1px}.token-selfhosted-notice-text code{font-family:"IBM Plex Mono",monospace;font-size:11px;background:rgba(0,0,0,.06);padding:1px 4px;border-radius:3px}.conn-name-section{display:none;margin-top:16px;width:100%;max-width:440px}.conn-name-section.visible{display:block}.conn-name-confirm{display:flex;align-items:center;gap:8px;margin-bottom:14px}.conn-name-confirm-icon{color:var(--green)}.conn-name-confirm-text{font-size:13px;font-weight:600;color:var(--green)}.conn-name-label{font-size:12px;font-weight:600;color:var(--text-mid);display:block;margin-bottom:6px}.conn-name-input{width:100%;padding:9px 12px;border:1.5px solid var(--border-mid);border-radius:7px;font-size:13px;color:var(--text);outline:none;font-family:"Inter",sans-serif;margin-bottom:6px}.conn-name-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,58,95,.1)}.conn-name-help{font-size:12px;color:var(--text-soft);margin-bottom:16px}.back-to-platform{margin-top:8px}.config-box-padding{padding:18px 20px}.field-label{font-size:12px;font-weight:600;color:var(--text-mid);display:block;margin-bottom:6px}.field-wrap{position:relative}.field-input{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;font-family:"Inter",sans-serif;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.field-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,58,95,.1)}.field-input::placeholder{color:var(--text-soft)}.svg-flex-shrink{flex-shrink:0;margin-top:1px}.svg-code-indicator{font-family:"IBM Plex Mono",monospace;font-size:11px;background:var(--bg);border:1px solid var(--border);padding:1px 5px;border-radius:4px;color:var(--navy)}.code-wrapper{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px}.code-grid-header{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--border);background:var(--bg)}.code-grid-cell{padding:8px 14px;font-size:11px;font-weight:700;color:var(--text-mid);text-transform:uppercase;letter-spacing:.5px}.code-grid-cell-border{border-left:1px solid var(--border)}.code-grid-body{display:grid;grid-template-columns:1fr 1fr}.code-grid-row{padding:11px 14px;font-size:12.5px;border-left:1px solid var(--border)}.code-grid-row:last-child{border-left:none}.code-grid-cell-key{font-family:"IBM Plex Mono",monospace;color:var(--navy);font-weight:600}.code-grid-cell-value{color:var(--text-soft);font-style:italic}.code-grid-cell-value code{font-family:"IBM Plex Mono",monospace;font-size:11px;background:var(--bg);border:1px solid var(--border);padding:1px 4px;border-radius:3px}.stripe-card-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.stripe-card-expiry-wrap{position:relative}.stripe-card-cvc-wrap{position:relative}.stripe-card-cvc-wrap svg{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.4}.stripe-card-cvc-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.4}.stripe-field-email-icon{flex-shrink:0;color:var(--text-soft)}.stripe-field-email-check{flex-shrink:0;margin-left:auto}.stripe-country-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none}.paywall-header-spacing{margin-bottom:16px}.runner-icon-wrap{flex-shrink:0;margin-top:1px}.runner-link{color:var(--navy);font-weight:600;text-decoration:underline;text-underline-offset:2px}.runner-link:hover{text-decoration:underline}.code-inline{font-family:"IBM Plex Mono",monospace;font-size:11px}.code-inline-standard{font-family:"IBM Plex Mono",monospace;font-size:11px}.accent-bold{font-weight:600}.accent-strong strong{font-weight:600}.d-none{display:none}.d-flex{display:flex}.d-grid{display:grid}.d-block{display:block}.d-inline-flex{display:inline-flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-center{align-items:center;justify-content:center}.flex-center-align{align-items:center}.flex-center-justify{justify-content:center}.flex-space-between{justify-content:space-between}.flex-start-align{align-items:flex-start}.flex-icon-label{display:flex;align-items:center;gap:8px}.gap-4{gap:4px}.gap-5{gap:5px}.gap-6{gap:6px}.gap-7{gap:7px}.gap-8{gap:8px}.gap-9{gap:9px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-14{gap:14px}.gap-16{gap:16px}.gap-18{gap:18px}.gap-20{gap:20px}.gap-24{gap:24px}.gap-32{gap:32px}.p-0{padding:0}.p-2{padding:2px}.p-4{padding:4px}.p-8{padding:8px}.p-10{padding:10px}.p-12{padding:12px}.p-14{padding:14px}.p-16{padding:16px}.p-18{padding:18px}.p-20{padding:20px}.p-24{padding:24px}.p-28{padding:28px}.px-12{padding-left:12px;padding-right:12px}.px-14{padding-left:14px;padding-right:14px}.px-16{padding-left:16px;padding-right:16px}.px-18{padding-left:18px;padding-right:18px}.px-20{padding-left:20px;padding-right:20px}.py-8{padding-top:8px;padding-bottom:8px}.py-10{padding-top:10px;padding-bottom:10px}.py-11{padding-top:11px;padding-bottom:11px}.py-12{padding-top:12px;padding-bottom:12px}.py-14{padding-top:14px;padding-bottom:14px}.py-18{padding-top:18px;padding-bottom:18px}.py-24{padding-top:24px;padding-bottom:24px}.pt-1{padding-top:1px}.pt-2{padding-top:2px}.pt-4{padding-top:4px}.pt-6{padding-top:6px}.pb-4{padding-bottom:4px}.pb-12{padding-bottom:12px}.pb-14{padding-bottom:14px}.pb-16{padding-bottom:16px}.pb-20{padding-bottom:20px}.m-0{margin:0}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.mt-1{margin-top:1px}.mt-2{margin-top:2px}.mt-3{margin-top:3px}.mt-4{margin-top:4px}.mt-6{margin-top:6px}.mt-8{margin-top:8px}.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-14{margin-top:14px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mt-24{margin-top:24px}.mt-28{margin-top:28px}.mb-2{margin-bottom:2px}.mb-4{margin-bottom:4px}.mb-6{margin-bottom:6px}.mb-7{margin-bottom:7px}.mb-8{margin-bottom:8px}.mb-10{margin-bottom:10px}.mb-12{margin-bottom:12px}.mb-14{margin-bottom:14px}.mb-16{margin-bottom:16px}.mb-18{margin-bottom:18px}.mb-20{margin-bottom:20px}.mb-24{margin-bottom:24px}.mb-28{margin-bottom:28px}.ml-auto{margin-left:auto}.mr-12{margin-right:12px}.w-full{width:100%}.w-fit{width:fit-content}.max-w-34{max-width:34px}.max-w-420{max-width:420px}.max-w-440{max-width:440px}.max-w-460{max-width:460px}.max-w-480{max-width:480px}.max-w-520{max-width:520px}.max-w-540{max-width:540px}.max-w-560{max-width:560px}.max-w-860{max-width:860px}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.text-center{text-align:center}.text-left{text-align:left}.z-1{z-index:1}.font-size-9{font-size:9.5px}.font-size-10{font-size:10px}.font-size-11{font-size:11px}.font-size-11-5{font-size:11.5px}.font-size-12{font-size:12px}.font-size-12-5{font-size:12.5px}.font-size-13{font-size:13px}.font-size-13-5{font-size:13.5px}.font-size-14{font-size:14px}.font-size-15{font-size:15px}.font-size-16{font-size:16px}.font-size-22{font-size:22px}.font-size-26{font-size:26px}.font-weight-400{font-weight:400}.font-weight-500{font-weight:500}.font-weight-600{font-weight:600}.font-weight-700{font-weight:700}.font-weight-800{font-weight:800}.font-mono{font-family:"IBM Plex Mono",monospace}.font-sans{font-family:"Inter",sans-serif}.line-height-1-2{line-height:1.2}.line-height-1-4{line-height:1.4}.line-height-1-5{line-height:1.5}.line-height-1-6{line-height:1.6}.letter-spacing-neg-03{letter-spacing:-0.3px}.letter-spacing-neg-04{letter-spacing:-0.4px}.letter-spacing-neg-05{letter-spacing:-0.5px}.letter-spacing-03{letter-spacing:.3px}.letter-spacing-04{letter-spacing:.4px}.letter-spacing-05{letter-spacing:.5px}.letter-spacing-06{letter-spacing:.6px}.letter-spacing-07{letter-spacing:.7px}.text-default{color:var(--text)}.text-mid{color:var(--text-mid)}.text-soft{color:var(--text-soft)}.text-green{color:var(--green)}.text-navy{color:var(--navy)}.text-white{color:#fff}.bg-white{background:#fff}.bg-card{background:var(--bg-card)}.bg-light{background:var(--bg)}.bg-navy{background:var(--navy)}.bg-orange-light{background:#fff8f0}.bg-green-light{background:var(--green-bg)}.bg-blue-light{background:#eff4fb}.border-none{border:none}.border-standard{border:1px solid var(--border)}.border-2{border:2px solid var(--border)}.border-mid{border:1px solid var(--border-mid)}.border-1-5{border:1.5px solid var(--border)}.border-1-5-mid{border:1.5px solid var(--border-mid)}.border-green{border:1px solid var(--green-border)}.border-orange{border:1px solid #fbd38d}.border-b{border-bottom:1px solid var(--border)}.border-l{border-left:1px solid var(--border)}.border-l-mid{border-left:1px solid var(--border-mid)}.border-t{border-top:1px solid var(--border)}.border-radius-3{border-radius:3px}.border-radius-4{border-radius:4px}.border-radius-5{border-radius:5px}.border-radius-6{border-radius:6px}.border-radius-7{border-radius:7px}.border-radius-8{border-radius:8px}.border-radius-9{border-radius:9px}.border-radius-10{border-radius:10px}.border-radius-12{border-radius:12px}.border-radius-14{border-radius:14px}.border-radius-18{border-radius:18px}.border-radius-24{border-radius:24px}.border-radius-50{border-radius:50%}.shadow-sm{box-shadow:0 1px 2px rgba(0,0,0,.05)}.shadow-md{box-shadow:0 4px 6px rgba(0,0,0,.1)}.shadow-lg{box-shadow:0 10px 15px rgba(0,0,0,.1)}.shadow-dark-sm{box-shadow:0 4px 12px rgba(0,0,0,.08)}.shadow-dark-md{box-shadow:0 4px 12px rgba(0,0,0,.2)}.shadow-dark-lg{box-shadow:0 8px 24px rgba(30,58,95,.1)}.shadow-navy-lg{box-shadow:0 10px 28px rgba(30,58,95,.3)}.h-40{height:40px}.h-42{height:42px}.h-44{height:44px}.h-48{height:48px}.h-68{height:68px}.h-72{height:72px}.max-h-248{max-height:248px}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-auto{overflow-x:auto}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.appearance-none{appearance:none}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.user-select-none{user-select:none}.whitespace-nowrap{white-space:nowrap}.overflow-hidden{overflow:hidden}.text-overflow-ellipsis{text-overflow:ellipsis}.pointer-events-none{pointer-events:none}.transition-all{transition:all .15s}.transition-colors{transition:border-color .15s,box-shadow .15s}.transition-transform{transition:transform .2s}.scale-99{transform:scale(0.99)}.translate-y-neg-1{transform:translateY(-1px)}.translate-y-neg-2{transform:translateY(-2px)}.translate-y-50{transform:translateY(-50%)}.translate-x-neg-50{transform:translateX(-50%)}.opacity-4{opacity:.4}.opacity-6{opacity:.6}.opacity-7{opacity:.7}.grid-cols-2{grid-template-columns:1fr 1fr}.svg-icon-14{width:14px;height:14px}.svg-icon-16{width:16px;height:16px}.svg-icon-18{width:18px;height:18px}.stripe-card-input-wrap{display:flex;align-items:center;border:1.5px solid var(--border);border-radius:8px;padding:0 12px;background:#fff;transition:border-color .15s,box-shadow .15s}.stripe-card-input-wrap:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,58,95,.08)}.stripe-field-icon{flex-shrink:0;color:var(--text-soft)}.stripe-field-text{font-size:13.5px;color:var(--text-mid);flex:1}.stripe-field-check{flex-shrink:0;margin-left:auto;color:var(--green)}.badge-orange-light{font-size:10px;background:#eff4fb;color:var(--navy);padding:2px 7px;border-radius:4px;font-weight:600;letter-spacing:.3px;text-transform:none}.warning-notice{display:flex;align-items:flex-start;gap:9px;padding:10px 14px;background:#fff8f0;border:1px solid #fbd38d;border-radius:8px;font-size:12.5px;color:#744210;line-height:1.5}.warning-notice svg{flex-shrink:0;margin-top:1px}.warning-notice-text strong{font-weight:600}.warning-notice-text code{font-family:"IBM Plex Mono",monospace;font-size:11px;background:rgba(0,0,0,.06);padding:1px 4px;border-radius:3px}.btn-disabled-state{opacity:.4;cursor:not-allowed}.btn-disabled-state:hover,.btn-disabled-state:active{opacity:.4;transform:none;box-shadow:none}.flex-icon-text{display:flex;align-items:center;gap:8px}.flex-icon-text svg{flex-shrink:0}.code-inline-tag{font-family:"IBM Plex Mono",monospace;font-size:11px;background:var(--bg);border:1px solid var(--border);padding:1px 5px;border-radius:4px;color:var(--navy)}.code-inline-standard{font-family:"IBM Plex Mono",monospace;font-size:11px;background:var(--bg);border:1px solid var(--border);padding:1px 4px;border-radius:3px}.toolbar{display:flex;align-items:center;gap:12px;padding:14px 28px;border-bottom:1px solid var(--border);flex-wrap:wrap}.toolbar form{display:contents}.filter-group{display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:3px;flex-wrap:wrap}.filter-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:5px;font-size:12px;font-weight:500;color:var(--text-mid);cursor:pointer;text-decoration:none;transition:all .15s;border:none;background:rgba(0,0,0,0);font-family:"Inter",sans-serif;white-space:nowrap}.filter-btn:hover{background:#fff;color:var(--text)}.filter-btn.active{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}.filter-count{font-size:10px;font-weight:700;padding:1px 5px;border-radius:9px;line-height:1.5;margin-left:3px}.filter-btn.active .filter-count{background:rgba(30,58,95,.2);color:var(--navy)}.filter-btn:not(.active) .filter-count{background:var(--bg);color:var(--text-soft)}.filter-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;display:inline-block}.filter-dot-green{background:var(--green)}.filter-dot-orange{background:var(--orange)}.filter-dot-red{background:var(--red)}.toolbar-right{margin-left:auto;display:flex;gap:8px}.icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border);border-radius:7px;cursor:pointer;color:var(--text-mid);transition:all .15s;padding:0;font-family:inherit}.icon-btn:hover{border-color:var(--border-mid);color:var(--text)}.sort-wrap{position:relative}.sort-menu{display:none;position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.1);min-width:210px;z-index:100;padding:6px;animation:sortMenuIn .15s ease}.sort-menu.open{display:block}@keyframes sortMenuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sort-menu-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-soft);padding:6px 10px 4px}.sort-menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;border:none;background:none;border-radius:6px;font-size:13px;color:var(--text);cursor:pointer;transition:background .12s;font-family:inherit;text-align:left}.sort-menu-item:hover{background:var(--bg)}.sort-menu-item.active{background:#ebf4ff;color:#2b6cb0;font-weight:600}.sort-dir{font-size:11px;color:var(--text-soft);font-weight:400}.sort-menu-item.active .sort-dir{color:#2b6cb0}.projects-grid{padding:20px 28px 48px;display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:16px}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:20px;cursor:pointer;transition:all .18s ease;position:relative;overflow:hidden;text-decoration:none;display:block;color:inherit;animation:projectCardIn .3s ease both}.project-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;opacity:0;transition:opacity .18s}.project-card.status-faille::before{background:var(--red)}.project-card.status-update::before{background:var(--orange)}.project-card.status-ok::before{background:var(--green)}.project-card:hover{border-color:var(--border-mid);box-shadow:0 4px 20px rgba(0,0,0,.07);transform:translateY(-2px)}.project-card:hover::before{opacity:1}.project-card:hover .card-action{opacity:1}.project-card:nth-child(1){animation-delay:.05s}.project-card:nth-child(2){animation-delay:.1s}.project-card:nth-child(3){animation-delay:.15s}.project-card:nth-child(4){animation-delay:.2s}.project-card:nth-child(5){animation-delay:.25s}.project-card:nth-child(6){animation-delay:.3s}@keyframes projectCardIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.card-title-group{flex:1;min-width:0}.card-name{font-family:"IBM Plex Mono",monospace;font-size:14.5px;font-weight:500;color:var(--text);letter-spacing:-0.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px}.card-repo{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text-soft)}.repo-icon{width:13px;height:13px;flex-shrink:0}.card-badge{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.2px;flex-shrink:0;margin-left:10px}.card-badge .badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.badge-faille{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}.badge-faille .badge-dot{background:var(--red);animation:badgePulse 2s ease-in-out infinite}.badge-update{background:var(--orange-bg);color:var(--orange);border:1px solid var(--orange-border)}.badge-update .badge-dot{background:var(--orange)}.badge-ok{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.badge-ok .badge-dot{background:var(--green)}.badge-info{background:var(--bg);color:var(--text-soft);border:1px solid var(--border)}.badge-info .badge-dot{background:var(--text-soft)}@keyframes badgePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.card-divider{height:1px;background:var(--border);margin:0 0 14px}.card-stats{display:flex;gap:20px;margin-bottom:14px}.card-stat-value{font-size:20px;font-weight:700;color:var(--text);letter-spacing:-0.5px;line-height:1.1}.card-stat-label{font-size:10.5px;color:var(--text-soft);margin-top:2px;white-space:nowrap}.card-footer{display:flex;align-items:center;justify-content:space-between}.card-time{font-size:11.5px;color:var(--text-soft);display:flex;align-items:center;gap:4px}.card-action{font-size:12px;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:3px;opacity:0;transition:opacity .18s}.alert-icon{width:18px;height:18px;background:hsla(0,0%,100%,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.alert-cta{margin-left:4px;background:hsla(0,0%,100%,.2);color:#fff;border:1px solid hsla(0,0%,100%,.3);padding:4px 12px;border-radius:6px;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s;white-space:nowrap}.alert-cta:hover{background:hsla(0,0%,100%,.35)}.alert-close{background:none;border:none;cursor:pointer;color:#fff;opacity:.7;padding:4px;display:flex;align-items:center;margin-left:auto}.alert-close:hover{opacity:1}@media(max-width: 768px){.projects-grid{padding:16px 16px 32px;grid-template-columns:1fr}.toolbar{padding:12px 16px}}.page-header{padding:28px 28px 0;border-bottom:1px solid var(--border);padding-bottom:20px}.breadcrumb{font-size:12px;color:var(--text-soft);display:flex;align-items:center;gap:6px;margin-bottom:12px}.breadcrumb a{color:var(--text-soft);text-decoration:none;transition:color .15s}.breadcrumb a:hover{color:var(--navy)}.breadcrumb .breadcrumb-sep{opacity:.4}.breadcrumb .breadcrumb-current{color:var(--text-mid);font-weight:500}.header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.title-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.page-title{font-family:"IBM Plex Mono",monospace;font-size:22px;font-weight:600;color:var(--text);letter-spacing:-0.5px}.title-badge{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11.5px;font-weight:600;background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}.title-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--red);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.header-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.meta-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-soft)}.meta-item a{color:var(--navy);text-decoration:none;font-weight:500;transition:opacity .15s}.meta-item a:hover{opacity:.7}.meta-item .meta-sep{color:var(--border-mid)}.header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.stats-band{margin:20px 28px 0;display:grid;grid-template-columns:repeat(4, 1fr);gap:12px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px 20px;display:flex;align-items:center;gap:14px;animation:fadeInUp .3s ease both}.stat-card:nth-child(1){animation-delay:.05s}.stat-card:nth-child(2){animation-delay:.1s}.stat-card:nth-child(3){animation-delay:.15s}.stat-card:nth-child(4){animation-delay:.2s}.stat-card.critical{border-color:var(--red-border);background:var(--red-bg)}@keyframes fadeInUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stat-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon.gray{background:#edf2f7}.stat-icon.green{background:var(--green-bg)}.stat-icon.orange{background:var(--orange-bg)}.stat-icon.red{background:var(--red-bg)}.stat-value{font-size:24px;font-weight:700;letter-spacing:-0.5px;line-height:1}.stat-label{font-size:11px;color:var(--text-soft);margin-top:3px}.stat-card.critical .stat-label{color:var(--red);opacity:.8}.page-tabs{display:flex;gap:0;padding:0 28px;border-bottom:1px solid var(--border);background:#fff}.page-tab{display:flex;align-items:center;gap:6px;padding:14px 18px;font-size:13.5px;font-weight:500;color:var(--text-soft);cursor:pointer;border:none;background:none;border-bottom:2px solid rgba(0,0,0,0);margin-bottom:-1px;transition:all .15s;font-family:"Inter",sans-serif}.page-tab:hover{color:var(--text-mid)}.page-tab.active{color:var(--navy);border-bottom-color:var(--navy);font-weight:600}.tab-panel{display:none}.tab-panel.active{display:block}.content{padding:20px 28px 48px;display:flex;flex-direction:column;gap:20px}.section-title{font-size:13px;font-weight:700;color:var(--text-mid);letter-spacing:.5px;text-transform:uppercase;display:flex;align-items:center;gap:8px;margin-bottom:12px}.section-title .section-title-count{font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px;background:var(--red);color:#fff}.vuln-list{display:flex;flex-direction:column;gap:10px}.vuln-card{background:#fff;border:1px solid var(--red-border);border-left:4px solid var(--red);border-radius:0 10px 10px 0;padding:18px 20px;animation:fadeInUp .3s ease both}.vuln-card:nth-child(1){animation-delay:.1s}.vuln-card:nth-child(2){animation-delay:.2s}.vuln-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.vuln-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.vuln-lib{font-family:"IBM Plex Mono",monospace;font-size:14px;font-weight:600;color:var(--text)}.vuln-cve{font-family:"IBM Plex Mono",monospace;font-size:11px;font-weight:500;color:var(--red-deep);background:var(--red-bg);border:1px solid var(--red-border);padding:2px 8px;border-radius:4px}.vuln-severity{font-size:11px;font-weight:700;color:#fff;background:var(--red);padding:2px 8px;border-radius:4px;letter-spacing:.3px}.vuln-desc{font-size:13px;color:var(--text-mid);line-height:1.5;margin-bottom:12px}.vuln-fix{display:flex;align-items:center;gap:8px;padding:9px 14px;background:#f0fff4;border:1px solid #c6f6d5;border-radius:7px;font-size:12.5px}.vuln-fix-label{color:var(--text-soft)}.vuln-fix-action{font-weight:600;color:var(--green)}.vuln-fix-version{margin-left:auto;font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;color:var(--green);background:#fff;border:1px solid var(--green-border);padding:3px 10px;border-radius:5px}.table-wrap{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.table-toolbar{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search-wrap{position:relative;flex:1;min-width:180px;max-width:280px}.search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-soft);pointer-events:none}.search-input{width:100%;padding:6px 10px 6px 32px;border:1px solid var(--border-mid);border-radius:6px;font-size:12.5px;font-family:"Inter",sans-serif;color:var(--text);background:var(--bg);outline:none;transition:border-color .15s,box-shadow .15s}.search-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,58,95,.08);background:#fff}.search-input::placeholder{color:var(--text-soft)}.lang-filter-wrap{position:relative}.lang-select{appearance:none;padding:6px 28px 6px 10px;border:1px solid var(--border-mid);border-radius:6px;font-size:12.5px;font-family:"Inter",sans-serif;color:var(--text-mid);background:var(--bg);cursor:pointer;outline:none;transition:border-color .15s}.lang-select:focus{border-color:var(--navy)}.lang-filter-wrap::after{content:"";position:absolute;right:10px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid rgba(0,0,0,0);border-right:4px solid rgba(0,0,0,0);border-top:5px solid var(--text-soft);pointer-events:none}.table-filters{display:flex;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:3px;margin-left:auto}.tf-btn{padding:4px 10px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;border:none;background:rgba(0,0,0,0);color:var(--text-mid);font-family:"Inter",sans-serif;white-space:nowrap}.tf-btn:hover{background:#fff}.tf-btn.active{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}.table-count-label{font-size:12.5px;color:var(--text-soft);white-space:nowrap}table{width:100%;border-collapse:collapse}thead th{padding:10px 20px;text-align:left;font-size:11px;font-weight:600;color:var(--text-soft);text-transform:uppercase;letter-spacing:.5px;background:#fafbfc;border-bottom:1px solid var(--border);white-space:nowrap;user-select:none}tbody tr{border-bottom:1px solid var(--border);transition:background .12s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#fafbfc}tbody tr.row-faille{background:#fff8f8}tbody tr.row-faille:hover{background:#ffefef}tbody td{padding:11px 20px;font-size:13.5px;color:var(--text-mid);vertical-align:middle}.td-lib{font-family:"IBM Plex Mono",monospace;font-size:13px;font-weight:500;color:var(--text)}.td-lang-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:4px;font-size:10.5px;font-weight:600;letter-spacing:.2px}.td-lang-badge.js{background:#fffbeb;color:#b7791f;border:1px solid #faf089}.td-lang-badge.ruby{background:#fff5f5;color:#c53030;border:1px solid #feb2b2}.td-lang-badge.python{background:#ebf8ff;color:#2b6cb0;border:1px solid #bee3f8}.td-version{font-family:"IBM Plex Mono",monospace;font-size:12.5px}.td-version.current{color:var(--text-mid)}.td-version.new{color:var(--navy);font-weight:500}.td-version.same{color:var(--text-soft)}.td-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:12px;font-size:11px;font-weight:600}.td-badge.faille{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}.td-badge.update{background:var(--orange-bg);color:var(--orange);border:1px solid var(--orange-border)}.td-badge.ok{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.td-badge .td-badge-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.td-badge.faille .td-badge-dot{background:var(--red)}.td-badge.update .td-badge-dot{background:var(--orange)}.td-badge.ok .td-badge-dot{background:var(--green)}.td-link{font-size:12px;font-weight:500;color:var(--navy);text-decoration:none;display:inline-flex;align-items:center;gap:4px;opacity:.7;transition:opacity .15s}.td-link:hover{opacity:1}.td-dash{color:var(--border-mid)}.no-results-row td{text-align:center;padding:32px 20px;color:var(--text-soft);font-size:13px}.no-results-icon{margin:0 auto 8px;width:32px;height:32px;background:var(--bg);border-radius:8px;display:flex;align-items:center;justify-content:center}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.export-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.card-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:13.5px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px}.card-body{padding:20px}.export-options{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.export-option{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s}.export-option:hover{border-color:var(--navy);background:var(--blue-bg)}.export-option-icon{width:32px;height:32px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.export-option-icon.pdf{background:var(--red-bg);color:var(--red)}.export-option-icon.csv{background:var(--green-bg);color:var(--green)}.export-option-icon.json{background:var(--blue-bg);color:var(--blue)}.export-option-info{flex:1}.export-option-name{font-size:13px;font-weight:600;color:var(--text)}.export-option-desc{font-size:11px;color:var(--text-soft);margin-top:2px}.export-option-arrow{color:var(--text-soft);transition:transform .15s,color .15s}.export-option:hover .export-option-arrow{transform:translateX(2px);color:var(--navy)}.history-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;grid-column:1/-1}.history-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.retention-badge{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11.5px;font-weight:500;color:var(--text-soft);background:var(--bg);border:1px solid var(--border)}.history-timeline{padding:0}.history-item{display:flex;align-items:flex-start;gap:16px;padding:16px 20px;border-bottom:1px solid var(--border);transition:background .12s;position:relative}.history-item:last-child{border-bottom:none}.history-item:hover{background:#fafbfc}.history-item.current{background:var(--blue-bg);border-bottom-color:var(--blue-border)}.history-dot-col{display:flex;flex-direction:column;align-items:center;padding-top:4px;flex-shrink:0}.history-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--navy)}.history-dot.history-dot-faille{background:var(--red);box-shadow:0 0 0 3px rgba(229,62,62,.15)}.history-dot.history-dot-update{background:var(--orange)}.history-dot.history-dot-ok{background:var(--green)}.history-dot.history-dot-current{background:var(--blue);box-shadow:0 0 0 3px rgba(49,130,206,.2)}.history-dot.history-dot-navy{background:var(--navy)}.history-connector{width:1px;flex:1;min-height:24px;background:var(--border);margin-top:4px}.history-item:last-child .history-connector{display:none}.history-body{flex:1;min-width:0}.history-top{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}.history-date{font-size:12.5px;font-weight:600;color:var(--text)}.history-current-tag{padding:1px 7px;border-radius:10px;font-size:10.5px;font-weight:600;background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-border)}.history-stats{display:flex;gap:10px;flex-wrap:wrap}.history-stat{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-soft)}.history-stat .history-stat-dot{width:6px;height:6px;border-radius:50%;background:var(--text-soft)}.history-stat.history-stat-red .history-stat-dot{background:var(--red)}.history-stat.history-stat-orange .history-stat-dot{background:var(--orange)}.history-stat.history-stat-green .history-stat-dot{background:var(--green)}.history-stat strong{font-weight:600;color:var(--text-mid)}.history-note{margin-top:6px;font-size:12px;color:var(--text-soft);display:flex;align-items:center;gap:5px}.history-delta{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.delta-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:99px;font-size:11px;font-weight:600;letter-spacing:.3px}.delta-tag.delta-tag-new{background:var(--red-bg);color:var(--red)}.delta-tag.delta-tag-fixed{background:var(--green-bg);color:var(--green)}.delta-tag.delta-tag-updated{background:var(--orange-bg);color:var(--orange)}@media(max-width: 1024px){.stats-band{grid-template-columns:repeat(2, 1fr)}.report-grid{grid-template-columns:1fr}}@media(max-width: 640px){.stats-band{grid-template-columns:1fr}.header-top{flex-direction:column}.page-tabs{padding:0 16px}.content{padding:16px 16px 32px}.stats-band{margin:16px 16px 0}}:root{--navy: #1E3A5F;--navy-dark: #152A47;--navy-light: #264875;--red: #E53E3E;--red-bg: #FFF5F5;--red-border: #FEB2B2;--red-deep: #C53030;--orange: #DD6B20;--orange-bg: #FFFAF0;--orange-border: #FEEBC8;--green: #38A169;--green-bg: #F0FFF4;--green-border: #C6F6D5;--green-dark: #276749;--blue: #3182CE;--blue-bg: #EBF8FF;--blue-border: #BEE3F8;--auto: #7C3AED;--auto-bg: #F5F3FF;--auto-border: #DDD6FE;--extra: #0D9488;--extra-bg: #F0FDFA;--extra-border: #99F6E4;--text: #1A202C;--text-mid: #4A5568;--text-soft: #718096;--bg: #F8F9FA;--bg-card: #FFFFFF;--border: #E2E8F0;--border-mid: #CBD5E0;--bg-secondary: var(--bg-card);--text-primary: var(--text);--text-secondary: var(--text-mid);--text-tertiary: var(--text-soft);--border-light: #F0F0F0;--color-primary: var(--navy);--color-success: var(--green);--color-warning: var(--orange);--color-error: var(--red);--color-info: var(--blue);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--font-family-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;--font-family-mono: 'IBM Plex Mono', 'Courier New', monospace;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 32px;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--font-weight-black: 900;--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1);--radius-none: 0;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--nav-w: 240px;--sidebar-width: 240px;--header-height: 56px;--transition-fast: 150ms ease-in-out;--transition-normal: 250ms ease-in-out;--transition-slow: 350ms ease-in-out}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg)}h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:var(--space-md)}h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:var(--space-md)}h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin-bottom:var(--space-sm)}h4,h5,h6{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm)}p{margin-bottom:var(--space-md)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary);opacity:.8}code,pre{font-family:var(--font-family-mono);font-size:var(--font-size-sm);background-color:var(--border-light);border-radius:var(--radius-sm)}code{padding:2px 6px}pre{padding:var(--space-md);overflow-x:auto;line-height:var(--line-height-normal)}button,input,select,textarea{font-family:var(--font-family-sans);font-size:var(--font-size-base)}button{cursor:pointer;border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);transition:all var(--transition-fast)}input,select,textarea{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--bg-secondary);color:var(--text-primary);transition:border-color var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(30,58,95,.1)}
