:root{--background: #f8fafc;--foreground: #0f172a;--card: #ffffff;--card-foreground: #0f172a;--muted: #f1f5f9;--muted-foreground: #64748b;--border: #e2e8f0;--input: #e2e8f0;--ring: #3b82f6;--primary: #0f172a;--primary-foreground: #f8fafc;--accent: #f1f5f9;--accent-foreground: #0f172a;--destructive: #ef4444;--warning: #f59e0b;--success: #22c55e;--radius: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh;background:var(--background)}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--primary);color:var(--primary-foreground);border-bottom:1px solid rgba(255,255,255,.08)}.app-title{font-weight:600;font-size:14px;letter-spacing:-.02em}.user-badge{display:flex;align-items:center;gap:8px;font-size:12px;color:#94a3b8}.pat-dot{width:7px;height:7px;border-radius:50%}.pat-dot-ok{background:#4ade80}.pat-dot-warn{background:var(--warning)}.pat-dot-error{background:#ef4444}.header-settings-btn{background:none;border:none;cursor:pointer;color:#94a3b8;padding:4px;display:flex;align-items:center;transition:color .15s}.header-settings-btn:hover{color:#e2e8f0}.header-profile-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:7px;margin-right:6px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#cbd5e1;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.header-profile-btn:hover{background:#ffffff1f;color:#f8fafc;border-color:#fff3}.header-profile-btn svg{opacity:.85;flex-shrink:0}.app-body{display:flex;flex:1;overflow:hidden}.sidebar{width:220px;flex-shrink:0;display:flex;flex-direction:column;background:var(--card);border-right:1px solid var(--border)}.sidebar-nav{display:flex;flex-direction:column;padding:16px 8px 8px;gap:2px;flex:1}.sidebar-btn{display:flex;align-items:center;gap:10px;padding:8px 12px;border:none;border-left:3px solid transparent;background:transparent;border-radius:0 6px 6px 0;cursor:pointer;font-size:13px;color:var(--muted-foreground);font-family:inherit;font-weight:500;transition:all .15s;text-align:left;width:100%}.sidebar-top{display:flex;flex-direction:column;gap:2px}.sidebar-bottom{display:flex;flex-direction:column;gap:2px;margin-top:auto;padding-top:8px;border-top:1px solid var(--border)}.sidebar-btn svg{flex-shrink:0}.sidebar-btn:hover{background:var(--accent);color:var(--foreground)}.sidebar-active{background:var(--accent);color:var(--foreground);border-left-color:var(--foreground);font-weight:600}.viewer-banner{display:flex;align-items:flex-start;gap:12px;padding:20px;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius);color:#92400e;font-size:13px;line-height:1.5;margin:16px}.tab-content{flex:1;overflow-y:auto;padding:24px}.tab-content>*{max-width:650px}.tab-content>.profile-page-wide{max-width:850px}.tab-content>.mig,.tab-content>.mig-page{max-width:1320px}.tab-content>.mig-page>.mig{max-width:none}.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-weight:500;font-size:13px;color:var(--foreground)}.field input,.field select,.field textarea{padding:8px 12px;border:1px solid var(--input);border-radius:var(--radius);font-size:14px;font-family:inherit;outline:none;transition:all .15s;background:var(--card);color:var(--foreground);width:100%}.field input,.field select{height:38px}.field textarea{resize:vertical;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ring);box-shadow:0 0 0 3px #3b82f614}.field input::placeholder,.field select::placeholder,.field textarea::placeholder{color:#94a3b8}.input-with-status{position:relative}.input-with-status input{padding-right:36px}.input-status{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;line-height:1;pointer-events:none}.input-status-ok{background:#d1fae5;color:#065f46}.input-status-error{background:#fee2e2;color:#991b1b}.input-status-warn{background:#fef3c7;color:#92400e}.field-error{font-size:12px;color:#991b1b;margin-top:-2px}.field-warning{font-size:12px;color:#92400e;margin-top:-2px}.label-row{display:flex;align-items:center;gap:8px}.btn-convert{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:11px;color:#1e40af;background:#dbeafe;border:1px solid #93c5fd;border-radius:4px;cursor:pointer}.btn-convert:hover{background:#bfdbfe}.btn-convert strong{font-weight:600}.checkbox-group{display:flex;flex-direction:column;gap:1px}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;padding:7px 10px;border-radius:var(--radius);transition:background .1s;color:var(--foreground)}.checkbox-label:hover{background:var(--accent)}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);border-radius:4px;flex-shrink:0}.checkbox-disabled{opacity:.55;cursor:default}.checkbox-disabled:hover{background:transparent}.checkbox-hint{font-size:11px;color:var(--muted-foreground);margin-left:auto}.site-pills{display:flex;flex-wrap:wrap;gap:8px}.site-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border:1.5px solid var(--border);border-radius:20px;background:var(--card);cursor:pointer;font-size:13px;font-family:inherit;color:var(--foreground);transition:all .15s;-webkit-user-select:none;user-select:none}.site-pill:hover{border-color:#86efac;background:#f0fdf4}.site-pill.site-pill-active{border-color:var(--success);background:#f0fdf4;color:#166534;font-weight:500}.site-pill.site-pill-disabled{opacity:.4;cursor:default}.site-pill.site-pill-disabled:hover{border-color:var(--border);background:var(--card)}.groups-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.btn-primary{padding:9px 18px;background:var(--primary);color:var(--primary-foreground);border:none;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;transition:background .15s,border-color .15s,opacity .15s;height:38px}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.4;cursor:default}.btn-loading{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.7}}.btn-secondary{padding:9px 18px;background:var(--muted);color:var(--foreground);border:none;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;transition:background .15s,border-color .15s,opacity .15s;height:38px}.btn-secondary:hover{background:var(--border)}.btn-check{padding:9px 18px;background:#eff6ff;color:#1d4ed8;border:1px solid #93c5fd;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;transition:background .15s,border-color .15s,opacity .15s;height:38px}.btn-check:hover{background:#dbeafe;border-color:#60a5fa}.btn-check:disabled{opacity:.4;cursor:default}.btn-select-all{padding:4px 10px;background:#f8fafc;color:#475569;border:1px solid #cbd5e1;border-radius:var(--radius);cursor:pointer;font-size:12px;font-family:inherit;white-space:nowrap;transition:background .15s,border-color .15s;height:38px}.btn-select-all:hover{background:#e2e8f0;border-color:#94a3b8}.btn-select-all:disabled{opacity:.4;cursor:default}.field-header{display:flex;align-items:center;gap:15px}.btn-select-all-sm{padding:2px 10px;background:#f8fafc;color:#475569;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;font-size:11.5px;font-weight:500;font-family:inherit;white-space:nowrap;line-height:1.5;transition:background .15s,border-color .15s,color .15s}.btn-select-all-sm:hover{background:#e2e8f0;border-color:#94a3b8;color:#1e293b}.btn-create-more{padding:9px 18px;background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;transition:background .15s,border-color .15s,opacity .15s;height:38px}.btn-create-more:hover{background:#dcfce7}.btn-ghost{padding:9px 18px;background:var(--card);color:var(--foreground);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;transition:background .15s,border-color .15s,opacity .15s;height:38px}.btn-ghost:hover:not(:disabled){background:var(--accent)}.btn-ghost:disabled{opacity:.4;cursor:default}.btn-danger{color:var(--destructive)!important;border-color:var(--destructive)!important}.btn-danger:hover{background:#fef2f2!important}.btn-row{display:flex;gap:8px}.link-btn{background:none;border:none;color:var(--ring);cursor:pointer;font-size:13px;text-decoration:none;padding:0;font-weight:500}.link-btn:hover{text-decoration:underline}.alert-warning{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius);font-size:13px;color:#92400e;line-height:1.5}.alert-warning a{color:var(--ring);font-weight:500;text-decoration:none}.alert-warning a:hover{text-decoration:underline}.alert-error{padding:12px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);font-size:13px;color:#991b1b;line-height:1.5}.alert-success{padding:12px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius);font-size:13px;color:#166534;line-height:1.5}.result-card{display:flex;flex-direction:column;gap:12px}.result-status{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;padding:10px;border-radius:var(--radius);text-align:center}.status-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.status-partial{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.status-failed{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.result-status-with-btn{justify-content:space-between}.result-status-with-btn>span{flex:1;text-align:center}.result-status-profile-btn{flex-shrink:0;background:#166534;color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;transition:background .15s}.result-status-profile-btn:hover{background:#14532d}.keycloak-banner{font-size:12.5px;padding:8px 12px;border-radius:var(--radius);line-height:1.4;display:flex;align-items:center;gap:12px}.keycloak-banner-text{flex:1;min-width:0}.keycloak-banner-btn{flex-shrink:0;background:#92400e;color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;transition:background .15s}.keycloak-banner-btn:hover{background:#78350f}.keycloak-exists,.keycloak-error{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.keycloak-skipped{background:var(--muted);color:var(--muted-foreground);border:1px solid var(--border)}.result-row{display:flex;align-items:center;gap:8px;font-size:13px}.result-label{font-weight:500;min-width:80px;color:var(--muted-foreground)}.email-template{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px;font-size:13px;line-height:1.6;word-break:break-word;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.email-template a{color:var(--ring)}.lang-toggle{background:var(--muted);border:1px solid var(--border);border-radius:var(--radius);padding:2px 10px;font-size:12px;font-weight:600;cursor:pointer;color:var(--muted-foreground);transition:all .15s}.lang-toggle:hover{background:var(--border);color:var(--foreground)}.site-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.site-ok,.site-fail{display:flex;align-items:flex-start;gap:8px;font-size:13px;padding:6px 10px;border-radius:6px}.site-ok{background:#f0fdf4;color:#166534}.site-fail{background:#fef2f2;color:#991b1b}.site-icon{font-weight:700}.site-error{color:#991b1b}.site-ok,.site-fail{flex-wrap:wrap}.group-results{list-style:none;margin:2px 0 0;width:100%;padding:0 0 0 20px;display:flex;flex-direction:column;gap:1px}.group-results li{font-size:12px;color:#475569}.group-results li:before{content:"→ ";color:#94a3b8}.settings{display:flex;flex-direction:column;gap:14px}.settings-user{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.settings-label{font-weight:500;color:var(--foreground);font-size:13px}.pat-badge{font-size:11px;padding:3px 10px;border-radius:12px;font-weight:500}.pat-ok{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.pat-expired{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.pat-missing{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.group-select-block{margin-top:6px;padding:10px 12px;background:var(--muted);border:1px solid var(--border);border-radius:var(--radius)}.group-site-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.group-site-label{font-weight:600;font-size:12px;color:var(--foreground)}.group-refresh-btn{background:none;border:none;cursor:pointer;font-size:14px;color:var(--muted-foreground);padding:0 2px;line-height:1;transition:color .15s}.group-refresh-btn:hover{color:var(--foreground)}.group-search{width:100%;padding:6px 10px;margin-bottom:0;border:1px solid var(--input);border-radius:var(--radius);font-size:13px;font-family:inherit;outline:none;background:var(--card);transition:all .15s;height:38px}.group-search:focus{border-color:var(--ring);box-shadow:0 0 0 3px #3b82f614}.group-checkboxes{display:flex;flex-direction:column;gap:2px;max-height:150px;overflow-y:auto}.hint{font-size:12px;color:var(--muted-foreground);margin:0}code{background:var(--muted);padding:2px 6px;border-radius:4px;font-size:12px}.loader{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--muted-foreground)}.login-screen{max-width:340px;margin:60px auto;padding:28px;background:var(--card);border-radius:12px;border:1px solid var(--border);box-shadow:0 1px 3px #0000000a,0 4px 12px #00000008}.login-screen h2{margin:0 0 10px;font-size:18px;color:var(--foreground);font-weight:600}.log-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:16px}.log-search-bar{display:flex;align-items:center;gap:8px;flex:1;padding:8px 12px;border:1px solid var(--input);border-radius:var(--radius);background:var(--card);transition:all .15s}.log-search-bar:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px #3b82f614}.log-search-bar svg{flex-shrink:0;color:var(--muted-foreground)}.log-search-bar input{flex:1;border:none;outline:none;font-size:13px;font-family:inherit;background:transparent;color:var(--foreground)}.log-search-bar input::placeholder{color:#94a3b8}.log-search-clear{background:none;border:none;cursor:pointer;color:var(--muted-foreground);font-size:16px;line-height:1;padding:0 2px}.log-search-clear:hover{color:var(--foreground)}.log-refresh-btn{flex-shrink:0;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--input);border-radius:var(--radius);cursor:pointer;color:var(--muted-foreground);transition:all .15s}.log-refresh-btn:hover{color:var(--foreground);border-color:var(--ring)}.log-refresh-spin svg{animation:spin .6s linear infinite}.log-cal-active{color:var(--ring);border-color:var(--ring);background:#3b82f60f}.log-date-filter-tag{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;padding:4px 10px;border-radius:999px;font-size:12px;background:#dbeafe;color:#1e40af}.log-date-filter-tag button{background:none;border:none;cursor:pointer;color:#1e40af;font-size:15px;line-height:1;padding:0;margin-left:2px;opacity:.7}.log-date-filter-tag button:hover{opacity:1}.kpi-bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.kpi-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--card);font-size:11.5px;font-family:inherit;font-weight:500;cursor:pointer;color:var(--muted-foreground);transition:all .15s}.kpi-pill:hover{border-color:var(--ring)}.kpi-pill-active{font-weight:600}.kpi-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.kpi-count{font-weight:700;font-variant-numeric:tabular-nums;min-width:14px;text-align:center}.cal-dropdown{position:absolute;top:100%;right:0;z-index:100;margin-top:6px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #0000001f;padding:12px;width:280px;-webkit-user-select:none;user-select:none}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cal-title{font-size:13px;font-weight:600;color:var(--foreground)}.cal-title-btn{cursor:pointer;border-radius:6px;padding:2px 8px;transition:background .12s}.cal-title-btn:hover{background:var(--muted)}.cal-dropdown-year{width:740px;right:auto;left:50%;transform:translate(-50%)}.analytics-period-wrap .cal-dropdown-year{right:0;left:auto;transform:none}.cal-year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.cal-month{background:none;border:none;cursor:pointer;font-size:13px;padding:10px 0;border-radius:8px;color:var(--foreground);transition:all .1s}.cal-month:hover:not(:disabled){background:var(--muted)}.cal-month-disabled{color:var(--border);cursor:default}.cal-month-current{font-weight:700}.cal-year-full{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 16px}.cal-mini-month-title{font-size:11px;font-weight:600;text-align:center;padding:2px 0 4px;cursor:pointer;border-radius:4px;color:var(--foreground);background:none;border:none;width:100%}.cal-mini-month-title:hover{background:var(--muted)}.cal-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0}.cal-mini-weekday{font-size:9px;color:var(--muted-foreground);text-align:center;padding:1px 0}.cal-mini-day{background:none;border:none;cursor:pointer;font-size:10px;width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:4px;color:var(--foreground);transition:all .1s;position:relative}.cal-mini-day:hover:not(:disabled){background:var(--muted)}.cal-mini-day.cal-day-disabled{color:var(--border);cursor:default}.cal-mini-day.cal-day-today{font-weight:700}.cal-mini-day.cal-day-today:after{content:"";position:absolute;bottom:1px;left:50%;transform:translate(-50%);width:3px;height:3px;border-radius:50%;background:var(--ring)}.cal-mini-day.cal-day-edge{background:var(--ring);color:#fff;font-weight:600}.cal-mini-day.cal-day-edge:hover{background:#2563eb}.cal-mini-day.cal-day-edge.cal-day-today:after{background:#fff}.cal-mini-day.cal-day-from{border-radius:4px 2px 2px 4px}.cal-mini-day.cal-day-to{border-radius:2px 4px 4px 2px}.cal-mini-day.cal-day-from.cal-day-to{border-radius:4px}.cal-mini-day.cal-day-range{background:#3b82f61f;border-radius:2px;color:var(--foreground)}.cal-mini-day.cal-day-range:hover{background:#3b82f638}.cal-nav{background:none;border:none;cursor:pointer;font-size:18px;line-height:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--muted-foreground);transition:all .12s}.cal-nav:hover{background:var(--muted);color:var(--foreground)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.cal-weekday{font-size:11px;color:var(--muted-foreground);text-align:center;padding:4px 0;font-weight:500}.cal-day{background:none;border:none;cursor:pointer;font-size:13px;width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--foreground);transition:all .1s;position:relative}.cal-day:hover:not(:disabled){background:var(--muted)}.cal-day-disabled{color:var(--border);cursor:default}.cal-day-today{font-weight:700}.cal-day-today:after{content:"";position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--ring)}.cal-day-edge{background:var(--ring);color:#fff;font-weight:600}.cal-day-edge:hover{background:#2563eb}.cal-day-edge.cal-day-today:after{background:#fff}.cal-day-from{border-radius:8px 4px 4px 8px}.cal-day-to{border-radius:4px 8px 8px 4px}.cal-day-from.cal-day-to{border-radius:8px}.cal-day-range{background:#3b82f61f;border-radius:2px;color:var(--foreground)}.cal-day-range:hover{background:#3b82f638}.cal-presets{display:flex;gap:8px;margin-top:10px}.cal-btn-preset{flex:1;padding:6px 0;border-radius:6px;font-size:11.5px;font-weight:500;cursor:pointer;border:1px solid var(--input);background:var(--card);color:var(--muted-foreground);font-family:inherit;transition:all .12s}.cal-btn-preset:hover{border-color:var(--ring);color:var(--foreground);background:var(--accent)}.timeline{display:flex;flex-direction:column}.timeline-group{margin-bottom:4px}.timeline-date{font-size:12px;font-weight:600;color:var(--muted-foreground);width:150px;margin:0 auto 18px;padding:6px 0;background:var(--card);border:1px solid var(--border);border-radius:6px;text-align:center;position:sticky;top:0;z-index:5}.timeline-item{position:relative;padding:0 0 16px 24px;min-height:48px}.timeline-line{position:absolute;left:12px;top:-16px;bottom:0;width:2px;background:var(--border)}.timeline-group>.timeline-item:first-child .timeline-line{top:6px}.timeline-item:last-child .timeline-line{bottom:auto;height:13px}.timeline-group>.timeline-item:first-child:last-child .timeline-line{display:none}.timeline-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 14px 10px;transition:box-shadow .15s}.timeline-card:hover{box-shadow:0 1px 4px #0000000f}.timeline-card-error{border-color:#fecaca;background:#fefafa}.timeline-card-partial{border-color:#fde68a;background:#fffdf7}.timeline-badge-row{position:absolute;top:-13px;left:-24px;right:0;display:flex;align-items:center;gap:6px;z-index:2}.timeline-badge{display:flex;align-items:center;gap:6px;padding:2px 10px 2px 2px;border-radius:12px;flex-shrink:0}.timeline-pills{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;height:22px;overflow:hidden;flex:1;min-width:0}.timeline-more{flex-shrink:0;position:relative;cursor:pointer;font-size:11px;color:var(--muted-foreground);font-weight:700;background:var(--muted);padding:2px 8px;border-radius:10px;border:1px solid var(--border);white-space:nowrap}.timeline-tooltip{display:none;position:absolute;top:calc(100% + 6px);right:0;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:10px;box-shadow:0 6px 18px #0000001f;z-index:100;width:max-content;min-width:200px;max-width:min(640px,calc(100vw - 40px));font-weight:400}.timeline-tooltip .timeline-pair{flex-wrap:wrap;max-width:100%}.timeline-more:hover .timeline-tooltip{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.timeline-item:has(.timeline-more:hover){z-index:50}.timeline-dot{flex-shrink:0;width:20px;height:20px;border-radius:50%;position:relative;z-index:3}.timeline-op-text{font-size:11px;font-weight:600;white-space:nowrap}.timeline-op-text+.timeline-op-text{margin-left:-3px}.timeline-card-header{display:flex;align-items:center;gap:6px;margin-bottom:4px;flex-wrap:wrap}.timeline-time-pill{flex-shrink:0;font-size:11px;font-weight:500;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;padding:2px 7px;border-radius:4px;margin-left:auto;white-space:nowrap}.timeline-target{font-weight:600;color:var(--foreground);font-size:13px}.timeline-secondary{color:var(--muted-foreground);font-weight:400;font-size:13px}.timeline-views-list{font-size:12px;color:var(--muted-foreground);font-weight:400;line-height:1.4;margin:0 0 2px;padding-left:0}.timeline-sites{position:relative;font-size:11px;color:var(--muted-foreground);background:var(--muted);padding:2px 8px;border-radius:10px;border:1px solid var(--border);white-space:nowrap}.timeline-group-tag{position:relative;font-size:11px;color:#7c3aed;background:#f5f3ff;padding:2px 8px;border-radius:10px;border:1px solid #ede9fe;white-space:nowrap}.timeline-role-tag{font-size:11px;color:#155e75;background:#cffafe;padding:2px 8px;border-radius:10px;border:1px solid #a5f3fc;white-space:nowrap}.timeline-pair{display:inline-flex;align-items:center}.timeline-pair-line{width:12px;height:1px;background:#8b5cf6;flex-shrink:0}.timeline-pill-failed{position:relative;border-color:#ef4444!important;color:#991b1b!important;background:#fee2e2!important}.timeline-pill-tooltip{display:none;position:absolute;top:calc(100% + 6px);left:0;background:var(--card);border:1px solid #ef4444;border-radius:6px;padding:6px 10px;box-shadow:0 4px 12px #0000001a;z-index:10;white-space:normal;min-width:160px;max-width:300px;font-size:11px;color:#991b1b;font-weight:400}.timeline-pill-failed:hover .timeline-pill-tooltip{display:block}.timeline-card-footer{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:12px}.timeline-actor{color:var(--foreground);font-weight:500}.timeline-by{color:var(--muted-foreground);font-weight:400}.timeline-error{color:#991b1b;background:#fef2f2;padding:1px 8px;border-radius:8px;font-size:11px}.timeline-warn{color:#92400e;background:#fffbeb;padding:1px 8px;border-radius:8px;font-size:11px}.timeline-saved{position:relative;display:inline-flex;align-items:center;gap:4px;margin-left:auto;margin-right:-6px;color:#16a34a;font-size:11px;font-weight:500;cursor:help}.timeline-saved svg{opacity:.85}.timeline-saved-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);right:0;background:#1f2937;color:#f9fafb;padding:8px 10px;border-radius:8px;font-size:11px;line-height:1.5;font-weight:400;white-space:nowrap;z-index:200;box-shadow:0 4px 14px #00000038;flex-direction:column;gap:2px;min-width:180px}.timeline-saved:hover .timeline-saved-tooltip{display:flex}.timeline-saved-tooltip-row{display:flex;justify-content:space-between;gap:12px;color:#d1d5db}.timeline-saved-tooltip-row b{color:#f9fafb;font-weight:600}.timeline-saved-tooltip-label{color:#9ca3af}.timeline-saved-tooltip-total{border-top:1px solid #374151;padding-top:4px;margin-top:2px}.timeline-saved-tooltip-total b{color:#4ade80}.timeline-item:has(.timeline-saved:hover){z-index:50}.mode-toggle{display:flex;gap:2px;background:#e2e8f0;border-radius:8px;padding:2px;margin-bottom:16px}.mode-toggle button{flex:1;padding:6px 12px;border:none;background:none;border-radius:6px;cursor:pointer;font-size:12px;color:var(--muted-foreground);transition:all .2s;font-family:inherit}.mode-toggle button.active{background:var(--background);color:var(--foreground);box-shadow:0 1px 3px #00000014;font-weight:500}.mode-toggle button:hover:not(.active){color:var(--foreground)}.bulk-result-list{margin-top:12px}.bulk-result-item{display:flex;align-items:baseline;gap:6px;padding:4px 0;font-size:13px;border-bottom:1px solid var(--border)}.bulk-result-item:last-child{border-bottom:none}.bulk-result-icon{flex-shrink:0;font-size:12px}.bulk-result-item.success .bulk-result-icon{color:#16a34a}.bulk-result-item.failed .bulk-result-icon{color:#dc2626}.bulk-result-item.failed{color:#991b1b}.bulk-result-error{font-size:11px;margin-left:auto;opacity:.7}.profile-search-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--input);border-radius:var(--radius);background:var(--card);transition:all .15s}.profile-search-bar:focus-within{border-color:var(--ring);box-shadow:0 0 0 2px #3b82f626}.profile-search-bar input,.profile-search-bar input:focus{flex:1;border:none;outline:none;background:transparent;font-size:13px;color:var(--foreground);height:auto;width:auto;padding:0;box-shadow:none;border-radius:0}.profile-search-bar svg{flex-shrink:0;color:var(--muted-foreground)}.profile-search-row{display:flex;gap:8px;align-items:center;margin-bottom:16px}.profile-search-row .profile-search-bar{flex:1;margin-bottom:0}.profile-search-submit{padding:4px 12px;border-radius:6px;border:1px solid var(--border);background:var(--muted);font-size:12px;font-weight:500;color:var(--foreground);cursor:pointer;white-space:nowrap;font-family:inherit;transition:all .15s;flex-shrink:0}.profile-search-submit:hover:not(:disabled){border-color:var(--ring);background:#eff6ff}.profile-search-submit:disabled{opacity:.3;cursor:default}.profile-me-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1.5px solid var(--border);background:var(--card);font-size:12px;font-weight:500;color:var(--muted-foreground);cursor:pointer;white-space:nowrap;transition:all .15s}.profile-me-btn svg{flex-shrink:0;opacity:.75}.profile-me-btn:hover:not(:disabled) svg{opacity:1}.profile-me-btn:hover:not(:disabled){border-color:#93c5fd;background:#eff6ff;color:var(--foreground)}.profile-me-btn:disabled{opacity:.4;cursor:default}.profile-refresh-btn{width:36px;height:36px}.profile-header-row{display:flex;gap:8px;align-items:flex-end;margin-bottom:12px}.profile-header{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.profile-header-info{flex:1;min-width:0}.profile-login{font-size:16px;font-weight:700;color:var(--foreground)}.profile-meta{font-size:12px;color:var(--muted-foreground);margin-top:2px}.profile-sep{margin:0 5px}.profile-actions{display:flex;gap:4px;justify-content:flex-end;margin-bottom:-10px}.profile-actions-column{display:inline-flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.profile-actions-wrap{position:relative;display:inline-flex;flex-shrink:0}.profile-match-icons{display:inline-flex;align-items:center;gap:5px}.profile-match-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px solid transparent;cursor:help;position:relative}.profile-match-icon-ok{background:#dcfce7;color:#166534;border-color:#bbf7d0}.profile-match-icon-warn{background:#fef9c3;color:#854d0e;border-color:#fde68a}.profile-match-icon-bad{background:#fee2e2;color:#991b1b;border-color:#fecaca}.profile-match-tooltip{display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:200;background:#1f2937;color:#f9fafb;padding:6px 10px;border-radius:6px;font-size:11px;line-height:1.45;font-weight:400;white-space:nowrap;box-shadow:0 6px 18px #00000038;pointer-events:none}.profile-match-icon:hover .profile-match-tooltip{display:block}.profile-actions-trigger{display:inline-flex;align-items:center;gap:6px;height:29px;padding:0 12px;border:1px solid var(--border);background:var(--background);color:var(--foreground);cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;border-radius:8px;transition:border-color .15s,background .15s,color .15s}.profile-actions-trigger svg{flex-shrink:0;opacity:.7}.profile-actions-trigger:hover,.profile-actions-wrap:hover .profile-actions-trigger{border-color:#93c5fd;background:#eff6ff}.profile-actions-popup{display:none;position:absolute;top:calc(100% + 6px);right:0;z-index:50;flex-direction:column;gap:4px;padding:8px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 28px #0000001a}.profile-actions-wrap:hover .profile-actions-popup{display:flex}.profile-actions-popup:before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px}.profile-actions-popup .profile-action-btn{width:160px;justify-content:flex-start;padding:0 10px}.profile-actions-popup .profile-action-label,.profile-actions-popup .profile-action-btn:hover .profile-action-label{max-width:none;margin-left:8px}.profile-action-btn{display:flex;align-items:center;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--background);color:var(--muted-foreground);cursor:pointer;transition:border-color .25s,background .25s,color .25s;flex-shrink:0;padding:0 9px}.profile-action-btn svg{flex-shrink:0}.profile-action-btn:hover{border-color:#93c5fd;background:#eff6ff;color:var(--foreground)}.profile-action-label{max-width:0;overflow:hidden;white-space:nowrap;font-size:12px;font-weight:500;color:var(--foreground);transition:max-width .3s ease,margin .3s ease}.profile-action-btn:hover .profile-action-label{max-width:130px;margin-left:6px}.profile-action-btn-left .profile-action-label{margin-left:0}.profile-action-btn-left:hover .profile-action-label{margin-left:0;margin-right:6px}.profile-header-dates{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;margin-left:16px}.profile-date-pill{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--muted);color:var(--muted-foreground);white-space:nowrap;font-weight:500}.profile-section{margin-bottom:12px}.profile-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);margin-bottom:6px}.profile-roles-block{position:relative;display:flex;flex-direction:column;gap:8px;margin-top:-4px;margin-bottom:12px;padding-left:15px}.profile-roles-table{display:grid;grid-template-columns:auto 1fr;border:1px solid var(--border);border-radius:8px;background:#fbfcfd}.profile-roles-table>*{padding:8px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center}.profile-roles-table>*:nth-child(odd){border-right:1px solid var(--border)}.profile-roles-table>*:nth-last-child(-n+2){border-bottom:none}.profile-role-name{font-size:12px;font-weight:500;color:var(--foreground);white-space:nowrap}.profile-role-name-unlicensed{color:#db2777}.profile-role-pills{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;width:100%}.profile-role-pills-list{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.profile-role-buttons{display:flex;gap:6px;align-items:center}.profile-role-buttons .kc-action-btn{padding:3px 10px;font-size:11px;border-radius:6px;gap:4px}.profile-role-buttons .kc-action-btn:not(.kc-action-btn-primary):not(.kc-action-btn-rose){color:#475569;border-color:#cbd5e1}.profile-role-buttons .kc-action-btn:not(.kc-action-btn-primary):not(.kc-action-btn-rose):hover:not(:disabled){background:#f1f5f9;color:#334155;border-color:#94a3b8}.profile-role-status{font-size:11px;padding:2px 8px;border-radius:5px;white-space:nowrap;font-weight:500}.profile-role-status-success{background:#dcfce7;color:#166534}.profile-role-status-error{background:#fee2e2;color:#991b1b}.profile-site-pill{position:relative;display:inline-flex;align-items:center;padding:4px 12px;border:1px solid var(--border);border-radius:16px;background:var(--card);font-size:11px;font-weight:500;color:var(--foreground);cursor:default;-webkit-user-select:none;user-select:none;transition:all .15s}.profile-site-pill:hover{border-color:#93c5fd;background:#eff6ff}.profile-site-pill-toggle{cursor:pointer}.profile-site-pill-selected,.profile-site-pill-selected:hover{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.profile-site-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);z-index:20;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 12px #0000001a;padding:8px 12px;white-space:nowrap;min-width:120px}.profile-site-pill:hover .profile-site-tooltip{display:block}.profile-site-tooltip-groups{display:flex;flex-wrap:wrap;gap:4px}.profile-group-pill{font-size:10px;padding:1px 6px;border-radius:5px;background:#ede9fe;color:#5b21b6;font-weight:500}.bar-timeline{margin:8px 0;padding-left:17px}.profile-section-heading{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--muted-foreground);margin-bottom:-7px}.profile-section-heading svg{flex-shrink:0;opacity:.7}.profile-tableau-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:-7px}.profile-tableau-row .profile-section-heading{margin-bottom:0}.profile-comment-block{display:inline-flex;align-items:center;gap:8px;min-width:0}.profile-comment-text{font-size:12px;font-style:italic;color:var(--muted-foreground);max-width:450px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-comment-btn{position:relative;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);cursor:pointer;padding:0;flex-shrink:0;transition:background .12s,color .12s,border-color .12s}.profile-comment-btn:hover{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.profile-comment-tooltip{display:none;position:absolute;top:calc(100% + 6px);right:0;z-index:200;background:#1f2937;color:#f9fafb;padding:6px 10px;border-radius:6px;font-size:11px;line-height:1.45;font-weight:400;white-space:nowrap;box-shadow:0 6px 18px #00000038;pointer-events:none}.profile-comment-btn:hover .profile-comment-tooltip{display:block}.profile-comment-modal{max-width:520px}.profile-comment-textarea{font-family:inherit;resize:vertical;min-height:80px}.profile-actions-strip{position:relative;display:flex;align-items:center;gap:10px;margin-top:-16px;margin-bottom:12px;padding-left:17px}.profile-actions-strip-connector{position:absolute;left:0;top:1px;width:11px;height:calc(50% + 1px);border-left:1px solid var(--border);border-bottom:1px solid var(--border);border-bottom-left-radius:6px;pointer-events:none}.profile-roles-block-connector{position:absolute;left:0;top:-68px;width:11px;bottom:calc(100% - 12px);border-left:1px solid var(--border);border-bottom:1px solid var(--border);border-bottom-left-radius:6px;pointer-events:none}.profile-actions-strip-label,.profile-subheading{font-size:11.5px;font-weight:500;color:var(--muted-foreground);white-space:nowrap}.profile-actions-strip-label{margin-left:2px}.profile-subheading{margin-left:3px}.profile-roles-table{margin-left:4px}.profile-subheading-row{display:flex;align-items:center;gap:8px;margin-left:3px}.profile-subheading-row .profile-subheading{margin-left:0}.profile-edit-roles-btn{position:relative;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--card);border-radius:5px;cursor:pointer;color:var(--muted-foreground);padding:0;margin-top:-2px;transition:background .12s,color .12s,border-color .12s}.profile-edit-roles-tooltip{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:200;background:#1f2937;color:#f9fafb;padding:6px 10px;border-radius:6px;font-size:11px;line-height:1.45;font-weight:400;white-space:nowrap;box-shadow:0 6px 18px #00000038;pointer-events:none}.profile-edit-roles-btn:hover .profile-edit-roles-tooltip{display:block}.profile-edit-roles-btn:hover{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.profile-edit-roles-btn-active,.profile-edit-roles-btn-active:hover{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.profile-add-site-btn.kc-action-btn,.profile-add-group-btn.kc-action-btn{padding:3px 10px;font-size:11px;border-radius:6px;gap:7px;margin-top:-2px}.kc-modal.profile-add-site-modal{max-width:800px;width:92vw;max-height:calc(100vh - 40px);overflow:hidden}.kc-modal.profile-add-site-modal .kc-modal-form{overflow-y:auto;flex:1;min-height:0}.kc-modal.profile-add-site-modal .groups-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.profile-actions-strip-timeline{flex:1;min-width:0;padding-right:1px}.profile-actions-strip-timeline .bar-timeline{margin:0;padding-left:0}.bar-timeline-track{display:flex;gap:1px;height:10px;background:var(--border);border-radius:6px;padding:0;-webkit-user-select:none;user-select:none}.bar-dragging .bar-tooltip{display:none!important}.bar-segment-wrap{flex:1;position:relative;min-width:0}.bar-segment-wrap:first-child .bar-segment{border-radius:6px 0 0 6px}.bar-segment-wrap:last-child .bar-segment{border-radius:0 6px 6px 0}.bar-segment-wrap:only-child .bar-segment{border-radius:6px}.bar-segment-wrap:hover{z-index:20}.bar-segment{width:100%;height:100%;cursor:pointer;transition:filter .15s,transform .15s}.bar-segment-wrap:hover .bar-segment{filter:brightness(1.25);transform:scaleY(1.3)}.bar-segment-failed{background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(0,0,0,.25) 3px,rgba(0,0,0,.25) 5px)!important}.bar-tooltip{display:none;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:var(--foreground);color:var(--card);padding:8px 12px;border-radius:8px;font-size:11px;line-height:1.5;white-space:nowrap;z-index:100;box-shadow:0 4px 12px #0003}.bar-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--foreground)}.bar-segment-wrap:hover .bar-tooltip{display:block}.bar-tip-left .bar-tooltip{left:0;transform:none}.bar-tip-left .bar-tooltip:after{left:8px;transform:none}.bar-tip-right .bar-tooltip{left:auto;right:0;transform:none}.bar-tip-right .bar-tooltip:after{left:auto;right:8px;transform:none}.bar-tooltip-combo{color:#c4b5fd;font-weight:500}.bar-tooltip-sites{margin-top:4px}.bar-tooltip-site-row{display:flex;align-items:baseline;gap:4px}.bar-tooltip-status{font-size:10px}.bar-tooltip-groups{color:#c4b5fd;font-size:10px;margin-left:12px}.bar-tooltip-error{color:#fca5a5;margin-top:2px}.bar-tooltip-actor{color:#94a3b8;margin-top:2px}.bar-timeline-dates{display:flex;justify-content:space-between;margin-top:4px;font-size:10px;color:var(--foreground)}.bar-timeline-reset{color:var(--muted-foreground)}.content-tree{max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:6px}.tree-node{display:flex;align-items:center;gap:4px;padding:2px 4px;font-size:13px;cursor:pointer;border-radius:4px;-webkit-user-select:none;user-select:none}.tree-node:hover{background:var(--muted)}.tree-toggle{width:18px;text-align:center;flex-shrink:0;color:var(--muted-foreground);font-size:11px}.tree-checkbox{margin:0;accent-color:var(--primary)}.tree-label{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-count{color:var(--muted-foreground);font-size:11px;margin-left:4px;flex-shrink:0}.tree-indent{flex-shrink:0}.grantee-list{max-height:200px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:4px}.grantee-item{display:flex;align-items:center;gap:6px;padding:3px 6px;font-size:13px;border-radius:4px;cursor:pointer}.grantee-item:hover{background:var(--muted)}.grantee-item input[type=checkbox]{accent-color:var(--primary)}.grantee-input-wrap{position:relative}.grantee-input-box{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 8px;min-height:38px;border:1px solid var(--input);border-radius:var(--radius);background:var(--card);cursor:text;transition:all .15s}.grantee-input-box:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px #3b82f614}.grantee-input-box input{flex:1;min-width:60px;border:none;outline:none;font-size:13px;font-family:inherit;background:transparent;color:var(--foreground);padding:2px 4px;height:26px}.grantee-input-box input::placeholder{color:#94a3b8}.grantee-pill{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 8px;background:var(--muted);border:1px solid var(--border);border-radius:12px;font-size:12px;color:var(--foreground);white-space:nowrap}.grantee-pill-remove{background:none;border:none;cursor:pointer;color:var(--muted-foreground);font-size:14px;line-height:1;padding:0 2px;display:flex;align-items:center}.grantee-pill-remove:hover{color:var(--destructive)}.grantee-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 12px #00000014;z-index:20;margin-top:2px}.grantee-dropdown-basic{border-bottom:1px solid var(--border);font-weight:500}.copy-mode-inputs{display:flex;align-items:flex-start;gap:8px}.copy-mode-inputs>div:first-child,.copy-mode-inputs>div:last-child{flex:1;min-width:0}.copy-mode-arrow{display:flex;align-items:center;padding-top:28px;color:#94a3b8;font-size:18px;flex-shrink:0}.grantee-dropdown-item{padding:6px 10px;font-size:13px;cursor:pointer;color:var(--foreground);transition:background .1s}.grantee-dropdown-item:hover{background:var(--muted)}.grant-detail-row{display:flex;align-items:baseline;gap:6px;padding:3px 0;font-size:12px}.grant-detail-icon{flex-shrink:0}.grant-detail-name{flex:1}.grant-detail-error{color:#991b1b;font-size:11px}.oplog-wrap{position:relative;display:inline-flex;align-items:center}.oplog-btn{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border);background:var(--card);color:var(--muted-foreground);font-size:11px;font-weight:700;font-style:italic;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.oplog-btn:hover{border-color:var(--ring);color:var(--ring)}.oplog-btn-active{animation:oplog-pulse 1.5s ease-in-out infinite;border-color:var(--ring);color:var(--ring)}.oplog-btn-error{border-color:#ef4444;color:#ef4444}.oplog-btn-warn{border-color:#f59e0b;color:#f59e0b}@keyframes oplog-pulse{0%,to{opacity:.5}50%{opacity:1}}.oplog-popup{display:none;position:absolute;bottom:calc(100% + 8px);right:-8px;width:400px;max-height:300px;overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 20px #0000001f;z-index:50;padding:6px 0;font-size:11.5px;line-height:1.4}.oplog-wrap:hover .oplog-popup,.oplog-pinned .oplog-popup{display:block}.oplog-pinned .oplog-btn{border-color:var(--ring);color:var(--ring);box-shadow:0 0 0 2px #6366f126}.oplog-entry{display:flex;align-items:flex-start;gap:6px;padding:2px 10px}.oplog-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:4px}.oplog-dot-info{background:#3b82f6}.oplog-dot-success{background:#22c55e}.oplog-dot-warning{background:#f59e0b}.oplog-dot-error{background:#ef4444}.oplog-dot-wrap{position:relative;display:inline-flex;padding:4px;margin:-4px;cursor:help;flex-shrink:0}.oplog-dot-wrap:after{content:attr(data-tooltip);position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:6px;background:#1f2937;color:#f9fafb;padding:6px 10px;border-radius:6px;font-size:11px;line-height:1.4;max-width:360px;width:max-content;white-space:pre-wrap;word-break:break-word;z-index:1000;box-shadow:0 4px 12px #0003;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease}.oplog-dot-wrap:hover:after{opacity:1;visibility:visible}.oplog-time{color:var(--muted-foreground);font-size:10px;flex-shrink:0;font-variant-numeric:tabular-nums;min-width:52px}.oplog-msg{color:var(--foreground);word-break:break-word;flex:1;min-width:0}.oplog-badge{display:inline-block;font-size:10px;padding:0 5px;border-radius:8px;margin-left:5px;white-space:nowrap;vertical-align:middle;line-height:1.6;font-weight:500}.oplog-empty{padding:12px;text-align:center;color:var(--muted-foreground)}.revoke-checkbox{accent-color:#f59e0b}.revoke-warning{padding:12px;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius);font-size:13px;color:#92400e;margin-bottom:8px}.btn-revoke{padding:9px 18px;background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;transition:background .15s,border-color .15s,opacity .15s;height:38px}.btn-revoke:hover{background:#fde68a;border-color:#f59e0b}.btn-revoke:disabled{opacity:.4;cursor:default}.timeline-login-link{cursor:pointer;border-bottom:1px dashed #94a3b8;transition:color .15s,border-color .15s}.timeline-login-link:hover{color:#2563eb;border-color:#2563eb}.timeline-bulk-users{font-size:13px;color:var(--foreground);font-weight:500;display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:0}.timeline-bulk-user{font-weight:500}.timeline-bulk-sep{color:var(--muted-foreground);margin-right:4px}.mini-profile-popup{position:absolute;z-index:1000;width:340px;background:var(--card);border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 8px 24px #0000001f,0 2px 8px #0000000f;animation:miniProfileIn .15s ease}@keyframes miniProfileIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mini-profile-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;border-bottom:1px solid #f1f5f9}.mini-profile-login{font-weight:600;font-size:14px;color:var(--foreground)}.mini-profile-close{background:none;border:none;font-size:18px;color:#94a3b8;cursor:pointer;padding:0 4px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.mini-profile-close:hover{color:#475569}.mini-profile-nav-btn{background:none;border:1px solid #cbd5e1;border-radius:6px;color:#64748b;cursor:pointer;padding:3px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.mini-profile-nav-btn:hover{color:#334155;border-color:#94a3b8;background:#f8fafc}.mini-profile-body{padding:10px 14px 12px}.mini-profile-meta{font-size:13px;color:#334155;margin-bottom:6px;line-height:1.4}.mini-profile-date{font-size:12px;color:#64748b;margin-bottom:8px}.mini-profile-roles{display:flex;flex-direction:column;gap:5px}.mini-profile-role-row{display:flex;align-items:baseline;gap:6px;font-size:12px;flex-wrap:wrap}.mini-profile-role-label{font-weight:600;color:#475569;white-space:nowrap;flex-shrink:0}.mini-profile-sites{display:flex;flex-wrap:wrap;gap:4px}.analytics-dash{display:flex;flex-direction:column;gap:16px;width:100%;max-width:1200px;margin:0 auto;min-width:0;box-sizing:border-box}.analytics-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.analytics-title{font-size:20px;font-weight:600;margin:0;color:var(--foreground);letter-spacing:-.3px}.analytics-controls{display:flex;align-items:center;gap:8px}.analytics-period-wrap{position:relative}.analytics-savings{position:relative;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;background:var(--card);border:1px solid var(--border);color:var(--muted-foreground);font-size:12.5px;font-weight:500;cursor:help}.analytics-savings svg{opacity:.7}.analytics-savings-value{color:var(--muted-foreground)}.analytics-savings-pct{color:var(--muted-foreground);opacity:.75}.analytics-savings-tooltip{display:none;position:absolute;top:calc(100% + 8px);left:0;background:#1f2937;color:#f9fafb;padding:10px 12px;border-radius:10px;font-size:11.5px;line-height:1.55;font-weight:400;white-space:nowrap;z-index:200;box-shadow:0 10px 28px #00000040;min-width:240px}.analytics-savings:hover .analytics-savings-tooltip{display:block}.analytics-savings-tooltip-row{display:flex;justify-content:space-between;gap:16px;color:#d1d5db}.analytics-savings-tooltip-row b{color:#f9fafb;font-weight:600}.analytics-savings-tooltip-label{color:#9ca3af;display:inline-flex;align-items:center;gap:6px}.analytics-savings-tooltip-total{border-top:1px solid #374151;padding-top:5px;margin-top:3px}.analytics-savings-tooltip-total b{color:#4ade80}.analytics-savings-tooltip-section{margin-top:8px;padding-top:6px;border-top:1px solid #374151;font-size:10.5px;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.analytics-savings-tooltip-op{color:#e5e7eb}.analytics-savings-tooltip-op b{color:#f9fafb}.analytics-savings-tooltip-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.analytics-period-btn{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:8px;background:var(--card);border:1px solid var(--border);font-size:12.5px;font-weight:500;color:var(--foreground);cursor:pointer;transition:all .15s;font-family:inherit}.analytics-period-btn:hover{border-color:var(--ring);background:var(--accent)}.analytics-refresh-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--card);border:1px solid var(--border);color:var(--muted-foreground);cursor:pointer;transition:all .15s}.analytics-refresh-btn:hover:not(:disabled){border-color:var(--ring);color:var(--foreground);background:var(--accent)}.analytics-refresh-btn:disabled{opacity:.6;cursor:default}.analytics-refresh-btn-loading{border-color:var(--ring);color:var(--ring);background:color-mix(in srgb,var(--ring) 8%,var(--card))}.analytics-refresh-btn-loading svg{animation:spin .9s linear infinite}.analytics-error{padding:10px 14px;border-radius:8px;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;font-size:13px}.analytics-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:60px;color:var(--muted-foreground)}.analytics-spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--ring);animation:spin .8s linear infinite}.analytics-spinner-lg{width:32px;height:32px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.analytics-content-wrap{position:relative}.analytics-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding-top:120px;background:#ffffff8c;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:200;border-radius:12px;animation:analytics-overlay-fade-in .12s ease-out}.analytics-loading-card{display:inline-flex;align-items:center;gap:14px;padding:14px 20px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000014;font-size:13px;color:var(--foreground);font-weight:500}@keyframes analytics-overlay-fade-in{0%{opacity:0}to{opacity:1}}.analytics-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px 18px;width:100%;min-width:0;box-sizing:border-box}.analytics-card-title-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.analytics-card-title{font-size:11.5px;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.6px;margin-bottom:14px}.analytics-card-title-row .analytics-card-title{margin-bottom:0}.analytics-card-filter{margin-left:8px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--foreground);padding:2px 8px;border-radius:8px;background:var(--muted);font-size:11px}.analytics-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}@media (max-width: 900px){.analytics-charts-row{grid-template-columns:1fr}}.chart-empty{text-align:center;padding:32px 16px;color:var(--muted-foreground);font-size:12.5px}.kpi-halo{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:6px 18px 14px;display:grid;grid-template-columns:1fr 200px;gap:22px;align-items:stretch;min-width:0;box-sizing:border-box}.kpi-halo-left{display:flex;flex-direction:column;gap:14px;min-width:0}.kpi-halo-line{min-width:0}@media (max-width: 900px){.kpi-halo{grid-template-columns:1fr}}.kpi-halo-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:1fr 1fr;gap:8px}@media (max-width: 1100px){.kpi-halo-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi-halo-donut{display:flex;align-items:center;justify-content:center}@media (max-width: 720px){.kpi-halo-donut{padding:12px 0}}.kpi-mini{--kpi-color: #94a3b8;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--card);border:1px solid var(--border);cursor:pointer;transition:all .18s;font-family:inherit;text-align:left;position:relative;overflow:hidden}.kpi-mini:hover{border-color:var(--kpi-color);background:color-mix(in srgb,var(--kpi-color) 6%,var(--card))}.kpi-mini-selected{border-color:var(--kpi-color);background:color-mix(in srgb,var(--kpi-color) 12%,var(--card));box-shadow:0 0 0 1px var(--kpi-color)}.kpi-mini-dim{opacity:.4}.kpi-mini-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;flex-shrink:0}.kpi-mini-text{display:flex;flex-direction:column;gap:1px;min-width:0}.kpi-mini-value{font-size:18px;font-weight:700;color:var(--foreground);line-height:1.1;letter-spacing:-.3px}.kpi-mini-label{font-size:10.5px;color:var(--muted-foreground);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.donut-wrap{position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center}.donut-empty{display:flex;align-items:center;justify-content:center;border:2px dashed var(--border);border-radius:50%;color:var(--muted-foreground);font-size:11px}.donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.donut-center-value{font-size:28px;font-weight:700;color:var(--foreground);line-height:1;letter-spacing:-.5px;transition:color .15s}.donut-center-label{font-size:10.5px;color:var(--muted-foreground);margin-top:4px;max-width:130px;line-height:1.3}.donut-center-pct{font-size:10.5px;color:var(--muted-foreground);margin-top:2px;font-weight:600}.line-chart-wrap{width:100%;max-width:100%;height:110px;position:relative;min-width:0;box-sizing:border-box;overflow:hidden}.line-svg-area{position:relative;width:100%;height:100%;min-width:0;min-height:0}.line-svg-area svg{display:block}.line-tooltip{background:#1f2937;color:#f9fafb;padding:6px 10px;border-radius:6px;font-size:11px;line-height:1.4;white-space:nowrap;z-index:1000;box-shadow:0 4px 12px #0003;pointer-events:none}.line-tooltip-date{font-weight:600}.line-tooltip-value{color:#d1d5db;font-size:10.5px;margin-top:1px}.line-peak-label{position:absolute;transform:translate(-50%,-100%);font-size:10px;font-weight:600;color:var(--foreground);pointer-events:none;white-space:nowrap}.line-xlabels{display:flex;padding:4px 4px 0;align-items:flex-start;gap:0;flex-shrink:0}.line-xlabel{flex:1;min-width:0;font-size:9.5px;color:var(--muted-foreground);text-align:center;white-space:nowrap;overflow:hidden}.stacked-rows{display:flex;flex-direction:column}.stacked-rows::-webkit-scrollbar{width:6px}.stacked-rows::-webkit-scrollbar-track{background:transparent}.stacked-rows::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.stacked-rows::-webkit-scrollbar-thumb:hover{background:#cbd5e1}.stacked-row{display:grid;grid-template-columns:140px 1fr 44px;gap:10px;align-items:center;padding:0 4px;cursor:default;transition:background .12s;flex-shrink:0;border-radius:4px}.stacked-row:hover{background:var(--accent)}.stacked-row-clickable{cursor:pointer}.stacked-row-selected{background:#3b82f61a}.stacked-row-selected:hover{background:#3b82f629}.stacked-row-label{font-size:12px;font-weight:500;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;gap:1px}.stacked-row-meta{font-size:10px;color:var(--muted-foreground);font-weight:400}.stacked-row-bar-wrap{height:14px;min-width:0;position:relative}.stacked-row-bar{height:100%;display:flex;border-radius:3px;overflow:hidden;transition:width .3s ease}.stacked-row-seg{height:100%;min-width:1px;transition:filter .12s}.stacked-row:hover .stacked-row-seg{filter:brightness(1.06)}.stacked-row-total{font-size:12.5px;font-weight:700;color:var(--foreground);text-align:right}.stacked-row-tooltip-fixed{background:#1f2937;color:#f9fafb;padding:8px 10px;border-radius:8px;font-size:11px;line-height:1.5;white-space:nowrap;z-index:1000;box-shadow:0 4px 14px #00000038;pointer-events:none;min-width:180px}.stacked-row-tooltip-title{font-weight:600;margin-bottom:4px}.stacked-row-tooltip-total{color:#d1d5db;padding-bottom:4px;margin-bottom:4px;border-bottom:1px solid #374151}.stacked-row-tooltip-saved{color:#6ee7b7;padding-bottom:4px;margin-bottom:4px;border-bottom:1px solid #374151}.stacked-row-tooltip-saved b{color:#d1fae5}.stacked-row-tooltip-item{display:grid;grid-template-columns:10px 1fr auto;gap:6px;align-items:center}.stacked-row-tooltip-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.stacked-row-tooltip-label{color:#d1d5db}.kc-panel{display:flex;flex-direction:column;gap:14px;max-width:1080px;margin:0 auto;width:100%;min-width:0;box-sizing:border-box}.kc-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.kc-title{margin:0;font-size:20px;font-weight:600;color:var(--foreground);letter-spacing:-.3px}.kc-controls{display:flex;align-items:center;gap:8px;flex:1;max-width:700px}.kc-create-btn{display:inline-flex;align-items:center;justify-content:center;gap:0;height:32px;width:32px;padding:0;border-radius:8px;background:var(--card);border:1px solid var(--border);color:var(--muted-foreground);cursor:pointer;font-family:inherit;font-size:13px;font-weight:400;white-space:nowrap;flex-shrink:0;overflow:hidden;transition:width .2s,gap .2s,padding .2s,border-color .15s,background .15s,color .15s}.kc-create-btn svg{flex-shrink:0}.kc-create-btn-text{max-width:0;opacity:0;transition:max-width .2s,opacity .15s .05s}.kc-create-btn:hover{width:auto;padding:0 10px;gap:6px;border-color:#93c5fd;background:#eff6ff;color:var(--foreground)}.kc-create-btn:hover .kc-create-btn-text{max-width:220px;opacity:1}.kc-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.kc-modal{background:var(--card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:460px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column}.kc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.kc-modal-title{margin:0;font-size:15px;font-weight:600;color:var(--foreground)}.kc-modal-close{border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;font-size:22px;line-height:1;padding:0 4px;font-family:inherit}.kc-modal-close:hover{color:var(--foreground)}.kc-modal-form{display:flex;flex-direction:column;gap:12px;padding:16px}.kc-modal-field{display:flex;flex-direction:column;gap:4px}.kc-modal-label{font-size:12px;font-weight:500;color:var(--muted-foreground)}.kc-modal-hint{font-size:11px;color:var(--muted-foreground);opacity:.8}.kc-modal-input{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--card);font-size:13px;color:var(--foreground);font-family:inherit;box-sizing:border-box;transition:border-color .12s}.kc-modal-input:focus{outline:none;border-color:#93c5fd}.kc-modal-input:disabled{opacity:.6;cursor:default}.kc-modal-error{padding:8px 10px;border-radius:8px;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;font-size:12px}.kc-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.kc-search-wrap{position:relative;flex:1;min-width:0}.kc-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted-foreground);pointer-events:none}.kc-search-input{width:100%;padding:8px 92px 8px 32px;border-radius:8px;border:1px solid var(--border);background:var(--card);font-size:13px;color:var(--foreground);font-family:inherit;box-sizing:border-box;transition:border-color .12s}.kc-search-input:focus{outline:none;border-color:var(--ring)}.kc-search-clear{position:absolute;right:80px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:none;background:transparent;color:var(--muted-foreground);font-size:16px;line-height:1;cursor:pointer;border-radius:4px;padding:0}.kc-search-clear:hover{color:var(--foreground);background:var(--muted)}.kc-search-submit{position:absolute;right:6px;top:50%;transform:translateY(-50%);padding:3px 10px;border-radius:6px;background:var(--ring);color:#fff;border:1px solid var(--ring);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .12s}.kc-search-submit:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.kc-search-submit:disabled{opacity:.5;cursor:default}.kc-refresh-btn,.kc-filter-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--card);border:1px solid var(--border);color:var(--muted-foreground);cursor:pointer;transition:all .15s;flex-shrink:0;position:relative}.kc-filter-btn:hover{border-color:var(--ring);color:var(--foreground);background:var(--accent)}.kc-filter-btn-active,.kc-filter-btn-open{border-color:#93c5fd;color:#1e40af;background:#dbeafe}.kc-filter-dot{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:#ef4444}.kc-filters-panel{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:8px;background:#eff6ff;border:1px solid #bfdbfe}.kc-filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.kc-filter-label{font-size:12.5px;color:var(--muted-foreground);font-weight:500;min-width:80px}.kc-filters-label{font-size:12.5px;color:var(--muted-foreground);font-weight:500}.kc-segmented{display:inline-flex;border:1px solid var(--border);border-radius:8px;background:var(--muted);padding:2px}.kc-segmented-btn{padding:5px 14px;border:none;background:transparent;font-size:12px;font-weight:500;color:var(--muted-foreground);font-family:inherit;cursor:pointer;border-radius:6px;transition:all .15s;white-space:nowrap}.kc-segmented-btn:hover:not(.kc-segmented-btn-active){color:var(--foreground)}.kc-segmented-btn-active{background:var(--card);color:var(--foreground);box-shadow:0 1px 2px #0000000f}.kc-refresh-btn:hover:not(:disabled){border-color:var(--ring);color:var(--foreground);background:var(--accent)}.kc-refresh-btn:disabled{opacity:.6;cursor:default}.kc-refresh-btn-loading{border-color:var(--ring);color:var(--ring);background:color-mix(in srgb,var(--ring) 8%,var(--card))}.kc-refresh-btn-loading svg{animation:spin .9s linear infinite}.kc-error{padding:10px 14px;border-radius:8px;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;font-size:13px}.kc-meta{font-size:11.5px;color:var(--muted-foreground);font-weight:500;padding:0}.kc-list{display:flex;flex-direction:column;gap:6px}.kc-card{background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .12s}.kc-card-open{border-color:#bfdbfe}.kc-card-row{display:grid;grid-template-columns:minmax(0,1fr) auto 16px;gap:16px;align-items:center;width:100%;padding:12px 14px;background:transparent;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:background .12s}.kc-card-row:hover{background:var(--accent)}.kc-card-row-static{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;width:100%;padding:12px 14px;background:transparent;text-align:left}.kc-profile-block{margin-top:14px;display:flex;flex-direction:column;gap:10px}.kc-profile-heading{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--muted-foreground)}.kc-profile-heading svg{flex-shrink:0;opacity:.7}.kc-profile-empty{padding:14px 16px;background:var(--card);border:1px dashed var(--border);border-radius:10px;color:var(--muted-foreground);font-size:13px;text-align:center}.kc-profile-empty-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--card);border:1px dashed var(--border);border-radius:10px}.kc-profile-empty-row .kc-profile-empty{padding:0;background:transparent;border:none;border-radius:0;text-align:left;flex:1;min-width:0}.kc-edit-wrap{display:inline-flex;align-items:stretch;gap:0}.kc-action-btn.kc-action-btn-open{border-color:#93c5fd;background:#eff6ff;border-top-right-radius:0;border-bottom-right-radius:0;border-right-color:#bfdbfe}.kc-edit-menu{display:inline-flex;gap:4px;align-items:center;background:#eff6ff;border:1px solid #93c5fd;border-left:none;border-top-right-radius:8px;border-bottom-right-radius:8px;padding:0 6px}.kc-edit-menu-item{padding:3px 10px;border-radius:12px;background:transparent;border:none;font-family:inherit;font-size:11.5px;font-weight:500;color:var(--foreground);cursor:pointer;transition:background .12s,color .12s}.kc-edit-menu-item:hover{background:#e2e8f0}.kc-edit-menu-item-active,.kc-edit-menu-item-active:hover{background:#cbd5e1;color:#1e293b}.kc-acc-locked-hint{font-size:11.5px;font-weight:500;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:6px 10px;margin-top:6px}.kc-card-main{min-width:0}.kc-card-name{font-size:13.5px;font-weight:600;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.kc-card-meta{display:flex;align-items:center;gap:14px;flex-shrink:0}.kc-status-pill{display:inline-block;align-self:flex-start;font-size:11.5px;padding:3px 9px;border-radius:10px;white-space:nowrap;font-weight:500}.kc-status-active{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.kc-status-blocked{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.kc-dept-info{font-size:12.5px;color:var(--muted-foreground);white-space:nowrap}.kc-dept-info b{color:var(--foreground);font-weight:600}.kc-id-pill{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--muted);color:var(--muted-foreground);white-space:nowrap;font-weight:500}.kc-dept-pill{font-size:11px;padding:2px 8px;border-radius:10px;background:#dbeafe;color:#1e40af;white-space:nowrap;font-weight:500}.kc-chevron{color:var(--muted-foreground);transition:transform .18s;display:flex;align-items:center;justify-content:center}.kc-chevron-open{transform:rotate(180deg);color:var(--ring)}.kc-card-detail{border-top:1px solid var(--border);padding:12px 14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;background:color-mix(in srgb,var(--muted) 30%,var(--card))}@media (max-width: 600px){.kc-card-detail{grid-template-columns:1fr}}.kc-detail-col{display:flex;flex-direction:column;gap:10px;min-width:0}.kc-field{display:flex;flex-direction:column;gap:2px;min-width:0}.kc-field-label{font-size:10.5px;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.4px;font-weight:600}.kc-field-value{font-size:13px;color:var(--foreground);word-break:break-word}.kc-field-warning .kc-field-value{color:#92400e}.kc-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:8px 0}.kc-page-btn{padding:6px 14px;border-radius:8px;background:var(--card);border:1px solid var(--border);font-size:12.5px;color:var(--foreground);cursor:pointer;font-family:inherit;transition:all .12s}.kc-page-btn:hover:not(:disabled){border-color:var(--ring);background:var(--accent)}.kc-page-btn:disabled{opacity:.4;cursor:default}.kc-page-info{font-size:12.5px;color:var(--muted-foreground);font-weight:500}.kc-card-actions{border-top:1px solid var(--border);padding:10px 14px;background:color-mix(in srgb,var(--muted) 30%,var(--card));display:flex;flex-direction:column;gap:8px}.kc-action-buttons{display:flex;gap:6px;flex-wrap:wrap}.kc-action-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;background:var(--card);border:1px solid var(--border);font-size:12px;color:var(--foreground);cursor:pointer;font-family:inherit;transition:all .12s;white-space:nowrap}.kc-action-btn:hover:not(:disabled){border-color:var(--ring);background:var(--accent)}.kc-action-btn:disabled{opacity:.5;cursor:default}.kc-action-btn-primary{background:var(--ring);color:#fff;border-color:var(--ring)}.kc-action-btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.kc-action-btn-warn{color:#92400e}.kc-action-btn-warn:hover:not(:disabled){border-color:#f59e0b;background:#fffbeb;color:#92400e}.kc-action-btn-rose{background:#f43f5e;color:#fff;border-color:#f43f5e}.kc-action-btn-rose:hover:not(:disabled){background:#e11d48;border-color:#e11d48}.kc-action-btn-danger{background:#ef4444;color:#fff;border-color:#ef4444}.kc-action-btn-danger:hover:not(:disabled){background:#dc2626;border-color:#dc2626}.kc-action-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.kc-action-form-label{font-size:12px;color:var(--muted-foreground);font-weight:500;white-space:nowrap}.kc-action-input{flex:1;min-width:200px;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card);font-size:12.5px;color:var(--foreground);font-family:inherit}.kc-action-input:focus{outline:none;border-color:var(--ring)}.kc-action-confirm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 8px;border-radius:6px;background:#fffbeb;border:1px solid #fde68a}.kc-action-confirm-text{font-size:12.5px;color:#92400e;font-weight:500}.kc-action-status{font-size:12px;padding:6px 10px;border-radius:6px;font-weight:500}.kc-action-status-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.kc-action-status-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.kc-acc-count{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--accent);color:var(--muted-foreground);white-space:nowrap;font-weight:500}.kc-id-pill-warn{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.kc-card-no-manager .kc-card-name{color:var(--muted-foreground);font-style:italic}.kc-card-deleted .kc-card-name{color:var(--muted-foreground);text-decoration:line-through}.kc-accounts{border-top:1px solid var(--border);padding:10px;display:flex;flex-direction:column;gap:8px;background:color-mix(in srgb,var(--muted) 30%,var(--card))}.kc-acc-block{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:0}.kc-acc-statuses-row{margin-top:8px}.kc-acc-actions-row{margin-top:10px}.kc-acc-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.kc-acc-statuses-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.kc-acc-statuses{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.kc-acc-info-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:8px 0 8px 6px}.kc-acc-info-items{display:flex;align-items:center;gap:8px 50px;flex-wrap:wrap;flex:1;min-width:0}.kc-acc-info-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--foreground);min-width:0}.kc-acc-info-item b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kc-acc-info-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--muted-foreground);flex-shrink:0}.kc-acc-meta-pills{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0}.kc-acc-actions-row{display:flex;flex-wrap:wrap;gap:6px;border-top:1px dashed var(--border);padding-top:10px}.kc-status-line{font-size:11.5px;padding:3px 9px;border-radius:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:baseline;gap:4px;align-self:flex-start;max-width:100%}.kc-status-line-label{font-weight:500;opacity:.85}.kc-status-line-value{font-weight:600}.kc-status-line-green{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.kc-status-line-red{background:var(--muted);color:var(--muted-foreground);border:1px solid var(--border)}.kc-status-line-yellow{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.kc-status-line-grey{background:var(--muted);color:var(--muted-foreground);border:1px solid var(--border)}.kc-2fa-group{display:inline-flex;align-items:center;gap:0;flex-wrap:wrap}.kc-2fa-line{width:12px;height:1px;background:#cbd5e1;flex-shrink:0}.kc-2fa-device{font-size:11.5px;padding:3px 9px;border-radius:10px;background:#f1f5f9;color:#475569;border:1px solid #cbd5e1;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;max-width:260px}.kc-2fa-device-label{overflow:hidden;text-overflow:ellipsis;max-width:180px}.kc-cred-pill{position:relative}.kc-cred-del{border:none;background:transparent;color:currentColor;opacity:.55;font-size:13px;line-height:1;cursor:pointer;padding:0 0 0 2px;font-family:inherit}.kc-cred-del:hover{opacity:1}.kc-cred-del:disabled{opacity:.25;cursor:default}.kc-cred-tooltip{display:none;position:absolute;bottom:calc(100% + 6px);right:0;z-index:200;background:#1f2937;color:#f9fafb;padding:8px 10px;border-radius:8px;font-size:11px;line-height:1.55;font-weight:400;white-space:nowrap;min-width:180px;box-shadow:0 6px 18px #00000038;flex-direction:column;gap:2px}.kc-cred-pill:hover .kc-cred-tooltip{display:flex}.kc-cred-tooltip-row{color:#d1d5db}.kc-cred-tooltip-row b{color:#9ca3af;font-weight:500;margin-right:6px}.kc-action-confirm-stacked{flex-direction:column;align-items:flex-start;gap:8px}.kc-cred-info{background:var(--muted);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:11.5px;color:var(--foreground);display:flex;flex-direction:column;gap:2px}.kc-cred-info b{color:var(--muted-foreground);font-weight:500;margin-right:4px}.kc-action-confirm-buttons{display:flex;gap:6px}.kc-card-actions-inline{padding:8px 0 0;background:transparent;margin-top:2px;border-top:none}.mig{display:flex;flex-direction:column;gap:16px}.mig-flow{display:grid;grid-template-columns:1fr 44px 1fr;align-items:stretch}.mig-card{display:flex;flex-direction:column;gap:12px;min-width:0;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px 18px}.mig-card--src{border-color:#bfdbfe}.mig-card--dst{border-color:#bbf7d0}.mig-card-title{display:flex;align-items:center;margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--muted-foreground);padding-bottom:12px;border-bottom:1px solid var(--border)}.mig-ico{margin-right:8px;flex:none;color:var(--primary)}.mig-arrow{display:grid;place-items:center;font-size:18px;color:#94a3b8;font-weight:300}.mig-field-grow{flex:1;min-height:0}.mig-count{display:inline-flex;align-items:center;margin-left:8px;padding:1px 8px;border-radius:999px;border:1px solid var(--border);background:var(--muted);color:var(--muted-foreground);font-size:11px;font-weight:500}.mig-dd{position:relative}.mig-dd-trigger{width:100%;height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 14px 0 12px;border:1px solid var(--input);border-radius:var(--radius);background:var(--card);font:inherit;font-size:13px;color:var(--foreground);cursor:pointer;text-align:left;transition:border-color .15s}.mig-dd-trigger:hover:not(:disabled){border-color:var(--ring)}.mig-dd-trigger:disabled{opacity:.55;cursor:default;background:var(--muted)}.mig-dd--open .mig-dd-trigger{border-color:var(--ring);box-shadow:0 0 0 3px #3b82f614}.mig-dd-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mig-dd-val--ph{color:#94a3b8}.mig-dd-hint{color:var(--muted-foreground);font-weight:400}.mig-dd-arrow{flex:none;display:flex;color:#64748b;transition:transform .15s}.mig-dd--open .mig-dd-arrow{transform:rotate(180deg)}.mig-dd-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0f172a1f;padding:4px;max-height:240px;overflow-y:auto}.mig-dd-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 12px;border:none;background:none;border-radius:6px;cursor:pointer;font:inherit;font-size:13px;color:var(--foreground)}.mig-dd-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mig-dd-item:hover{background:var(--muted)}.mig-dd-item--active{color:var(--ring);font-weight:500}.mig-dd-item--disabled{opacity:.45;cursor:default}.mig-dd-item--disabled:hover{background:none}.mig-dd-mark{flex:none;color:#38bdf8}.mig-dd-empty{padding:10px 12px;font-size:13px;color:var(--muted-foreground)}.field .mig-dd-search,.mig-dd-search{width:100%;height:34px;margin-bottom:4px;padding:0 10px;border:1px solid var(--input);border-radius:6px;font:inherit;font-size:13px;position:sticky;top:0}.mig-checklist{height:168px;overflow-y:auto;border:1px solid var(--input);border-radius:var(--radius);background:var(--card);padding:4px;display:flex;flex-direction:column;gap:1px}.mig-checklist--grow{flex:1;height:auto;min-height:200px;max-height:320px}.mig-combo{flex:1;min-height:200px;max-height:320px;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--input);border-radius:var(--radius);background:var(--card);transition:border-color .15s}.mig-combo:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px #3b82f614}.field .mig-combo-search{flex:none;height:38px;border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent}.field .mig-combo-search:focus{box-shadow:none;border-color:transparent;border-bottom-color:var(--border)}.mig-combo-list{flex:1;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:1px}.mig-checklist-empty{padding:12px;font-size:13px;color:var(--muted-foreground);text-align:center}.mig-check-row{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:13px;padding:6px 9px;border-radius:6px;transition:background .1s;color:var(--foreground)}.mig-check-row:hover{background:var(--accent)}.mig-check-row input{width:16px;height:16px;accent-color:var(--primary);flex-shrink:0;cursor:pointer}.mig-check-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mig-option{display:flex;align-items:center;gap:9px;width:100%;text-align:left;font:inherit;font-size:13px;cursor:pointer;padding:7px 10px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--foreground);transition:background .1s,border-color .1s}.mig-option:hover{background:var(--accent)}.mig-option--active{background:color-mix(in srgb,var(--primary) 12%,transparent);border-color:var(--primary);color:var(--primary);font-weight:500}.mig-option--active:hover{background:color-mix(in srgb,var(--primary) 16%,transparent)}.mig-option-check{flex-shrink:0;font-weight:700;color:var(--primary)}.mig-check-row-disabled{opacity:.5;cursor:default}.mig-option--disabled{opacity:.45;cursor:default}.mig-option--disabled:hover{background:transparent}.mig-frozen-mark{flex:none;color:#38bdf8}.wl-pill{flex:none;display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.03em;line-height:1.6;background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.mig-check-row-disabled:hover{background:transparent}.mig-added{font-size:11px;color:var(--muted-foreground);background:var(--muted);border-radius:4px;padding:1px 7px;flex-shrink:0}.mig-hint{font-size:11px;color:var(--muted-foreground)}.mig-actionbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 18px;flex-wrap:wrap}.mig-plan{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.mig-plan-empty{color:var(--muted-foreground);font-size:13px}.mig-plan-arrow{color:#94a3b8}.mig-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534}.mig-pill--src{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.mig-action-right{display:flex;align-items:center;gap:16px;flex-shrink:0}.mig-chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.mig-chk input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.mig-drawer{border:1px solid var(--border);border-radius:12px;background:var(--card);padding:4px 16px 14px}.mig-drawer>summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--foreground);padding:12px 0;list-style:none;-webkit-user-select:none;user-select:none}.mig-drawer>summary::-webkit-details-marker{display:none}.mig-drawer>summary:before{content:"▸ ";color:var(--muted-foreground)}.mig-drawer[open]>summary:before{content:"▾ "}.mig-log-pane{max-height:360px;min-height:160px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;background:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.6;color:var(--foreground)}.mig-log-line{white-space:pre-wrap;word-break:break-word}.mig-log-link{color:var(--ring);text-decoration:underline;word-break:break-all}.mig-log-link:hover{text-decoration:none}@media (max-width: 900px){.mig-flow{grid-template-columns:1fr}.mig-arrow{transform:rotate(90deg);padding:4px 0}}.cmp-badge{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:8px;flex:none;border-radius:6px;background:var(--primary);color:#fff;font-size:11px;font-weight:700;line-height:1}.diff-view{margin-top:16px;font-size:13px}.diff-view--compact{margin-top:8px}.diff-head{display:flex;gap:16px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border);font-weight:600}.diff-side{word-break:break-all}.diff-side--a{color:#1d4ed8}.diff-side--b{color:#15803d}.diff-hidewl{flex-basis:100%;display:flex;align-items:center;gap:6px;font-weight:400;font-size:12.5px;color:var(--muted-foreground);cursor:pointer}.diff-hidewl input{cursor:pointer}.diff-empty{padding:12px 14px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--muted-foreground);background:var(--muted)}.diff-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.diff-chip{font-size:12px;padding:2px 9px;border-radius:999px;background:var(--muted);color:var(--foreground);border:1px solid var(--border)}.diff-chip--schema{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.diff-chip--tenant{background:#fef3c7;border-color:#fde68a;color:#92400e}.diff-chip--datasource{background:#ecfeff;border-color:#a5f3fc;color:#0e7490}.diff-chip--joins,.diff-chip--dsfilters{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.diff-chip--calc{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}.diff-chip--sheets{background:#f0fdfa;border-color:#99f6e4;color:#0f766e}.diff-chip--params{background:#fdf4ff;border-color:#f0abfc;color:#a21caf}.diff-chip--wsfilters{background:#f0fdfa;border-color:#99f6e4;color:#0f766e}.diff-chip--fields{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.diff-chip--tables{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.diff-chip--columns{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.diff-chip--site{background:#fae8ff;border-color:#f0abfc;color:#a21caf}.diff-chip--help{background:#f1f5f9;border-color:#e2e8f0;color:#475569}.diff-chip--freshness{background:#fffbeb;border-color:#fde68a;color:#b45309}.diff-chip--total{font-weight:600}.diff-overview{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:2px 0 8px;font-size:13px;color:var(--foreground);line-height:1.5}.diff-overview-main{font-weight:600}.diff-overview-wl{color:var(--muted-foreground);font-weight:400;font-size:12.5px}.diff-rls{display:inline-flex;align-items:center;gap:4px;cursor:help;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.sev-pills{display:inline-flex;flex-wrap:wrap;gap:5px;align-items:center}.sev-pill{position:relative;display:inline-flex;align-items:center;cursor:default;font-size:11.5px;font-weight:600;padding:1px 9px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.sev-pill--critical{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.sev-pill--cosmetic{background:#fffbeb;border-color:#fde68a;color:#b45309}.sev-pill--wl{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.sev-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:70;display:none;flex-wrap:wrap;gap:5px;width:max-content;max-width:340px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:8px 10px;box-shadow:0 8px 24px #0f172a29}.sev-pill:hover .sev-pop{display:flex}.diff-sec{border:1px solid var(--border);border-radius:10px;margin-bottom:10px;overflow:hidden}.diff-sec--critical{border-color:#fecaca}.diff-sec--cosmetic{border-color:#fde68a}.diff-sec--wl{border-color:#bbf7d0}.diff-sec-head{display:flex;align-items:center;gap:8px;width:100%;border:none;cursor:pointer;text-align:left;padding:8px 12px;font-size:13px;font-weight:700;color:var(--foreground);background:var(--muted)}.diff-sec--critical .diff-sec-head{background:#fef2f2;color:#b91c1c}.diff-sec--cosmetic .diff-sec-head{background:#fffbeb;color:#b45309}.diff-sec--wl .diff-sec-head{background:#f0fdf4;color:#15803d}.diff-sec-caret{flex:none;font-size:11px}.diff-sec-cnt{font-size:11.5px;font-weight:700;padding:0 8px;border-radius:999px;background:#ffffffb3;border:1px solid currentColor}.diff-sec .diff-group{padding:10px 12px 0}.diff-sec .diff-group:last-child{padding-bottom:12px}.diff-checked-wrap{margin:2px 0 10px}.diff-checked-toggle{background:none;border:none;padding:0;cursor:pointer;color:var(--ring);font-size:12.5px}.diff-checked-toggle:hover{text-decoration:underline}.diff-checked{margin-top:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--muted);padding:8px 12px;display:flex;flex-direction:column;gap:3px}.diff-checked-row{display:flex;align-items:baseline;gap:8px;font-size:12.5px}.diff-checked-ic{flex:none;font-weight:700;width:14px;text-align:center}.diff-checked-ic--ok{color:#15803d}.diff-checked-ic--diff{color:#b91c1c}.diff-checked-title{font-weight:600;color:var(--foreground)}.diff-checked-cnt{color:var(--muted-foreground)}.diff-stats{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-bottom:12px;padding:8px 12px;background:var(--muted);border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--foreground)}.diff-stat b{font-weight:700}.diff-stat--ok b{color:#15803d}.diff-stat--warn b{color:#b91c1c}.diff-group{margin-bottom:14px}.diff-group-title{display:flex;align-items:center;gap:8px;margin-bottom:6px}.diff-group-title .diff-chip{font-size:12px;font-weight:600}.diff-expand-all{margin-left:auto;background:none;border:none;padding:0;cursor:pointer;color:var(--ring);font-size:11.5px;white-space:nowrap}.diff-expand-all:hover{text-decoration:underline}.diff-changes{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:6px}.diff-change{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;background:var(--card);min-width:0}.diff-where-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}.diff-where{font-size:12.5px;font-weight:400;color:var(--foreground);min-width:0}.diff-where-name{font-weight:700}.diff-line{display:flex;gap:7px;align-items:baseline;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5;color:var(--foreground);padding:5px 8px;border-radius:6px;border:1px solid transparent}.diff-line+.diff-line{margin-top:4px}.diff-sign{flex:none;font-weight:700}.diff-text{white-space:pre-wrap;word-break:break-word;min-width:0}.diff-change:not(.diff-change--open) .diff-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.diff-expand{flex:none;white-space:nowrap;background:none;border:none;padding:0;cursor:pointer;color:var(--ring);font-size:11.5px}.diff-expand:hover{text-decoration:underline}.diff-del{background:#f5f9ff;border-color:#bfdbfe}.diff-del .diff-sign{color:#2563eb}.diff-add{background:#f6fef9;border-color:#bbf7d0}.diff-add .diff-sign{color:#16a34a}.diff-tok{border-radius:3px;padding:0 1px}.diff-tok--del{background:#bfdbfe;color:#1e40af}.diff-tok--add{background:#bbf7d0;color:#166534}.diff-view--side .diff-changes{grid-template-columns:1fr}.diff-view--side .diff-group{margin-top:10px}.diff-view--side .diff-sign{display:none}.diff-view--side .diff-line{gap:0}.diff-view--side .diff-change{border:none;border-left:3px solid var(--border);border-radius:0;padding:6px 0 6px 10px;background:none}.diff-sides{display:grid;grid-template-columns:1fr 1fr;gap:8px}.diff-change--side .diff-line+.diff-line{margin-top:0}.diff-change--side:not(.diff-change--open) .diff-text{-webkit-line-clamp:1}.diff-change--sev-critical{border-left:3px solid #ef4444;background:#fef6f6}.diff-change--sev-cosmetic{border-left:3px solid #f59e0b;background:#fffdf5}.diff-change--sev-wl{border-left:3px solid #cbd5e1}.diff-view--side .diff-change--sev-critical{border-left-color:#ef4444;background:#fef6f6}.diff-view--side .diff-change--sev-cosmetic{border-left-color:#f59e0b;background:#fffdf5}.diff-view--side .diff-change--sev-wl{border-left-color:#cbd5e1;background:none}.diff-none{display:flex;align-items:center;padding:5px 8px;border-radius:6px;border:1px dashed var(--border);color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.diff-raw-wrap{margin-top:12px}.diff-raw-toggle{background:none;border:none;cursor:pointer;padding:0;color:var(--ring);font-size:13px}.diff-raw{margin-top:8px;max-height:420px;overflow:auto;background:#0f172a;color:#e2e8f0;border-radius:var(--radius);padding:10px 12px;font-size:12px;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.diff-raw>div{white-space:pre-wrap;word-break:break-word}.diff-raw-add{color:#4ade80}.diff-raw-del{color:#f87171}.diff-raw-hunk{color:#38bdf8}.diff-raw-file{color:#94a3b8}.home-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}.tnt-edit-btn{font-size:12.5px;padding:5px 12px;height:auto;min-height:0}.tnt-wrap{border:1px solid var(--border);border-radius:12px;background:var(--card);box-shadow:0 1px 2px #0f172a0a}.tip{position:relative}.tip:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);width:max-content;max-width:260px;white-space:normal;text-align:left;background:#0f172a;color:#fff;font:400 12px/1.4 system-ui,sans-serif;padding:6px 9px;border-radius:6px;box-shadow:0 6px 18px #0000002e;opacity:0;visibility:hidden;pointer-events:none;z-index:60}.tip:hover:after{opacity:1;visibility:visible}.tip--right:after{left:auto;right:0;transform:none}.tip--left:after{left:0;transform:none}.tnt-table{width:100%;border-collapse:collapse;font-size:13px}.tnt-c-done{width:32px}.tnt-c-status{width:1%}.tnt-c-key{width:auto}.tnt-c-alias{width:24%}.tnt-c-id{width:110px}.tnt-c-schema{width:22%}.tnt-c-act{width:116px}.tnt-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground);font-weight:600;padding:11px 14px;background:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap}.tnt-table thead th:first-child{border-top-left-radius:12px}.tnt-table thead th:last-child{border-top-right-radius:12px}.tnt-table td{padding:9px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.tnt-table tbody tr:last-child td{border-bottom:none}.tnt-table tbody tr{transition:background .1s}.tnt-table tbody tr:hover{background:var(--muted)}.tnt-row--frozen{background:#fbfdff}.tnt-row--frozen .tnt-key,.tnt-row--frozen .tnt-num,.tnt-row--frozen .tnt-schema{opacity:.55}.tnt-key{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--foreground)}.tnt-num{text-align:left;font-variant-numeric:tabular-nums}.tnt-schema{background:var(--muted);padding:2px 7px;border-radius:5px;font-size:12.5px}.tnt-dash{color:#cbd5e1}.tnt-inp{width:100%;height:32px;padding:0 9px;border:1px solid var(--input);border-radius:7px;font:inherit;font-size:13px;background:var(--card);color:var(--foreground);transition:border-color .12s,box-shadow .12s}.tnt-inp--num{text-align:left;font-variant-numeric:tabular-nums}.tnt-inp:focus{border-color:var(--ring);box-shadow:0 0 0 3px #3b82f61a;outline:none}.tnt-status{display:inline-flex;border:1px solid var(--input);border-radius:999px;overflow:hidden;background:var(--card)}.tnt-st{border:none;background:transparent;cursor:pointer;font:inherit;font-size:12px;padding:5px 11px;color:var(--muted-foreground);white-space:nowrap;transition:background .1s,color .1s}.tnt-st+.tnt-st{border-left:1px solid var(--input)}.tnt-st:hover{background:var(--muted)}.tnt-st--active.on{background:#dcfce7;color:#15803d;font-weight:600}.tnt-st--pending.on{background:#fef3c7;color:#92400e;font-weight:600}.tnt-st--frozen.on{background:#e0f2fe;color:#0369a1;font-weight:600}.tnt-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;padding:4px 11px;border-radius:999px;white-space:nowrap;border:1px solid transparent}.tnt-badge:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor}.tnt-badge--active{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.tnt-badge--pending{background:#fffbeb;color:#b45309;border-color:#fde68a}.tnt-badge--frozen{background:#f0f9ff;color:#0369a1;border-color:#bae6fd}.tnt-actions{white-space:nowrap}.tnt-actions-inner{display:flex;align-items:center;justify-content:flex-end;gap:4px}.tnt-save{width:16px;text-align:center;flex:none}.tnt-save--ok{color:#15803d;font-weight:700}.tnt-save--err{color:#b91c1c}.tnt-save--wait{color:var(--muted-foreground)}.tnt-ico{display:inline-grid;place-items:center;width:28px;height:28px;flex:none;color:#64748b;background:none;border:none;border-radius:7px;padding:0}.tnt-ico--hint,.tnt-ico--lock{color:#94a3b8;cursor:help}.tnt-ico--btn{cursor:pointer;transition:background .1s,color .1s}.tnt-ico--btn:hover{background:var(--muted);color:var(--foreground)}.tnt-ico--ok{cursor:pointer;color:#15803d;transition:background .1s}.tnt-ico--ok:hover:not(:disabled){background:#f0fdf4}.tnt-ico--ok:disabled{opacity:.35;cursor:default}.tnt-draft td{background:#f8fafc}.tnt-add-row{margin-right:auto}.tnt-done{text-align:center;padding-left:10px;padding-right:6px}.tnt-done-cb{width:15px;height:15px;cursor:pointer;accent-color:#94a3b8;opacity:.55;transition:opacity .1s}.tnt-done-cb:hover{opacity:.9}.tnt-done-cb:checked{accent-color:#16a34a;opacity:1}.chk-flow{grid-template-columns:500px 44px 1fr;align-items:start}.chk-flow .mig-card{height:540px}.chk-flow .mig-arrow{align-self:center}.chk-hint{margin-left:8px;text-transform:none;font-weight:400;font-size:11px;color:var(--muted-foreground)}.chk-allwl{margin-left:8px;vertical-align:middle;text-transform:none}.chk-sites{display:flex;flex-direction:column;gap:3px;flex:1;min-height:0;overflow-y:scroll;scrollbar-gutter:stable;padding-right:6px}.chk-sites::-webkit-scrollbar{width:9px}.chk-sites::-webkit-scrollbar-track{background:transparent}.chk-sites::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:6px;border:2px solid var(--card)}.chk-sites::-webkit-scrollbar-thumb:hover{background:#94a3b8}.chk-dot{flex:none;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:999px;font-size:11px;font-weight:700;line-height:1;cursor:help}.chk-dot--warn{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.chk-dot--ok{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.chk-dot--err{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.chk-site-row{display:flex;align-items:center;gap:10px}.chk-site-row .mig-option{flex:none;width:260px}.chk-site-row .mig-dd{flex:1;min-width:0}.chk-site-row .chk-nomatch{flex:none;font-size:12px;color:#b45309}.chk-wb-err{flex:1;min-width:0;font-size:12px;color:#b91c1c;display:flex;align-items:center;gap:8px}.chk-refresh{flex:none;border:1px solid var(--border);background:var(--card);cursor:pointer;width:26px;height:26px;border-radius:7px;font-size:14px;line-height:1;color:var(--muted-foreground)}.chk-refresh:hover{border-color:#94a3b8;color:var(--foreground)}.chk-targets{margin-top:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:12px 14px}.chk-targets-title{font-size:13px;font-weight:600;margin-bottom:10px;color:var(--foreground)}.chk-hint{font-weight:400;color:var(--muted-foreground)}.chk-target{display:flex;align-items:center;gap:12px;padding:5px 0}.chk-target-site{flex:none;width:200px;display:flex;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.chk-target .mig-dd{flex:1;min-width:0}.chk-nomatch{flex:none;font-size:12px;color:#b45309}.chk-results{margin-top:16px;display:flex;flex-direction:column;gap:8px}.chk-card{border:1px solid var(--border);border-radius:12px;background:var(--card);position:relative}.chk-card:hover{z-index:20}.chk-card-head{width:100%;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 14px;background:var(--card);border:none;cursor:pointer;text-align:left;font:inherit;position:sticky;top:0;z-index:6;border-radius:12px 12px 0 0;border-bottom:1px solid transparent}.chk-card-head:last-child{border-radius:12px}.chk-card-head:not(:last-child){border-bottom-color:var(--border);background:#e2e8f0}.chk-card-head:hover{background:var(--muted)}.chk-route{font-weight:600;font-size:14px;flex:0 0 300px}.chk-route-a{color:#1d4ed8}.chk-route-b{color:#15803d}.chk-badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}.chk-badge--ok{background:#f1f5f9;color:#475569}.chk-badge--wl{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.chk-badge--warn{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.chk-badge--err{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.chk-chips{display:flex;flex-wrap:wrap;gap:5px;flex:1;min-width:0}.chk-caret{flex:none;color:var(--muted-foreground)}.chk-card-body{padding:0 14px 14px}.chk-legend{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;padding:8px 10px;margin:0 -14px 4px;background:var(--card);border-bottom:1px solid var(--border);font-size:12.5px;font-weight:600}.chk-legend-a{color:#b91c1c}.chk-legend-b{color:#15803d}.mart-sum{margin-top:8px}.mart-sum>summary{cursor:pointer;color:var(--ring);font-size:12.5px;padding:4px 0}.mart-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}.mart-panel{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;background:var(--card)}.mart-panel--a{border-color:#bfdbfe}.mart-panel--b{border-color:#bbf7d0}.mart-panel-head{font-weight:600;font-size:12.5px;margin-bottom:6px}.mart-panel--a .mart-panel-head{color:#1d4ed8}.mart-panel--b .mart-panel-head{color:#15803d}.mart-empty{color:var(--muted-foreground);font-size:12px}.mart-table{margin-bottom:8px}.mart-table-name{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:600;color:var(--foreground);margin-bottom:2px}.mart-fields{list-style:none;margin:0;padding:0 0 0 8px}.mart-fields li{display:flex;justify-content:space-between;gap:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;padding:1px 0;border-bottom:1px dashed var(--border)}.mart-col{color:var(--foreground);word-break:break-all}.mart-type{color:var(--muted-foreground);white-space:nowrap}.mart-field--diff{background:#fffbeb;border-radius:4px;padding-left:4px}.mart-field--diff .mart-type{color:#b45309}.mart-table-name.mart-diff{background:#fffbeb;color:#b45309;border-radius:4px;padding:0 4px}@media (max-width: 720px){.mart-cols{grid-template-columns:1fr}}.perm-panel{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;background:var(--card)}.perm-panel--a{border-color:#bfdbfe}.perm-panel--b{border-color:#bbf7d0}.perm-panel-head{font-weight:600;font-size:12.5px;margin-bottom:6px}.perm-panel--a .perm-panel-head{color:#1d4ed8}.perm-panel--b .perm-panel-head{color:#15803d}.perm-row{display:flex;align-items:baseline;gap:7px;padding:2px 4px;border-bottom:1px dashed var(--border);font-size:12px}.perm-row--diff{background:#fffbeb;border-radius:4px}.perm-row--diff .perm-name{color:#b45309;font-weight:700}.perm-ico{flex:none}.perm-name{font-weight:600;color:var(--foreground);white-space:nowrap}.perm-caps{flex:1;min-width:0;color:var(--muted-foreground);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.perm-deny{flex:none;font-size:11px;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:999px;padding:0 6px;cursor:help}.chk-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--muted-foreground);margin:18px 0 6px;padding-top:14px;border-top:1px solid var(--border)}.chk-card-body .diff-view{margin-top:4px}.mon-controls{border:1px solid var(--border);border-radius:12px;background:var(--card);padding:14px 16px;margin-bottom:16px}.mon-ctl-row{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap}.mon-ref{min-width:260px;flex:0 1 360px;margin:0}.mon-db{white-space:nowrap}.mon-actions{margin-left:auto;display:flex;gap:10px;align-items:center}.mon-targets{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.mon-targets-label{font-size:12px;color:var(--muted-foreground);margin-right:4px}.mon-pick{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .12s}.mon-pick:hover:not(:disabled){border-color:#94a3b8}.mon-pick--on{background:#eef2ff;border-color:#c7d2fe;color:#3730a3;font-weight:600}.mon-pick--frozen{opacity:.6}.mon-pick:disabled{cursor:default}.mon-empty{color:var(--muted-foreground);font-size:13px;line-height:1.55;border:1px dashed var(--border);border-radius:12px;padding:22px;background:var(--card)}.mon-viewbar{display:flex;justify-content:flex-end;margin:-2px 0 8px}.mon-viewbar .mig-chk{font-size:12.5px}.mon-td--kw{position:relative}.mon-kw{position:absolute;top:1px;right:2px;z-index:2;font-size:10px;line-height:1;color:#b91c1c;cursor:help}.kw-panel{margin:15px 0 12px;border:1px solid #fecaca;border-radius:10px;background:#fef2f2;padding:10px 12px}.kw-panel-head{display:flex;align-items:center;gap:6px;width:100%;padding:0;font-family:inherit;font-weight:700;font-size:12.5px;color:#b91c1c;background:none;border:none;cursor:pointer;text-align:left}.kw-caret{font-size:10px}.kw-panel-body{margin-top:8px}.kw-intro{font-size:11.5px;line-height:1.5;color:#7f1d1d;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #fecaca}.kw-hit{margin-bottom:10px}.kw-hit:last-child{margin-bottom:0}.kw-hit-head{display:flex;align-items:baseline;gap:8px;margin-bottom:5px}.kw-phrase{font-weight:700;color:#b91c1c;white-space:nowrap}.kw-count{font-size:11px;color:var(--muted-foreground)}.kw-occ-list{display:flex;flex-direction:column;gap:7px}.kw-occ{background:var(--card);border:1px solid #fecaca;border-radius:8px;border-left:3px solid #ef4444;padding:7px 9px}.kw-occ-meta{display:flex;align-items:center;gap:8px;margin-bottom:5px;flex-wrap:wrap}.kw-kind{font-size:10.5px;font-weight:600;padding:1px 8px;border-radius:999px;background:#fee2e2;color:#b91c1c;white-space:nowrap}.kw-kind--url{background:#dbeafe;color:#1e40af}.kw-kind--sql{background:#ede9fe;color:#6d28d9}.kw-kind--caption{background:#fef3c7;color:#b45309}.kw-kind--calc{background:#fee2e2;color:#b91c1c}.kw-kind--connection{background:#dcfce7;color:#15803d}.kw-kind--encoding{background:#fce7f3;color:#9d174d}.kw-kind--alias,.kw-kind--member,.kw-kind--text-run,.kw-kind--text{background:var(--muted);color:var(--muted-foreground)}.kw-where{font-size:11px;color:var(--muted-foreground)}.kw-code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;color:#0f172a;background:var(--muted);border-radius:6px;padding:6px 8px;margin-bottom:6px;white-space:pre-wrap;word-break:break-all;max-height:120px;overflow:auto}.kw-fix{font-size:11.5px;line-height:1.5;color:var(--foreground)}.kw-fix b{color:#b91c1c}.kw-field{font-size:12px;margin:4px 0;color:var(--foreground)}.kw-field b{color:#b91c1c}.kw-more{font-size:11px;color:var(--muted-foreground);font-style:italic}.chk-badge--kw{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.kw-fix-btn{margin-top:6px;padding:4px 12px;font-size:12px;font-family:inherit;cursor:pointer;background:var(--card);color:#b91c1c;border:1px solid #fecaca;border-radius:6px}.kw-fix-btn:hover{background:#fef2f2}.kw-fix{margin-top:8px;padding:10px;background:var(--card);border:1px solid var(--border);border-radius:8px}.kw-fix-note{font-size:12px;color:var(--muted-foreground)}.kw-fix-err{font-size:12px;color:#b91c1c;margin-bottom:6px}.kw-fix-row{margin-bottom:8px}.kw-fix-old{font-size:11.5px;color:var(--muted-foreground);margin-bottom:3px}.kw-fix-old b{color:var(--foreground)}.kw-fix-host{color:var(--muted-foreground)}.kw-fix-input{width:100%;height:32px;padding:0 10px;font-size:13px;font-family:inherit;border:1px solid var(--input);border-radius:6px;background:var(--card);color:var(--foreground)}.kw-fix-input:focus{outline:none;border-color:var(--ring)}.kw-fix-log{margin:6px 0;padding:8px;background:#0f172a;color:#e2e8f0;border-radius:6px;font-family:ui-monospace,monospace;font-size:11px;max-height:160px;overflow:auto}.kw-fix-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.kw-fix-done{margin-top:6px;font-size:12px;color:#15803d;font-weight:500}.kw-fix-warn{margin-top:6px;padding:6px 10px;font-size:12px;line-height:1.45;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px}.leak-notices{position:fixed;top:12px;right:12px;z-index:200;display:flex;flex-direction:column;gap:10px;max-width:380px}.leak-note{background:#fef2f2;border:1px solid #f87171;border-left:4px solid #dc2626;border-radius:10px;padding:12px 14px;box-shadow:0 10px 30px #0000002e}.leak-note-head{font-weight:700;font-size:13px;color:#b91c1c;margin-bottom:4px}.leak-note-body{font-size:12.5px;color:var(--foreground);line-height:1.45}.leak-note-err{font-size:12px;color:#b91c1c;margin-top:6px}.leak-note-actions{display:flex;gap:8px;margin-top:10px}.leak-del{border:none;background:#dc2626;color:#fff;cursor:pointer;font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:7px}.leak-del:hover:not(:disabled){background:#b91c1c}.leak-del:disabled{opacity:.6;cursor:default}.leak-keep{border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);cursor:pointer;font-size:12.5px;padding:6px 12px;border-radius:7px}.leak-keep:hover:not(:disabled){border-color:#94a3b8}.mig-hint-text{font-size:12.5px;color:var(--muted-foreground)}.btn-sm{font-size:12px;padding:4px 10px;height:auto;min-height:0}.mrg-result{border:1px solid var(--border);border-radius:12px;background:var(--card);padding:14px 16px;margin-top:12px}.mrg-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px}.mrg-count{font-size:12.5px;color:var(--muted-foreground);margin-right:auto}.mrg-count b{color:var(--foreground)}.mrg-ops{display:flex;flex-direction:column;gap:6px}.mrg-op{display:flex;gap:9px;align-items:flex-start;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--card);cursor:pointer}.mrg-op:hover{border-color:#94a3b8}.mrg-op--disabled{opacity:.65;cursor:default;background:var(--muted)}.mrg-op input{margin-top:3px;flex:none;cursor:inherit}.mrg-op-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.mrg-op-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.mrg-op-title{font-weight:600;font-size:13px}.mrg-op-where{font-size:11.5px;color:var(--muted-foreground)}.mrg-kind{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:1px 7px;border-radius:999px;border:1px solid transparent;flex:none}.mrg-kind--calc_add{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.mrg-kind--calc_remove{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.mrg-kind--calc_modify{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.mrg-kind--help_replace{background:#f1f5f9;border-color:#e2e8f0;color:#475569}.mrg-op-diff{display:flex;flex-direction:column;gap:1px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;word-break:break-word}.mrg-before{color:#2563eb}.mrg-after{color:#16a34a}.mrg-warn{font-size:11.5px;color:#b45309}.mrg-skip{font-size:11.5px;color:var(--muted-foreground);font-style:italic}.mrg-preview{font-size:12px;color:var(--muted-foreground)}.mrg-log{margin-top:12px;border:1px solid var(--border);border-radius:12px;background:#0f172a;color:#e2e8f0;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.mrg-log-line{padding:1px 0;white-space:pre-wrap}.mrg-log-line--err{color:#fca5a5}.mrg-done{margin-top:8px;padding-top:8px;border-top:1px solid #334155;color:#bbf7d0}.mrg-done a{color:#93c5fd}.mrg-done-skip{color:#fcd34d;font-size:12px;margin-top:4px}.mon-stamp{font-size:12px;color:var(--muted-foreground);margin:-4px 0 12px}.mon-stamp b{color:var(--foreground);font-weight:600}.mon-stamp-live{color:#2563eb}.mon-note{font-size:12px;color:var(--muted-foreground);white-space:nowrap;cursor:help}.mon-scroll{overflow:auto;max-height:72vh;border:1px solid var(--border);border-radius:12px;background:var(--card)}.mon-table{border-collapse:separate;border-spacing:0;font-size:13px}.mon-table th,.mon-table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.mon-table thead th{position:sticky;top:0;z-index:3;background:var(--muted);padding:8px 10px;font-weight:600;color:var(--foreground);vertical-align:bottom}.mon-col-head{min-width:64px;max-width:130px}.mon-col-label{display:block;max-width:116px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.mon-row-head{position:sticky;left:0;z-index:2;background:var(--card);text-align:left;font-weight:500;padding:6px 12px 6px 14px}.mon-table thead th.mon-corner{position:sticky;left:0;top:0;z-index:5;background:var(--muted);text-align:left;padding:6px 12px 6px 14px;min-width:220px}.mon-corner-y{font-size:12px;color:var(--foreground);font-weight:600}.mon-corner-x{display:block;font-size:10px;color:var(--muted-foreground)}.mon-row-label{display:inline-block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.mon-table tbody tr:hover .mon-row-head{background:var(--muted)}.mon-td{text-align:center;padding:4px}.mon-cell{display:inline-grid;place-items:center;width:28px;height:28px;border:none;background:none;border-radius:8px;cursor:pointer;padding:0}.mon-cell:not(.mon-cell--pending):hover{background:#eef2ff}.mon-cell--sel{background:#e0e7ff;box-shadow:inset 0 0 0 2px #818cf8}.mon-cell--pending{cursor:default}.mon-dot{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:999px;font-size:12px;font-weight:700;line-height:1}.mon-dot--pending{color:#cbd5e1;font-size:16px}.mon-dot--missing{background:#f1f5f9;color:#94a3b8;border:1px solid #e2e8f0}.mon-cell .chk-dot{cursor:pointer}.mon-detail{margin-top:16px;border:1px solid var(--border);border-radius:12px;background:var(--card);box-shadow:0 1px 2px #0f172a0a}.mon-detail-head{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);background:#f1f5f9;border-radius:12px 12px 0 0}.mon-detail-close{margin-left:auto;border:none;background:none;cursor:pointer;font-size:15px;color:var(--muted-foreground);line-height:1;padding:4px 8px;border-radius:6px}.mon-detail-close:hover{background:var(--border);color:var(--foreground)}.mig-log-diff{margin:6px 0}.mig-log-diff>summary{cursor:pointer;list-style:none;color:var(--ring);padding:4px 0;-webkit-user-select:none;user-select:none}.mig-log-diff>summary::-webkit-details-marker{display:none}.mig-log-diff>summary:before{content:"▸ "}.mig-log-diff[open]>summary:before{content:"▾ "}.prm-title{font-size:18px;font-weight:600;margin:0 0 4px}.prm-sub{margin-bottom:14px;max-width:760px;line-height:1.5}.prm-noaccess{margin-bottom:14px}.prm-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:9px 12px;background:var(--muted);border-radius:var(--radius);margin-bottom:12px}.prm-toolbar-hint{font-size:12px;color:var(--muted-foreground);flex:1;min-width:140px}.prm-loading{font-size:12px;color:var(--ring)}.prm-head,.prm-row{display:grid;grid-template-columns:150px minmax(0,1fr) 18px minmax(0,1fr) 46px 26px;gap:8px;align-items:center}.prm-head{font-size:11px;color:var(--muted-foreground);padding:0 2px 6px}.prm-head-res{text-align:center}.prm-rows{display:flex;flex-direction:column;gap:8px}.prm-row{position:relative}.prm-arrow{text-align:center;color:var(--muted-foreground)}.prm-res{display:flex;justify-content:center}.prm-ref-hint{position:absolute;right:54px;top:-8px;font-size:9px;letter-spacing:.02em;color:var(--muted-foreground);background:var(--card);padding:0 4px;text-transform:uppercase}.prm-badge{min-width:30px;height:26px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;border:1px solid transparent}.prm-badge--btn{cursor:pointer}.prm-badge--warn{background:#fef3c7;color:#b45309;border-color:#fde68a}.prm-badge--ok{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.prm-badge--err{background:#fef2f2;color:#b91c1c;border-color:#fecaca;cursor:help}.prm-badge--wait{background:var(--muted);color:var(--muted-foreground)}.prm-badge--none{background:transparent;color:var(--muted-foreground);border:none}.prm-del{width:24px;height:24px;padding:0;border:none;background:none;color:var(--muted-foreground);cursor:pointer;border-radius:6px;font-size:13px}.prm-del:hover:not(:disabled){background:#fef2f2;color:var(--destructive)}.prm-del:disabled{opacity:.3;cursor:default}.prm-add{margin-top:9px;width:100%;padding:8px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--card);color:var(--muted-foreground);cursor:pointer;font-size:13px;font-family:inherit}.prm-add:hover{background:var(--accent);color:var(--foreground)}.prm-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.prm-actions-right{display:flex;align-items:center;gap:10px;margin-left:auto}.btn-danger-solid{background:var(--destructive)!important;color:#fff!important;border-color:var(--destructive)!important}.btn-danger-solid:disabled{opacity:.5}.prm-confirm{margin-top:12px;border:1px solid #fecaca;border-radius:var(--radius);overflow:hidden}.prm-confirm-head{padding:9px 13px;background:#fef2f2;color:#b91c1c;font-weight:600;font-size:13px}.prm-confirm-body{padding:11px 13px 4px;font-size:13px;color:var(--foreground);line-height:1.5}.prm-confirm-chk{margin:6px 13px 10px}.prm-confirm-actions{display:flex;justify-content:flex-end;gap:10px;padding:0 13px 12px}.prm-log{margin-top:14px;padding:10px 12px;background:#0f172a;color:#e2e8f0;border-radius:var(--radius);font-family:ui-monospace,monospace;font-size:12px;max-height:260px;overflow:auto}.prm-log-line{padding:1px 0;white-space:pre-wrap;word-break:break-word}.prm-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;z-index:50}.prm-modal{background:var(--card);border-radius:12px;border:1px solid var(--border);width:min(760px,100%);max-height:86vh;display:flex;flex-direction:column;overflow:hidden}.prm-modal.mon-modal{width:min(940px,100%)}.mon-recheck{flex:none;white-space:nowrap}.tinfo{margin-top:16px;border:1px solid var(--border);border-radius:12px;padding:14px 16px}.tinfo-head{font-size:15px;font-weight:600;font-family:ui-monospace,monospace}.tinfo-comment{font-size:12.5px;color:var(--muted-foreground);margin-top:2px}.tinfo-meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin:12px 0}.tinfo-meta>div{display:flex;flex-direction:column}.tinfo-meta span{font-size:11px;color:var(--muted-foreground)}.tinfo-meta b{font-size:13px;font-weight:500}.tinfo-meta--wide b{font-family:ui-monospace,monospace;font-size:12px}.tinfo-cols{width:100%;border-collapse:collapse;font-size:12.5px}.tinfo-cols th{text-align:left;font-weight:500;color:var(--muted-foreground);border-bottom:1px solid var(--border);padding:6px 8px;font-size:11px}.tinfo-cols td{padding:5px 8px;border-bottom:1px solid var(--muted);vertical-align:top}.tinfo-num{color:var(--muted-foreground);width:30px}.tinfo-name{font-weight:500}.tinfo-type{font-family:ui-monospace,monospace;color:#1d4ed8}.tinfo-def{font-family:ui-monospace,monospace;color:var(--muted-foreground)}.tinfo-cmt{color:var(--muted-foreground)}.tinfo-key{font-size:10px;font-weight:600;padding:1px 5px;border-radius:4px;margin-right:3px}.tinfo-key--pk{background:#fef3c7;color:#b45309}.tinfo-key--sort{background:#dbeafe;color:#1e40af}.tinfo-key--part{background:#dcfce7;color:#15803d}.tinfo-metaline{font-size:11px;color:var(--muted-foreground);font-family:ui-monospace,monospace;margin:2px 0 8px;word-break:break-word}.tinfo-cmt-mark{margin-left:4px;color:var(--muted-foreground);cursor:help;font-size:11px}.cc-results{margin-top:16px;display:flex;flex-direction:column;gap:10px}.cc-card{border:1px solid var(--border);border-radius:12px;background:var(--card);padding:14px 16px}.cc-card-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.cc-site{font-weight:600;font-size:14px}.cc-verdict{margin-left:auto;font-size:13px;font-weight:600;padding:3px 12px;border-radius:999px;white-space:nowrap}.cc-verdict--ok{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.cc-verdict--warn{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.cc-verdict--err{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.cc-changes{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.cc-group{border:1px solid #fde68a;border-radius:8px;overflow:hidden}.cc-group-head{display:flex;align-items:center;gap:8px;padding:7px 12px;background:#fffbeb}.cc-group-label{font-weight:500;font-size:13px;color:#92400e}.cc-group-count{margin-left:auto;font-size:12px;font-weight:600;color:#b45309;background:#fef3c7;border-radius:999px;padding:0 8px}.cc-pills{display:flex;flex-wrap:wrap;gap:6px;padding:9px 12px;border-top:1px solid #fde68a;background:var(--card)}.cc-pill{display:inline-flex;align-items:center;max-width:100%;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:500;border:1px solid var(--border);background:var(--muted);color:var(--foreground);word-break:break-word}.cc-meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12.5px;color:var(--muted-foreground);margin-bottom:12px}.cc-meta-item b{color:var(--foreground);font-weight:500}.prm-modal-head{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;padding:12px 14px;border-bottom:1px solid var(--border)}.prm-modal-head .chk-route{flex:1 1 auto;min-width:0}.prm-modal-close{margin-left:auto;width:26px;height:26px;border:none;background:none;cursor:pointer;color:var(--muted-foreground);font-size:14px;border-radius:6px}.prm-modal-close:hover{background:var(--accent);color:var(--foreground)}.prm-modal-body{padding:12px 14px;overflow:auto}.prm-precompare{margin-top:8px;text-align:right;color:var(--muted-foreground)}.prm-delsrc{margin-top:16px;border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.prm-delsrc-head{font-weight:500;font-size:14px;margin-bottom:4px}.prm-delsrc-hint{font-size:12px;color:var(--muted-foreground);line-height:1.5;margin-bottom:10px}.prm-delsrc-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;cursor:pointer}.prm-delsrc-name{font-weight:500}.prm-delsrc-loc{color:var(--muted-foreground);font-size:12px}.prm-delsrc-st{margin-left:auto;font-size:12px;color:var(--muted-foreground)}.prm-delsrc-st--ok{color:#15803d}.prm-delsrc-st--err{color:#b91c1c;cursor:help}.prm-delsrc-btn{margin-top:10px}.prm-delsrc-confirm{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:13px}.prm-delsrc-confirm span{margin-right:auto;color:#b91c1c;font-weight:500}.prm-sched-risk{margin:12px 0;padding:12px 14px;border-radius:8px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:13px;line-height:1.5;display:flex;flex-direction:column;gap:6px}.prm-sched-risk-list{margin:0;padding-left:20px}.prm-sched-risk-list li{font-weight:500}.prov-page{max-width:900px}.prov-form{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:12px 20px;margin:16px 0}.prov-opts{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.prov-resume-note{font-size:13px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:8px 12px}.prov-active{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin:12px 0;padding:12px 14px;border-radius:8px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-size:13px}.prov-confirm{margin:12px 0;padding:12px 14px;border-radius:8px;font-size:13px;line-height:1.5;background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.prov-confirm-head{font-weight:600;margin-bottom:6px}.prov-confirm-actions{display:flex;gap:8px;margin-top:10px}.prov-log{margin:16px 0;padding:12px;max-height:420px;overflow-y:auto;background:var(--muted);border:1px solid var(--border);border-radius:8px;font-family:ui-monospace,monospace;font-size:12px;line-height:1.6}.prov-log-line{white-space:pre-wrap;word-break:break-word}.prov-history{margin-top:24px}.prov-history-head{font-weight:600;font-size:14px;margin-bottom:8px}.prov-run{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--border);font-size:13px}.prov-run-name{font-weight:500}.prov-run-meta{color:var(--muted-foreground);font-size:12px}.prov-run-err{color:#b91c1c;font-size:12px;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prov-badge{font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap}.prov-badge--running{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.prov-badge--done{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.prov-badge--failed{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.prov-badge--stopped{background:var(--muted);color:var(--muted-foreground)}.prov-badge--interrupted{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.prov-tpl{margin:12px 0;padding:12px 14px;border-radius:8px;background:var(--muted);border:1px solid var(--border);font-size:13px}.prov-tpl-head{margin-bottom:8px}.prov-tpl-limits{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:8px}.prov-tpl-limit{color:var(--muted-foreground)}.prov-tpl-limit b{color:var(--foreground);font-weight:500}.prov-tpl-list{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);max-height:240px;overflow-y:auto;font-size:12px;line-height:1.7;columns:2;column-gap:24px}.prov-tpl-list code{font-family:ui-monospace,monospace}.prov-page h2{margin-bottom:14px}.prov-page>.hint{margin-bottom:20px;line-height:1.5}.prov-hint-block{margin:-2px 0 4px 26px;font-size:12.5px;line-height:1.5;color:var(--muted-foreground);max-width:640px}.prov-hint-block b{color:var(--foreground);font-weight:500}.input-error,.input-error:focus{border-color:var(--destructive, #dc2626);background:color-mix(in srgb,var(--destructive, #dc2626) 6%,transparent)}.prov-ext-url{display:block;margin-top:2px;font-size:11.5px;color:var(--foreground);word-break:break-all}.tl{display:flex;align-items:flex-start;gap:0;margin:20px 0 8px;padding:4px 2px 0;overflow-x:auto}.tl-item{position:relative;flex:1 1 0;min-width:54px;display:flex;flex-direction:column;align-items:center;gap:6px}.tl-item:before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:2px;background:var(--border);z-index:0}.tl-item:first-child:before{display:none}.tl-item--done:before,.tl-item--current:before{background:#22c55e}.tl-dot{position:relative;z-index:1;width:30px;height:30px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;cursor:help;background:var(--card);border:2px solid var(--border);color:var(--muted-foreground);transition:background .25s,border-color .25s,color .25s}.tl-item--done .tl-dot{background:#22c55e;border-color:#22c55e;color:#fff}.tl-item--failed .tl-dot{background:#dc2626;border-color:#dc2626;color:#fff}.tl-item--current .tl-dot{background:#3b82f6;border-color:#3b82f6;color:#fff;animation:tl-pulse 1.4s ease-in-out infinite}.tl-item--skipped .tl-dot{opacity:.45;border-style:dashed}@keyframes tl-pulse{0%,to{box-shadow:0 0 #3b82f68c}50%{box-shadow:0 0 0 7px #3b82f600}}@media (prefers-reduced-motion: reduce){.tl-item--current .tl-dot{animation:none;box-shadow:0 0 0 4px #3b82f659}}.tl-label{font-size:10.5px;line-height:1.25;text-align:center;cursor:help;color:var(--muted-foreground);max-width:88px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tl-item--done .tl-label,.tl-item--current .tl-label{color:var(--foreground)}.prov-unfinished{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin:12px 0 16px;padding:12px 14px;border-radius:8px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:13px;line-height:1.5}.prov-unfinished b{color:#78350f}.prov-tpl-limit{cursor:help;border-bottom:1px dotted var(--border)}.prov-tpl-verdict{margin:6px 0 8px;font-size:12.5px;color:#15803d;line-height:1.45}.prov-mark{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-right:5px;border-radius:999px;font-size:9px;font-style:normal;font-weight:700;line-height:1;vertical-align:1px}.prov-mark--ok{background:#dcfce7;color:#15803d}.prov-mark--info{background:#e0e7ff;color:#4338ca}.prov-mark--warn{background:#fef3c7;color:#b45309}
