:root{--bg-color:#0d0e14;--bg-gradient-start:#1a1c29;--panel-bg:#1a1c2999;--panel-border:#ffffff14;--text-main:#f8fafc;--text-muted:#94a3b8;--color-kanji:157, 78, 221;--color-op:67, 97, 238;--color-red:239, 68, 68;--accent-kanji:#c77dff;--accent-op:#4cc9f0;--accent-red:#fb7185;--btn-bg:#ffffff0d;--btn-hover:#ffffff1a;--btn-active:#ffffff26;--btn-shadow:#0003}body.theme-light{--bg-color:#f1f5f9;--bg-gradient-start:#e2e8f0;--panel-bg:#ffffffd9;--panel-border:#0000001a;--text-main:#0f172a;--text-muted:#64748b;--color-kanji:147, 51, 234;--color-op:37, 99, 235;--color-red:220, 38, 38;--accent-kanji:#7e22ce;--accent-op:#1d4ed8;--accent-red:#b91c1c;--btn-bg:#0000000a;--btn-hover:#00000014;--btn-active:#00000026;--btn-shadow:#00000008}body.theme-sakura{--bg-color:#ffe4e6;--bg-gradient-start:#fce7f3;--panel-bg:#ffffffa6;--panel-border:#fb718566;--text-main:#881337;--text-muted:#e11d48;--color-kanji:244, 114, 182;--color-op:251, 113, 133;--color-red:225, 29, 72;--accent-kanji:#be185d;--accent-op:#be123c;--accent-red:#9f1239;--btn-bg:#fff9;--btn-hover:#ffffffe6;--btn-active:#fff;--btn-shadow:#fb718533}body.theme-mint{--bg-color:#022c22;--bg-gradient-start:#064e3b;--panel-bg:#ffffff0f;--panel-border:#34d39933;--text-main:#ecfdf5;--text-muted:#a7f3d0;--color-kanji:52, 211, 153;--color-op:16, 185, 129;--color-red:251, 191, 36;--accent-kanji:#6ee7b7;--accent-op:#34d399;--accent-red:#fcd34d;--btn-bg:#ffffff14;--btn-hover:#ffffff26;--btn-active:#ffffff40;--btn-shadow:#0003}body.theme-orange{--bg-color:#270e00;--bg-gradient-start:#4b1a03;--panel-bg:#ffffff0a;--panel-border:#f9731640;--text-main:#fff7ed;--text-muted:#fdba74;--color-kanji:249, 115, 22;--color-op:217, 119, 6;--color-red:220, 38, 38;--accent-kanji:#fed7aa;--accent-op:#fcd34d;--accent-red:#fca5a5;--btn-bg:#f9731614;--btn-hover:#f9731626;--btn-active:#f9731640;--btn-shadow:#0006}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);-webkit-user-select:none;user-select:none;touch-action:manipulation;font-family:Inter,Noto Sans JP,sans-serif;overflow:hidden}.app-container{background:radial-gradient(circle at top left, var(--bg-gradient-start), var(--bg-color));justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.bg-blur{filter:blur(140px);z-index:0;opacity:.4;pointer-events:none;border-radius:50%;width:400px;height:400px;position:absolute}.purple-blur{background:rgb(var(--color-kanji));top:-10%;left:-10%}.blue-blur{background:rgb(var(--color-op));bottom:-10%;right:-10%}.calculator-panel{z-index:10;background:var(--panel-bg);-webkit-backdrop-filter:blur(24px);flex-direction:column;width:100%;max-width:400px;height:100dvh;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}@media (width>=640px){.calculator-panel{border:1px solid var(--panel-border);border-radius:32px;height:850px;max-height:85vh}}.calc-header{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:24px;display:flex}.calc-title{letter-spacing:.05em;background:linear-gradient(135deg, var(--accent-kanji), var(--accent-op));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:800}.icon-btn{color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}@media (hover:hover){.icon-btn:hover{color:var(--accent-op);background:#ffffff1a}.icon-btn.text-danger:hover{background:rgba(var(--color-red), .2);color:var(--accent-red)}}.text-danger{color:var(--accent-red)}.icon-btn.active{color:var(--accent-op);background:#ffffff1a}.display-area{flex-direction:column;flex:1 0;justify-content:flex-end;min-height:140px;padding:16px 20px 8px;display:flex;overflow:hidden}.history-modal{-webkit-backdrop-filter:blur(12px);z-index:20;background:#0d0e14f2;flex-direction:column;width:100%;height:100%;animation:.3s cubic-bezier(.16,1,.3,1) slideIn;display:flex;position:absolute;top:0;left:0}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.history-header{border-bottom:1px solid var(--panel-border);color:var(--text-muted);justify-content:space-between;align-items:center;padding:20px 24px;font-weight:600;display:flex}.history-list{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.history-list::-webkit-scrollbar{width:6px}.history-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.empty-history{text-align:center;color:var(--text-muted);margin-top:40px}.history-item{cursor:pointer;text-align:right;background:#ffffff08;border-radius:16px;padding:16px;transition:all .2s}.history-item:hover{background:#ffffff14;transform:scale(1.02)}.history-expr{color:var(--text-muted);font-size:.9rem}.history-res{color:var(--text-main);margin-top:4px;font-size:1.5rem;font-weight:700}.current-display{flex-direction:column;align-items:flex-end;width:100%;display:flex}.prev-val{min-height:28px;color:var(--text-muted);opacity:.8;align-items:center;gap:8px;font-size:1.25rem;display:flex}.operator-text{color:var(--accent-kanji)}.curr-val{color:var(--text-main);text-align:right;white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.02em;margin-top:8px;font-weight:800;line-height:1.1;transition:font-size 50ms ease-out;overflow:hidden}.raw-val{color:var(--text-muted);opacity:.6;margin-top:8px;font-size:.875rem}.keypad{border-top:1px solid var(--panel-border);background:#ffffff05;flex:2.5;grid-template-rows:repeat(6,minmax(0,1fr));grid-template-columns:repeat(4,1fr);gap:8px;padding:8px 20px 20px;display:grid}.kanji-row{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(36px,1fr);gap:8px;height:8vh;min-height:40px;padding:0 20px 8px;display:grid}@media (width>=640px){.keypad{border-bottom-right-radius:32px;border-bottom-left-radius:32px}}.btn{background:var(--btn-bg);color:var(--text-main);cursor:pointer;height:100%;box-shadow:0 4px 6px var(--btn-shadow);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:1px solid #ffffff08;border-radius:12px;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:clamp(1.2rem,3.5vh,1.5rem);font-weight:500;transition:background .4s cubic-bezier(.16,1,.3,1),color .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1);display:flex}.btn:active{background:var(--btn-active);filter:brightness(1.3);transition:all!important}.btn:hover{background:var(--btn-hover)}.btn-kanji{background:rgba(var(--color-kanji), .1);color:var(--accent-kanji);border:1px solid rgba(var(--color-kanji), .2);font-size:1.2rem;font-weight:600}.btn-kanji:hover{background:rgba(var(--color-kanji), .2)}.btn-kanji:active{background:rgba(var(--color-kanji), .35)}.btn-op{background:rgba(var(--color-op), .15);color:var(--accent-op);border:1px solid rgba(var(--color-op), .3);font-size:2.5rem;font-weight:800}.btn-op:hover{background:rgba(var(--color-op), .25)}.btn-op:active{background:rgba(var(--color-op), .4)}.btn-eq{background:linear-gradient(135deg, rgb(var(--color-kanji)), rgb(var(--color-op)));color:#fff;box-shadow:0 8px 16px rgba(var(--color-op), .4);border:none;font-size:2.5rem;font-weight:800}.btn-eq:hover{box-shadow:0 12px 20px rgba(var(--color-op), .6);filter:brightness(1.1)}.btn-eq:active{filter:brightness(1.25)}.btn-red{background:rgba(var(--color-red), .1);color:var(--accent-red);border:1px solid rgba(var(--color-red), .2)}.btn-red:hover{background:rgba(var(--color-red), .2)}.btn-red:active{background:rgba(var(--color-red), .35)}.btn-secondary{color:var(--text-muted)}.btn-span-2{grid-column:span 2}.btn-row-2{grid-row:span 2}.flex-center{justify-content:center;align-items:center;display:flex}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:8px}.gap-3{gap:16px}.text-white{color:#fff}.text-slate-500{color:#64748b}.text-lg{font-size:1.125rem}.font-bold{font-weight:700}.mode-toggle{cursor:pointer;background:0 0;border:none;padding:4px}.mode-slider{border:1px solid var(--panel-border);background:#ffffff0d;border-radius:16px;justify-content:space-between;align-items:center;width:64px;height:32px;padding:4px;font-size:.9rem;font-weight:600;display:flex;position:relative}.mode-slider span{text-align:center;z-index:2;width:50%;transition:color .3s}.mode-pill{background:rgba(var(--color-kanji), .4);z-index:1;width:28px;height:24px;box-shadow:0 2px 4px rgba(var(--color-kanji), .4);border-radius:12px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;top:3px}.mode-pill.left{transform:translate(0)}.mode-pill.right{transform:translate(26px)}@media (height<=700px) and (aspect-ratio>=3/4),(orientation:landscape) and (height<=600px){.calc-header{display:none}.calculator-panel{border:none;border-radius:0;max-width:100vw;height:100dvh;max-height:100dvh;padding-top:0}.display-area{min-height:auto!important;padding:max(16px, env(safe-area-inset-top)) 16px 4px!important;flex:none!important}.calculator-panel>div[style*=padding]{padding:0 16px 8px!important}.prev-val{min-height:20px;font-size:1rem}.kanji-row{flex:1!important;grid-template-rows:minmax(0,1fr)!important;gap:4px!important;height:auto!important;min-height:0!important;padding:0 16px 4px!important}.keypad{padding:0 16px max(1px, env(safe-area-inset-bottom))!important;flex:6!important;gap:4px!important}.btn{border-radius:12px;font-size:clamp(1rem,5vh,1.4rem)}}
