:root{--primary:#0284c7;--primary-hover:#0369a1;--secondary:#4f46e5;--secondary-hover:#4338ca;--success:#16a34a;--warning:#d97706;--danger:#dc2626;--bg:#fff;--card-bg:#f8fafc;--border:#e2e8f0;--text-primary:#1e293b;--text-secondary:#64748b;--sans:"Inter", "Outfit", "Noto Sans JP", system-ui, -apple-system, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg);color:var(--text-primary);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1.05rem;line-height:1.65}#root{flex-direction:column;min-height:100vh;display:flex}.container{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:2rem 1.5rem}.app-header{background-color:var(--bg);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.25rem;display:flex;position:sticky;top:0}.app-title-group{flex-direction:column;align-items:flex-start;gap:.2rem;display:flex}.app-title-top{align-items:center;gap:.5rem;display:flex}.app-title-bottom{align-items:center;gap:.4rem;display:flex}.app-logo{color:var(--primary);letter-spacing:-.05em;font-size:1.35rem;font-weight:800;line-height:1.1}.app-badge{color:var(--primary);background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:9999px;padding:.1rem .45rem;font-size:.7rem;font-weight:700;line-height:1.2}.header-top-btn{color:var(--primary);font-family:var(--sans);cursor:pointer;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;align-items:center;gap:.25rem;padding:.15rem .55rem;font-size:.75rem;font-weight:700;transition:all .15s;display:inline-flex}.header-top-btn:hover{color:var(--primary-hover);background:#e0f2fe}.header-center-actions,.nav-links{align-items:center;gap:.75rem;display:flex}.nav-button{font-family:var(--sans);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:.375rem;padding:.4rem .8rem;font-size:.95rem;font-weight:600;transition:all .2s}.nav-button:hover,.nav-button.active{color:var(--primary);background-color:#f0f9ff}.btn{font-family:var(--sans);cursor:pointer;border:1px solid #0000;border-radius:.375rem;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:1rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{border-color:var(--border);color:var(--text-primary);background-color:#fff}.btn-secondary:hover{background-color:var(--card-bg);border-color:var(--text-secondary)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{background-color:#b91c1c}.btn:disabled{opacity:.5;cursor:not-allowed}.app-footer{background-color:var(--card-bg);border-top:1px solid var(--border);text-align:center;color:var(--text-secondary);flex-direction:column;gap:.75rem;padding:2rem 1.5rem;font-size:.875rem;display:flex}.footer-links{justify-content:center;gap:1.5rem;display:flex}.footer-link{color:var(--text-secondary);text-decoration:none;transition:color .15s}.footer-link:hover{color:var(--primary)}.card{border:1px solid var(--border);background-color:#fff;border-radius:.5rem;margin-bottom:1.5rem;padding:1.5rem;box-shadow:0 1px 3px #0000000d}h1{letter-spacing:-.025em;color:var(--text-primary);margin-bottom:1.5rem;font-size:2.25rem;font-weight:800}h2{letter-spacing:-.02em;color:var(--text-primary);margin-bottom:1rem;font-size:1.5rem;font-weight:700}h3{color:var(--text-primary);margin-bottom:.75rem;font-size:1.2rem;font-weight:600}.alert{border:1px solid #0000;border-radius:.375rem;margin-bottom:1rem;padding:1rem;font-size:.95rem}.alert-danger{color:var(--danger);background-color:#fef2f2;border-color:#fecaca}.alert-warning{color:var(--warning);background-color:#fffbeb;border-color:#fef3c7}.alert-success{color:var(--success);background-color:#f0fdf4;border-color:#bbf7d0}.alert-info{color:var(--primary);background-color:#f0f9ff;border-color:#bae6fd}.excel-grid-container{border:1px solid var(--border);background-color:#f1f5f9;border-radius:.375rem;max-height:70vh;padding:10px;overflow:auto}.excel-grid{border-collapse:collapse;background-color:#fff;display:inline-block}.excel-cell{vertical-align:middle;white-space:pre-wrap;-webkit-user-select:none;user-select:none;border:1px solid #cbd5e1;padding:4px 6px;font-family:MS Mincho,Hiragino Mincho Pro N,serif;font-size:13px;position:relative}.excel-cell.no-grid{border:1px solid #0000}.excel-cell.selected{outline:2px solid var(--primary);outline-offset:-2px;background-color:#0284c714!important}.excel-cell.is-input-configured{border:1.5px solid var(--success)!important;background-color:#16a34a1a!important}.excel-input-field{width:100%;height:100%;font-family:inherit;font-size:inherit;color:var(--text-primary);background:0 0;border:none;outline:none;padding:0}.excel-input-field[type=number],.excel-input-field[type=date]{z-index:2;position:relative;width:calc(100% + 24px)!important;max-width:none!important}.excel-input-field:focus{background-color:#fffdeb}.excel-input-field[readonly]{color:var(--text-secondary);cursor:not-allowed;background-color:#f1f5f9}.settings-panel{background-color:var(--card-bg);border:1px solid var(--border);border-radius:.5rem;flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.form-group{flex-direction:column;gap:.375rem;display:flex}.form-label{color:var(--text-primary);font-size:.875rem;font-weight:700}.form-control{font-family:var(--sans);border:1px solid var(--border);color:var(--text-primary);background-color:#fff;border-radius:.375rem;outline:none;padding:.5rem .75rem;font-size:1rem;transition:border-color .15s}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 2px #0284c71a}.spinner{border:3px solid #0000001a;border-left-color:var(--primary);border-radius:50%;width:36px;height:36px;margin:1.5rem auto;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.table-row-hover{transition:background-color .2s}.table-row-hover:hover{background-color:#f1f5f9!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (width<=768px){.app-header{flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}.app-logo{font-size:1.15rem}.app-badge{padding:.1rem .35rem;font-size:.65rem}.header-center-actions{border-top:1px dashed var(--border);order:3;justify-content:center;width:100%;padding-top:.35rem}.nav-links{gap:.4rem}.btn{padding:.35rem .65rem;font-size:.82rem}.nav-button{padding:.3rem .55rem;font-size:.82rem}.user-email-text{white-space:nowrap;text-overflow:ellipsis;max-width:110px;display:inline-block;overflow:hidden}}@media (width<=480px){.app-logo{font-size:1.05rem}.app-header{padding:.4rem .5rem}.user-email-text{max-width:80px}}
