@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=DM+Sans:wght@300;400;500&display=swap";:root{--forest:#1a3a2a;--moss:#2d5a3d;--leaf:#4a8c5c;--sage:#7ab893;--mist:#b8d8c4;--cream:#f4f0e6;--earth:#8b6f47;--gold:#c9a84c;--bark:#3d2b1a;--white:#fdfcf8;--danger:#c0392b;--radius:1rem;--shadow:0 .25rem 2rem #1a3a2a1f;--shadow-deep:0 .5rem 3rem #1a3a2a33}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--cream);color:var(--forest);background-image:radial-gradient(at 10% 20%,#4a8c5c14 0%,#0000 50%),radial-gradient(at 90% 80%,#2d5a3d0f 0%,#0000 50%);min-height:100vh;font-family:DM Sans,sans-serif}.auth-container{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.auth-container h2{color:var(--forest);margin-bottom:.4rem;font-family:Playfair Display,serif;font-size:2.2rem}.auth-subtitle{color:var(--leaf);margin-bottom:2rem;font-size:.95rem;font-weight:300}.auth-form{flex-direction:column;gap:1.2rem;width:100%;max-width:22rem;display:flex}.field{flex-direction:column;gap:.4rem;display:flex}.field label{color:var(--moss);letter-spacing:.05em;text-transform:uppercase;font-size:.82rem;font-weight:500}.field input{border:1.5px solid var(--mist);border-radius:var(--radius);background:var(--white);color:var(--forest);outline:none;padding:.75rem 1rem;font-family:DM Sans,sans-serif;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.field input:focus{border-color:var(--leaf);box-shadow:0 0 0 3px #4a8c5c26}.auth-error{color:var(--danger);background:#c0392b14;border-radius:.5rem;padding:.6rem 1rem;font-size:.85rem}.auth-switch{color:var(--moss);margin-top:1.2rem;font-size:.9rem}.auth-switch span{color:var(--leaf);cursor:pointer;text-underline-offset:3px;font-weight:500;text-decoration:underline}button{cursor:pointer;border-radius:var(--radius);border:none;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:500;transition:background .2s,transform .1s,box-shadow .2s}button:active{transform:scale(.98)}.auth-form button,.audit-form button{background:var(--moss);color:var(--white);letter-spacing:.03em;width:100%;margin-top:.4rem;padding:.85rem 1.5rem;box-shadow:0 .25rem 1rem #2d5a3d4d}.auth-form button:hover,.audit-form button:hover{background:var(--forest);box-shadow:0 .4rem 1.5rem #2d5a3d66}.auth-form button:disabled,.audit-form button:disabled{opacity:.55;cursor:not-allowed}.signout-btn{border:1.5px solid var(--mist);color:var(--moss);background:0 0;padding:.5rem 1rem;font-size:.85rem}.signout-btn:hover{background:var(--mist);color:var(--forest)}.zone-reset-btn{background:var(--cream);border:1.5px solid var(--sage);color:var(--moss);padding:.45rem .9rem;font-size:.82rem}.zone-reset-btn:hover{background:var(--sage);color:var(--white)}.app-loading{min-height:100vh;color:var(--moss);justify-content:center;align-items:center;font-family:Playfair Display,serif;font-size:1.2rem;animation:1.8s ease-in-out infinite pulse;display:flex}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.dashboard{flex-direction:column;min-height:100vh;display:flex}.dashboard-header{background:var(--forest);color:var(--white);box-shadow:var(--shadow-deep);z-index:10;justify-content:space-between;align-items:center;padding:1.2rem 2rem;display:flex;position:sticky;top:0}.dashboard-header h1{letter-spacing:.02em;font-family:Playfair Display,serif;font-size:1.5rem}.user-email{color:var(--sage);margin-top:.15rem;font-size:.78rem;font-weight:300}.header-right{align-items:center;gap:1.2rem;display:flex}.dashboard-body{flex-direction:column;flex:1;gap:1.5rem;width:100%;max-width:48rem;margin:0 auto;padding:2rem;display:flex}.zone-bar{background:var(--white);border:1.5px solid var(--mist);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:1rem;padding:.9rem 1.2rem;display:flex}.zone-status{color:var(--moss);flex:1;font-size:.9rem;font-weight:500}.zone-loading{color:var(--sage);font-size:.8rem;font-style:italic;animation:1.4s ease-in-out infinite pulse}.eco-score-card{text-align:center;padding:.4rem 1rem}.eco-label{text-transform:uppercase;letter-spacing:.1em;color:var(--sage);font-size:.7rem;font-weight:500}.eco-number{font-family:Playfair Display,serif;font-size:1.8rem;font-weight:700;line-height:1}.eco-level{letter-spacing:.05em;text-transform:uppercase;font-size:.75rem;font-weight:500}.audit-panel{flex-direction:column;gap:1.5rem;display:flex}.audit-form{background:var(--white);border:1.5px solid var(--mist);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.8rem}.audit-form h3{color:var(--forest);margin-bottom:.3rem;font-family:Playfair Display,serif;font-size:1.3rem}.audit-hint{color:var(--sage);margin-bottom:1rem;font-size:.82rem;font-style:italic}.audit-form textarea{border:1.5px solid var(--mist);background:var(--cream);width:100%;color:var(--forest);resize:vertical;border-radius:.75rem;outline:none;margin-bottom:.8rem;padding:.85rem 1rem;font-family:DM Sans,sans-serif;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.audit-form textarea:focus{border-color:var(--leaf);box-shadow:0 0 0 3px #4a8c5c26}.audit-step{color:var(--leaf);margin-bottom:.5rem;font-size:.85rem;animation:1.4s ease-in-out infinite pulse}.audit-error{color:var(--danger);background:#c0392b12;border-radius:.5rem;margin-bottom:.5rem;padding:.6rem 1rem;font-size:.85rem}.audit-result{background:var(--white);border:1.5px solid var(--mist);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:1.2rem;padding:1.8rem;animation:.4s ease-out slideIn;display:flex}@keyframes slideIn{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}.result-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.score-delta{color:var(--gold);font-family:Playfair Display,serif;font-size:1.1rem;font-weight:700}.result-section{border-left:3px solid var(--mist);padding-left:1rem}.result-label{text-transform:uppercase;letter-spacing:.08em;color:var(--sage);margin-bottom:.3rem;font-size:.75rem;font-weight:500}.result-section p:not(.result-label){color:var(--forest);font-size:.93rem;line-height:1.6}.sources-list{flex-direction:column;gap:.3rem;list-style:none;display:flex}.sources-list a{color:var(--leaf);word-break:break-all;font-size:.78rem;text-decoration:none}.sources-list a:hover{text-underline-offset:3px;text-decoration:underline}.result-score{background:var(--cream);color:var(--moss);text-align:center;border-radius:.75rem;padding:.8rem 1.2rem;font-size:.9rem}.result-score strong{color:var(--forest);font-family:Playfair Display,serif;font-size:1.2rem}.category-badge{letter-spacing:.02em;border-radius:2rem;align-items:center;gap:.35rem;padding:.4rem .9rem;font-size:.85rem;font-weight:500;display:inline-flex}.subcategory{opacity:.8;font-weight:300}.earth-player{background:var(--white);border:1.5px solid var(--mist);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem 1.5rem}.music-toggle{background:var(--cream);border:1.5px solid var(--sage);color:var(--moss);width:100%;padding:.6rem 1.2rem;font-size:.88rem}.music-toggle:hover{background:var(--sage);color:var(--white)}@media (width<=600px){.dashboard-header{flex-wrap:wrap;gap:.8rem;padding:1rem}.dashboard-body{padding:1rem}.audit-form,.audit-result{padding:1.2rem}}.audit-history{background:var(--white);border:1.5px solid var(--mist);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.8rem}.history-title{color:var(--forest);margin-bottom:1rem;font-family:Playfair Display,serif;font-size:1.2rem}.history-list{flex-direction:column;gap:.6rem;display:flex}.history-item{border:1.5px solid var(--mist);cursor:pointer;border-radius:.75rem;padding:.9rem 1.1rem;transition:border-color .2s,box-shadow .2s}.history-item:hover{border-color:var(--sage);box-shadow:var(--shadow)}.history-item.expanded{border-color:var(--leaf)}.history-row{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.history-score{color:var(--gold);margin-left:auto;font-size:.85rem;font-weight:600}.history-date{color:var(--sage);font-size:.75rem}.history-detail{border-top:1px solid var(--mist);color:var(--forest);flex-direction:column;gap:.3rem;margin-top:1rem;padding-top:1rem;font-size:.88rem;line-height:1.6;display:flex}.history-empty{color:var(--sage);text-align:center;padding:1rem;font-size:.88rem;font-style:italic}
