:root{--primary-color:#ff9500;--secondary-color:#4dabf7;--bg-dark:#1a1a1a;--bg-medium:#2d2d2d;--bg-light:#404040;--text-primary:#fff;--text-secondary:#ccc;--border-radius:var(--radius-md);--shadow:0 10px 20px #0000004d}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-dark);color:var(--text-primary);flex-direction:column;align-items:center;min-height:100vh;padding:20px;display:flex}.tou{text-align:center;width:100%;max-width:600px;margin-bottom:25px;animation:.5s ease-out fadeIn}.tou h1{color:var(--primary-color);letter-spacing:1px;margin:0 0 8px;font-size:28px;font-weight:500}.tou .subtitle{color:var(--text-secondary);margin-bottom:12px;font-size:14px}.tou a{color:var(--secondary-color);border-radius:var(--radius-sm);padding:4px 8px;font-size:14px;text-decoration:none;transition:all .3s;display:inline-block}.tou a:hover{background:#4dabf71a;text-decoration:underline}.calculator{background:var(--bg-medium);border-radius:var(--border-radius);width:100%;max-width:600px;box-shadow:var(--shadow);margin-bottom:25px;padding:25px;animation:.5s ease-out slideUp}.footer{text-align:center;width:100%;max-width:600px;color:var(--text-secondary);margin-top:auto;padding-top:20px;font-size:12px;animation:.5s ease-out fadeIn}.footer a{color:var(--secondary-color);text-decoration:none;transition:all .3s}.footer a:hover{text-decoration:underline}.mode-select{background:var(--bg-light);border-radius:var(--border-radius);width:100%;color:var(--text-primary);appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3e%3cpath d='M7 10l5 5 5-5z'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;border:none;margin-bottom:20px;padding:12px;font-size:16px;transition:all .3s}.container .mode-select:focus{box-shadow:0 0 0 2px var(--primary-color);outline:none}.display{background:var(--bg-light);border-radius:var(--border-radius);margin-bottom:20px;padding:20px;position:relative}.container #main-input{width:100%;color:var(--text-primary);text-align:right;caret-color:var(--primary-color);background:0 0;border:none;padding:5px;font-size:28px;font-weight:300}#main-input:focus{outline:none}.cursor-indicator{color:var(--text-secondary);font-size:12px;position:absolute;bottom:5px;right:20px}.container .button-grid{grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:15px;display:grid}.container button{background:var(--bg-light);color:var(--text-primary);border-radius:var(--border-radius);cursor:pointer;border:none;padding:16px;font-size:18px;transition:all .2s;position:relative;overflow:hidden}.container button:after{content:"";background:var(--surface);opacity:0;transform-origin:50%;border-radius:100%;width:5px;height:5px;position:absolute;top:50%;left:50%;transform:scale(1)translate(-50%,-50%)}.container button:active:after{animation:.6s ease-out ripple}.container button:hover{background:#4d4d4d;transform:translateY(-2px)}.container .special-btn{background:var(--primary-color);color:#fff;font-weight:500}.special-btn:hover{background:#fa3}.sci-btn{background:#3a3a3a;font-size:16px}.fn-btn{background:#2a2a2a;font-size:14px}.function-panel{background:var(--bg-light);border-radius:var(--border-radius);margin-bottom:20px;padding:20px;animation:.3s ease-out fadeIn;display:none}.input-group{margin-bottom:15px}.input-group label{color:var(--text-secondary);margin-bottom:6px;font-size:14px;display:block}input[type=text]{background:var(--bg-medium);border-radius:var(--radius-md);width:100%;color:var(--text-primary);border:1px solid #555;padding:12px;font-size:16px;transition:all .3s}.container input[type=text]:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 2px #ff950033}#result{background:var(--bg-light);border-radius:var(--border-radius);white-space:pre-wrap;min-height:80px;padding:20px;font-size:16px;line-height:1.5;animation:.3s ease-out fadeIn}.error{color:#ff6b6b}.success{color:#4dabf7}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes ripple{0%{opacity:.5;transform:scale(0)}to{opacity:0;transform:scale(20)}}@media (width<=480px){.container .button-grid{gap:8px}.container button{padding:14px;font-size:16px}.sci-btn{font-size:14px}#main-input{font-size:24px}}