@tailwind base;@tailwind components;@tailwind utilities;:root{--indigo:#4a6fa5;--indigo-dark:#3a5a8a;--indigo-light:#c8d9f0;--indigo-xl:#eef4fb;--cream:#f9f8f6;--deep:#1c2340;--mid:#5a6080;--muted:#8a90aa;--success:#2e7d52;--error:#c0392b}html{scroll-behavior:smooth}body{font-family:var(--font-sans),"Noto Sans JP",sans-serif;background:var(--cream);color:var(--deep);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:var(--indigo-light);border-radius:2px}::-webkit-scrollbar-track{background:transparent}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes stream-in{0%{opacity:0}to{opacity:1}}.animate-fadeUp{animation:fadeUp .5s ease both}.animate-float{animation:float 7s ease-in-out infinite}.animate-pulse-dot{animation:pulse-dot 2s ease infinite}.animate-spin{animation:spin .7s linear infinite}.form-input{@apply w-full px-4 py-3 border border-indigo-100 rounded-xl
         bg-cream text-indigo-900 placeholder-indigo-200
         outline-none transition-all text-base;border-color:var(--indigo-light);background:var(--cream)}.form-input:focus{border-color:var(--indigo);background:#fff;box-shadow:0 0 0 3px rgba(74,111,165,.09)}.form-input.error{border-color:var(--error)}.btn-primary{@apply inline-flex items-center justify-center gap-2
         px-8 py-4 rounded-full text-white font-medium
         transition-all cursor-pointer border-none;background:var(--indigo);box-shadow:0 4px 20px rgba(74,111,165,.32)}.btn-primary:hover:not(:disabled){background:var(--indigo-dark);transform:translateY(-2px);box-shadow:0 8px 30px rgba(74,111,165,.4)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{@apply px-3 py-2 rounded-lg text-sm font-medium transition-all
         border-none cursor-pointer;color:var(--mid);background:transparent}.btn-ghost:hover{color:var(--indigo);background:var(--indigo-xl)}.bubble-ai{@apply rounded-[18px] px-4 py-3 text-sm leading-relaxed max-w-[76%];background:#fff;color:var(--deep);border-bottom-left-radius:4px;box-shadow:0 2px 12px rgba(74,111,165,.08);border:1px solid rgba(74,111,165,.07)}.bubble-user{@apply rounded-[18px] px-4 py-3 text-sm leading-relaxed max-w-[76%];background:var(--indigo);color:#fff;border-bottom-right-radius:4px}.card{@apply bg-white rounded-2xl border p-5;border-color:rgba(74,111,165,.14)}.card-hover{@apply card transition-all cursor-default}.card-hover:hover{box-shadow:0 8px 32px rgba(74,111,165,.12);transform:translateY(-3px)}.spinner{width:16px;height:16px;border:2px solid hsla(0,0%,100%,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--deep);color:#fff;padding:12px 24px;border-radius:999px;font-size:13px;opacity:0;transition:all .3s ease;z-index:9999;white-space:nowrap;pointer-events:none}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.success{background:var(--success)}.toast.error{background:var(--error)}.safe-bottom{padding-bottom:max(8px,env(safe-area-inset-bottom))}