@import"https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;600&family=Noto+Sans+JP:wght@300;400;500;600&display=swap";:root{--bg: #faf8f5;--bg-card: #ffffff;--bg-overlay: rgba(250, 248, 245, .92);--surface: #f3f0eb;--surface2: #ebe7e0;--border: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .15);--text: #2c2826;--text-secondary: #7a7068;--text-muted: #b0a89e;--primary: #8b6f7c;--primary-light: #b590a0;--primary-dark: #6a4f5e;--primary-glow: rgba(139, 111, 124, .12);--accent: #7b8fa1;--accent-light: #a3b4c4;--accent-glow: rgba(123, 143, 161, .12);--success: #6b8f6b;--warning: #c8a45a;--danger: #b05a5a;--danger-glow: rgba(176, 90, 90, .12);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08), 0 2px 6px rgba(0, 0, 0, .05);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .1), 0 4px 12px rgba(0, 0, 0, .06);--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-full: 9999px;--transition: .18s cubic-bezier(.4, 0, .2, 1);--transition-slow: .32s cubic-bezier(.4, 0, .2, 1);--serif: "Noto Serif JP", "Yu Mincho", serif;--sans: "Noto Sans JP", "Hiragino Sans", sans-serif}[data-theme=dark]{--bg: #1a1e26;--bg-card: #222732;--bg-overlay: rgba(26, 30, 38, .94);--surface: #272c38;--surface2: #2f3545;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .14);--text: #e8e2d9;--text-secondary: #9d9488;--text-muted: #65605a;--primary: #c4a0b0;--primary-light: #dcc0cc;--primary-dark: #a07888;--primary-glow: rgba(196, 160, 176, .14);--accent: #8fa8bc;--accent-light: #a8bfcf;--accent-glow: rgba(143, 168, 188, .12);--success: #8aad8a;--warning: #d4b06a;--danger: #c47878;--danger-glow: rgba(196, 120, 120, .14);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.7;min-height:100vh;transition:background var(--transition-slow),color var(--transition-slow);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:.03em}h4,h5,h6{font-family:var(--sans);font-weight:500}p{color:var(--text-secondary);line-height:1.75}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition)}.card:hover,.card-elevated{box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;font-size:14px;font-family:var(--sans);font-weight:500;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:var(--transition);white-space:nowrap;letter-spacing:.02em;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover:not(:disabled){filter:brightness(.9);transform:translateY(-1px)}.btn-sm{padding:6px 12px;font-size:13px;border-radius:var(--radius-xs)}.btn-lg{padding:13px 28px;font-size:15px}.btn-icon{padding:8px;background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition);display:inline-flex;align-items:center;justify-content:center;font-family:var(--sans)}.btn-icon:hover{background:var(--surface);color:var(--text)}.input,.textarea,.select{width:100%;padding:10px 14px;font-size:14px;font-family:var(--sans);color:var(--text);background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;transition:var(--transition);line-height:1.5}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.textarea{resize:vertical;min-height:90px}.select{appearance:none;cursor:pointer}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}.avatar{border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-xs{width:20px;height:20px}.avatar-sm{width:28px;height:28px}.avatar-md{width:40px;height:40px}.avatar-lg{width:56px;height:56px}.avatar-xl{width:80px;height:80px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;border-radius:var(--radius-full);letter-spacing:.04em}.badge-primary{background:var(--primary-glow);color:var(--primary)}.badge-accent{background:var(--accent-glow);color:var(--accent)}.badge-warning{background:#c8a45a1f;color:var(--warning)}.badge-danger{background:var(--danger-glow);color:var(--danger)}.badge-success{background:#6b8f6b1f;color:var(--success)}.divider{width:100%;height:1px;background:var(--border);margin:8px 0}.divider-text{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:12px;my:16px}.divider-text:before,.divider-text:after{content:"";flex:1;height:1px;background:var(--border)}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;display:inline-block;flex-shrink:0}.spinner-dark{border-color:var(--border-strong);border-top-color:var(--primary)}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .18s ease}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(460px,100%);animation:slideUp .22s cubic-bezier(.4,0,.2,1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.modal-title{font-family:var(--serif);font-size:17px}.modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:14px}.modal-footer{padding:16px 24px 20px;display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--border)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.w-full{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.switch{position:relative;display:inline-block;width:40px;height:20px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:var(--border);transition:.3s;border-radius:20px}.slider:before{position:absolute;content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}input:checked+.slider{background-color:var(--primary)}input:focus+.slider{box-shadow:0 0 1px var(--primary)}input:checked+.slider:before{transform:translate(20px)}.theme-toggle{width:36px;height:36px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.theme-toggle:hover{background:var(--surface2);color:var(--text)}.app-sidebar{width:220px;height:100vh;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0}.top-nav{height:52px;background:var(--bg-overlay);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;padding:0 20px;gap:12px;position:sticky;top:0;z-index:50}.kamon-line{width:32px;height:1px;background:var(--primary);display:inline-block}
