:root{color-scheme:light dark;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--bg: #eef1f7;--bg-accent-1: rgba(99, 102, 241, .18);--bg-accent-2: rgba(14, 165, 233, .16);--surface: rgba(255, 255, 255, .78);--surface-strong: #ffffff;--surface-border: rgba(15, 23, 42, .08);--text: #0f172a;--text-soft: #475569;--muted: #64748b;--border: rgba(15, 23, 42, .1);--accent: #4f46e5;--accent-2: #0ea5e9;--accent-contrast: #ffffff;--accent-soft: rgba(79, 70, 229, .1);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .1);--success: #16a34a;--key: rgba(255, 255, 255, .9);--key-hover: #ffffff;--key-control: rgba(15, 23, 42, .05);--key-operator: rgba(79, 70, 229, .1);--key-text: #0f172a;--display-bg: linear-gradient(160deg, #ffffff 0%, #eef2ff 100%);--display-text: #0f172a;--display-soft: #64748b;--display-border: rgba(79, 70, 229, .18);--display-glow: rgba(129, 140, 248, .22);--display-shadow: 0 18px 40px -24px rgba(79, 70, 229, .45);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 1px rgba(15, 23, 42, .04);--shadow-md: 0 10px 30px -12px rgba(15, 23, 42, .25);--shadow-lg: 0 30px 60px -30px rgba(15, 23, 42, .35);--ring: 0 0 0 3px rgba(79, 70, 229, .35);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .14s;--dur: .26s;--dur-slow: .48s}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0b1020;--bg-accent-1: rgba(99, 102, 241, .28);--bg-accent-2: rgba(14, 165, 233, .22);--surface: rgba(17, 24, 39, .72);--surface-strong: #111827;--surface-border: rgba(255, 255, 255, .08);--text: #e5e7eb;--text-soft: #cbd5e1;--muted: #94a3b8;--border: rgba(255, 255, 255, .1);--accent: #818cf8;--accent-2: #38bdf8;--accent-contrast: #0b1020;--accent-soft: rgba(129, 140, 248, .16);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .14);--key: rgba(255, 255, 255, .06);--key-hover: rgba(255, 255, 255, .1);--key-control: rgba(255, 255, 255, .04);--key-operator: rgba(129, 140, 248, .16);--key-text: #e5e7eb;--display-bg: linear-gradient(160deg, #030712 0%, #1e1b4b 100%);--display-text: #f8fafc;--display-soft: #94a3b8;--display-border: rgba(255, 255, 255, .08);--display-glow: rgba(129, 140, 248, .35);--display-shadow: 0 30px 60px -30px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 10px 30px -12px rgba(0, 0, 0, .7);--shadow-lg: 0 30px 60px -30px rgba(0, 0, 0, .8)}}:root[data-theme=dark]{--bg: #0b1020;--bg-accent-1: rgba(99, 102, 241, .28);--bg-accent-2: rgba(14, 165, 233, .22);--surface: rgba(17, 24, 39, .72);--surface-strong: #111827;--surface-border: rgba(255, 255, 255, .08);--text: #e5e7eb;--text-soft: #cbd5e1;--muted: #94a3b8;--border: rgba(255, 255, 255, .1);--accent: #818cf8;--accent-2: #38bdf8;--accent-contrast: #0b1020;--accent-soft: rgba(129, 140, 248, .16);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .14);--key: rgba(255, 255, 255, .06);--key-hover: rgba(255, 255, 255, .1);--key-control: rgba(255, 255, 255, .04);--key-operator: rgba(129, 140, 248, .16);--key-text: #e5e7eb;--display-bg: linear-gradient(160deg, #030712 0%, #1e1b4b 100%);--display-text: #f8fafc;--display-soft: #94a3b8;--display-border: rgba(255, 255, 255, .08);--display-glow: rgba(129, 140, 248, .35);--display-shadow: 0 30px 60px -30px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 10px 30px -12px rgba(0, 0, 0, .7);--shadow-lg: 0 30px 60px -30px rgba(0, 0, 0, .8)}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-sans);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{margin:0;min-height:100vh;background:var(--bg);transition:background-color var(--dur-slow) var(--ease-out),color var(--dur-slow) var(--ease-out);background-image:radial-gradient(1200px 600px at -10% -20%,var(--bg-accent-1),transparent 60%),radial-gradient(900px 500px at 110% 10%,var(--bg-accent-2),transparent 60%);background-attachment:fixed}button,input,select{font:inherit}:focus-visible{outline:none;box-shadow:var(--ring)}.app{min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:28px;padding:14px 28px;background:var(--surface);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border-bottom:1px solid var(--surface-border);animation:slide-down var(--dur-slow) var(--ease-out) both}.title{display:flex;align-items:center;gap:10px;margin:0;font-size:1.1rem;font-weight:700;letter-spacing:-.01em}.title-text{display:inline-block;min-width:120px}.logo{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-family:var(--font-mono);font-weight:600;box-shadow:0 6px 16px -6px var(--accent)}.nav{display:flex;gap:4px;flex:1}.nav a{position:relative;display:inline-block;min-width:128px;text-align:center;color:var(--text-soft);text-decoration:none;padding:8px 14px;border-radius:999px;font-weight:500;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.nav a:hover{color:var(--text);background:var(--accent-soft)}.nav a.active{color:var(--accent);background:var(--accent-soft)}.user{display:flex;align-items:center;gap:14px}.user-identity{display:flex;align-items:center;gap:10px}.user-text{display:flex;flex-direction:column;gap:3px;line-height:1.1}.user-name{font-weight:600;font-size:.95rem}.user-roles{display:flex;gap:6px}.avatar{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:.8rem;font-weight:700;letter-spacing:.04em;box-shadow:0 6px 14px -6px var(--accent)}.avatar-small{width:24px;height:24px;font-size:.6rem;box-shadow:none}.owner{display:inline-flex;align-items:center;gap:8px}.btn-logout{min-width:96px}.chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--accent-soft);color:var(--accent);letter-spacing:.01em}.chip-admin{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff}.lang-switcher{--lang-count: 2;--lang-pad: 3px;--lang-w: 54px;position:relative;display:inline-grid;grid-auto-flow:column;grid-auto-columns:var(--lang-w);padding:var(--lang-pad);border-radius:999px;background:var(--key-control);border:1px solid var(--border);isolation:isolate;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.lang-switcher:hover{border-color:var(--accent)}.lang-indicator{position:absolute;top:var(--lang-pad);bottom:var(--lang-pad);left:var(--lang-pad);width:var(--lang-w);border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 6px 14px -6px var(--accent);transform:translate(calc(var(--lang-index, 0) * var(--lang-w)));transition:transform .42s var(--ease-spring);z-index:0}.lang-option{position:relative;z-index:1;border:none;background:transparent;color:var(--text-soft);padding:6px 0;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:color var(--dur) var(--ease-out),transform .16s var(--ease-out);-webkit-tap-highlight-color:transparent}.lang-option:hover:not(.is-active){color:var(--text);transform:translateY(-1px)}.lang-option:active{transform:scale(.94)}.lang-option.is-active{color:#fff}.lang-option:focus-visible{box-shadow:var(--ring)}.theme-toggle{--tt-w: 76px;--tt-h: 38px;--tt-pad: 4px;--tt-thumb: calc(var(--tt-h) - var(--tt-pad) * 2);--tt-travel: calc(var(--tt-w) - var(--tt-h));--tt-ease: cubic-bezier(.34, 1.4, .64, 1);--tt-dur: .65s;padding:0;border:none;background:transparent;cursor:pointer;border-radius:999px;-webkit-tap-highlight-color:transparent}.theme-toggle:focus-visible{box-shadow:var(--ring)}.tt-track{position:relative;display:block;width:var(--tt-w);height:var(--tt-h);border-radius:999px;overflow:hidden;background:linear-gradient(180deg,#38bdf8,#7dd3fc 55%,#bae6fd);box-shadow:inset 0 2px 6px #00000040,inset 0 -1px #ffffff59,0 6px 16px -8px #38bdf8cc;transition:background var(--tt-dur) ease,box-shadow var(--tt-dur) ease,transform .16s var(--ease-out)}.theme-toggle:hover .tt-track{transform:scale(1.03)}.theme-toggle:active .tt-track{transform:scale(.97)}.theme-toggle[data-theme-value=dark] .tt-track{background:linear-gradient(180deg,#0b1020,#1e1b4b 60%,#312e81);box-shadow:inset 0 2px 6px #0009,inset 0 -1px #ffffff14,0 6px 16px -8px #818cf8cc}.tt-thumb{position:absolute;top:var(--tt-pad);left:var(--tt-pad);width:var(--tt-thumb);height:var(--tt-thumb);border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff7c2,#fbbf24 45%,#f59e0b);box-shadow:0 0 0 6px #fbbf2440,0 0 18px 4px #fbbf248c,inset -2px -2px 4px #b4530959;transition:transform var(--tt-dur) var(--tt-ease),background var(--tt-dur) ease,box-shadow var(--tt-dur) ease}.theme-toggle:hover .tt-thumb{transform:translate(6px)}.theme-toggle[data-theme-value=dark] .tt-thumb{transform:translate(var(--tt-travel)) rotate(360deg);background:radial-gradient(circle at 35% 35%,#fff,#e2e8f0,#cbd5e1);box-shadow:0 0 0 6px #e2e8f01f,0 0 18px 2px #c7d2fe80,inset -3px -3px 6px #64748b73}.theme-toggle[data-theme-value=dark]:hover .tt-thumb{transform:translate(calc(var(--tt-travel) - 6px)) rotate(360deg)}.tt-crater{position:absolute;border-radius:50%;background:#64748b73;box-shadow:inset 1px 1px 2px #0f172a59;opacity:0;transform:scale(.4);transition:opacity var(--tt-dur) ease,transform var(--tt-dur) var(--tt-ease)}.tt-crater:nth-child(1){width:32%;height:32%;top:22%;left:18%}.tt-crater:nth-child(2){width:20%;height:20%;top:58%;left:50%}.tt-crater:nth-child(3){width:14%;height:14%;top:30%;left:64%}.theme-toggle[data-theme-value=dark] .tt-crater{opacity:1;transform:scale(1)}.tt-stars{position:absolute;inset:0;opacity:0;transform:translateY(-8px);transition:opacity var(--tt-dur) ease,transform var(--tt-dur) var(--tt-ease)}.theme-toggle[data-theme-value=dark] .tt-stars{opacity:1;transform:translateY(0)}.tt-star{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 6px 1px #fffc;animation:twinkle 2.4s ease-in-out infinite}.tt-star:nth-child(1){top:22%;left:18%;animation-delay:0s}.tt-star:nth-child(2){top:60%;left:30%;width:2px;height:2px;animation-delay:.5s}.tt-star:nth-child(3){top:30%;left:44%;animation-delay:1s}.tt-star:nth-child(4){top:68%;left:52%;width:2px;height:2px;animation-delay:1.5s}.tt-star:nth-child(5){top:18%;left:60%;width:2px;height:2px;animation-delay:.8s}.tt-clouds{position:absolute;inset:0;transition:opacity var(--tt-dur) ease,transform var(--tt-dur) var(--tt-ease)}.theme-toggle[data-theme-value=dark] .tt-clouds{opacity:0;transform:translateY(10px)}.tt-cloud{position:absolute;height:9px;border-radius:999px;background:#ffffffeb;box-shadow:0 1px 2px #00000014;animation:drift 6s ease-in-out infinite}.tt-cloud:before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:inherit;top:-4px;left:6px}.tt-cloud:nth-child(1){width:22px;right:10px;bottom:7px}.tt-cloud:nth-child(2){width:16px;right:26px;bottom:16px;opacity:.8;animation-delay:-3s}@keyframes twinkle{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}@keyframes drift{0%,to{transform:translate(0)}50%{transform:translate(-3px)}}.main{flex:1;padding:32px 28px 48px;max-width:1280px;width:100%;margin:0 auto}.page{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;animation:fade-up var(--dur-slow) var(--ease-out) both}.panel{transition:background-color var(--dur-slow) var(--ease-out),border-color var(--dur-slow) var(--ease-out),box-shadow var(--dur-slow) var(--ease-out);background:var(--surface);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-md)}.panel h2{margin:0;font-size:.95rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.calculator{width:380px;transition:transform var(--dur) var(--ease-out)}.calculator.is-busy{transform:scale(.995)}.display{position:relative;overflow:hidden;background:var(--display-bg);color:var(--display-text);border-radius:var(--radius-md);padding:18px 20px 16px;margin-bottom:14px;text-align:right;font-family:var(--font-mono);border:1px solid var(--display-border);box-shadow:var(--display-shadow);transition:background var(--dur-slow) var(--ease-out),color var(--dur-slow) var(--ease-out),border-color var(--dur-slow) var(--ease-out),box-shadow var(--dur-slow) var(--ease-out)}.display:after{content:"";position:absolute;inset:0;background:radial-gradient(600px 200px at 80% -40%,var(--display-glow),transparent 60%);pointer-events:none}.display-expression{min-height:1.4em;font-size:.95rem;color:var(--display-soft);overflow-wrap:anywhere;animation:fade-in var(--dur) var(--ease-out) both}.display-result{display:block;width:100%;padding:0;border:none;background:transparent;color:inherit;font:inherit;text-align:right;font-size:2.4rem;font-weight:500;line-height:1.15;overflow-wrap:anywhere;cursor:copy;border-radius:8px;animation:result-pop var(--dur-slow) var(--ease-spring) both;transition:text-shadow var(--dur) var(--ease-out)}.display-result:hover{text-shadow:0 0 18px var(--display-glow)}.display-result:focus-visible{box-shadow:var(--ring)}.keypad{display:flex;flex-direction:column;gap:10px}.keypad-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.keypad-main{display:grid;grid-template-columns:3fr 1fr;gap:10px}.keypad-digits{display:flex;flex-direction:column;gap:10px}.keypad-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.btn-wide{grid-column:span 2}.keypad-operators{display:flex;flex-direction:column;gap:10px}.btn{position:relative;border:1px solid var(--border);background:var(--key);color:var(--key-text);border-radius:var(--radius-sm);padding:14px;font-size:1.15rem;font-weight:500;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent}.btn:hover:not(:disabled){background:var(--key-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active:not(:disabled){transform:translateY(1px) scale(.97);box-shadow:none;transition-duration:60ms}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.is-pressed{transform:translateY(1px) scale(.96);box-shadow:none;filter:brightness(1.08)}.key,.btn-small,.btn-primary{overflow:hidden}.key:after,.btn-small:after,.btn-primary:after{content:"";position:absolute;left:var(--ripple-x, 50%);top:var(--ripple-y, 50%);width:12px;height:12px;border-radius:50%;background:currentColor;opacity:0;transform:translate(-50%,-50%) scale(0);pointer-events:none}.is-rippling:after{animation:ripple .52s var(--ease-out) forwards}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-color:transparent;font-weight:600}.btn-danger-solid{background:var(--danger);color:#fff;border-color:transparent;font-weight:600}.calculator-footer{min-height:22px;margin-top:12px;display:flex;justify-content:center}.keyboard-hint{font-size:.75rem;text-align:center;animation:fade-in var(--dur-slow) var(--ease-out) both}.btn-digit{font-weight:600;font-family:var(--font-mono)}.btn-control{background:var(--key-control);color:var(--text-soft)}.btn-operator{background:var(--key-operator);color:var(--accent);font-weight:600}.btn-equals{flex:1;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-color:transparent;font-weight:700;font-size:1.4rem;box-shadow:0 10px 24px -10px var(--accent)}.btn-equals:hover:not(:disabled){background:linear-gradient(135deg,var(--accent),var(--accent-2));filter:brightness(1.06);box-shadow:0 14px 30px -10px var(--accent)}.btn-secondary{background:transparent}.btn-danger{color:var(--danger);background:var(--danger-soft);border-color:transparent}.btn-small{padding:6px 12px;font-size:.85rem;border-radius:8px}.calculating{display:inline-flex;align-items:center;gap:8px;animation:fade-in var(--dur) var(--ease-out) both}.error-message{background:var(--danger-soft);color:var(--danger);border:1px solid transparent;border-radius:var(--radius-sm);padding:10px 14px;margin:0 0 14px;font-size:.9rem;font-weight:500;animation:shake var(--dur-slow) var(--ease-out) both}.access-denied{text-align:center;padding:48px 32px;max-width:420px;margin:40px auto}.access-denied-icon{font-size:2.4rem;margin-bottom:12px;animation:result-pop var(--dur-slow) var(--ease-spring) both}.access-denied h2{text-transform:none;font-size:1.3rem;color:var(--text);margin-bottom:6px}.loading{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:.9rem;padding:8px 0}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--accent-soft);border-top-color:var(--accent);animation:spin .8s linear infinite}.muted{color:var(--muted);font-size:.9rem}.empty{line-height:1.8}.kbd{display:inline-block;min-width:22px;padding:1px 6px;border-radius:6px;border:1px solid var(--border);background:var(--key-control);font-family:var(--font-mono);font-size:.8rem;text-align:center}.skeleton-list{display:flex;flex-direction:column;gap:8px}.skeleton{height:40px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--key-control) 25%,var(--accent-soft) 50%,var(--key-control) 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.history-panel{width:340px}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.history-item{display:flex;align-items:center;gap:10px;cursor:pointer;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--key);font-family:var(--font-mono);font-size:.9rem;animation:fade-up var(--dur-slow) var(--ease-out) both;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.history-item:hover{transform:translate(2px);box-shadow:var(--shadow-sm)}.history-item-expression{flex:1;color:var(--text-soft);overflow-wrap:anywhere}.history-item-result{font-weight:600;color:var(--accent);white-space:nowrap}.history-page .panel{flex:1;min-width:760px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.filter{display:flex;align-items:center;gap:10px;font-size:.9rem;color:var(--text-soft)}.filter select,.inline-form input{padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--key);color:var(--text);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.filter select:hover,.inline-form input:hover{border-color:var(--accent)}.table-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border)}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:.92rem}.table th,.table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.table thead th{position:sticky;top:0;background:var(--key-control);color:var(--muted);font-weight:600;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.table tbody tr{animation:fade-up var(--dur) var(--ease-out) both;transition:background var(--dur-fast) var(--ease-out)}.table tbody tr:hover{background:var(--accent-soft)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr.is-removing{animation:row-out var(--dur) var(--ease-out) forwards}.expression{white-space:nowrap}.expression .op-badge{margin-right:8px}.mono{font-family:var(--font-mono)}.note{font-style:italic}.nowrap{white-space:nowrap}.confirm-label{color:var(--danger);font-weight:600;font-size:.85rem}.numeric{font-family:var(--font-mono);font-weight:600;color:var(--accent)}.inline-form{display:inline-flex;align-items:center;gap:6px;animation:fade-in var(--dur-fast) var(--ease-out) both}.inline-form input{min-width:200px}.actions{white-space:nowrap}.pagination{display:flex;align-items:center;gap:14px;margin-top:16px}.page-info{font-size:.9rem;color:var(--muted)}.op-badge{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;font-family:var(--font-mono);font-size:.85rem;font-weight:700;color:#fff;background:var(--op-color, var(--accent));box-shadow:0 4px 10px -4px var(--op-color, var(--accent));flex-shrink:0}[data-operation=ADD]{--op-color: #16a34a}[data-operation=SUBTRACT]{--op-color: #ea580c}[data-operation=MULTIPLY]{--op-color: #7c3aed}[data-operation=DIVIDE]{--op-color: #0284c7}[data-operation=POWER]{--op-color: #db2777}[data-operation=SQRT]{--op-color: #0d9488}.filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.filter-chip{border:1px solid var(--border);background:var(--key);color:var(--text-soft);border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:500;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.filter-chip:hover{transform:translateY(-1px);border-color:var(--op-color, var(--accent));color:var(--text)}.filter-chip.is-active{background:var(--op-color, var(--accent));border-color:transparent;color:#fff;box-shadow:0 8px 18px -8px var(--op-color, var(--accent))}.filter-chip:focus-visible{box-shadow:var(--ring)}.empty-state{text-align:center;padding:40px 20px;animation:fade-up var(--dur-slow) var(--ease-out) both}.empty-state-icon{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:18px;background:var(--accent-soft);color:var(--accent);font-size:1.6rem;margin-bottom:10px}.skeleton-table{display:flex;flex-direction:column;gap:10px;padding:6px 0}.skeleton-row{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:12px;animation:fade-in var(--dur) var(--ease-out) both}.skeleton-cell{height:36px}.route{animation:route-in var(--dur-slow) var(--ease-out) both}.toast-container{position:fixed;right:24px;bottom:24px;z-index:50;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;min-width:240px;max-width:360px;padding:12px 16px;border-radius:var(--radius-md);background:var(--surface-strong);color:var(--text);border:1px solid var(--surface-border);box-shadow:var(--shadow-lg);font-size:.9rem;font-weight:500;pointer-events:auto;cursor:pointer;animation:toast-in var(--dur-slow) var(--ease-spring) both}.toast.is-leaving{animation:toast-out var(--dur) var(--ease-out) forwards}.toast-icon{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;color:#fff;font-size:.8rem;font-weight:700;background:var(--success);flex-shrink:0}.toast-info .toast-icon{background:var(--accent)}.toast-error .toast-icon{background:var(--danger)}.login-screen{position:relative;min-height:100vh;display:grid;place-items:center;padding:72px 20px 40px}.login-tools{position:absolute;top:16px;right:20px;display:flex;align-items:center;gap:12px;animation:fade-in var(--dur-slow) var(--ease-out) both}.login-card{width:100%;max-width:400px;padding:32px 28px 24px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-lg);animation:fade-up var(--dur-slow) var(--ease-out) both}.login-brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;margin-bottom:8px}.login-brand h1{margin:8px 0 0;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.login-brand .muted{margin:0}.logo-large{width:56px;height:56px;border-radius:18px;font-size:1.6rem;box-shadow:0 14px 30px -10px var(--accent);animation:result-pop var(--dur-slow) var(--ease-spring) both}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:.8rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.field input{width:100%;padding:12px 14px;font-size:1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--key);color:var(--text);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.field input:hover:not(:disabled){border-color:var(--accent)}.field input:focus-visible{border-color:var(--accent);background:var(--key-hover)}.field input:disabled{opacity:.6;cursor:not-allowed}#login-error:empty{display:none}#login-error .error-message{margin:0}.btn-block{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 16px;font-size:1rem}.spinner-light{border-color:#ffffff59;border-top-color:#fff}.login-demo{display:flex;flex-direction:column;gap:10px;margin-top:4px;padding-top:18px;border-top:1px solid var(--surface-border)}.login-demo>.muted{font-size:.8rem}.login-demo-list{display:flex;flex-direction:column;gap:8px}.demo-user{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--key);color:var(--text);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent}.demo-user:hover:not(:disabled){background:var(--key-hover);border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.demo-user:active:not(:disabled){transform:translateY(1px) scale(.99);box-shadow:none}.demo-user:disabled{opacity:.5;cursor:not-allowed}.demo-user[data-role=calculator-admin] .avatar{background:linear-gradient(135deg,var(--danger),#f59e0b)}.demo-user-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}.demo-user-name{font-weight:600;font-size:.9rem}.demo-user-role{font-size:.72rem;color:var(--muted);font-family:var(--font-mono)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes result-pop{0%{opacity:0;transform:translateY(8px) scale(.96)}60%{opacity:1}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes ripple{0%{opacity:.35;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(18)}}@keyframes row-out{to{opacity:0;transform:translate(24px)}}@keyframes route-in{0%{opacity:0;transform:translateY(12px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px) scale(.98)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:820px){.header{flex-wrap:wrap;gap:12px;padding:12px 16px}.nav{order:3;width:100%}.nav a{min-width:0;flex:1}.title-text{min-width:0}.main{padding:20px 16px 40px}.calculator,.history-panel{width:100%}.history-page .panel{min-width:0;width:100%}.login-screen{padding:64px 16px 24px;align-items:start}.login-tools{right:16px}.login-card{padding:26px 20px 20px}}
