:root{--primary: #7dba00;--primary-hover: #6aa300;--primary-light: #e8f5d8;--error: #c53030;--bg: #f3f4f6;--surface: #ffffff;--text: #1f2937;--text-secondary: #4b5563;--text-muted: #6b7280;--border: #e5e7eb;--radius: 14px;--radius-sm: 8px;--shadow: 0 10px 25px -5px rgba(0, 0, 0, .1), 0 4px 10px -5px rgba(0, 0, 0, .04);--shadow-hover: 0 12px 28px -8px rgba(125, 186, 0, .35);--shadow-back: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-back-hover: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--focus-ring: 0 0 0 3px var(--primary-light);--overlay: rgba(0, 0, 0, .5)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(160deg,#f5f7f3 0%,#f0f2ee 45%,var(--bg) 100%);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}#root{min-height:100vh;position:relative;z-index:1}.app-shell{min-height:100vh}body:after{content:"";position:fixed;left:max(.5rem,calc(50% - 240px));bottom:0;width:95%;max-width:480px;height:90%;max-height:520px;background-image:url(/assets/NATLEAF-LOGO-FOLHA.png);background-size:contain;background-repeat:no-repeat;background-position:0% 100%;opacity:.18;transform:rotate(30deg);transform-origin:left bottom;pointer-events:none;z-index:0}a{color:var(--primary);text-decoration:none}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.container{max-width:480px;margin:0 auto;padding:1rem}.card{background:#ffffff8c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius);border:1px solid rgba(255,255,255,.6);box-shadow:0 4px 20px -4px #00000014,0 1px 2px #0000000a;padding:1.25rem;margin-bottom:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:16px 24px;border-radius:var(--radius);font-weight:600;font-size:1rem;transition:all .2s ease;border:none}.btn-primary{background:var(--primary);color:#fff;width:100%;box-shadow:var(--shadow)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-hover)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:2px solid var(--border);box-shadow:none}.btn-secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.btn-secondary:disabled{opacity:.7;cursor:not-allowed}.btn-link{background:none;border:none;padding:0;color:var(--primary);font-size:inherit;font-weight:500;text-decoration:underline}.btn-link:hover{color:var(--primary-hover)}.input{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;margin-bottom:.75rem;background:var(--surface);min-height:42px;transition:all .2s ease}@media(min-width:768px){.input{min-height:48px}}.input:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}select.input{cursor:pointer;appearance:auto}.label{display:block;font-weight:500;margin-bottom:.35rem;color:var(--text)}.badge{display:inline-block;padding:.2rem .5rem;border-radius:6px;font-size:.8rem;font-weight:600}.badge-sleep{background:#e8e0f0;color:#4a3a6a}.badge-wellness{background:var(--primary-light);color:var(--primary-hover)}.badge-brain{background:#e8e8f0;color:#3a3a6a}.page-title{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 1rem;color:var(--text)}.login-title{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .5rem;color:var(--text)}.section-title{font-size:1.15rem;margin:0 0 .5rem;color:var(--text)}.muted{color:var(--text-muted);font-size:.9rem}.search-wrap{margin-bottom:1rem;position:relative;display:flex;align-items:center}.search-wrap .input{padding-left:2.25rem;margin-bottom:0}.search-wrap-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-wrap-clear{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem}.search-wrap-clear:hover{color:var(--text)}.tabs{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:1px solid var(--border)}.tabs a,.tabs button{padding:.6rem 1rem;color:var(--text-muted);font-weight:500;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s ease}.tabs a.active,.tabs a:hover,.tabs button.active,.tabs button:hover{color:var(--primary);border-bottom-color:var(--primary)}.nav-bottom{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:.5rem 0;z-index:100}.nav-bottom a{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem 1rem;color:var(--text-secondary);font-size:.85rem;transition:all .2s ease}.nav-bottom a.active{color:var(--primary);font-weight:600;border-top:3px solid var(--primary);margin-top:-3px;padding-top:calc(.5rem - 3px)}.app-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:.75rem 1rem;background:var(--surface);border-bottom:2px solid var(--primary);display:flex;justify-content:space-between;align-items:center}.app-header+.container{padding-top:4.5rem}.app-header-brand{font-weight:600;color:var(--primary)}.app-header-brand[href]{color:var(--primary);text-decoration:none}.app-header-brand[href]:hover{color:var(--primary-hover)}.card-create-patient-section{margin-bottom:1rem}.card-create-patient-form-wrap{max-height:0;overflow:hidden;opacity:0;transition:max-height .4s ease-out,opacity .3s ease-out}.card-create-patient-form-wrap.is-open{max-height:1400px;opacity:1;transition:max-height .45s ease-in,opacity .25s ease-in}.pb-80{padding-bottom:5rem}@keyframes skeleton-shimmer{0%{opacity:.65}50%{opacity:1}to{opacity:.65}}.skeleton{background:var(--border);border-radius:var(--radius-sm);animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-line{height:1rem;margin-bottom:.5rem}.skeleton-line:last-child{margin-bottom:0}.skeleton-title{height:1.75rem;width:60%;margin-bottom:1rem;border-radius:var(--radius-sm)}.skeleton-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;margin-bottom:.75rem}.skeleton-card .skeleton-line{height:.875rem}.skeleton-card .skeleton-line:first-child{width:70%;height:1rem;margin-bottom:.75rem}.error-msg{color:var(--error);font-size:.9rem;margin-top:.5rem}.success-msg{color:var(--primary);font-size:.9rem;margin-top:.5rem}.login-page-with-intro{position:relative;min-height:100vh;width:100%}.login-intro-animation{position:fixed;inset:0;z-index:1;background:linear-gradient(160deg,#f5f7f3 0%,#f0f2ee 50%,var(--bg) 100%);opacity:1;pointer-events:none;transition:opacity .4s ease-out}.login-intro-animation.is-done{opacity:0;pointer-events:none}.login-intro-logo-wrap{position:fixed;left:50%;top:50%;width:10rem;height:2.5rem;transform:translate(-50%,-50%);animation:login-intro-logo-move 2.2s ease-in-out forwards}.login-intro-logo{width:100%;height:100%;object-fit:contain;object-position:center;opacity:0;animation:login-intro-logo-fade 2.2s ease-out forwards}@keyframes login-intro-logo-move{0%{left:50%;top:50%;width:10rem;height:2.5rem;transform:translate(-50%,-50%) scale(.82)}35%{transform:translate(-50%,-50%) scale(1)}to{left:50%;top:4.5rem;width:200px;height:50px;transform:translate(-50%) scale(1)}}@keyframes login-intro-logo-fade{0%{opacity:0}25%{opacity:1}to{opacity:1}}.login-intro-content{position:relative;z-index:0;min-height:100vh;opacity:0;pointer-events:none;transition:opacity .5s ease-out}.login-intro-content.is-visible{opacity:1;pointer-events:auto}.login-screen{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background:transparent}.login-intro-content .login-screen{background:var(--bg)}.login-screen-inner{width:100%;max-width:28rem;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1.5rem 2rem}.login-screen-inner .login-form-card,.login-screen-inner .login-back{width:100%;max-width:100%}.login-screen-inner .login-logo-section{text-align:center}.login-screen-inner>p{text-align:center;width:100%}.login-intro-content .login-screen-inner{position:relative;max-width:min(32rem,92vw);min-height:100vh;padding:1.5rem 1.5rem 2.5rem;justify-content:flex-start;overflow:visible}.login-intro-content .login-screen-inner:after{content:"";position:absolute;bottom:0;left:50%;width:100vw;margin-left:-50vw;height:75%;z-index:0;pointer-events:none;background-image:linear-gradient(to bottom,var(--bg) 0%,rgba(243,244,246,.85) 25%,transparent 55%),url(/assets/home.jpeg);background-size:100% 100%,cover;background-position:top,bottom center;background-repeat:no-repeat;opacity:.5}.login-intro-content .login-screen-inner>*{position:relative;z-index:1}.login-intro-content .login-logo-section{flex:0 0 auto}.login-logo-section{flex:1;display:flex;justify-content:center}.login-logo-wrap{display:flex;flex-direction:column;align-items:center;height:fit-content;margin-top:3rem}.login-intro-content .login-logo-wrap img{width:200px;height:50px;object-fit:contain}.login-buttons{display:flex;flex-direction:column;gap:1rem;padding-bottom:1.5rem;width:100%;margin-top:2rem}.login-buttons>*{width:100%;min-width:0}.login-intro-content .login-buttons{flex:1;gap:1.25rem;margin-top:2.5rem;margin-bottom:12rem;padding-bottom:2rem;justify-content:center;align-items:center;min-height:0}.login-intro-content .login-buttons .login-btn-primary,.login-intro-content .login-buttons .login-btn-secondary{width:100%;max-width:20rem;min-height:56px;padding:18px 28px;font-size:1.05rem;border-radius:16px;opacity:0;transform:translateY(16px)}.login-intro-content.is-visible .login-buttons .login-btn-primary{animation:login-btn-enter .5s cubic-bezier(.22,1,.36,1) forwards}.login-intro-content.is-visible .login-buttons .login-btn-secondary{animation:login-btn-enter .5s cubic-bezier(.22,1,.36,1) .1s forwards}@keyframes login-btn-enter{to{opacity:1;transform:translateY(0)}}.login-btn-primary{width:100%;padding:16px 24px;min-height:48px;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;color:#fff;background:var(--primary);border:none;box-shadow:var(--shadow);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.login-btn-primary:hover{background:var(--primary-hover);transform:translateY(-2px) scale(1.01);box-shadow:var(--shadow-hover)}.login-btn-primary:active{transform:translateY(0) scale(.99);box-shadow:var(--shadow)}.login-btn-secondary{width:100%;padding:16px 24px;min-height:48px;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;color:var(--text);background:var(--surface);border:2px solid var(--border);box-shadow:none;transition:transform .2s ease,border-color .2s ease,color .2s ease,background .2s ease}.login-btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light);transform:translateY(-2px) scale(1.01);box-shadow:0 4px 14px -2px #7dba0033}.login-btn-secondary:active{transform:translateY(0) scale(.99)}.login-back{margin-top:1.25rem;margin-bottom:0;padding:8px 16px;border-radius:var(--radius-sm);background:#ffffff80;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.55);color:var(--text-secondary);font-size:.95rem;cursor:pointer;box-shadow:0 2px 12px -2px #0000000f;transition:all .2s ease}.login-back:hover{color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow-back-hover)}.login-form-card{background:#ffffff8c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius);border:1px solid rgba(255,255,255,.6);box-shadow:0 4px 20px -4px #00000014,0 1px 2px #0000000a;padding:1.5rem;margin-top:.5rem}.login-form-card .label{margin-top:.75rem}.login-form-card .label:first-child{margin-top:0}.login-form-card .btn-primary{margin-top:1rem}.login-form-card .error-msg{margin-top:.75rem}.input-password-wrap{position:relative;display:flex;align-items:center}.input-password-wrap .input{padding-right:2.75rem;width:100%}.input-password-eye{position:absolute;right:.6rem;background:none;border:none;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:color .15s}.input-password-eye:hover{color:var(--text)}
