body{min-width:320px;min-height:100vh}#root{min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-light: #dbeafe;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--sidebar-width: 240px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;background:var(--gray-50);color:var(--gray-800);line-height:1.6}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background:#fff;border-right:1px solid var(--gray-200);display:flex;flex-direction:column;z-index:100}.sidebar-logo{padding:20px;border-bottom:1px solid var(--gray-200)}.sidebar-logo h1{font-size:18px;font-weight:600;color:var(--primary)}.sidebar-logo p{font-size:12px;color:var(--gray-500);margin-top:4px}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.nav-section{margin-bottom:24px}.nav-section-title{font-size:11px;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em;padding:0 8px;margin-bottom:8px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;color:var(--gray-600);text-decoration:none;font-size:14px;transition:all .15s;cursor:pointer}.nav-item:hover{background:var(--gray-100);color:var(--gray-800)}.nav-item.active{background:var(--primary-light);color:var(--primary);font-weight:500}.nav-item svg{width:20px;height:20px;flex-shrink:0}.sidebar-footer{padding:16px;border-top:1px solid var(--gray-200)}.user-info{display:flex;align-items:center;gap:12px}.user-avatar{width:36px;height:36px;background:var(--primary-light);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary);font-weight:600}.user-name{font-size:14px;font-weight:500}.user-role{font-size:12px;color:var(--gray-500)}.main{margin-left:var(--sidebar-width);min-height:100vh}.header{background:#fff;border-bottom:1px solid var(--gray-200);padding:16px 32px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:50}.header h2{font-size:20px;font-weight:600}.header-actions{display:flex;gap:12px}.content{padding:32px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:#fff;color:var(--gray-700);border:1px solid var(--gray-300)}.btn-secondary:hover{background:var(--gray-50)}.btn-success{background:var(--success);color:#fff}.card{background:#fff;border-radius:12px;border:1px solid var(--gray-200);overflow:hidden}.card-header{padding:16px 20px;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center}.card-title{font-size:16px;font-weight:600}.card-body{padding:20px}.grid{display:grid;gap:24px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.stat-card{background:#fff;border-radius:12px;border:1px solid var(--gray-200);padding:20px}.stat-label{font-size:13px;color:var(--gray-500);margin-bottom:4px}.stat-value{font-size:28px;font-weight:600;color:var(--gray-800)}.stat-change{font-size:12px;color:var(--success);margin-top:4px}.stepper{display:flex;align-items:center;margin-bottom:32px}.step{display:flex;align-items:center;gap:12px}.step-number{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;background:var(--gray-200);color:var(--gray-500)}.step.active .step-number{background:var(--primary);color:#fff}.step.completed .step-number{background:var(--success);color:#fff}.step-label{font-size:14px;color:var(--gray-500)}.step.active .step-label{color:var(--gray-800);font-weight:500}.step-connector{flex:1;height:2px;background:var(--gray-200);margin:0 16px}.step-connector.completed{background:var(--success)}.upload-area{border:2px dashed var(--gray-300);border-radius:12px;padding:48px;text-align:center;transition:all .15s;cursor:pointer}.upload-area:hover{border-color:var(--primary);background:var(--primary-light)}.upload-icon{width:48px;height:48px;margin:0 auto 16px;color:var(--gray-400)}.upload-title{font-size:16px;font-weight:500;margin-bottom:8px}.upload-desc{font-size:14px;color:var(--gray-500)}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--gray-200)}th{background:var(--gray-50);font-weight:500;font-size:13px;color:var(--gray-600)}td{font-size:14px}tr:hover{background:var(--gray-50)}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.badge-info{background:var(--primary-light);color:var(--primary)}.form-group{margin-bottom:20px}.form-label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:var(--gray-700)}.form-input{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:8px;font-size:14px;transition:border-color .15s}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:40px}.tabs{display:flex;border-bottom:1px solid var(--gray-200);margin-bottom:24px}.tab{padding:12px 20px;font-size:14px;color:var(--gray-500);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}.tab:hover{color:var(--gray-700)}.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:500}.file-list{border:1px solid var(--gray-200);border-radius:8px;overflow:hidden}.file-item{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--gray-200)}.file-item:last-child{border-bottom:none}.file-icon{width:40px;height:40px;background:#fee2e2;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#dc2626;margin-right:12px}.file-info{flex:1}.file-name{font-size:14px;font-weight:500}.file-meta{font-size:12px;color:var(--gray-500)}.file-status{margin-left:12px}.progress-bar{height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--primary);border-radius:4px;transition:width .3s}.alert{padding:16px;border-radius:8px;margin-bottom:16px;display:flex;gap:12px}.alert-info{background:var(--primary-light);color:var(--primary-dark)}.alert-success{background:#d1fae5;color:#065f46}.alert-warning{background:#fef3c7;color:#92400e}.empty-state{text-align:center;padding:48px}.empty-icon{width:64px;height:64px;margin:0 auto 16px;color:var(--gray-300)}.empty-title{font-size:18px;font-weight:500;margin-bottom:8px}.empty-desc{font-size:14px;color:var(--gray-500);margin-bottom:24px}.result-editor{background:#fff;border:1px solid var(--gray-200);border-radius:8px}.result-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--gray-200);background:var(--gray-50)}.result-stats{display:flex;gap:16px;font-size:14px}.result-stat{display:flex;align-items:center;gap:4px}.pdf-info{display:flex;gap:24px;padding:16px;background:var(--gray-50);border-radius:8px;margin-bottom:24px}.pdf-info-item{flex:1}.pdf-info-label{font-size:12px;color:var(--gray-500);margin-bottom:4px}.pdf-info-value{font-size:14px;font-weight:500}.aggregation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.aggregation-card{background:var(--gray-50);border-radius:8px;padding:16px;text-align:center}.aggregation-value{font-size:32px;font-weight:700;color:var(--primary)}.aggregation-label{font-size:13px;color:var(--gray-500);margin-top:4px}.download-group{display:flex;gap:12px;margin-top:24px}.download-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px;background:#fff;border:1px solid var(--gray-200);border-radius:12px;cursor:pointer;transition:all .15s}.download-btn:hover{border-color:var(--primary);background:var(--primary-light)}.download-btn svg{width:32px;height:32px;color:var(--gray-400)}.download-btn:hover svg{color:var(--primary)}.download-btn-title{font-size:14px;font-weight:500}.download-btn-desc{font-size:12px;color:var(--gray-500)}
