*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:Manrope,sans-serif;font-size:1rem;color:#2c2c2c;background-color:#f6f4ef;line-height:1.6}h1,h2,h3,h4{font-family:Forum,serif;color:#3f5f3a;line-height:1.3;margin-bottom:1rem}h1{font-size:2.5rem}h2{font-size:1.75rem}h3{font-size:1.25rem}a{color:#9fca45;text-decoration:none;transition:color .2s ease}a:hover{color:#3f5f3a}p{margin-bottom:1rem}ul,ol{margin-bottom:1rem;padding-left:1.5rem}li{margin-bottom:.5rem}img{max-width:100%;height:auto}.layout{min-height:100vh;display:flex;flex-direction:column}.header{background:#fff;padding:1rem 1.5rem;box-shadow:0 4px 12px #00000014;display:flex;align-items:center;justify-content:space-between;position:relative}.header .logo{font-family:Forum,serif;font-size:1.25rem;color:#3f5f3a;font-weight:600}.header .hamburger{display:none;flex-direction:column;gap:4px;background:none;border:none;padding:.5rem;cursor:pointer}.header .hamburger span{display:block;width:24px;height:2px;background:#3f5f3a;transition:.2s ease}.header .greeting-mobile{display:none;color:#3f5f3a;font-weight:500;font-size:.875rem}.header nav{display:flex;align-items:center;gap:1rem}.header nav .nav-links{display:flex;align-items:center;gap:1rem}.header nav .nav-links a{color:#2c2c2c;font-weight:500}.header nav .nav-links a:hover{color:#9fca45}.header nav .nav-user{display:flex;align-items:center;gap:1rem;margin-left:1rem;padding-left:1rem;border-left:1px solid #e8f1dd}.header nav .nav-user .greeting-desktop{color:#3f5f3a;font-weight:500}.header nav .nav-user .logout-btn{background:none;border:none;color:#2c2c2c;cursor:pointer;padding:.5rem;display:flex;align-items:center;border-radius:12px;transition:.2s ease}.header nav .nav-user .logout-btn:hover{background:#e8f1dd;color:#3f5f3a}.header .nav-overlay{display:none}@media(max-width:768px){.header .hamburger{display:flex;order:1}.header .logo{order:2;position:absolute;left:50%;transform:translate(-50%)}.header .greeting-mobile{display:block;order:3}.header .greeting-desktop{display:none}.header nav{position:fixed;top:0;left:-280px;width:280px;height:100vh;background:#fff;flex-direction:column;align-items:flex-start;padding:2.5rem 1.5rem;box-shadow:0 4px 12px #00000014;transition:left .3s ease;z-index:100}.header nav.open{left:0}.header nav .nav-links{flex-direction:column;align-items:flex-start;width:100%;gap:.5rem}.header nav .nav-links a{padding:.5rem 0;width:100%;font-size:1.25rem}.header nav .nav-user{margin-left:0;padding-left:0;border-left:none;margin-top:auto;padding-top:1.5rem;border-top:1px solid #e8f1dd;width:100%}.header .nav-overlay{display:block;position:fixed;inset:0;background:#0006;z-index:99}}.main-content{flex:1;padding:2.5rem 1.5rem;max-width:1200px;margin:0 auto;width:100%}button[type=submit],.btn-primary{display:inline-block;padding:.5rem 1.5rem;border:none;border-radius:12px;font-family:Manrope,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}button[type=submit]:hover,.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}button[type=submit]:disabled,.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}button[type=submit],.btn-primary{background:#9fca45;color:#fff}.btn-secondary{display:inline-block;padding:.5rem 1.5rem;border:none;border-radius:12px;font-family:Manrope,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.btn-secondary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:#e8f1dd;color:#3f5f3a}.btn-cta{display:inline-block;padding:.5rem 1.5rem;border:none;border-radius:12px;font-family:Manrope,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn-cta:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.btn-cta:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-cta{background:#f4b52a;color:#fff}form{display:flex;flex-direction:column;gap:1rem}label{font-weight:500;margin-bottom:.5rem;display:block}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{width:100%;padding:.5rem 1rem;border:2px solid #e8f1dd;border-radius:12px;font-family:Manrope,sans-serif;font-size:1rem;background:#fff;transition:border-color .2s ease}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=date]:focus,select:focus,textarea:focus{outline:none;border-color:#9fca45}textarea{resize:vertical;min-height:100px}fieldset{border:none}fieldset legend{font-weight:600;margin-bottom:1rem}fieldset label{display:flex;align-items:center;gap:.5rem;font-weight:400;cursor:pointer}fieldset input[type=checkbox]{width:auto;accent-color:#9fca45}.field-error{color:#d64545;font-size:.875rem;margin-top:.5rem;display:block}.dashboard-section{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 12px #00000014;margin-bottom:1.5rem}.error-message{background:#f8d7d7;color:#d64545;padding:1rem;border-radius:12px;margin-bottom:1rem}.success{background:#d7f0d7;color:#4a9f4a;padding:1rem;border-radius:12px;margin-bottom:1rem}.warning{background:#fef3cd;color:#856404;padding:1rem;border-radius:12px;margin-bottom:1rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;width:100%;max-width:720px;max-height:80vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:2px solid #e8f1dd;flex-shrink:0}.modal-header h2{margin:0;font-family:Forum,serif;color:#3f5f3a}.modal-close{background:none;border:none;font-size:1.25rem;color:#2c2c2c;cursor:pointer;padding:.5rem;line-height:1;border-radius:12px;transition:background .2s ease}.modal-close:hover{background:#e8f1dd}.modal-body{padding:1.5rem;overflow-y:auto}.limitations-table{width:100%;border-collapse:collapse}.limitations-table tr:last-child td{border-bottom:none}.limitations-table td{padding:.5rem 1rem;vertical-align:top;border-bottom:1px solid #e8f1dd;font-size:.875rem}.limitations-table .col-name{font-weight:600;color:#3f5f3a;width:25%}.limitations-table .col-description{color:#2c2c2c;width:40%}.limitations-table .col-notes{color:#2c2c2c;font-style:italic;width:35%}.loading{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:4rem;color:#3f5f3a}.home-page{text-align:center}.home-page .hero{padding:4rem 0}.home-page .hero .hero-logo{margin-bottom:1.5rem}.home-page .hero h1{font-size:2.5rem;margin-bottom:.5rem}.home-page .hero p{max-width:500px;margin:0 auto 1rem}.home-page .hero .hero-actions{display:flex;justify-content:center;gap:1rem;margin-top:2.5rem}.home-page .hero .hero-actions a:first-child{display:inline-block;padding:.5rem 1.5rem;border:none;border-radius:12px;font-family:Manrope,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.home-page .hero .hero-actions a:first-child:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.home-page .hero .hero-actions a:first-child:disabled{opacity:.6;cursor:not-allowed;transform:none}.home-page .hero .hero-actions a:first-child{background:#9fca45;color:#fff}.home-page .hero .hero-actions a:last-child{display:inline-block;padding:.5rem 1.5rem;border:none;border-radius:12px;font-family:Manrope,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.home-page .hero .hero-actions a:last-child:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.home-page .hero .hero-actions a:last-child:disabled{opacity:.6;cursor:not-allowed;transform:none}.home-page .hero .hero-actions a:last-child{background:#e8f1dd;color:#3f5f3a}.home-page .features{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 12px #00000014;text-align:left;max-width:600px;margin:0 auto}.login-page,.register-page{max-width:400px;margin:0 auto}.login-page h1,.register-page h1{text-align:center;margin-bottom:2.5rem}.login-page form,.register-page form{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 12px #00000014}.login-page>p,.register-page>p{text-align:center;margin-top:1.5rem}.dashboard-page{max-width:1200px;margin:0 auto}.dashboard-page .dashboard-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:600px){.dashboard-page .dashboard-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:960px){.dashboard-page .dashboard-grid{grid-template-columns:repeat(3,1fr)}}.dashboard-page .dashboard-banner{text-align:center;padding:2.5rem 0 4rem}.dashboard-page .dashboard-banner h1{font-size:2.5rem;margin-bottom:.5rem}.dashboard-page .dashboard-banner p{color:#3f5f3a;font-size:1.25rem;margin:0}.dashboard-page .dashboard-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 12px #00000014;display:flex;flex-direction:column;min-height:280px}.dashboard-page .dashboard-card .card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;color:#3f5f3a}.dashboard-page .dashboard-card .card-header svg{flex-shrink:0}.dashboard-page .dashboard-card .card-header h2{font-size:1.25rem;margin:0}.dashboard-page .dashboard-card .card-content{flex:1;display:flex;flex-wrap:wrap;align-content:flex-start;gap:1rem}.dashboard-page .dashboard-card .card-empty{display:flex;align-items:center;justify-content:center;color:#3f5f3a;text-align:center}.dashboard-page .dashboard-card .card-empty p{margin:0}.dashboard-page .dashboard-card .stat{display:flex;flex-direction:column;align-items:center;padding:1rem;background:#e8f1dd;border-radius:12px;min-width:80px}.dashboard-page .dashboard-card .stat .stat-value{font-family:Forum,serif;font-size:1.75rem;color:#9fca45;font-weight:600}.dashboard-page .dashboard-card .stat .stat-label{font-size:.875rem;color:#3f5f3a}.dashboard-page .dashboard-card .card-detail{flex-basis:100%;font-size:.875rem;color:#2c2c2c;margin:0}.dashboard-page .dashboard-card .card-warning{flex-basis:100%;font-size:.875rem;color:#f4b52a;font-weight:500;margin:0}.dashboard-page .dashboard-card .card-link{margin-top:auto;padding-top:1rem;border-top:1px solid #e8f1dd;font-weight:600;color:#9fca45}.dashboard-page .dashboard-card .card-link:hover{color:#3f5f3a}.profile-page{max-width:900px;margin:0 auto}.profile-page .profile-groups{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:2.5rem}.profile-page .profile-group{flex:1;min-width:250px;background:transparent;border:2px solid #e8f1dd;border-radius:16px;padding:1.5rem}.profile-page .profile-group legend{font-family:Forum,serif;font-size:1.25rem;color:#3f5f3a;font-weight:600;padding:0 .5rem}.profile-page .profile-group>div{margin-bottom:1rem}.profile-page .profile-group>div:last-child{margin-bottom:0}.profile-page .field-row{display:flex;align-items:center;gap:1rem}.profile-page .field-row label{flex:1;margin-bottom:0}.profile-page .field-row .field-error{flex-basis:100%}.profile-page .field-row .input-small{width:80px;text-align:center}.profile-page .profile-goals{flex-basis:100%}.profile-page .goals-grid{display:flex;flex-wrap:wrap;gap:.5rem}.profile-page .goal-item{display:flex;align-items:center;gap:.5rem;background:#fff;padding:.5rem 1rem;border-radius:12px;cursor:pointer;transition:background .2s ease,box-shadow .2s ease;position:relative}.profile-page .goal-item:hover{background:#fff;box-shadow:0 4px 12px #00000014}.profile-page .goal-item input[type=checkbox]{accent-color:#9fca45}.profile-page .goal-item span{font-weight:500}.profile-page .goal-item:hover:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#3f5f3a;color:#fff;padding:.5rem 1rem;border-radius:12px;font-size:.875rem;font-weight:400;white-space:nowrap;z-index:10;margin-bottom:.5rem}.profile-page button[type=submit]{display:block;margin:0 auto}.recommendations-page{max-width:900px;margin:0 auto}.recommendations-page .recommendations-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}.recommendations-page .recommendations-header h1{margin:0}.recommendations-page .health-notice{font-size:.875rem;color:#3f5f3a;margin-bottom:2.5rem}.recommendations-page .generate-section{text-align:center;margin-bottom:2.5rem}.recommendations-page .btn-generate{display:inline-block;padding:.5rem 1.5rem;border:none;border-radius:12px;font-family:Manrope,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.recommendations-page .btn-generate:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.recommendations-page .btn-generate:disabled{opacity:.6;cursor:not-allowed;transform:none}.recommendations-page .btn-generate{background:#9fca45;color:#fff}.recommendations-page .recommendation-content{display:flex;flex-wrap:wrap;gap:1.5rem}.recommendations-page .recommendation-group{flex:1;min-width:280px;background:transparent;border:2px solid #e8f1dd;border-radius:16px;padding:1.5rem}.recommendations-page .recommendation-group legend{font-family:Forum,serif;font-size:1.25rem;color:#3f5f3a;font-weight:600;padding:0 .5rem}.recommendations-page .recommendation-group--full{flex-basis:100%}.recommendations-page .group-description{font-size:.875rem;color:#3f5f3a;margin-bottom:1.5rem;font-style:italic}.recommendations-page .session-total{text-align:center;margin-bottom:1.5rem}.recommendations-page .session-total .total-value{display:block;font-family:Forum,serif;font-size:2.5rem;color:#9fca45}.recommendations-page .session-total .total-label{font-size:.875rem;color:#3f5f3a}.recommendations-page .session-details{display:flex;flex-direction:column;gap:.5rem}.recommendations-page .session-item{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #e8f1dd}.recommendations-page .session-item:last-child{border-bottom:none}.recommendations-page .session-item .item-label{color:#2c2c2c}.recommendations-page .session-item .item-value{font-weight:600;color:#3f5f3a}.recommendations-page .recommendation-date{margin-top:1.5rem;font-size:.875rem;color:#3f5f3a;text-align:center}.recommendations-page .styles-list{display:flex;flex-direction:column;gap:1rem}.recommendations-page .style-item h4{font-family:Forum,serif;font-size:1rem;color:#3f5f3a;margin-bottom:.5rem}.recommendations-page .style-item p{padding-left:1rem;font-size:.875rem;color:#2c2c2c;margin:0}.recommendations-page .recommendation-history{margin-top:2.5rem;padding:1.5rem;background:#e8f1dd;border-radius:16px}.recommendations-page .recommendation-history h2{margin-top:0}.recommendations-page .recommendation-history ul{list-style:none;padding:0}.recommendations-page .recommendation-history li{padding:.5rem 0;border-bottom:1px solid rgba(0,0,0,.1)}.recommendations-page .recommendation-history li:last-child{border-bottom:none}.practice-log-page{max-width:900px;margin:0 auto}.practice-log-page .practice-log-content{display:flex;flex-wrap:wrap;gap:1.5rem}.practice-log-page .practice-log-group{flex:1;min-width:280px;background:transparent;border:2px solid #e8f1dd;border-radius:16px;padding:1.5rem}.practice-log-page .practice-log-group legend{font-family:Forum,serif;font-size:1.25rem;color:#3f5f3a;font-weight:600;padding:0 .5rem}.practice-log-page .practice-log-group form{display:flex;flex-direction:column;gap:1rem}.practice-log-page .practice-log-group form button[type=submit]{margin-top:.5rem}.practice-log-page .field-row{display:flex;align-items:center;gap:1rem}.practice-log-page .field-row label{flex:1;margin-bottom:0}.practice-log-page .field-row .field-error{flex-basis:100%}.practice-log-page .field-row .input-small{width:120px;text-align:center}.practice-log-page .empty-message{color:#3f5f3a;text-align:center;padding:1.5rem}.practice-log-page .practice-log-list{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto}.practice-log-page .log-item{padding:.5rem 1rem;border-bottom:1px solid #e8f1dd}.practice-log-page .log-item:last-child{border-bottom:none}.practice-log-page .log-header{display:flex;align-items:center;gap:1rem}.practice-log-page .log-date{font-weight:600;color:#2c2c2c}.practice-log-page .log-minutes{font-weight:600;color:#3f5f3a}.practice-log-page .btn-delete{margin-left:auto;background:none;border:none;color:#d64545;cursor:pointer;font-size:.875rem;padding:.5rem}.practice-log-page .btn-delete:hover{text-decoration:underline}.practice-log-page .log-notes{margin:.5rem 0 0;padding-left:1rem;font-size:.875rem;color:#3f5f3a;font-style:italic}
