.history-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.history-modal{background:#fff;border-radius:16px;width:100%;max-width:360px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003}.history-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #E5E7EB}.history-modal-header h2{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.history-close-btn{background:none;border:none;font-size:1.2rem;color:#6b7280;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s}.history-close-btn:hover{background:#f3f4f6}.history-modal-content{flex:1;overflow-y:auto;padding:12px}.history-empty{text-align:center;color:#9ca3af;padding:40px 20px;font-size:.95rem}.history-entry{background:#f9fafb;border:1px solid #E5E7EB;border-radius:12px;padding:16px;margin-bottom:12px;font-family:SF Mono,Monaco,Consolas,monospace}.history-entry:last-child{margin-bottom:0}.history-entry.clickable{cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.history-entry.clickable:hover{background:#ebf8ff;border-color:#0f766e;transform:translateY(-2px);box-shadow:0 4px 12px #0f766e26}.history-entry.clickable:active{transform:translateY(0);background:#dbeafe}.history-expression{text-align:right;padding-right:20px}.history-line{font-size:1.1rem;color:#374151;line-height:1.5}.history-divider{text-align:right;padding-right:20px;color:#9ca3af;letter-spacing:-1px;margin:4px 0}.history-result{text-align:right;padding-right:20px;display:flex;align-items:baseline;justify-content:flex-end;gap:8px}.history-result-main{font-size:1.2rem;font-weight:600;color:#1f2937}.history-result-alt{font-size:.85rem;color:#6b7280}*{box-sizing:border-box}.app{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:#f6f8fb}.header{flex-shrink:0;background:#fff;border-bottom:1px solid #D9E1EA;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:8px}.logo{width:32px;height:32px;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:#0b1120}.logo-img{height:32px;width:auto;object-fit:contain}.brand-text{display:flex;flex-direction:column}.brand-title{font-size:1rem;font-weight:700;color:#f9fafb;line-height:1.1}.brand-subtitle{font-size:.55rem;color:#9ca3af;letter-spacing:.1em}.user-name{padding:4px 12px;background:#eef2f6;border:1px solid #D9E1EA;border-radius:9999px;font-size:.75rem;color:#5c6b7a;font-weight:500}.offline-badge{padding:4px 8px;background:#fbf3dd;border:1px solid #E6B84A;border-radius:9999px;font-size:.7rem;color:#8b2b2b}.website-btn{padding:6px 10px;background:#1f2937cc;border:1px solid rgba(75,85,99,.5);border-radius:8px;color:#e5e7eb;font-size:.8rem;text-decoration:none}.main{flex:1;display:flex;flex-direction:column;padding:8px;gap:8px;overflow:hidden;max-height:calc(100vh - 50px);max-height:calc(100dvh - 50px)}.card{background:#fff;border:1px solid #D9E1EA;border-radius:12px;padding:12px;box-shadow:0 1px 3px #0000000d}.left-card{flex-shrink:0}.right-card{flex:1;display:flex;flex-direction:column;min-height:0}.display-section{margin-bottom:8px}.display-row{display:flex;gap:8px;align-items:stretch}.display-box{background:#eef2f6;border:2px solid #D9E1EA;border-radius:8px;padding:12px 16px;display:flex;align-items:center;justify-content:center}.display-box.primary{flex:1;min-width:0}.display-box.secondary{flex:0 0 auto;min-width:90px}.display-box.equal{flex:1;min-width:0}.display-value{font-weight:600;color:#0e1a2a;white-space:nowrap;overflow:hidden;width:100%;display:block;text-align:center}.display-value.recording{color:#0f3d3a;animation:pulse 1.5s infinite}.display-value.processing{color:#5c6b7a;animation:pulse 1s infinite}.display-value-secondary{font-size:1.4rem;font-weight:500;color:#5c6b7a;white-space:nowrap}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.divider{height:1px;background:#d9e1ea;margin:8px 0}.expression-wrapper{position:relative;margin-bottom:8px}.expression-input{width:100%;background:#fff;border:2px solid #D9E1EA;color:#0e1a2a;border-radius:12px;padding:16px 50px 16px 16px;font-family:inherit;min-height:60px;display:flex;align-items:center;box-sizing:border-box}.expression-text{display:block;width:100%;overflow:hidden;white-space:nowrap;font-weight:500}.expression-text.placeholder{color:#9aa7b5}.history-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#fbbf24,#f59e0b);border:none;color:#0b1120;font-weight:700;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .15s ease}.history-btn:hover{transform:translateY(-50%) scale(1.05);box-shadow:0 2px 8px #fbbf2466}.history-btn:active{transform:translateY(-50%) scale(.95)}.voice-btn{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:#fdb91314;border:2px solid rgba(253,185,19,.25);border-radius:9999px;color:#0e1a2a;font-size:.9rem;font-weight:600;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none;transition:background .15s ease-out,border-color .15s ease-out,color .15s ease-out}.voice-btn:disabled{opacity:.5;cursor:not-allowed}.voice-btn.listening{background:#fdb913;border-color:#e5a811;color:#0e1a2a;box-shadow:0 0 0 4px #fdb9134d}.voice-btn.processing{background:#0f3d3a;border-color:#0f3d3a;color:#fff;animation:pulse-thinking 1.2s ease-in-out infinite}@keyframes pulse-thinking{0%,to{opacity:1}50%{opacity:.7}}.voice-btn.locked{background:#64646414;border-color:#64646440;color:#5c6b7a}.voice-icon{font-size:1.2rem;display:flex;align-items:center;justify-content:center}.voice-btn.listening .voice-icon{color:#0e1a2a}.voice-text{color:inherit}.voice-feedback{text-align:center;font-size:.85rem;font-weight:500;margin-bottom:8px;min-height:24px;color:#5c6b7a}.voice-feedback.recording{color:#fdb913;font-weight:600;animation:fade-in-out 1s ease-in-out infinite}.voice-feedback.processing{color:#0f3d3a;font-weight:600}@keyframes fade-in-out{0%,to{opacity:1}50%{opacity:.5}}.memory{margin-top:8px;padding-top:8px;border-top:1px solid #D9E1EA;font-family:monospace;color:#5c6b7a;font-size:.85rem;line-height:1.3}.memory-line{color:#9aa7b5;margin:2px 0}.fraction-label{color:#9ca3af;font-size:.6rem;letter-spacing:.15em;text-align:center;margin-bottom:6px}.fraction-container{background:#eef2f6;border-radius:8px;padding:8px;margin-bottom:12px;border:1px solid #D9E1EA}.fraction-pad{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.frac-btn{background:#fff;border:2px solid #D9E1EA;color:#0e1a2a;border-radius:8px;padding:8px 2px;font-size:.85rem;font-weight:500;cursor:pointer}.frac-btn:active{transform:scale(.96)}.frac-btn.feet{background:#eef2f6;border-color:#d9e1ea;color:#0e1a2a;font-weight:600}.keypad{flex:1;display:flex;flex-direction:column;gap:6px}.keypad-row{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.keypad-row.last-row{grid-template-columns:1fr 1fr 2fr}.key{background:#eef2f6;border:2px solid #D9E1EA;color:#0e1a2a;border-radius:10px;font-size:1.3rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.key:active{transform:scale(.96)}.key.operator{background:#e6ecf2;border-color:#d9e1ea;color:#0e1a2a;font-weight:600}.key.danger{background:#ffe5e5;border-color:#fcc;color:#c33;font-weight:600}.key.equals{background:#0f3d3a;border-color:#0f3d3a;color:#fff;font-weight:700}@media (min-width: 768px){.app{background:linear-gradient(135deg,#0f172a,#1e293b)}.header{padding:12px 24px;padding-top:max(12px,env(safe-area-inset-top))}.main{flex-direction:row;justify-content:center;align-items:flex-start;max-width:1000px;margin:0 auto;padding:32px 24px;gap:24px;height:auto;max-height:none;overflow:visible}.left-card{flex:0 0 380px;min-height:400px}.right-card{flex:0 0 320px;min-height:480px}.card{padding:24px;border-radius:16px;box-shadow:0 4px 24px #0000004d}.display-section{margin-bottom:16px}.display-row{gap:12px}.display-box{padding:16px 20px;border-radius:10px}.display-box.secondary{min-width:120px}.display-value-secondary{font-size:1.6rem}.divider{margin:16px 0}.expression-input{padding:16px 18px;font-size:1.15rem;margin-bottom:16px;border-radius:12px}.voice-btn{padding:16px 28px;font-size:1.1rem;margin-top:8px}.voice-icon{font-size:1.4rem}.memory{margin-top:16px;padding-top:12px;font-size:1rem}.fraction-label{font-size:.7rem;margin-bottom:12px}.fraction-pad{gap:10px;margin-bottom:16px}.frac-btn{padding:14px 8px;font-size:1rem;border-radius:10px}.frac-btn:hover{background:#e6ecf2;border-color:#d9e1ea;transform:translateY(-1px)}.frac-btn.feet:hover{background:#e6ecf2;border-color:#d9e1ea}.keypad,.keypad-row{gap:10px}.key{padding:20px 0;font-size:1.5rem;border-radius:12px;transition:all .15s}.key:hover{background:#e6ecf2;border-color:#d9e1ea;transform:translateY(-1px)}.key.danger:hover,.key.operator:hover{background:#e6ecf2;border-color:#d9e1ea}.key.equals:hover{background:#0b2f2c;border-color:#0b2f2c}}@media (max-height: 700px){.header{padding:6px 10px;padding-top:max(6px,env(safe-area-inset-top))}.logo{width:28px;height:28px}.main{padding:6px;gap:6px}.card{padding:8px;border-radius:10px}.display-section{min-height:50px}.display{font-size:1.6rem;height:32px;line-height:32px}.divider{margin:6px 0}.expression-input{padding:8px 10px;font-size:.85rem;margin-bottom:6px}.voice-btn{padding:8px 12px;font-size:.8rem}.voice-icon{font-size:1rem}.memory{font-size:.75rem;margin-top:6px;padding-top:6px}.fraction-pad{gap:4px;margin-bottom:6px}.frac-btn{padding:6px 2px;font-size:.75rem;border-radius:6px}.keypad,.keypad-row{gap:4px}.key{font-size:1.1rem;border-radius:8px}}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f3f4f6,#e5e7eb);padding:20px}.auth-card{background:#fff;border-radius:16px;box-shadow:0 4px 24px #0000001a;width:100%;max-width:420px;padding:32px}.auth-logo{display:flex;justify-content:center;margin-bottom:16px}.auth-logo-icon{width:56px;height:56px;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:28px}.auth-title{text-align:center;font-size:1.5rem;font-weight:700;color:#111827;margin-bottom:24px}.auth-subtitle{text-align:center;color:#6b7280;margin-bottom:16px}.auth-subtitle-lg{text-align:center;font-size:1.125rem;font-weight:600;color:#111827;margin-bottom:4px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-input{width:100%;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;color:#111827;background:#fff;transition:border-color .2s,box-shadow .2s}.auth-input:focus{outline:none;border-color:#fbbf24;box-shadow:0 0 0 3px #fbbf2426}.auth-input::placeholder{color:#9ca3af}.auth-select{width:100%;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;color:#111827;background:#fff;cursor:pointer}.auth-select:focus{outline:none;border-color:#fbbf24;box-shadow:0 0 0 3px #fbbf2426}.auth-btn{width:100%;padding:14px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s,opacity .2s;display:flex;align-items:center;justify-content:center;gap:8px}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-btn-primary{background:#fbbf24;color:#fff}.auth-btn-primary:hover:not(:disabled){background:#f59e0b}.auth-btn-success{background:#16a34a;color:#fff}.auth-btn-success:hover:not(:disabled){background:#15803d}.auth-link{background:none;border:none;color:#fbbf24;font-size:.875rem;cursor:pointer;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-forgot{width:100%;text-align:center;padding:8px}.auth-email-info{text-align:center;margin-bottom:8px}.auth-email-display{font-weight:600;color:#111827;margin:4px 0}.auth-password-wrapper{position:relative}.auth-password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1.2rem;opacity:.6}.auth-password-toggle:hover{opacity:1}.auth-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;font-size:.875rem}.auth-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a;padding:12px 16px;border-radius:8px;font-size:.875rem}.auth-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-label{font-size:.875rem;color:#6b7280}.auth-radio-group{display:flex;gap:16px}.auth-radio-label{display:flex;align-items:center;gap:6px;cursor:pointer;color:#374151}.auth-radio{width:16px;height:16px;accent-color:#fbbf24}.auth-terms{font-size:.75rem;color:#6b7280;text-align:center}.auth-terms a{color:#fbbf24}.auth-trial-info{text-align:center;font-size:.875rem;color:#6b7280}.auth-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.popup-content{background:#fff;border-radius:16px;width:100%;max-width:380px;padding:32px 24px;text-align:center;position:relative}.popup-close{position:absolute;top:12px;right:12px;background:none;border:none;font-size:24px;color:#9ca3af;cursor:pointer;line-height:1}.popup-close:hover{color:#6b7280}.popup-icon{font-size:48px;margin-bottom:16px}.popup-title{font-size:1.5rem;font-weight:700;color:#111827;margin-bottom:8px}.popup-description{color:#6b7280;margin-bottom:20px}.popup-features{text-align:left;margin-bottom:24px}.popup-feature{color:#374151;padding:8px 0;font-size:.9375rem}.popup-pricing{margin-bottom:24px}.popup-trial{margin-bottom:8px}.popup-trial-badge{display:inline-block;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-weight:700;padding:6px 16px;border-radius:20px;font-size:.875rem}.popup-trial-text{color:#6b7280;font-size:.875rem;margin-top:6px}.popup-price{color:#111827;font-weight:600}.popup-btn{width:100%;padding:14px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;margin-bottom:12px;transition:background-color .2s}.popup-btn-primary{background:#fbbf24;color:#fff}.popup-btn-primary:hover{background:#f59e0b}.popup-btn-secondary{background:#f3f4f6;color:#6b7280}.popup-btn-secondary:hover{background:#e5e7eb}.popup-note{font-size:.75rem;color:#9ca3af}.header-actions{display:flex;align-items:center;gap:8px}.logout-btn{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:6px 10px;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .2s}.logout-btn:hover{background:#ef444440;border-color:#ef444480}.sign-out-btn{background:transparent;border:1px solid #D9E1EA;color:#5c6b7a;padding:6px 8px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.sign-out-btn:hover{background:#fee2e2;border-color:#ef4444;color:#dc2626}.sign-out-btn:active{background:#fecaca}.sign-in-btn{background:#fdb913;border:1px solid #FDB913;color:#fff;padding:6px 8px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.sign-in-btn:hover{background:#e5a711;border-color:#e5a711}.sign-in-btn:active{background:#cc9510}.app-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e293b);color:#f9fafb;gap:16px}.loading-spinner{width:48px;height:48px;border:4px solid rgba(251,191,36,.2);border-top-color:#fbbf24;border-radius:50%;animation:spin .8s linear infinite}.app-loading p{font-size:1rem;color:#9ca3af}.consent-modal{max-width:400px}.consent-details{text-align:left;margin-bottom:24px;padding:16px;background:#f9fafb;border-radius:12px}.consent-text{color:#4b5563;font-size:.9rem;line-height:1.5;margin-bottom:12px}.consent-text:last-child{margin-bottom:0}.consent-privacy{display:flex;align-items:flex-start;gap:8px;color:#059669;font-weight:500}.consent-list{margin:8px 0 16px;padding-left:20px;color:#4b5563;font-size:.9rem;line-height:1.6}.consent-list li{margin-bottom:4px}.consent-checkbox-label{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb;cursor:pointer}.consent-checkbox-label input[type=checkbox]{margin-top:3px;width:18px;height:18px;accent-color:#0F3D3A;cursor:pointer;flex-shrink:0}.consent-checkbox-text{color:#6b7280;font-size:.85rem;line-height:1.4}.popup-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;font-size:.875rem;margin-bottom:16px}.signup-modal{max-width:400px}.signup-pricing{margin-bottom:24px;padding:16px;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:12px;border:1px solid #f59e0b}.signup-trial-badge{display:inline-block;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-weight:700;padding:8px 20px;border-radius:20px;font-size:1rem;margin-bottom:8px}.signup-trial-text{color:#92400e;font-size:.9rem;font-weight:500;margin:0}.signup-form{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.signup-form .auth-input{margin-bottom:0}.signup-form .popup-btn{margin-bottom:0;margin-top:8px}.signup-note{font-size:.8rem;color:#6b7280;margin-bottom:8px}.tab-navigation{display:flex;justify-content:space-around;align-items:center;padding:4px 8px;padding-bottom:max(4px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid #D9E1EA;flex-shrink:0;position:relative;z-index:100}.tab-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 14px;background:transparent;border:none;border-radius:10px;color:#5c6b7a;font-size:.65rem;font-weight:500;cursor:pointer;transition:all .15s ease}.tab-btn:hover{background:#eef2f6}.tab-btn.active{color:#0f3d3a}.tab-btn.active .tab-icon{background:#fdb913;border-radius:50%;padding:6px}.tab-icon{display:flex;align-items:center;justify-content:center;padding:3px;transition:all .15s ease}.tab-label{display:block}.tab-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.content-container{flex:1;display:flex;flex-direction:column;background:#fff;border-radius:16px;margin:12px 12px 8px;box-shadow:0 4px 12px #0000001f;border:1px solid #CBD5E1;overflow:hidden}.unit-converter{flex:1;display:flex;flex-direction:column;background:#f6f8fb;overflow:hidden}.unit-converter-display{flex:1;display:flex;flex-direction:column;justify-content:center;padding:16px;gap:8px}.unit-converter-row{display:flex;align-items:center;gap:12px}.unit-converter-value{flex:1;background:#fff;border:2px solid #D9E1EA;border-radius:10px;padding:14px 16px;font-size:1.5rem;font-weight:700;color:#0e1a2a;text-align:right}.unit-converter-result{flex:1;background:#0f3d3a;border-radius:10px;padding:14px 16px;font-size:1.5rem;font-weight:700;color:#fff;text-align:right}.unit-converter-select{background:#eef2f6;border:2px solid #D9E1EA;border-radius:10px;padding:12px 10px;font-size:.85rem;font-weight:600;color:#0e1a2a;cursor:pointer;min-width:100px}.unit-converter-select:focus{outline:none;border-color:#fdb913}.unit-converter-swap{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#5c6b7a;cursor:pointer;padding:8px;margin:4px auto;transition:color .15s}.unit-converter-swap:hover{color:#fdb913}.unit-converter-presets{display:flex;justify-content:center;gap:10px;padding:8px 16px;flex-shrink:0}.unit-converter-preset{background:#fff;border:2px solid #D9E1EA;border-radius:20px;padding:10px 16px;font-size:.85rem;font-weight:600;color:#5c6b7a;cursor:pointer;transition:all .15s}.unit-converter-preset:hover,.unit-converter-preset:active{background:#fdb913;border-color:#fdb913;color:#0e1a2a}.triangle-container-v2{flex:1;display:flex;flex-direction:column;padding:12px;gap:8px;overflow:hidden;background:#f6f8fb}.triangle-presets-v2{display:flex;justify-content:center;gap:8px;flex-shrink:0}.triangle-preset-btn-v2{background:#fff;border:2px solid #D9E1EA;border-radius:20px;padding:8px 16px;font-size:.85rem;font-weight:600;color:#5c6b7a;cursor:pointer;transition:all .15s}.triangle-preset-btn-v2:hover,.triangle-preset-btn-v2:active{background:#fdb913;border-color:#fdb913;color:#0e1a2a}.triangle-visual-v2{flex:1;position:relative;display:flex;align-items:center;justify-content:center;min-height:200px}.triangle-svg-v2{width:100%;max-width:300px;height:auto;color:#0f3d3a}.triangle-input-v2{position:absolute;background:#fff;border:2px solid #D9E1EA;border-radius:8px;padding:8px 12px;font-size:1.1rem;font-weight:700;color:#0e1a2a;cursor:pointer;transition:all .15s;min-width:50px;text-align:center}.triangle-input-v2.active{border-color:#fdb913;background:#fffbeb;box-shadow:0 0 0 3px #fdb9134d}.triangle-input-a{bottom:5%;left:50%;transform:translate(-50%)}.triangle-input-b{right:5%;top:50%;transform:translateY(-50%)}.triangle-input-c{left:25%;top:35%;transform:translate(-50%,-50%)}.triangle-keypad-v2{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.triangle-keypad-row{display:flex;gap:4px}.triangle-key-v2{flex:1;background:#eef2f6;border:1px solid #D9E1EA;border-radius:8px;padding:12px 8px;font-size:1rem;font-weight:500;color:#0e1a2a;cursor:pointer;transition:all .1s}.triangle-key-v2:active{transform:scale(.96);background:#d9e1ea}.triangle-key-v2.action{background:#e6ecf2;color:#8b2b2b}.triangle-key-v2.primary{background:#0f3d3a;border-color:#0f3d3a;color:#fff;font-weight:600}.triangle-key-v2.wide{flex:2}.easy-square{flex:1;display:flex;flex-direction:column;background:#f6f8fb;overflow:hidden}.easy-square-fractions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 16px;flex-shrink:0}.easy-square-triangle{flex:1;position:relative;display:flex;align-items:center;justify-content:center;padding:20px;min-height:200px;margin:8px 12px;border-radius:12px;background-color:#fafcfe;background-image:linear-gradient(rgba(180,200,220,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(180,200,220,.25) 1px,transparent 1px);background-size:20px 20px;border:1px solid #E2E8F0;box-shadow:inset 0 1px 3px #0000000a}.easy-square-svg{width:100%;max-width:280px;height:auto}.easy-square-input{position:absolute;background:#fff;border:2px solid #D9E1EA;border-radius:6px;padding:6px 10px;font-size:1.1rem;font-weight:700;color:#0e1a2a;cursor:pointer;transition:all .15s;min-width:50px;text-align:center;box-shadow:0 1px 3px #0000001a;font-family:SF Mono,Cascadia Code,Consolas,monospace}.easy-square-input:hover{border-color:#a0aec0}.easy-square-input.active{border-color:#fdb913;background:#fffbeb;box-shadow:0 0 0 3px #fdb9134d}.easy-square-input.computed{background:#f0fff4;border-color:#9ae6b4;color:#276749}.easy-square-input.computed.active{border-color:#fdb913;background:#fffbeb;color:#0e1a2a}.easy-square-input-a{bottom:4%;left:50%;transform:translate(-50%)}.easy-square-input-b{right:2%;top:42%;transform:translateY(-50%)}.easy-square-input-c{left:28%;top:32%;transform:translate(-50%,-50%)}.easy-square-presets{display:flex;justify-content:center;gap:10px;padding:8px 16px;flex-shrink:0}.easy-square-preset{background:#fff;border:2px solid #D9E1EA;border-radius:20px;padding:10px 18px;font-size:.9rem;font-weight:600;color:#5c6b7a;cursor:pointer;transition:all .15s}.easy-square-preset:hover,.easy-square-preset:active{background:#fdb913;border-color:#fdb913;color:#0e1a2a}.easy-square-keypad{display:flex;flex-direction:column;gap:6px;padding:6px 16px;padding-bottom:max(6px,env(safe-area-inset-bottom));flex-shrink:0}.easy-square-row{display:flex;gap:6px}.easy-square-key{flex:1;background:#eef2f6;border:2px solid #D9E1EA;border-radius:10px;padding:12px 8px;font-size:1.3rem;font-weight:500;color:#0e1a2a;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.easy-square-key:active{transform:scale(.96)}.easy-square-key.action{background:#ffe5e5;border-color:#fcc;color:#c33;font-weight:600}.easy-square-key.primary{background:#0f3d3a;border-color:#0f3d3a;color:#fff;font-weight:700}.easy-square-key.primary:active{background:#0a2a28}.hamburger-btn{background:transparent;border:none;padding:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#0e1a2a;border-radius:8px;transition:background .2s}.hamburger-btn:hover{background:#0000000d}.hamburger-btn:active{background:#0000001a}.menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:998;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.menu-drawer{position:fixed;top:0;right:-300px;width:300px;max-width:85vw;height:100%;background:#fff;z-index:999;display:flex;flex-direction:column;box-shadow:-4px 0 20px #00000026;transition:right .3s ease-out}.menu-drawer.open{right:0}.menu-header{display:flex;align-items:center;justify-content:space-between;padding:16px;padding-top:max(16px,env(safe-area-inset-top));background:#0f3d3a;flex-shrink:0}.menu-logo{height:36px;width:auto}.menu-close-btn{background:transparent;border:none;padding:8px;cursor:pointer;color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center}.menu-close-btn:hover{background:#ffffff1a}.menu-user{display:flex;align-items:center;gap:12px;padding:16px;background:#f6f8fb;border-bottom:1px solid #D9E1EA}.menu-user-avatar{width:40px;height:40px;background:#0f3d3a;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.1rem}.menu-user-name{font-size:.95rem;color:#0e1a2a;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-nav{flex:1;overflow-y:auto;padding:8px 0}.menu-item{display:flex;align-items:center;gap:14px;width:100%;padding:14px 20px;background:transparent;border:none;cursor:pointer;text-align:left;color:#0e1a2a;font-size:.95rem;transition:background .15s}.menu-item:hover{background:#f6f8fb}.menu-item:active{background:#eef2f6}.menu-item svg{color:#5b6b7d;flex-shrink:0}.menu-item-primary{background:#0f3d3a;color:#fff;border-radius:8px;margin:0 12px;width:calc(100% - 24px)}.menu-item-primary:hover{background:#0a2927}.menu-item-primary svg{color:#fff}.menu-item-signout{color:#cf222e}.menu-item-signout:hover{background:#ffebe9}.menu-item-signout svg{color:#cf222e}.menu-item-danger{color:#dc3545}.menu-item-danger:hover{background:#fff5f5}.menu-item-danger svg{color:#dc3545}.menu-divider{height:1px;background:#d9e1ea;margin:8px 16px}.menu-footer{padding:16px;border-top:1px solid #D9E1EA;text-align:center;flex-shrink:0}.menu-version{display:block;font-size:.8rem;color:#5b6b7d;margin-bottom:4px}.menu-copyright{display:block;font-size:.75rem;color:#8a9aad}.legal-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1100;padding:16px}.legal-modal{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000004d}.legal-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e4e6e9;flex-shrink:0}.legal-modal-title{font-size:1.25rem;font-weight:600;color:#1c1e21;margin:0}.legal-modal-close{width:36px;height:36px;border:none;background:#f0f2f5;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#65676b;transition:background .2s}.legal-modal-close:hover{background:#e4e6e9}.legal-modal-content{flex:1;overflow-y:auto;padding:20px}.legal-modal-text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.9rem;line-height:1.6;color:#1c1e21;white-space:pre-wrap;word-wrap:break-word;margin:0}.legal-modal-text h1,.legal-modal-text h2,.legal-modal-text h3{margin-top:1.5em;margin-bottom:.5em}.legal-modal-footer{padding:16px 20px;border-top:1px solid #e4e6e9;flex-shrink:0}.legal-modal-btn{width:100%;padding:12px 20px;font-size:1rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;background:#0f3d3a;color:#fff;transition:background .2s}.legal-modal-btn:hover{background:#0a2927}@media (max-width: 480px){.legal-modal{max-width:100%;max-height:95vh;border-radius:16px 16px 0 0}.legal-modal-overlay{align-items:flex-end;padding:0}}.legal-choice-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1150;padding:20px}.legal-choice-modal{background:#fff;border-radius:16px;width:100%;max-width:320px;padding:24px;box-shadow:0 8px 32px #0000004d;text-align:center}.legal-choice-title{font-size:1.25rem;font-weight:700;color:#1c1e21;margin:0 0 8px}.legal-choice-text{font-size:.9rem;color:#65676b;margin:0 0 20px}.legal-choice-buttons{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.legal-choice-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;border:2px solid transparent}.legal-choice-btn-app{background:#0f3d3a;color:#fff;border-color:#0f3d3a}.legal-choice-btn-app:hover{background:#0a2927}.legal-choice-btn-web{background:#fff;color:#0f3d3a;border-color:#d9e1ea}.legal-choice-btn-web:hover{background:#f6f8fb;border-color:#0f3d3a}.legal-choice-cancel{background:transparent;border:none;color:#65676b;font-size:.9rem;cursor:pointer;padding:8px 16px}.legal-choice-cancel:hover{color:#1c1e21}.delete-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1200;padding:20px}.delete-modal{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:24px;box-shadow:0 8px 32px #0000004d;text-align:center}.delete-modal-icon{margin-bottom:16px}.delete-modal-title{font-size:1.25rem;font-weight:700;color:#1c1e21;margin:0 0 12px}.delete-modal-text{font-size:.9rem;color:#65676b;margin:0 0 12px;line-height:1.4}.delete-modal-list{text-align:left;margin:0 0 12px;padding-left:24px;font-size:.85rem;color:#65676b}.delete-modal-list li{margin-bottom:4px}.delete-modal-warning{font-size:.85rem;font-weight:600;color:#dc3545;margin:0 0 16px}.delete-modal-error{background:#ffebe9;color:#cf222e;padding:10px 12px;border-radius:6px;font-size:.85rem;margin-bottom:16px}.delete-modal-actions{display:flex;gap:12px}.delete-modal-btn{flex:1;padding:12px 16px;font-size:.95rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:background .2s,opacity .2s}.delete-modal-btn:disabled{opacity:.6;cursor:not-allowed}.delete-modal-btn-cancel{background:#e4e6e9;color:#1c1e21}.delete-modal-btn-cancel:hover:not(:disabled){background:#d8dadf}.delete-modal-btn-delete{background:#dc3545;color:#fff}.delete-modal-btn-delete:hover:not(:disabled){background:#c82333}.toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);padding:12px 20px;border-radius:10px;font-size:.9rem;font-weight:500;color:#fff;z-index:2000;cursor:pointer;box-shadow:0 4px 16px #0003;animation:toast-in .25s ease-out;max-width:calc(100vw - 32px);text-align:center}.toast-error{background:#dc3545}.toast-info{background:#0f3d3a}.toast-success{background:#16a34a}.toast-message{line-height:1.4}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.stairs-drawing-container{flex:1;display:flex;align-items:center;justify-content:center;margin:8px 12px 4px;background:#fff;border-radius:14px;border:1px solid #D9E1EA;box-shadow:0 1px 4px #0000000f;min-height:0;overflow:visible}.stairs-visual{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:12px 8px 8px}.stairs-svg{width:100%;max-width:340px;height:auto;color:#0f3d3a}.stairs-overlay{position:absolute;background:#ffffffeb;border:2px solid #D9E1EA;border-radius:6px;padding:4px 8px;cursor:pointer;transition:all .15s;font-size:.85rem;font-weight:700;color:#0e1a2a;white-space:nowrap;box-shadow:0 1px 3px #0000001a}.stairs-overlay:hover{border-color:#a0aec0}.stairs-overlay.active{border-color:#fdb913;background:#fffbeb;box-shadow:0 0 0 3px #fdb9134d}.stairs-overlay-rise{left:0;top:48%;transform:translateY(-50%)}.stairs-overlay-run{bottom:0;left:50%;transform:translate(-50%)}.stairs-overlay-stringer{left:53%;top:48%;transform:translate(-50%,-50%) rotate(-41deg);cursor:default;background:#eef2f6e6;border-color:#d9e1ea}.stairs-fields-row{display:flex;gap:6px;padding:4px 12px 6px;flex-shrink:0}.stairs-field{flex:1;background:#fff;border:2px solid #D9E1EA;border-radius:10px;padding:6px 8px;cursor:pointer;transition:all .15s;text-align:center}.stairs-field:hover{border-color:#a0aec0}.stairs-field.active{border-color:#fdb913;background:#fffbeb;box-shadow:0 0 0 3px #fdb9134d}.stairs-field.computed{background:#f0fff4;border-color:#c6f6d5}.stairs-field-label{display:block;font-size:.6rem;font-weight:600;color:#5c6b7a;margin-bottom:2px}.stairs-field-value{display:block;font-size:1rem;font-weight:700;color:#0e1a2a;white-space:nowrap}@media (min-width: 768px){.triangle-container-v2{max-width:500px;margin:0 auto;padding:24px}.triangle-svg-v2{max-width:350px}.triangle-input-v2{font-size:1.3rem;padding:10px 16px}.easy-square,.unit-converter{max-width:500px;margin:0 auto}.easy-square-svg{max-width:340px}.easy-square-input{font-size:1.3rem;padding:8px 14px}.unit-converter-value,.unit-converter-result{font-size:1.8rem}}@media (max-height: 700px){.tab-navigation{padding:4px 8px;padding-bottom:max(4px,env(safe-area-inset-bottom))}.tab-btn{padding:6px 12px;font-size:.65rem}.tab-btn.active .tab-icon{padding:6px}.triangle-container-v2{padding:8px;gap:6px}.triangle-visual-v2{min-height:160px}.unit-converter-display{padding:12px}.unit-converter-value,.unit-converter-result{font-size:1.2rem;padding:10px 12px}.unit-converter-select{min-width:85px;font-size:.75rem;padding:10px 8px}.unit-converter-presets{padding:6px 12px;gap:8px}.unit-converter-preset{padding:8px 12px;font-size:.75rem}.triangle-input-v2{font-size:.95rem;padding:6px 10px}.triangle-key-v2{padding:10px 6px;font-size:.9rem}.triangle-preset-btn-v2{padding:6px 12px;font-size:.75rem}.easy-square-triangle{padding:10px;min-height:160px;margin:4px 8px;background-size:16px 16px}.easy-square-input{font-size:.9rem;padding:5px 8px;min-width:40px}.easy-square-presets{padding:6px 12px;gap:8px}.easy-square-preset{padding:8px 14px;font-size:.8rem}.easy-square-keypad{padding:6px 12px;gap:4px}.easy-square-row{gap:4px}.easy-square-key{padding:10px 6px;font-size:1.1rem;border-radius:8px}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#020617,#0f172a,#1e293b);color:#f9fafb;min-height:100vh}button{font-family:inherit}
