:root{--cream-50: #FDFAF3;--cream-100: #FBF6EC;--cream-200: #F5EEDD;--cream-300: #ECE1C9;--cream-400: #D9C9A8;--paper: #FFFFFF;--paper-warm:#FEFBF4;--header-bg: rgba(251, 246, 236, .86);--ink-900: #2E2620;--ink-700: #4D3F33;--ink-500: #7A6A57;--ink-400: #A6957D;--ink-300: #C9B89C;--accent: #B8895B;--accent-dark: #95643A;--accent-light: #F0DDC2;--accent-soft: #F8ECDA;--tie: #B9C7D4;--tie-dark: #8FA3B5;--tie-soft: #E6ECF1;--pink: #F0C8C0;--pink-soft: #FBE6E0;--success: #93B58E;--success-soft: #E4F0E2;--warn: #E6B670;--warn-soft: #FBEACB;--danger: #D08782;--danger-soft: #F6DAD7;--shadow-xs: 0 1px 2px rgba(78, 56, 32, .06);--shadow-sm: 0 2px 6px rgba(78, 56, 32, .07), 0 1px 2px rgba(78, 56, 32, .04);--shadow-md: 0 6px 18px rgba(78, 56, 32, .08), 0 2px 4px rgba(78, 56, 32, .04);--shadow-lg: 0 16px 40px rgba(78, 56, 32, .12), 0 4px 12px rgba(78, 56, 32, .06);--r-sm: 8px;--r-md: 14px;--r-lg: 20px;--r-xl: 28px;--r-pill: 999px;--font-base: "M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", "ヒラギノ丸ゴ ProN W4", "Yu Gothic", system-ui, sans-serif;--font-display: "Zen Maru Gothic", "M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, "Hiragino Sans", monospace}.nyaru-app,.nyaru-app *{box-sizing:border-box}.nyaru-app{font-family:var(--font-base);color:var(--ink-700);background:var(--cream-100);font-feature-settings:"palt" 1;-webkit-font-smoothing:antialiased;letter-spacing:.01em;line-height:1.55;height:100%}.nyaru-app button{font-family:inherit;cursor:pointer;border:0;background:transparent;color:inherit;padding:0;-webkit-tap-highlight-color:transparent}.nyaru-app a{-webkit-tap-highlight-color:transparent}.nyaru-app input,.nyaru-app textarea,.nyaru-app select{font-family:inherit;color:inherit}.nyaru-app h1,.nyaru-app h2,.nyaru-app h3,.nyaru-app h4,.nyaru-app p{margin:0}.nyaru-app ul,.nyaru-app ol{margin:0;padding:0;list-style:none}.nyaru-app a{color:inherit;text-decoration:none}.nyaru-app svg{display:block}.app-shell{display:flex;flex-direction:column;height:100vh;background:var(--cream-100)}.app-topbar{height:56px;flex-shrink:0;display:flex;align-items:center;gap:24px;padding:0 22px;background:var(--paper-warm);border-bottom:1px solid var(--cream-300)}.app-topbar .brand{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--ink-900);letter-spacing:.02em}.app-topbar .brand .paw{width:22px;height:22px;color:var(--accent)}.app-tabs{display:flex;gap:4px}.app-tab{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r-pill);font-weight:500;font-size:14px;color:var(--ink-500);transition:background .15s,color .15s}.app-tab:hover{background:var(--cream-200);color:var(--ink-700)}.app-tab:active{background:var(--cream-300)}.app-tab.is-active{background:var(--accent-soft);color:var(--accent-dark)}.app-tab.is-active:hover{background:var(--accent-light)}.app-tab .ico{width:16px;height:16px}.app-rightnav{margin-left:auto;display:flex;align-items:center;gap:12px}.icon-btn{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-500);transition:background .15s,transform .08s}.icon-btn:hover{background:var(--cream-200);color:var(--ink-700)}.icon-btn:active{transform:scale(.92);background:var(--cream-300)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--r-pill);font-weight:700;font-size:14px;transition:transform .08s,box-shadow .15s,background .15s;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 4px 12px #b8895b52}.btn.primary:hover{background:var(--accent-dark);box-shadow:0 6px 16px #b8895b6b}.btn.ghost{background:transparent;color:var(--ink-700)}.btn.ghost:hover{background:var(--cream-200)}.btn.soft{background:var(--accent-soft);color:var(--accent-dark)}.btn.soft:hover{background:var(--accent-light)}.btn.outline{background:var(--paper);color:var(--ink-700);box-shadow:inset 0 0 0 1.5px var(--cream-400)}.btn.outline:hover{background:var(--cream-100)}.btn.sm{padding:6px 12px;font-size:13px}.btn.lg{padding:14px 26px;font-size:16px}.calc-key{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.calc-key:hover{filter:brightness(.97);transform:translateY(-1px)}.calc-key:active{filter:brightness(.92);transform:translateY(1px)}.calc-key:disabled,.calc-key[disabled]{opacity:.45;cursor:not-allowed;filter:none;transform:none}.card{background:var(--paper);border:1px solid var(--cream-300);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card.warm{background:var(--paper-warm)}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:500;background:var(--cream-200);color:var(--ink-500)}.tag.brown{background:var(--accent-soft);color:var(--accent-dark)}.tag.blue{background:var(--tie-soft);color:var(--tie-dark)}.tag.pink{background:var(--pink-soft);color:#b85f50}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--r-pill);background:var(--cream-200);color:var(--ink-700);font-size:13px;font-weight:500}.field{display:flex;align-items:center;gap:8px;height:38px;padding:0 14px;background:var(--paper);border-radius:var(--r-pill);box-shadow:inset 0 0 0 1.5px var(--cream-300);font-size:14px;color:var(--ink-700)}.field input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:14px;color:inherit}.field input::placeholder{color:var(--ink-300)}.field.lg{height:44px}.digital{font-variant-numeric:tabular-nums;letter-spacing:-.02em}.whisker-rule{display:block;height:1px;background:repeating-linear-gradient(90deg,var(--cream-400) 0 4px,transparent 4px 9px);border:0}.paw-bullet{display:inline-block;width:14px;height:14px;color:var(--accent);flex-shrink:0}.scroll-hide{scrollbar-width:none}.scroll-hide::-webkit-scrollbar{display:none}.section-head{display:flex;align-items:center;gap:12px;padding:0 0 14px}.section-head h2{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--ink-900);letter-spacing:.01em}.section-head .count{font-size:13px;color:var(--ink-400);font-weight:500}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#2e262070;backdrop-filter:blur(4px) saturate(1.15);-webkit-backdrop-filter:blur(4px) saturate(1.15);display:flex;align-items:center;justify-content:center;padding:24px;animation:modal-fade-in .14s ease-out;font-family:var(--font-base);color:var(--ink-700)}.modal-card{position:relative;background:var(--paper);border:1px solid var(--cream-300);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:100%;max-width:480px;padding:24px 26px;display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 48px);overflow:auto;animation:modal-scale-in .16s cubic-bezier(.2,.7,.3,1)}.modal-card.size-md{max-width:560px}.modal-card.size-lg{max-width:720px}.modal-title{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--ink-900);letter-spacing:.01em;padding-right:28px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.modal-close{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-500);background:transparent;transition:background .15s,color .15s,transform .08s;-webkit-tap-highlight-color:transparent}.modal-close:hover{background:var(--cream-200);color:var(--ink-900)}.modal-close:active{transform:scale(.92);background:var(--cream-300)}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.toast-stack{position:fixed;right:22px;bottom:22px;z-index:1100;display:flex;flex-direction:column;gap:8px;pointer-events:none;font-family:var(--font-base)}.toast{background:var(--paper);border:1px solid var(--cream-300);border-left:4px solid var(--accent);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:10px 8px 10px 16px;font-size:13.5px;color:var(--ink-700);min-width:220px;max-width:360px;pointer-events:auto;display:flex;align-items:flex-start;gap:8px;animation:toast-slide-in .18s ease-out}.toast .toast-msg{flex:1;cursor:pointer;padding-top:2px}.toast .toast-close{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-400);background:transparent;transition:background .15s,color .15s,transform .08s;flex-shrink:0}.toast .toast-close:hover{background:var(--cream-200);color:var(--ink-700)}.toast .toast-close:active{transform:scale(.9)}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--danger)}@keyframes toast-slide-in{0%{transform:translate(16px);opacity:0}to{transform:translate(0);opacity:1}}.nyaru-spinner{animation:nyaru-spin .85s linear infinite}@keyframes nyaru-spin{to{transform:rotate(360deg)}}.bottom-sheet-overlay{align-items:flex-end!important;padding:0!important}.bottom-sheet-card{position:relative;background:var(--paper);border:1px solid var(--cream-300);border-bottom:0;border-radius:20px 20px 0 0;box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:82vh;padding:8px 18px 18px;display:flex;flex-direction:column;gap:12px;animation:sheet-slide-in .22s cubic-bezier(.2,.7,.3,1)}.bottom-sheet-handle{width:38px;height:4px;background:var(--cream-400);border-radius:999px;margin:4px auto}.bottom-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.bottom-sheet-title{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--ink-900)}.bottom-sheet-body{overflow-y:auto;flex:1;margin-right:-8px;padding-right:8px}@keyframes sheet-slide-in{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-rail-toggle{display:none}@media (max-width: 900px){.mobile-rail-toggle{display:flex;position:fixed;bottom:14px;right:14px;flex-direction:column;gap:10px;z-index:50}.mobile-rail-toggle .fab{width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--paper);color:var(--accent-dark);box-shadow:var(--shadow-md);border:1px solid var(--cream-300);transition:transform .08s,box-shadow .15s,background .15s}.mobile-rail-toggle .fab:hover{background:var(--cream-100)}.mobile-rail-toggle .fab:active{transform:scale(.94)}.mobile-rail-toggle .fab.primary{background:var(--accent);color:#fff;box-shadow:0 6px 16px #b8895b5c;border-color:var(--accent)}}.btn:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn:disabled:hover,.btn[disabled]:hover{transform:none}:where(.nyaru-app,.modal-overlay) :focus{outline:none}:where(.nyaru-app,.modal-overlay) button:focus-visible,:where(.nyaru-app,.modal-overlay) a:focus-visible,:where(.nyaru-app,.modal-overlay) [role=button]:focus-visible,:where(.nyaru-app,.modal-overlay) [tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:where(.nyaru-app,.modal-overlay) input:focus-visible,:where(.nyaru-app,.modal-overlay) textarea:focus-visible,:where(.nyaru-app,.modal-overlay) select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:where(.nyaru-app,.modal-overlay) .field:focus-within{box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 3px var(--accent-soft)}:where(.nyaru-app,.modal-overlay) .field:focus-within input,:where(.nyaru-app,.modal-overlay) .field:focus-within textarea,:where(.nyaru-app,.modal-overlay) .field:focus-within select{outline:none}html,body{margin:0;padding:0;height:100%;background:var(--cream-100, #fbf6ec);font-family:var(--font-base);color:var(--ink-700);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{min-height:100vh;display:flex;flex-direction:column}*{box-sizing:border-box}a{color:inherit;text-decoration:none}button{font-family:inherit}:root[data-theme=dark]{--cream-50: #26221d;--cream-100: #2a2620;--cream-200: #34302a;--cream-300: #423c35;--cream-400: #594f46;--paper: #322d27;--paper-warm: #36302a;--header-bg: rgba(42, 38, 32, .82);--ink-900: #f4ede1;--ink-700: #ddd1bd;--ink-500: #b3a48d;--ink-400: #8d806c;--ink-300: #66594b;--accent-soft: #4a3a2b;--accent-light: #5a4632;--tie-soft: #2e353e;--tie-dark: #aab9c8;--pink-soft: #422f2c;--success-soft: #2e3d2c;--warn-soft: #4a3d27;--danger-soft: #4a302d}:root[data-theme=dark] body{background:var(--cream-100);color:var(--ink-700)}@media (max-width: 900px){.responsive-rail-left,.responsive-rail-right{display:none!important}.responsive-grid-2,.responsive-grid-3,.responsive-grid-4{grid-template-columns:minmax(0,1fr)!important}.responsive-flex-col{flex-direction:column!important}.responsive-hpad-sm{padding-left:16px!important;padding-right:16px!important}}@media (min-width: 901px) and (max-width: 1180px){.responsive-grid-3,.responsive-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.route-fade{animation:route-fade-in .18s ease-out}@keyframes route-fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 540px){.app-topbar{padding:0 12px!important;gap:12px!important}.app-tab{padding:8px 10px!important;font-size:13px!important}.app-tab span{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-tab .ico,.app-tab svg{width:18px!important;height:18px!important}.app-rightnav{gap:4px!important}}
