:root{--color-up:#eb3323;--color-down:#3ea64b;--color-flat:#888;--color-bg:#fff;--color-text-primary:#1a1a1a;--color-text-secondary:#666;--color-border:#e8e8e8;--color-chart-price:#4a90e2;--color-chart-flow:#9013fe;--gradient-primary:linear-gradient(135deg,#667eea 0%,#764ba2 100%);--gradient-success:linear-gradient(135deg,#f093fb 0%,#f5576c 100%);--gradient-bg:linear-gradient(135deg,#fdfbfb 0%,#ebedee 100%);--shadow-sm:0 2px 8px #0000000a;--shadow-md:0 4px 20px #00000014;--shadow-lg:0 8px 30px #0000001f;--shadow-xl:0 20px 60px #00000026;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background:var(--gradient-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#667eea0d 0%,#0000 70%);width:200%;height:200%;animation:30s linear infinite rotate;position:fixed;top:-50%;left:-50%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#root{z-index:1;max-width:1400px;min-height:100vh;margin:0 auto;padding:30px 20px;position:relative}.card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-md);background:#fffffff2;border:1px solid #fffc;border-radius:24px;margin-bottom:20px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.card:hover:before{left:100%}.card:hover{box-shadow:var(--shadow-lg);border-color:#667eea4d;transform:translateY(-4px)scale(1.01)}.header{border-bottom:2px solid #667eea1a;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;display:flex}.title{color:var(--color-text-primary);background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.375rem;font-weight:800}.price-info{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.current-price{text-shadow:0 2px 4px #0000001a;font-size:1.75rem;font-weight:800}.change{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:4px 12px;font-size:1rem;font-weight:700}.up{color:var(--color-up);background:#eb33231a}.down{color:var(--color-down);background:#3ea64b1a}.flat{color:var(--color-flat);background:#8888881a}.chart-container{width:100%;height:300px;position:relative}.chart-legend{border-bottom:1px solid var(--color-border);justify-content:center;align-items:center;gap:20px;margin-bottom:10px;padding:10px 0;display:flex}.legend-item{color:var(--color-text-secondary);align-items:center;gap:8px;font-size:.875rem;display:flex}.legend-color{border-radius:2px;width:24px;height:3px;display:inline-block}.legend-label{font-weight:500}.loading{height:100%;color:var(--color-text-secondary);justify-content:center;align-items:center;font-size:.875rem;display:flex}.dashboard{padding:20px 0}.dashboard-header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-md);background:#ffffffe6;border:1px solid #fffc;border-radius:20px;justify-content:space-between;align-items:center;margin-bottom:30px;padding:24px 32px;display:flex}.dashboard-header h1{background:var(--gradient-primary);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;margin:0;font-size:2rem;font-weight:900}.header-actions{align-items:center;gap:16px;display:flex}.last-update{color:var(--color-text-secondary);background:#667eea0d;border-radius:12px;padding:8px 16px;font-size:.875rem;font-weight:500}.btn-settings,.btn-watchlist{cursor:pointer;border:none;border-radius:12px;padding:10px 16px;font-size:1.125rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-settings{box-shadow:var(--shadow-sm);background:#ffffffe6;border:2px solid #667eea33}.btn-settings:hover{background:var(--gradient-primary);box-shadow:var(--shadow-md);transform:scale(1.05)rotate(90deg)}.btn-watchlist{color:#1a1a1a;background:linear-gradient(135deg,gold,#ffed4e);box-shadow:0 4px 15px #ffd7004d}.btn-logout{cursor:pointer;color:#fff;background:linear-gradient(135deg,#ff6b6b,#ee5a6f);border:none;border-radius:12px;padding:10px 16px;font-size:1.125rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #ff6b6b4d}.btn-logout:hover{background:linear-gradient(135deg,#ff5252,#e63946);transform:translateY(-2px);box-shadow:0 6px 20px #ff6b6b66}.stock-search{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-md);background:#ffffffe6;border:1px solid #fffc;border-radius:20px;margin-bottom:24px;padding:24px}.stock-search form{align-items:stretch;gap:12px;display:flex}.search-input{background:#ffffffe6;border:2px solid #667eea33;border-radius:14px;flex:1;padding:14px 20px;font-family:inherit;font-size:1rem;transition:all .3s}.search-input:focus{border-color:#667eea;outline:none;transform:translateY(-1px);box-shadow:0 0 0 4px #667eea1a}.search-btn{background:var(--gradient-primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:14px;padding:14px 28px;font-weight:700;transition:all .3s;box-shadow:0 4px 15px #667eea4d}.search-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.search-hint{color:var(--color-text-secondary);margin-top:12px;margin-bottom:0;font-size:.875rem;font-weight:500}.custom-stock-wrapper{position:relative}.remove-stock-btn{color:#fff;cursor:pointer;z-index:10;background:#eb3323e6;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.25rem;line-height:1;transition:all .2s;display:flex;position:absolute;top:10px;right:10px}.remove-stock-btn:hover{background:#eb3323;transform:scale(1.1)}.grid{gap:20px;display:grid}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-bg);border-radius:16px;flex-direction:column;width:90%;max-width:600px;max-height:90vh;animation:.3s modalSlideIn;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.settings-modal{max-width:700px}.tabs{border-bottom:2px solid var(--color-border);background:#f8f9fa;display:flex}.tab{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;flex:1;padding:15px 20px;font-size:1rem;font-weight:600;transition:all .2s;position:relative;bottom:-2px}.tab:hover{color:var(--color-text-primary);background:#4a90e20d}.tab.active{color:#4a90e2;background:#fff;border-bottom-color:#4a90e2}.tab-content{animation:.3s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.api-guide{background:#f8f9fa;border-left:4px solid #4a90e2;border-radius:8px;margin-top:20px;padding:20px}.api-guide h4{color:var(--color-text-primary);margin:0 0 15px;font-size:1.125rem}.api-info{margin-top:15px}.api-info h5{color:#4a90e2;margin:0 0 10px;font-size:1rem}.api-info p{margin:8px 0;font-size:.9rem;line-height:1.6}.api-info strong{color:var(--color-text-primary)}.api-info ol{margin:10px 0 10px 20px;padding:0;font-size:.875rem}.api-info li{margin:6px 0;line-height:1.5}.api-info a{color:#4a90e2;font-weight:600;text-decoration:none}.api-info a:hover{text-decoration:underline}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px;display:flex}.modal-header h2{margin:0;font-size:1.5rem;font-weight:700}.close-btn{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:1.5rem;line-height:1;transition:all .2s}.close-btn:hover{color:var(--color-text-primary);background:#f5f5f5}.modal-body{flex:1;padding:20px;overflow-y:auto}.form-group{margin-bottom:20px}.form-group label{color:var(--color-text-primary);margin-bottom:8px;font-weight:600;display:block}.form-group input{border:1px solid var(--color-border);border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:1rem;transition:border-color .2s}.form-group select{border:1px solid var(--color-border);cursor:pointer;background:#fff;border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:#4a90e2;outline:none;box-shadow:0 0 0 3px #4a90e21a}.hint{color:var(--color-text-secondary);margin-top:6px;font-size:.875rem;display:block}.info-box{background:#f8f9fa;border-left:4px solid #4a90e2;border-radius:8px;margin-top:20px;padding:15px}.info-box p{margin:0 0 8px;font-weight:600}.info-box ul{color:var(--color-text-secondary);margin:0;padding-left:20px;font-size:.875rem}.info-box li{margin-bottom:4px}.modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:10px;padding:15px 20px;display:flex}.btn{cursor:pointer;box-shadow:var(--shadow-sm);border:none;border-radius:12px;padding:12px 24px;font-size:1rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 15px #667eea4d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-secondary{color:var(--color-text-primary);background:#ffffffe6;border:2px solid #0000001a}.btn-secondary:hover{background:#f5f5f5;transform:translateY(-1px)}@media (max-width:768px){.dashboard-header{flex-direction:column;align-items:flex-start;gap:10px}.header-actions{justify-content:space-between;width:100%}.modal-content{width:95%}.grid{grid-template-columns:1fr!important}}.stock-detail-page{max-width:1200px;margin:0 auto;padding:20px}.detail-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.btn-back{background:var(--color-bg);color:#4a90e2;cursor:pointer;border:2px solid #4a90e2;border-radius:8px;padding:10px 20px;font-size:1rem;font-weight:600;transition:all .2s}.btn-back:hover{color:#fff;background:#4a90e2;transform:translate(-2px)}.stock-detail-content{background:var(--color-bg);border-radius:16px;box-shadow:0 4px 20px #0000000d}.loading-container{min-height:400px;color:var(--color-text-secondary);justify-content:center;align-items:center;font-size:1.125rem;display:flex}.btn-watchlist{color:#1a1a1a;cursor:pointer;background:linear-gradient(135deg,gold,#ffed4e);border:none;border-radius:8px;padding:8px 16px;font-size:.875rem;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #ffd7004d}.btn-watchlist:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ffd70066}.stock-input-group{gap:8px;margin-top:8px;display:flex}.stock-input-group input{flex:1}.stock-input-group .btn{white-space:nowrap;padding:10px 16px}.watchlist-preview{background:#f8f9fa;border-radius:8px;margin-top:15px;padding:15px}.watchlist-header{color:var(--color-text-primary);margin-bottom:10px;font-weight:600}.watchlist-items{flex-wrap:wrap;gap:8px;display:flex}.watchlist-item{border:1px solid var(--color-border);background:#fff;border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:.875rem;display:flex}.watchlist-item .remove-btn{color:#eb3323;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1rem;line-height:1;transition:transform .2s}.watchlist-item .remove-btn:hover{transform:scale(1.2)}.watchlist-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px;display:grid}@media (max-width:1200px){.watchlist-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.watchlist-grid{grid-template-columns:1fr}}.empty-watchlist{text-align:center;background:var(--color-bg);border-radius:16px;padding:60px 20px;box-shadow:0 4px 20px #0000000d}.empty-icon{margin-bottom:20px;font-size:4rem}.empty-watchlist h2{color:var(--color-text-primary);margin-bottom:10px}.empty-watchlist p{color:var(--color-text-secondary);margin-bottom:20px}.password-login-container{background:var(--gradient-bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative}.password-login-container:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#667eea0d 0%,#0000 70%);width:200%;height:200%;animation:30s linear infinite rotate;position:fixed;top:-50%;left:-50%}.password-login-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-xl);z-index:1;background:#fffffff2;border:1px solid #fffc;border-radius:24px;width:100%;max-width:420px;padding:48px 40px;transition:all .3s;position:relative}.password-login-card.shake{animation:.5s shake}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.login-icon{text-align:center;margin-bottom:24px;font-size:4rem;animation:3s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.login-title{text-align:center;background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:12px;font-size:2rem;font-weight:900}.login-subtitle{text-align:center;color:var(--color-text-secondary);margin-bottom:32px;font-size:1rem}.login-form{margin-bottom:24px}.password-input{background:#ffffffe6;border:2px solid #667eea33;border-radius:14px;width:100%;margin-bottom:12px;padding:14px 20px;font-family:inherit;font-size:1rem;transition:all .3s}.password-input:focus{border-color:#667eea;outline:none;transform:translateY(-1px);box-shadow:0 0 0 4px #667eea1a}.error-message{color:var(--color-up);text-align:center;background:#eb33231a;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:.875rem}.btn-login{background:var(--gradient-primary);color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;padding:14px 28px;font-size:1rem;font-weight:700;transition:all .3s;box-shadow:0 4px 15px #667eea4d}.btn-login:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.login-footer{text-align:center;color:var(--color-text-secondary);font-size:.875rem}.under-construction-container{background:var(--gradient-bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative}.under-construction-container:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#667eea0d 0%,#0000 70%);width:200%;height:200%;animation:30s linear infinite rotate;position:fixed;top:-50%;left:-50%}.construction-content{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-xl);z-index:1;background:#fffffff2;border:1px solid #fffc;border-radius:24px;width:100%;max-width:800px;padding:48px 40px;position:relative}.construction-icon{text-align:center;margin-bottom:24px;font-size:5rem;animation:2s ease-in-out infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.construction-title{text-align:center;background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:16px;font-size:2.5rem;font-weight:900}.construction-subtitle{text-align:center;color:var(--color-text-secondary);margin-bottom:32px;font-size:1.125rem}.construction-divider{background:linear-gradient(90deg,#0000,#667eea4d,#0000);height:2px;margin:32px 0}.websites-title{text-align:center;color:var(--color-text-primary);margin-bottom:24px;font-size:1.5rem;font-weight:700}.websites-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px;display:grid}@media (max-width:768px){.websites-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.websites-grid{grid-template-columns:1fr}}.website-card{color:var(--color-text-primary);box-shadow:var(--shadow-sm);background:#ffffffe6;border:2px solid #667eea1a;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:24px;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.website-card:hover{box-shadow:var(--shadow-md);background:#fff;border-color:#667eea4d;transform:translateY(-4px)}.website-icon{margin-bottom:12px;font-size:2.5rem}.website-name{font-size:1rem;font-weight:600}.construction-footer{text-align:center;color:var(--color-text-secondary);background:#667eea0d;border-radius:12px;padding:20px;font-size:.875rem}.password-message{text-align:center;border-radius:8px;margin-top:12px;padding:12px 16px;font-size:.875rem;font-weight:600}.password-message.success{color:var(--color-down);background:#3ea64b1a;border:1px solid #3ea64b33}.password-message.error{color:var(--color-up);background:#eb33231a;border:1px solid #eb332333}
