@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Noto+Sans+JP:wght@400;500;600;700&display=swap";:root{--font-sans:"Inter", "Noto Sans JP", sans-serif;--color-background-body:#f1f5f9;--color-background-primary:#fff;--color-background-secondary:#f8fafc;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-tertiary:#94a3b8;--color-border-secondary:#e2e8f0;--color-border-tertiary:#f1f5f9;--color-brand:#3b82f6;--shadow-soft:0 10px 30px #0f172a14;--shadow-card:0 1px 2px #0f172a0f, 0 8px 18px #0f172a0a}body{font-family:var(--font-sans);background-color:var(--color-background-body);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:linear-gradient(#ffffffe6 0%,#f8fafc80 280px,#f1f5f9cc 100%),radial-gradient(#cbd5e1 1px,#0000 1px);background-size:auto,24px 24px;margin:0;padding:0}#root{flex-direction:column;min-height:100vh;display:flex}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:2px solid var(--color-background-primary);background:#cbd5e1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}input:focus,select:focus,button:focus-visible{outline:none;border-color:var(--color-brand)!important;box-shadow:0 0 0 3px #3b82f626!important}button{font-family:var(--font-sans);transition:all .2s cubic-bezier(.4,0,.2,1)}button:disabled{opacity:.65;cursor:not-allowed!important}button:active:not(:disabled){transform:scale(.97)}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.app-container{width:100%;animation:.7s cubic-bezier(.16,1,.3,1) forwards fadeIn}.login-page{box-sizing:border-box;background:linear-gradient(145deg,#fffffff5 0%,#f1f7fdeb 42%,#e2edf9cc 100%),radial-gradient(circle at 50% 38%,#3b82f624,#0000 34%);justify-content:center;align-items:center;min-height:100vh;padding:32px 18px;display:flex}.login-card{box-sizing:border-box;background:#ffffffeb;border:1px solid #e2e8f0e0;border-radius:18px;width:100%;max-width:430px;padding:38px 38px 34px;animation:.55s cubic-bezier(.16,1,.3,1) forwards fadeIn;position:relative;box-shadow:0 24px 70px #0f172a1c,inset 0 1px #fffffff2}.login-brand{justify-content:center;margin-bottom:16px;display:flex}.login-logo{background:0 0;width:142px;height:auto;display:block}.login-title{text-align:center;color:var(--color-text-primary);letter-spacing:0;margin:0 0 8px;font-size:22px;font-weight:700;line-height:1.35}.login-subtitle{text-align:center;color:var(--color-text-tertiary);margin-bottom:28px;font-size:13px}.login-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:16px;padding:11px 12px;font-size:14px}.login-form{flex-direction:column;gap:17px;display:flex}.login-label{color:var(--color-text-secondary);margin-bottom:7px;font-size:12px;font-weight:600;display:block}.login-input{box-sizing:border-box;border:1px solid var(--color-border-secondary);width:100%;color:var(--color-text-primary);background:#fff;border-radius:10px;padding:13px 14px;font-size:15px}.login-input::placeholder{color:#a8b3c4}.login-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0f172a 0%,#1f3a5f 100%);border:none;border-radius:10px;width:100%;margin-top:8px;padding:14px 16px;font-size:15px;font-weight:700;box-shadow:0 12px 28px #0f172a2e}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 16px 34px #0f172a38}.login-button:active:not(:disabled){transform:translateY(0)}@media (width<=520px){.login-card{border-radius:15px;padding:32px 24px 28px}.login-logo{width:128px}.login-title{font-size:20px}}label:hover{color:var(--color-text-primary)!important}input:hover,select:hover{border-color:#cbd5e1!important}input,select,textarea{font-family:var(--font-sans)}iframe,img{background:#fff}.workflow-shell{max-width:1920px;margin:0 auto}.app-header{z-index:100;position:sticky;top:0;box-shadow:0 1px #0f172a0a}.app-tabs button:hover{background:var(--color-background-secondary)!important;color:var(--color-text-primary)!important}@media (width<=900px){.app-header{position:static}}
