:root{--bg-primary: #0f1117;--bg-secondary: #161922;--bg-card: #1c1f2e;--bg-card-hover: #232740;--bg-input: #1a1d2d;--bg-modal: #1c1f2eee;--text-primary: #e8eaf0;--text-secondary: #9ca3b4;--text-muted: #6b7280;--text-heading: #f1f3f8;--accent-primary: #6366f1;--accent-primary-hover: #818cf8;--accent-primary-glow: rgba(99, 102, 241, .25);--accent-danger: #ef4444;--accent-danger-hover: #f87171;--accent-success: #10b981;--accent-warning: #f59e0b;--border-color: #2a2d3e;--border-focus: #6366f1;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(99, 102, 241, .15);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--transition: .2s cubic-bezier(.4, 0, .2, 1);--sidebar-width: 260px;--header-height: 64px;--font-sans: "Inter", "Noto Sans JP", -apple-system, sans-serif}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}#root{min-height:100vh}a{color:var(--accent-primary);text-decoration:none}.app-layout{display:flex;min-height:100vh}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;z-index:100;overflow-y:auto}.sidebar-header{padding:20px 24px;border-bottom:1px solid var(--border-color)}.sidebar-logo{font-size:1.15rem;font-weight:700;color:var(--text-heading);letter-spacing:-.02em;display:flex;align-items:center;gap:10px}.sidebar-logo-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--accent-primary),#a78bfa);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1rem;color:#fff;font-weight:800}.sidebar-subtitle{font-size:.75rem;color:var(--text-muted);margin-top:4px}.sidebar-nav{padding:12px;flex:1}.nav-section-title{font-size:.65rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:16px 12px 6px}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.9rem;font-weight:450;transition:var(--transition);cursor:pointer;text-decoration:none}.nav-link:hover{background:var(--bg-card);color:var(--text-primary)}.nav-link.active{background:var(--accent-primary-glow);color:var(--accent-primary-hover);font-weight:500}.nav-link-icon{font-size:1.1rem;width:24px;text-align:center;flex-shrink:0}.main-content{margin-left:var(--sidebar-width);flex:1;padding:32px 40px;min-height:100vh}.page-header{margin-bottom:28px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.page-title{font-size:1.6rem;font-weight:700;color:var(--text-heading);letter-spacing:-.02em}.page-subtitle{font-size:.85rem;color:var(--text-muted);margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border:none;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.85rem;font-weight:500;cursor:pointer;transition:var(--transition);white-space:nowrap}.btn-primary{background:var(--accent-primary);color:#fff;box-shadow:0 2px 8px var(--accent-primary-glow)}.btn-primary:hover{background:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-primary-glow)}.btn-danger{background:transparent;color:var(--accent-danger);border:1px solid var(--accent-danger)}.btn-danger:hover{background:var(--accent-danger);color:#fff}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.btn-ghost:hover{background:var(--bg-card);color:var(--text-primary);border-color:var(--text-muted)}.btn-sm{padding:5px 12px;font-size:.78rem}.btn-icon{padding:6px 10px;min-width:32px}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:.95rem;font-weight:600;color:var(--text-heading)}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:12px 16px;text-align:left;font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);position:sticky;top:0}.data-table td{padding:12px 16px;font-size:.85rem;border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle}.data-table tr{transition:var(--transition)}.data-table tbody tr:hover{background:var(--bg-card-hover)}.data-table .actions{display:flex;gap:6px;justify-content:flex-end}.empty-state{padding:48px 24px;text-align:center;color:var(--text-muted);font-size:.9rem}.empty-state-icon{font-size:2.5rem;margin-bottom:12px;opacity:.5}.form-group{margin-bottom:18px}.form-label{display:block;font-size:.78rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-input,.form-select{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:.85rem;transition:var(--transition);outline:none}.form-input:focus,.form-select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-primary-glow)}.form-input::placeholder{color:var(--text-muted)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease-out}.modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(540px,92vw);max-height:85vh;overflow-y:auto;animation:slideUp .2s ease-out}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:1.1rem;font-weight:600;color:var(--text-heading)}.modal-close{background:none;border:none;color:var(--text-muted);font-size:1.3rem;cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:var(--transition)}.modal-close:hover{color:var(--text-primary);background:var(--bg-card-hover)}.modal-body{padding:24px}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-color);display:flex;gap:10px;justify-content:flex-end}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:500}.badge-active{background:#10b98126;color:var(--accent-success)}.badge-inactive{background:#6b728026;color:var(--text-muted)}.toast{position:fixed;bottom:24px;right:24px;padding:12px 20px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:2000;animation:slideUp .25s ease-out;font-size:.85rem}.toast-success{border-left:3px solid var(--accent-success)}.toast-error{border-left:3px solid var(--accent-danger)}.checkbox-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-input)}.checkbox-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:var(--transition);font-size:.85rem}.checkbox-item:hover{background:var(--bg-card-hover)}.checkbox-item input[type=checkbox]{accent-color:var(--accent-primary)}.csv-export-section{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;text-align:center}.csv-icon{font-size:4rem;margin-bottom:20px;opacity:.8}.csv-description{color:var(--text-secondary);margin-bottom:24px;max-width:400px;line-height:1.7}.csv-columns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:32px}.csv-column-tag{padding:5px 14px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:999px;font-size:.78rem;color:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.sidebar{width:100%;height:auto;position:relative}.main-content{margin-left:0;padding:20px 16px}.form-row{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}}
