:root{--vd-bg:#f5f5f5;--vd-surface:#fff;--vd-surface-muted:#fafafa;--vd-border:#f0f0f0;--vd-border-strong:#d9d9d9;--vd-text:#000000e0;--vd-text-secondary:#000000a6;--vd-text-muted:#00000073;--vd-primary:#1677ff;--vd-primary-hover:#4096ff;--vd-primary-soft:#e6f4ff;--vd-mint:#7cc7b7;--vd-peach:#edaa86;--vd-sky:#65b6d4;--vd-amber:#f5dc73;--vd-amber-bg:#fffdf2;--vd-success:#52c41a;--vd-warning:#faad14;--vd-danger:#ff4d4f;--vd-danger-bg:#fff2f0;--vd-radius:8px;--vd-radius-sm:6px;--vd-font-sm:12px;--vd-font-base:14px;--vd-font-lg:16px;--vd-font-xl:20px;--vd-font-stat:24px;--vd-font-hero:32px;--vd-space-1:4px;--vd-space-2:8px;--vd-space-3:12px;--vd-space-4:16px;--vd-space-6:24px;--vd-space-8:32px;--vd-shadow:0 1px 2px #00000008, 0 1px 6px -1px #00000005;--vd-nav-width:232px}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;font-size:var(--vd-font-base);color:var(--vd-text);background:var(--vd-bg);line-height:1.6}code{font-family:SF Mono,Menlo,Consolas,monospace;font-size:var(--vd-font-sm)}a{color:var(--vd-primary);text-decoration:none}a:hover{color:var(--vd-primary-hover);text-decoration:underline}.vd-page{max-width:1120px;padding:var(--vd-space-6)}.vd-page-header{margin-bottom:var(--vd-space-4)}.vd-page-header h1{font-size:var(--vd-font-xl);margin:0;font-weight:600;line-height:1.4}.vd-page-header p{margin:var(--vd-space-1) 0 0;color:var(--vd-text-secondary);font-size:var(--vd-font-base)}.vd-stack{gap:var(--vd-space-4);flex-direction:column;display:flex}.vd-row{align-items:center;gap:var(--vd-space-2);flex-wrap:wrap;display:flex}.vd-grid{gap:var(--vd-space-3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.vd-card{background:var(--vd-surface);border:1px solid var(--vd-border);border-radius:var(--vd-radius);box-shadow:var(--vd-shadow)}.vd-card-head{justify-content:space-between;align-items:center;gap:var(--vd-space-3);padding:var(--vd-space-3) var(--vd-space-4);border-bottom:1px solid var(--vd-border);flex-wrap:wrap;display:flex}.vd-card-title{align-items:center;gap:var(--vd-space-2);font-weight:600;font-size:var(--vd-font-base);display:flex}.vd-card-body{padding:var(--vd-space-4)}.vd-card-note{margin:var(--vd-space-2) 0 0;color:var(--vd-text-muted);font-size:var(--vd-font-sm)}.vd-stat-label{color:var(--vd-text-secondary);font-size:var(--vd-font-sm)}.vd-stat-value{font-size:var(--vd-font-stat);font-weight:600;line-height:1.3}.vd-stat-hero{font-size:var(--vd-font-hero);font-weight:700;line-height:1.2}.vd-stat-note{color:var(--vd-text-muted);font-size:var(--vd-font-sm)}.vd-meter{background:var(--vd-border);border-radius:999px;height:6px;overflow:hidden}.vd-meter-fill{background:var(--vd-primary);height:100%}.vd-tag{align-items:center;gap:var(--vd-space-1);padding:0 var(--vd-space-2);border:1px solid var(--vd-border-strong);border-radius:var(--vd-radius-sm);background:var(--vd-surface-muted);color:var(--vd-text-secondary);font-size:var(--vd-font-sm);white-space:nowrap;line-height:20px;display:inline-flex}.vd-tag--ok{border-color:var(--vd-mint);color:#2f7c6c;background:#f0faf7}.vd-tag--warn{border-color:var(--vd-amber);background:var(--vd-amber-bg);color:#8a6d1a}.vd-tag--danger{border-color:var(--vd-danger);background:var(--vd-danger-bg);color:#a8071a}.vd-tag--info{border-color:var(--vd-sky);color:#1f5f75;background:#f0f8fb}.vd-button{justify-content:center;align-items:center;gap:var(--vd-space-1);min-height:32px;padding:0 var(--vd-space-4);border:1px solid var(--vd-border-strong);border-radius:var(--vd-radius-sm);background:var(--vd-surface);color:var(--vd-text);font-size:var(--vd-font-base);cursor:pointer;font-family:inherit;display:inline-flex}.vd-button:hover:not(:disabled){border-color:var(--vd-primary);color:var(--vd-primary)}.vd-button:disabled{cursor:not-allowed;opacity:.55}.vd-button--primary{border-color:var(--vd-primary);background:var(--vd-primary);color:#fff}.vd-button--primary:hover:not(:disabled){border-color:var(--vd-primary-hover);background:var(--vd-primary-hover);color:#fff}.vd-button--text{padding:0 var(--vd-space-2);background:0 0;border-color:#0000}.vd-button--large{min-height:40px;font-size:var(--vd-font-lg)}.vd-field{gap:var(--vd-space-1);flex-direction:column;display:flex}.vd-field>label{font-size:var(--vd-font-base);font-weight:600}.vd-field-hint{color:var(--vd-text-muted);font-size:var(--vd-font-sm)}.vd-field-error{color:var(--vd-danger);font-size:var(--vd-font-sm)}.vd-input,.vd-textarea,.vd-select{width:100%;min-height:32px;padding:var(--vd-space-1) var(--vd-space-3);border:1px solid var(--vd-border-strong);border-radius:var(--vd-radius-sm);background:var(--vd-surface);color:var(--vd-text);font-size:var(--vd-font-base);font-family:inherit}.vd-textarea{min-height:88px;padding:var(--vd-space-2) var(--vd-space-3);resize:vertical}.vd-input:focus,.vd-textarea:focus,.vd-select:focus{outline:2px solid var(--vd-primary-soft);border-color:var(--vd-primary)}.vd-input[aria-invalid=true],.vd-textarea[aria-invalid=true]{border-color:var(--vd-danger)}.vd-table{border-collapse:collapse;width:100%;font-size:var(--vd-font-base)}.vd-table th,.vd-table td{padding:var(--vd-space-2) var(--vd-space-3);border-bottom:1px solid var(--vd-border);text-align:left;vertical-align:middle}.vd-table th{background:var(--vd-surface-muted);color:var(--vd-text-secondary);white-space:nowrap;font-weight:600}.vd-table td.vd-num,.vd-table th.vd-num{text-align:right;font-variant-numeric:tabular-nums}.vd-table-scroll{overflow-x:auto}.vd-state{align-items:center;gap:var(--vd-space-2);padding:var(--vd-space-8) var(--vd-space-4);color:var(--vd-text-secondary);text-align:center;flex-direction:column;display:flex}.vd-state-title{color:var(--vd-text);font-weight:600}.vd-state--error{color:#a8071a}.vd-skeleton{border-radius:var(--vd-radius-sm);background:linear-gradient(90deg,#f0f0f0,#f7f7f7,#f0f0f0);height:12px}.vd-notice{padding:var(--vd-space-3) var(--vd-space-4);border:1px solid var(--vd-amber);border-radius:var(--vd-radius);background:var(--vd-amber-bg);font-size:var(--vd-font-base)}.vd-notice--error{border-color:var(--vd-danger);background:var(--vd-danger-bg)}.vd-disclosure{border:1px solid var(--vd-border);border-radius:var(--vd-radius-sm);background:var(--vd-surface-muted)}.vd-disclosure>summary{padding:var(--vd-space-2) var(--vd-space-3);color:var(--vd-text-secondary);font-size:var(--vd-font-sm);cursor:pointer;list-style:none}.vd-disclosure>summary::-webkit-details-marker{display:none}.vd-disclosure>summary:before{content:"▸ "}.vd-disclosure[open]>summary:before{content:"▾ "}.vd-disclosure-body{padding:0 var(--vd-space-3) var(--vd-space-3);color:var(--vd-text-secondary);font-size:var(--vd-font-sm)}.vd-login{min-height:100vh;padding:var(--vd-space-4);justify-content:center;align-items:center;display:flex}.vd-login-card{width:100%;max-width:420px;padding:var(--vd-space-8);background:var(--vd-surface);border:1px solid var(--vd-border);border-radius:var(--vd-radius);box-shadow:var(--vd-shadow)}.vd-login-card h1{margin:0 0 var(--vd-space-2);font-size:var(--vd-font-xl)}.vd-login-card p{margin:0 0 var(--vd-space-6);color:var(--vd-text-secondary)}.vd-shell{grid-template-columns:var(--vd-nav-width) 1fr;min-height:100vh;display:grid}.vd-shell-nav{padding:var(--vd-space-4) var(--vd-space-3);border-right:1px solid var(--vd-border);background:var(--vd-surface)}.vd-shell-brand{align-items:center;gap:var(--vd-space-2);margin-bottom:var(--vd-space-6);font-weight:700;display:flex}.vd-shell-brand-mark{background:var(--vd-peach);border-radius:3px;width:10px;height:10px}.vd-shell-nav ul{margin:0 0 var(--vd-space-6);padding:0;list-style:none}.vd-shell-nav-group{margin-bottom:var(--vd-space-1);color:var(--vd-text-muted);font-size:var(--vd-font-sm)}.vd-shell-nav a{padding:var(--vd-space-1) var(--vd-space-3);border-radius:var(--vd-radius-sm);color:var(--vd-text);display:block}.vd-shell-nav a:hover{background:var(--vd-surface-muted);text-decoration:none}.vd-shell-nav a[aria-current=page]{background:var(--vd-primary-soft);color:var(--vd-primary);font-weight:600}.vd-shell-main{min-width:0}.vd-shell-foot{padding:var(--vd-space-3);border-top:1px solid var(--vd-border);color:var(--vd-text-muted);font-size:var(--vd-font-sm)}@media (width<=860px){.vd-shell{grid-template-columns:1fr}.vd-shell-nav{border-right:none;border-bottom:1px solid var(--vd-border)}.vd-page{padding:var(--vd-space-4)}}
