.pyrp-section{max-width:880px}.pyrp-section__title{margin:0 0 var(--space-2);font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--color-fg-primary);display:flex;align-items:center;gap:var(--space-2)}.pyrp-section__description{margin:0 0 var(--space-4);font-size:var(--fs-md);color:var(--color-fg-secondary);line-height:var(--line-normal)}.pyrp-section__body{display:block}.pyrp-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--fs-md);font-weight:var(--fw-medium);line-height:1;padding:8px 14px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:background var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast),box-shadow var(--motion-fast);-webkit-user-select:none;user-select:none;white-space:nowrap}.pyrp-btn:disabled{cursor:not-allowed;opacity:.55}.pyrp-btn--primary{background:var(--color-brand-600);color:var(--color-fg-on-brand);border-color:var(--color-brand-600)}.pyrp-btn--primary:hover:not(:disabled){background:var(--color-brand-700);border-color:var(--color-brand-700)}.pyrp-btn--secondary{background:var(--color-bg-panel);color:var(--color-fg-primary);border-color:var(--color-border-strong)}.pyrp-btn--secondary:hover:not(:disabled){background:var(--color-bg-muted)}.pyrp-btn--ghost{background:transparent;color:var(--color-fg-secondary);border-color:transparent}.pyrp-btn--ghost:hover:not(:disabled){background:var(--color-bg-overlay);color:var(--color-fg-primary)}.pyrp-btn--danger{background:var(--color-danger-600);color:var(--color-fg-on-brand);border-color:var(--color-danger-600)}.pyrp-btn--sm{padding:4px 10px;font-size:var(--fs-sm)}.pyrp-spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:pyrp-spin .7s linear infinite}.pyrp-spinner--lg{width:20px;height:20px;border-width:3px}.pyrp-form{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);row-gap:var(--space-2);column-gap:var(--space-4);align-items:center;max-width:720px}.pyrp-form__label{font-size:var(--fs-md);color:var(--color-fg-secondary)}.pyrp-form__hint{margin-left:var(--space-2);font-size:var(--fs-sm);color:var(--color-fg-muted)}.pyrp-form__error{grid-column:2;font-size:var(--fs-sm);color:var(--color-danger-600)}.pyrp-input,.pyrp-select{width:100%;max-width:360px;padding:6px 8px;font-size:var(--fs-md);color:var(--color-fg-primary);background:var(--color-bg-panel);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.pyrp-input:hover:not(:disabled),.pyrp-select:hover:not(:disabled){border-color:var(--color-fg-muted)}.pyrp-input:focus-visible,.pyrp-select:focus-visible{outline:none;border-color:var(--color-brand-600);box-shadow:var(--shadow-focus)}.pyrp-input:disabled,.pyrp-select:disabled{background:var(--color-bg-muted);color:var(--color-fg-muted);cursor:not-allowed}.pyrp-input--mono{font-family:var(--font-mono);font-size:var(--fs-sm)}.pyrp-input--num{max-width:160px}.pyrp-checkbox{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-md)}.pyrp-checkbox input{margin:0;cursor:pointer}.pyrp-error{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-danger-100);border:1px solid var(--color-danger-600);border-left-width:4px;border-radius:var(--radius-md);color:var(--color-danger-600);font-family:var(--font-mono);font-size:var(--fs-sm);white-space:pre-wrap;word-break:break-word}.pyrp-result{margin-top:var(--space-4);padding:var(--space-4);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.pyrp-result__heading{margin:0 0 var(--space-3);font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--color-fg-primary);display:flex;align-items:center;gap:var(--space-2)}.pyrp-stats{border-collapse:collapse;font-size:var(--fs-md)}.pyrp-stats td{padding:var(--space-1) var(--space-3) var(--space-1) 0}.pyrp-stats td:first-child{color:var(--color-fg-muted);white-space:nowrap}.pyrp-stats td:last-child{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--color-fg-primary)}.pyrp-badge{display:inline-flex;align-items:center;padding:1px var(--space-2);font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:1.5;border-radius:var(--radius-pill);border:1px solid transparent;white-space:nowrap}.pyrp-badge--mock{background:var(--color-warning-100);color:var(--color-warning-600);border-color:var(--color-warning-600)}.pyrp-badge--wine{background:var(--color-info-100);color:var(--color-info-600);border-color:var(--color-info-600)}.pyrp-badge--ok{background:var(--color-success-100);color:var(--color-success-600);border-color:var(--color-success-600)}.pyrp-badge--neutral{background:var(--color-bg-muted);color:var(--color-fg-muted);border-color:var(--color-border)}.pyrp-badge--danger{background:var(--color-danger-100);color:var(--color-danger-600);border-color:var(--color-danger-600)}.pyrp-layout{display:grid;grid-template-columns:var(--layout-sidebar-w) 1fr;grid-template-rows:var(--layout-header-h) 1fr auto;grid-template-areas:"header header" "sidebar main" "log log";height:100vh;width:100vw}.pyrp-layout__header{grid-area:header;background:var(--color-brand-600);color:var(--color-fg-on-brand);display:flex;align-items:center;padding:0 var(--space-4);gap:var(--space-3)}.pyrp-layout__title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:.5px}.pyrp-layout__health{font-size:var(--fs-sm)}.pyrp-layout__health--ok{color:var(--color-success-100)}.pyrp-layout__health--bad{color:var(--color-danger-100)}.pyrp-layout__health--unknown{color:var(--color-fg-subtle)}.pyrp-layout__project{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-fg-on-brand);padding:2px var(--space-2);background:#ffffff1f;border-radius:var(--radius-pill);max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pyrp-layout__project-label,.pyrp-layout__project--none{color:var(--color-brand-100);font-weight:var(--fw-normal)}.pyrp-layout__version{margin-left:auto;font-size:var(--fs-xs);color:var(--color-brand-100)}.pyrp-layout__sidebar{grid-area:sidebar;background:var(--color-bg-sidebar);border-right:1px solid var(--color-border);overflow-y:auto;padding:var(--space-2)}.pyrp-layout__main{grid-area:main;overflow:auto;padding:var(--space-4) var(--space-5);background:var(--color-bg-app)}.pyrp-layout__footer{grid-area:log;background:var(--color-bg-footer);border-top:1px solid var(--color-border)}.pyrp-layout__log-toggle{display:flex;align-items:center;padding:var(--space-1) var(--space-3);font-size:var(--fs-sm);cursor:pointer;background:var(--color-bg-muted);-webkit-user-select:none;user-select:none;color:var(--color-fg-secondary)}.pyrp-layout__log-body{padding:var(--space-2)}.pyrp-tree{font-size:var(--fs-md)}.pyrp-tree__item{display:flex;align-items:center;gap:var(--space-2);padding:5px var(--space-2);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--color-fg-primary);transition:background var(--motion-fast)}.pyrp-tree__item:hover{background:var(--color-bg-overlay)}.pyrp-tree__item--group{font-weight:var(--fw-bold);color:var(--color-fg-secondary)}.pyrp-tree__item--leaf{font-weight:var(--fw-normal)}.pyrp-tree__item--active{background:var(--color-brand-100);color:var(--color-brand-700)}.pyrp-tree__item--active:hover{background:var(--color-brand-100)}.pyrp-tree__caret{color:var(--color-fg-muted);font-size:10px;width:10px;text-align:center;flex-shrink:0}.pyrp-tree__label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pyrp-tree__badges{display:inline-flex;gap:4px}:root{--color-brand-700: #161D4A;--color-brand-600: #1E2761;--color-brand-500: #2A3580;--color-brand-100: #CADCFC;--color-brand-50: #EEF2FE;--color-accent-600: #0A6CB8;--color-accent-500: #0E7DC9;--color-accent-100: #DBEFFB;--color-bg-app: #FFFFFF;--color-bg-panel: #FFFFFF;--color-bg-card: #FAFAFA;--color-bg-sidebar: #F5F5F5;--color-bg-footer: #FAFAFA;--color-bg-muted: #F0F2F5;--color-bg-overlay: rgba(0,0,0,.04);--color-fg-primary: #1A1A1A;--color-fg-secondary: #444;--color-fg-muted: #6B7280;--color-fg-subtle: #9AA3AF;--color-fg-on-brand: #FFFFFF;--color-fg-link: var(--color-accent-600);--color-success-600: #1E8E4F;--color-success-100: #E1F4E9;--color-warning-600: #B86E00;--color-warning-100: #FCEFD7;--color-danger-600: #C0392B;--color-danger-100: #FCE3DF;--color-info-600: #156A9C;--color-info-100: #DCEEF9;--color-border-strong: #C0C5CD;--color-border: #DDE0E5;--color-border-subtle: #E8EBEF;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-sm: 3px;--radius-md: 6px;--radius-lg: 10px;--radius-pill: 999px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", Meiryo, "Yu Gothic UI", system-ui, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-lg: 15px;--fs-xl: 18px;--fs-2xl: 22px;--fw-normal: 400;--fw-medium: 500;--fw-bold: 600;--line-tight: 1.25;--line-normal: 1.5;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 2px 6px rgba(15, 23, 42, .1);--shadow-focus: 0 0 0 3px rgba(30, 39, 97, .25);--motion-fast: .12s;--motion-base: .18s;--layout-header-h: 48px;--layout-sidebar-w: 240px;--z-base: 0;--z-elev-1: 10;--z-popover: 50;--z-toast: 100}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);font-size:var(--fs-md);color:var(--color-fg-primary);background:var(--color-bg-app);line-height:var(--line-normal);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--color-fg-link);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--color-accent-600);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}::-webkit-scrollbar-track{background:transparent}code,pre{font-family:var(--font-mono);font-size:var(--fs-sm)}@keyframes pyrp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
