:root{--color-bg: #f6f7f9;--color-surface: #ffffff;--color-border: #e3e5e8;--color-text: #2e3338;--color-text-muted: #6b7280;--color-primary: #5865f2;--color-primary-hover: #4752c4;--color-danger: #ed4245;--color-success: #3ba55c;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;font-family:var(--font-family);line-height:1.5;color-scheme:light}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;height:100%;background:var(--color-bg);color:var(--color-text)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none;border-radius:var(--radius-md);padding:.5rem 1rem;font-weight:500;transition:background .15s ease,transform .05s ease}button:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.6}button.primary{background:var(--color-primary);color:#fff}button.primary:hover:not(:disabled){background:var(--color-primary-hover)}button.danger{background:var(--color-danger);color:#fff}button.ghost{background:transparent;color:var(--color-text)}button.ghost:hover:not(:disabled){background:#0000000d}input,textarea,select{font-family:inherit;font-size:1rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease;width:100%}input[type=radio],input[type=checkbox],input[type=file],input[type=range],input[type=color]{width:auto;padding:0;border:none;background:transparent}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #5865f226}input[type=radio]:focus,input[type=checkbox]:focus{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:none}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.muted{color:var(--color-text-muted)}.flex{display:flex}.flex-col{flex-direction:column}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}
