:root{--text:#3f3a46;--text-h:#1c1a22;--text-muted:#817a8c;--bg:#faf8fc;--surface:#fff;--border:#e4e0ea;--accent:#7c5cff;--accent-hover:#6a46ff;--accent-bg:#7c5cff1a;--accent-text:#fff;--danger:#d1425a;--danger-bg:#d1425a14;--success:#2fa36b;--success-bg:#2fa36b1a;--warning:#c98a1a;--warning-bg:#c98a1a1a;--shadow:#1e143c0f 0 2px 8px, #1e143c0a 0 1px 2px;--shadow-lg:#1e143c1a 0 12px 32px -8px, #1e143c0f 0 4px 12px -4px;--radius:14px;--radius-sm:8px;--sans:"Hiragino Sans", "Noto Sans JP", system-ui, "Segoe UI", Roboto, sans-serif;font:16px/1.6 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--text:#cbc6d4;--text-h:#f5f3fa;--text-muted:#938c9f;--bg:#161420;--surface:#1e1b2a;--border:#322d40;--accent:#9b82ff;--accent-hover:#ac97ff;--accent-bg:#9b82ff29;--accent-text:#1a1428;--danger:#ef7a90;--danger-bg:#ef7a901f;--success:#5ccf9a;--success-bg:#5ccf9a1f;--warning:#e0ac4a;--warning-bg:#e0ac4a1f;--shadow:#0000004d 0 2px 8px, #0003 0 1px 2px;--shadow-lg:#00000073 0 12px 32px -8px, #0000004d 0 4px 12px -4px}}*{box-sizing:border-box}body{background:var(--bg);margin:0}#root{min-height:100svh}h1,h2,h3{color:var(--text-h);margin:0;font-weight:700}p{margin:0}a{color:var(--accent)}button{font-family:inherit}input,select,textarea{color:var(--text-h);background:var(--surface);font-family:inherit}.app-shell{max-width:1040px;margin:0 auto;padding:24px 20px 64px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.topbar-id{color:var(--text-muted);font-size:14px}.topbar-id strong{color:var(--text-h)}.page-title{letter-spacing:-.3px;margin-bottom:20px;font-size:28px}.page-subtitle{color:var(--text-muted);margin-top:-14px;margin-bottom:20px;font-size:14px;display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:20px}.card h2{margin-bottom:14px;font-size:18px}.field{color:var(--text-h);flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.field-row{flex-wrap:wrap;gap:12px;display:flex}.field-row>.field{flex:1;min-width:180px}.input,select.input{border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;width:100%;padding:10px 12px;font-size:15px;font-weight:400;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input[type=file]{padding:8px;font-size:14px}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:10px 18px;font-size:15px;font-weight:600;transition:background .15s,border-color .15s,opacity .15s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text-h);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-bg)}.btn-danger:hover:not(:disabled){border-color:var(--danger)}.btn-sm{padding:6px 12px;font-size:13px}.btn-link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;font-weight:600}.alert{border-radius:var(--radius-sm);margin-bottom:16px;padding:12px 14px;font-size:14px}.alert-error{background:var(--danger-bg);color:var(--danger)}.alert-success{background:var(--success-bg);color:var(--success)}.badge{border-radius:999px;align-items:center;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.badge-uploaded{background:var(--warning-bg);color:var(--warning)}.badge-analyzing{background:var(--accent-bg);color:var(--accent)}.badge-ready{background:var(--success-bg);color:var(--success)}.badge-failed{background:var(--danger-bg);color:var(--danger)}.material-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.material-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:8px;padding:16px;transition:box-shadow .15s,transform .15s;display:flex}.material-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.material-card h3{font-size:17px}.material-meta{color:var(--text-muted);justify-content:space-between;font-size:13px;display:flex}.material-actions{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.empty-state{color:var(--text-muted);text-align:center;padding:40px 0}.auth-shell{justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:32px}.auth-logo{color:var(--accent);margin-bottom:4px;font-size:22px;font-weight:800}.auth-tagline{color:var(--text-muted);margin-bottom:24px;font-size:14px;display:block}.auth-tabs{background:var(--accent-bg);border-radius:var(--radius-sm);gap:4px;margin-bottom:20px;padding:4px;display:flex}.auth-tab{text-align:center;cursor:pointer;color:var(--text-muted);white-space:nowrap;background:0 0;border:none;border-radius:6px;flex:1;padding:8px 4px;font-size:12.5px;font-weight:700}.auth-tab.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}
