:root{--bg-app:#090b0a;--bg-card:#121814;--bg-card-hover:#1a231c;--text-primary:#fff;--text-secondary:#8c9e91;--accent-primary:#1deb69;--accent-hover:#16c055;--border-subtle:#1e2922;--border-focus:#2c3e32;--glow-0:#e2e8f0;--glow-1:#ff4b4b;--glow-2:#ff9d00;--glow-3:#fd0;--glow-4:#0f4;--glow-5:#00e5ff;--glow-6:#04f;--glow-7:#b300ff;--glow-8:#ff00ea}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;width:100%;max-width:100vw;min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;overflow-x:hidden}#root{flex-direction:column;width:100%;max-width:100vw;min-height:100vh;display:flex;overflow-x:hidden}.glass-panel{-webkit-backdrop-filter:blur(12px);background:#12181499;border:1px solid #ffffff0d;border-radius:16px}.btn{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;transition:all .2s ease-in-out;display:inline-flex}.btn-primary{background-color:var(--accent-primary);color:#000}.btn-primary:hover{background-color:var(--accent-hover);box-shadow:0 0 15px #1deb6966}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-subtle);background-color:#0000}.btn-secondary:hover{background-color:var(--bg-card-hover);border-color:var(--text-secondary)}.app-header{border-bottom:1px solid var(--border-subtle);background:var(--bg-card);border-radius:0;flex-direction:column;gap:1rem;margin:0;padding:1rem;display:flex}.brand{justify-content:space-between;align-items:center;width:100%;display:flex}.brand-title-wrap{align-items:center;gap:.75rem;display:flex}.brand-icon{background-color:var(--accent-primary);color:#000;border-radius:12px;justify-content:center;align-items:center;padding:.5rem;display:flex}.brand h1{letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.tips-container{justify-content:center;width:100%;margin-top:.5rem;display:flex}.tip-card{background-color:var(--bg-card-hover);border:1px solid var(--border-subtle);border-radius:99px;align-items:center;gap:.75rem;width:100%;padding:.5rem 1rem;display:flex;box-shadow:0 4px 10px #0003}.tip-badge{color:var(--accent-primary);font-size:.75rem;font-weight:600}.tip-text{color:var(--text-secondary);white-space:normal;font-size:.75rem;line-height:1.4}.main-nav{-ms-overflow-style:none;scrollbar-width:none;justify-content:space-between;align-items:center;gap:.5rem;width:100%;padding-bottom:.25rem;display:flex;overflow-x:auto}.main-nav::-webkit-scrollbar{display:none}.nav-link{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:.4rem;padding:.25rem .5rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s;display:flex}.nav-link:hover{color:var(--text-primary)}.nav-link-ai{color:var(--accent-primary)}.nav-link-ai:hover{text-shadow:0 0 8px #1deb6966}.main-content{flex-direction:column;flex:1;padding:1.5rem .5rem 4rem;display:flex}.dashboard-container{width:100%;max-width:1200px;margin:0 auto;padding:.5rem}.page-title{margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--text-secondary);font-size:.875rem}@media (width>=768px){.app-header{background:#12181499;border:1px solid #ffffff0d;border-radius:16px;flex-direction:row;margin:1rem;padding:1rem 1.5rem}.brand{justify-content:flex-start;width:auto}.tips-container{max-width:500px;margin:0 auto}.tip-text,.tip-badge{font-size:.875rem}.main-nav{justify-content:flex-end;gap:1.5rem;width:auto;padding-bottom:0;overflow-x:visible}.nav-link{padding:.5rem;font-size:1rem}.main-content{padding:0 1rem 2rem}.dashboard-container{padding:2rem}.page-title{font-size:2rem}.page-subtitle{font-size:1.125rem}}.auth-container{justify-content:center;align-items:center;min-height:80vh;padding:1rem;display:flex}.auth-card{width:100%;max-width:400px;padding:2rem;animation:.5s ease-out fadeIn}.auth-title{text-align:center;margin-bottom:.5rem;font-size:1.75rem;font-weight:700}.auth-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:2rem;font-size:.875rem}.auth-form{flex-direction:column;gap:1.25rem;display:flex}.auth-form label{text-align:left;width:100%;color:var(--text-secondary);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.auth-input-wrap{align-items:center;display:flex;position:relative}.auth-input-wrap svg{color:var(--text-secondary);pointer-events:none;position:absolute;left:1rem}.auth-input-wrap input{border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);background:#0006;border-radius:12px;outline:none;padding:.875rem 1rem .875rem 2.8rem;transition:all .2s;font-size:16px!important}.auth-input-wrap input:focus{border-color:var(--accent-primary)}input,select,textarea{font-size:16px!important}.auth-switch{text-align:center;color:var(--text-secondary);margin-top:1.5rem;font-size:.875rem}.auth-switch-link{color:var(--accent-primary);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-weight:600}.auth-error{color:#ef4444;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;padding:.75rem;font-size:.875rem}.settings-section{flex-direction:column;gap:1.5rem;margin-top:2rem;display:flex}.settings-group{max-width:600px;padding:1.5rem}.settings-group h3{align-items:center;gap:.5rem;margin-bottom:1.25rem;font-size:1.125rem;display:flex}.profile-header{align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.profile-avatar{background:var(--accent-primary);color:#000;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:1.5rem;font-weight:700;display:flex}.profile-info h2{font-size:1.25rem;font-weight:600}.profile-info p{color:var(--text-secondary);font-size:.875rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.env-card{flex-direction:column;padding:1.5rem;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.env-card:hover{border-color:var(--border-focus);transform:translateY(-4px);box-shadow:0 10px 25px #0006}.env-card-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.env-icon{background:var(--bg-card-hover);color:var(--accent-primary);border-radius:8px;padding:.5rem;display:flex}.env-type{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:500}.env-title{margin-bottom:.25rem;font-size:1.25rem;font-weight:600}.env-size{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.875rem}.plant-counter{align-items:baseline;gap:.5rem;margin-bottom:1.5rem;display:flex}.counter-number{color:var(--accent-primary);font-size:2.5rem;font-weight:700;line-height:1}.counter-label{color:var(--text-secondary);font-weight:500}.env-footer{border-top:1px solid var(--border-subtle);margin-top:auto;padding-top:1rem}.env-action{color:var(--text-primary);justify-content:space-between;align-items:center;font-weight:500;text-decoration:none;transition:color .2s;display:flex}.env-action:hover{color:var(--accent-primary)}.flex-header{flex-direction:column;align-items:flex-start;gap:1rem;width:100%;margin-bottom:1.5rem;display:flex}.flex-header>button,.flex-header .btn-primary{justify-content:center;width:100%}.environments-grid{flex-direction:column;gap:1rem;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;background:#000c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;flex-direction:column;gap:1rem;width:100%;max-width:440px;max-height:90vh;padding:1.5rem;animation:.3s cubic-bezier(.16,1,.3,1) forwards popIn;display:flex;overflow-y:auto}.modal-title{color:var(--text-primary);margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.modal-form-group{flex-direction:column;gap:.5rem;display:flex}.modal-form-group label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.modal-input,.modal-select{background:var(--bg-card-hover);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:8px;outline:none;width:100%;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s}.modal-input:focus,.modal-select:focus{border-color:var(--accent-primary)}.modal-actions{justify-content:space-between;gap:1rem;margin-top:1.5rem;display:flex}.modal-actions .btn{flex:1}@media (width>=640px){.flex-header{flex-direction:row;justify-content:space-between;align-items:flex-end;margin-bottom:2rem}.flex-header>button,.flex-header .btn-primary{width:auto}.environments-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.modal-content{padding:2rem}.modal-title{font-size:1.5rem}.modal-actions{justify-content:flex-end}.modal-actions .btn{flex:none;width:auto}}.plant-card{border:1px solid #ffffff0d;flex-direction:column;padding:1.25rem;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.plant-card:before{content:"";width:4px;position:absolute;top:0;bottom:0;left:0}.plant-card:hover{transform:translateY(-4px)}.glow-0:before{background-color:var(--glow-0)}.glow-0:hover{border-color:var(--glow-0);box-shadow:0 0 20px #e2e8f04d}.glow-1:before{background-color:var(--glow-1)}.glow-1:hover{border-color:var(--glow-1);box-shadow:0 0 20px #ff4b4b4d}.glow-2:before{background-color:var(--glow-2)}.glow-2:hover{border-color:var(--glow-2);box-shadow:0 0 20px #ff9d004d}.glow-3:before{background-color:var(--glow-3)}.glow-3:hover{border-color:var(--glow-3);box-shadow:0 0 20px #ffdd004d}.glow-4:before{background-color:var(--glow-4)}.glow-4:hover{border-color:var(--glow-4);box-shadow:0 0 20px #00ff444d}.glow-5:before{background-color:var(--glow-5)}.glow-5:hover{border-color:var(--glow-5);box-shadow:0 0 20px #00e5ff4d}.glow-6:before{background-color:var(--glow-6)}.glow-6:hover{border-color:var(--glow-6);box-shadow:0 0 20px #0044ff4d}.glow-7:before{background-color:var(--glow-7)}.glow-7:hover{border-color:var(--glow-7);box-shadow:0 0 20px #b300ff4d}.glow-8:before{background-color:var(--glow-8)}.glow-8:hover{border-color:var(--glow-8);box-shadow:0 0 20px #ff00ea4d}.plant-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-left:.5rem;display:flex}.id-hash{color:var(--text-secondary);margin-bottom:.25rem;font-family:monospace;font-size:.75rem;display:block}.strain-name{color:var(--text-primary);font-size:1.125rem;font-weight:600}.btn-ai-tip{color:var(--accent-primary);cursor:pointer;background:#1deb691a;border:1px solid #1deb6933;border-radius:8px;justify-content:center;align-items:center;padding:.4rem;transition:all .2s;display:flex}.btn-ai-tip:hover{background:var(--accent-primary);color:#000;transform:scale(1.05);box-shadow:0 0 12px #1deb6980}.plant-details{flex-direction:column;gap:.5rem;margin-bottom:1.5rem;padding-left:.5rem;display:flex}.detail-item{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.stage-select{background:var(--bg-card-hover);color:var(--text-primary);border:1px solid var(--border-subtle);cursor:pointer;appearance:none;border-radius:6px;padding:.25rem .5rem;font-size:.875rem;transition:border-color .2s}.stage-select:hover,.stage-select:focus{border-color:var(--accent-primary);outline:none}.stage-select option{background:var(--bg-card)}.plant-footer{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-top:auto;padding-top:1rem;padding-left:.5rem;display:flex}.env-badge{background:var(--bg-card-hover);color:var(--text-secondary);border-radius:99px;padding:.25rem .6rem;font-size:.75rem}.actions{gap:.5rem;display:flex}.btn-action{color:var(--text-primary);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;padding:.4rem .5rem;transition:all .2s;display:flex;box-shadow:0 2px 4px #0003}.btn-action:hover{color:var(--accent-primary);background:#1deb6926;border-color:#1deb6966;transform:translateY(-2px);box-shadow:0 4px 8px #1deb6933}.plants-grid{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}@media (width>=640px){.header-actions{gap:1rem;width:auto;margin-top:0}.header-actions .btn{flex:none;padding:.5rem 1rem}.plants-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.filter-panel{flex-direction:row;align-items:center}}.timeline-container{flex-direction:column;padding:1rem 0;display:flex}.timeline-item{gap:1.5rem;min-height:100px;margin-bottom:.5rem;display:flex}.timeline-marker{flex-direction:column;align-items:center;display:flex}.timeline-icon{background-color:var(--bg-card-hover);width:36px;height:36px;color:var(--text-primary);border:2px solid var(--border-focus);z-index:10;border-radius:50%;justify-content:center;align-items:center;display:flex}.type-rega{color:var(--glow-5);background:#00e5ff1a;border-color:#00e5ff4d}.type-poda{color:var(--glow-2);background:#ff9d001a;border-color:#ff9d004d}.type-adubacao{color:var(--glow-4);background:#00ff441a;border-color:#00ff444d}.type-pesticida{color:var(--glow-1);background:#ff4b4b1a;border-color:#ff4b4b4d}.type-observacao{color:var(--glow-0);background:#e2e8f01a;border-color:#e2e8f04d}.type-treinamento{color:var(--glow-7);background:#b300ff1a;border-color:#b300ff4d}.type-transplante{color:var(--glow-3);background:#ffdd001a;border-color:#ffdd004d}.timeline-line{background-color:var(--border-subtle);flex:1;width:2px;margin-top:4px;margin-bottom:4px}.timeline-content{flex:1;margin-bottom:1.5rem;padding:1.25rem;position:relative}.timeline-header{justify-content:space-between;margin-bottom:.5rem;display:flex}.action-type{font-size:1.125rem;font-weight:600}.action-date{color:var(--text-secondary);font-size:.875rem}.action-target{margin-bottom:1rem;display:inline-block}.text-secondary{color:var(--text-secondary)}.ml-2{margin-left:.5rem}.action-observation{color:var(--text-primary);margin-bottom:1rem;line-height:1.6}.action-product{color:var(--text-secondary);background-color:#ffffff0d;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;display:inline-flex}.filter-panel{background:#121814e6;border-radius:12px;flex-direction:column;gap:1rem;margin-top:1rem;padding:1rem;display:flex}.filter-group{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;align-items:center;padding:0 1rem;display:flex}.filter-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:.75rem .5rem}.filter-select{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:8px;outline:none;padding:.75rem 1rem;font-size:.875rem}.header-actions{gap:.5rem;width:100%;margin-top:1rem;display:flex}.header-actions .btn{flex:1;padding:.5rem .25rem;font-size:.875rem}@media (width>=640px){.header-actions{gap:1rem;width:auto;margin-top:0}.header-actions .btn{flex:none;padding:.5rem 1rem}.filter-panel{flex-direction:row;align-items:center}}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:1.5rem;display:grid}.calendar-day-header{text-align:center;color:var(--text-secondary);text-transform:uppercase;padding:.5rem 0;font-size:.75rem;font-weight:600}.calendar-cell{border:1px solid var(--border-subtle);cursor:pointer;background:#ffffff05;border-radius:8px;flex-direction:column;align-items:center;height:56px;padding:.25rem .1rem;transition:all .2s;display:flex;position:relative;overflow:hidden}.calendar-cell:active{transform:scale(.95)}.calendar-cell:hover{border-color:#fff3}.calendar-cell.selected{border-color:var(--accent-primary);background:#1deb691a}.calendar-cell.disabled{opacity:.2;pointer-events:none}.calendar-cell.today{border:1px solid var(--accent-primary);box-shadow:inset 0 0 10px #1deb6933}.day-num{color:var(--text-primary);margin-top:.1rem;font-size:.75rem;font-weight:600}.day-dots{flex-wrap:wrap;place-content:flex-end center;gap:2px;width:100%;height:100%;padding-bottom:.15rem;display:flex}.dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.legend-container{border:1px solid var(--border-subtle);background:#0006;border-radius:12px;flex-wrap:wrap;justify-content:center;gap:.5rem;padding:.75rem;display:flex}.legend-item{color:var(--text-secondary);align-items:center;gap:.25rem;font-size:.65rem;font-weight:500;display:flex}.legend-color{border-radius:50%;width:10px;height:10px}.task-item{border:1px solid var(--border-subtle);background:#ffffff08;border-radius:12px;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;padding:1rem;transition:all .2s;display:flex}.task-item:hover{background:#ffffff0f}.task-item.completed{opacity:.5;text-decoration:line-through}.task-color-bar{border-radius:4px;width:4px;height:100%;min-height:40px}.task-content{flex:1}.task-title{color:var(--text-primary);margin-bottom:.2rem;font-size:1rem;font-weight:600}.task-meta{color:var(--text-secondary);align-items:center;gap:.4rem;font-size:.75rem;display:flex}.task-desc{color:var(--text-secondary);margin-top:.5rem;font-size:.875rem}.ai-header{margin-bottom:1.5rem}.chat-container{flex-direction:column;flex:1;min-height:500px;max-height:70vh;padding:0;display:flex;overflow:hidden;box-shadow:0 10px 30px #00000080}.chat-messages{flex-direction:column;flex:1;gap:1.5rem;padding:1.5rem;display:flex;overflow-y:auto}.chat-bubble{align-items:flex-start;gap:1rem;max-width:80%;animation:.3s forwards popIn;display:flex}@keyframes popIn{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.bubble-user{flex-direction:row-reverse;align-self:flex-end}.bubble-user .bubble-text{background-color:var(--accent-primary);color:#000;border-radius:16px 16px 4px;font-weight:500}.bubble-ai .bubble-text{background-color:var(--bg-card-hover);border:1px solid var(--border-subtle);border-radius:16px 16px 16px 4px}.bubble-icon{color:var(--accent-primary);min-width:20px;margin-top:.25rem}.bubble-text{padding:1rem 1.25rem;line-height:1.5}.chat-input-area{border-top:1px solid var(--border-subtle);background-color:#0a0e0b66;gap:.75rem;padding:1rem;display:flex}.chat-input{background-color:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:12px;flex:1;padding:.75rem 1.25rem;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}.chat-input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 2px #1deb6933}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1.2s linear infinite spin}
