:root{--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:20px;--text-xl:28px;--text-display:44px;--font-display:"Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--background:#f5f9f4;--card:#fff;--foreground:#16261f;--primary:#1e7a5c;--forest:#14523c;--forest-deep:#0e3428;--mint:#63cfa4;--mint-soft:#d9f1e4;--secondary:#e9f3ec;--muted:#eef4ef;--muted-foreground:#5d6f66;--border:#dce7df;--sand:#f5f1e3;--red-bg:#fbecec;--red-text:#a33429;--mood-1:#b25e48;--mood-2:#c79051;--mood-3:#c6b361;--mood-4:#67ad82;--mood-5:#2a8a67;--radius-card:24px;--radius-ctl:16px;--shadow-soft:0 1px 2px #1428200d, 0 12px 28px -18px #14282059;--shadow-lift:0 2px 4px #1428200f, 0 24px 48px -24px #14282073;--gradient-brand:linear-gradient(150deg, var(--forest-deep), var(--primary) 55%, #35b183);--green-dark:#1e7a5c;--green-mid:#2a8a67;--green-light:#d9f1e4;--green-pale:#e9f3ec;--sage:#67ad82;--warm-white:#fff;--warm-gray:#eef4ef;--border-mid:#c4d4c9;--text-primary:#16261f;--text-secondary:#41544b;--text-muted:#5d6f66}*{box-sizing:border-box;margin:0;padding:0}button,a,[role=button],.card,.resource-card,.tool-menu-card,.prompt-card,.pref-row,.ob-opt,.mood-btn,.cat-btn,.nav-btn,.mode-btn,.back-btn{touch-action:manipulation}html,body,#root{width:100%;max-width:100vw;overflow-x:hidden}body{padding-top:env(safe-area-inset-top);padding-right:var(--space-3);padding-bottom:env(safe-area-inset-bottom);padding-left:var(--space-3);font-family:var(--font-body);background:var(--background);min-height:100vh;color:var(--foreground);background-image:radial-gradient(120% 90% at 50% -10%,#63cfa447,#0000 70%);background-repeat:no-repeat}#root{flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:calc(100vh - 48px);display:flex}@media (width<=480px){body{padding:0}#root{align-items:stretch;min-height:100vh}}.phone{background:var(--background);width:100%;max-width:420px;height:min(860px,100vh - 48px);min-height:640px;box-shadow:var(--shadow-lift);border-radius:28px;flex-direction:column;display:flex;position:relative;overflow:hidden}@media (width<=480px){.phone{height:100dvh;min-height:100dvh;box-shadow:none;border-radius:0;max-width:100%}}.back-btn{color:var(--muted-foreground);font-size:var(--text-sm);cursor:pointer;margin-bottom:var(--space-3);text-align:left;background:0 0;border:none;padding:0;font-family:inherit;display:block}.mini-label{font-size:var(--text-xs);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--space-2);font-weight:600}.info-note{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-3);line-height:1.6}.note-box{background:var(--card);border-radius:var(--radius-ctl);padding:var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);box-shadow:var(--shadow-soft);line-height:1.6}.note-box-title{font-family:var(--font-display);font-size:var(--text-sm);color:var(--foreground);margin-bottom:var(--space-1);font-weight:700}.crisis-box{background:var(--red-bg);border-radius:var(--radius-ctl);padding:var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-xs);color:var(--red-text);line-height:1.6}.crisis-box-title{font-size:var(--text-sm);color:var(--red-text);margin-bottom:var(--space-1);font-weight:700}.error-msg{font-size:var(--text-xs);color:var(--red-text);margin-bottom:var(--space-2)}.bullet-row{gap:var(--space-2);margin-bottom:var(--space-2);align-items:flex-start;display:flex}.bullet-dot{background:var(--primary);width:6px;height:6px;margin-top:var(--space-2);border-radius:50%;flex-shrink:0}.bullet-text{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.7}.center-screen{text-align:center;padding:var(--space-5) var(--space-3)}.num-circle{background:var(--mint-soft);width:24px;height:24px;color:var(--primary);font-size:var(--text-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.overlay-panel{background:var(--background);z-index:10;padding:var(--space-4) var(--space-3);position:absolute;inset:0;overflow-y:auto}.modal-overlay{z-index:999;padding:var(--space-4);background:#0e342880;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--card);border-radius:var(--radius-card);padding:var(--space-4);width:100%;max-width:380px;box-shadow:var(--shadow-lift)}.progress-track{background:var(--secondary);border-radius:3px;height:6px;overflow:hidden}.progress-fill{background:var(--primary);border-radius:3px;height:6px;transition:width .4s}.auth-screen{padding:var(--space-5) var(--space-4);background:var(--background);flex-direction:column;min-height:100%;display:flex;overflow-y:auto}.auth-logo{font-family:var(--font-display);font-size:var(--text-xl);color:var(--primary);margin-bottom:var(--space-1);letter-spacing:-.01em;font-weight:800}.auth-tagline{font-size:var(--text-sm);color:var(--muted-foreground);margin-bottom:var(--space-5)}.auth-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--foreground);margin-bottom:var(--space-2);letter-spacing:-.01em;font-weight:800}.auth-sub{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-4);line-height:1.5}.field-label{font-size:var(--text-xs);color:var(--muted-foreground);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.08em;font-weight:600;display:block}.field{width:100%;padding:var(--space-3);border:1.5px solid var(--border);border-radius:var(--radius-ctl);font-size:var(--text-sm);color:var(--foreground);background:var(--card);margin-bottom:var(--space-3);font-family:inherit;transition:border-color .2s}.field:focus{border-color:var(--primary);outline:none}.auth-btn{width:100%;padding:var(--space-3);background:var(--primary);color:#fff;border-radius:var(--radius-ctl);font-size:var(--text-base);cursor:pointer;margin-bottom:var(--space-3);letter-spacing:.01em;border:none;font-family:inherit;font-weight:700;transition:opacity .2s,transform .1s}.auth-btn:hover{opacity:.9}.auth-btn:active{transform:scale(.98)}.auth-btn:disabled{opacity:.4;cursor:not-allowed}.auth-switch{text-align:center;font-size:var(--text-sm);color:var(--muted-foreground)}.auth-link{color:var(--primary);cursor:pointer;font-family:inherit;font-weight:600;font-size:var(--text-sm);background:0 0;border:none}.role-row{gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.role-btn{padding:var(--space-3);border-radius:var(--radius-ctl);background:var(--card);box-shadow:var(--shadow-soft);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;text-align:center;border:1.5px solid #0000;flex:1;font-family:inherit;font-weight:500;transition:border-color .2s,background .2s,color .2s}.role-btn.selected{background:var(--mint-soft);border-color:var(--primary);color:var(--primary);font-weight:700}.ob-opt{box-sizing:border-box;width:100%;padding:var(--space-3);border-radius:var(--radius-ctl);background:var(--card);box-shadow:var(--shadow-soft);font-size:var(--text-sm);color:var(--foreground);cursor:pointer;margin-bottom:var(--space-2);text-align:left;border:1.5px solid #0000;justify-content:space-between;align-items:center;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.ob-opt:hover{border-color:var(--mint)}.ob-opt.ob-selected{background:var(--mint-soft);border-color:var(--primary);color:var(--primary);font-weight:600}.ob-check{font-size:var(--text-sm);color:var(--primary);font-weight:800}.header{padding:calc(env(safe-area-inset-top) + var(--space-3)) var(--space-4) var(--space-3);background:0 0;justify-content:space-between;align-items:flex-start;display:flex}.header-greeting{font-family:var(--font-display);font-size:var(--text-xl);color:var(--foreground);letter-spacing:-.01em;font-weight:800;line-height:1.1}.header-sub{font-size:var(--text-sm);color:var(--muted-foreground);margin-top:var(--space-1)}.wordmark{font-family:var(--font-display);font-size:var(--text-xs);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.35em;margin-top:var(--space-2);font-weight:700}.header-side{align-items:flex-end;gap:var(--space-2);flex-direction:column;display:flex}.avatar{background:var(--mint-soft);width:38px;height:38px;font-size:var(--text-sm);color:var(--primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.nav{border-top:1px solid var(--border);background:var(--card);padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom));order:2;display:flex}.nav-btn{padding:var(--space-1);color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;font-family:inherit;font-size:11px;font-weight:500;transition:color .15s;display:flex}.nav-btn svg{stroke:currentColor;border-radius:12px;width:34px;height:22px;padding:0 6px;transition:background .15s}.nav-btn.active{color:var(--forest);font-weight:700}.nav-btn.active svg{background:var(--mint-soft)}.tab{padding:var(--space-3) var(--space-3) var(--space-4);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;contain:layout style;background:0 0;flex:1;order:1;display:none;overflow-y:auto}.tab.active{display:block}.section-label{font-size:var(--text-xs);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.12em;margin:var(--space-4) 0 var(--space-3);font-weight:600}.section-label:first-child{margin-top:0}.hero-card{background:var(--gradient-brand);border-radius:var(--radius-card);padding:var(--space-4) var(--space-3);margin-bottom:var(--space-3);box-shadow:var(--shadow-lift)}.hero-label{font-size:var(--text-xs);color:var(--mint);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--space-2);font-weight:600}.hero-title{font-family:var(--font-display);font-size:var(--text-lg);color:#fff;margin-bottom:var(--space-4);letter-spacing:-.01em;font-weight:800}.mood-grid{gap:var(--space-2);grid-template-columns:repeat(5,1fr);display:grid}.mood-btn{cursor:pointer;align-items:center;gap:var(--space-2);color:#ffffffbf;padding:var(--space-1) 0;background:0 0;border:none;flex-direction:column;font-family:inherit;font-size:11px;font-weight:600;display:flex}.mood-blob{border-radius:46% 54% 52% 48%/55% 48% 52% 45%;width:46px;height:42px;transition:transform .15s,box-shadow .15s;box-shadow:inset 0 -4px 10px #0000001f}.mood-btn:hover .mood-blob{transform:scale(1.06)}.mood-btn.selected{color:#fff}.mood-btn.selected .mood-blob{transform:scale(1.12);box-shadow:0 0 0 3px #ffffffd9,inset 0 -4px 10px #0000001f}.card{background:var(--card);border-radius:var(--radius-card);padding:var(--space-3) var(--space-3);margin-bottom:var(--space-3);cursor:pointer;box-shadow:var(--shadow-soft);transition:transform .15s,box-shadow .15s}.card:hover{box-shadow:var(--shadow-lift)}.card-title{font-family:var(--font-display);font-size:var(--text-base);color:var(--foreground);margin-bottom:var(--space-1);letter-spacing:-.01em;font-weight:700}.card-sub{font-size:var(--text-sm);color:var(--muted-foreground);line-height:1.5}.card-row{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.badge{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background:var(--mint-soft);color:var(--forest);border-radius:20px;font-weight:600}.badge.red{background:var(--red-bg);color:var(--red-text)}.streak-wrap{background:var(--card);border-radius:var(--radius-ctl);padding:var(--space-3);margin-bottom:var(--space-3);box-shadow:var(--shadow-soft)}.streak-label{font-size:var(--text-sm);color:var(--forest);margin-bottom:var(--space-2);font-weight:600}.streak-dots{gap:var(--space-2);display:flex}.streak-dot{background:var(--mint);border-radius:50%;width:10px;height:10px}.streak-dot.empty{background:var(--border)}.breath-wrap{padding:var(--space-3) 0;flex-direction:column;align-items:center;display:flex}.phase-label{font-family:var(--font-display);font-size:var(--text-lg);color:var(--foreground);margin-bottom:var(--space-1);min-height:28px;font-weight:800}.phase-sub{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-4);text-align:center}.circle-wrap{width:180px;height:180px;margin-bottom:var(--space-4);position:relative}.circle-bg{background:var(--card);box-shadow:var(--shadow-soft);border-radius:50%;position:absolute;inset:0}.count-display{font-family:var(--font-display);font-size:var(--text-display);color:var(--foreground);justify-content:center;align-items:center;font-weight:800;display:flex;position:absolute;inset:0}.cycle-dots{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.cycle-dot{background:var(--border);border-radius:50%;width:10px;height:10px}.cycle-dot.done{background:var(--primary)}.cycles-text{font-size:var(--text-sm);color:var(--muted-foreground);margin-bottom:var(--space-4)}.btn{padding:var(--space-3) var(--space-5);border-radius:var(--radius-ctl);background:var(--card);box-shadow:var(--shadow-soft);color:var(--foreground);font-size:var(--text-sm);cursor:pointer;border:none;font-family:inherit;font-weight:600;transition:opacity .15s}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{opacity:.9}.btn-full{width:100%;padding:var(--space-3);border-radius:var(--radius-ctl);background:var(--card);box-shadow:var(--shadow-soft);color:var(--foreground);font-size:var(--text-sm);cursor:pointer;margin-bottom:var(--space-2);border:none;font-family:inherit;font-weight:600;transition:opacity .15s}.btn-full.primary{background:var(--primary);color:#fff}.btn-full.primary:hover{opacity:.9}.cat-row{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.cat-btn{font-size:var(--text-xs);padding:var(--space-2) var(--space-3);background:var(--card);box-shadow:var(--shadow-soft);color:var(--muted-foreground);cursor:pointer;border:none;border-radius:20px;font-family:inherit;font-weight:600;transition:background .15s,color .15s}.cat-btn.active{background:var(--forest);color:#fff}.prompt-card{background:var(--card);border-radius:var(--radius-ctl);padding:var(--space-3);margin-bottom:var(--space-2);cursor:pointer;box-shadow:var(--shadow-soft);border:1.5px solid #0000;transition:border-color .15s,background .15s}.prompt-card:hover{border-color:var(--mint)}.prompt-card.selected{border-color:var(--primary);background:var(--mint-soft)}.prompt-text{font-size:var(--text-sm);color:var(--foreground);margin-bottom:var(--space-1);font-weight:500;line-height:1.6}.prompt-tip{font-size:var(--text-xs);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.prompt-card.selected .prompt-tip{color:var(--primary)}.write-area{border:1.5px solid var(--border);border-radius:var(--radius-ctl);width:100%;padding:var(--space-3);font-size:var(--text-sm);background:var(--card);color:var(--foreground);resize:none;margin-bottom:var(--space-2);font-family:inherit;line-height:1.7;transition:border-color .2s}.write-area:focus{border-color:var(--primary);outline:none}.char-count{font-size:var(--text-xs);color:var(--muted-foreground);text-align:right;margin-bottom:var(--space-3)}.closer-box{background:var(--sand);border-radius:var(--radius-ctl);padding:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-3);line-height:1.6}.closer-label{font-size:var(--text-xs);color:var(--muted-foreground);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.divider{background:var(--border);height:1px;margin:var(--space-4) 0}.saved-msg{text-align:center;padding:var(--space-5) var(--space-3)}.saved-title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--foreground);margin-bottom:var(--space-2);font-weight:800}.saved-sub{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-4);line-height:1.7}.again-btn{font-size:var(--text-sm);color:var(--primary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-weight:600;text-decoration:underline}.resource-card{align-items:center;gap:var(--space-3);padding:var(--space-3);margin-bottom:var(--space-3);background:var(--card);border-radius:var(--radius-ctl);box-shadow:var(--shadow-soft);cursor:pointer;text-decoration:none;transition:box-shadow .15s;display:flex}.resource-card:hover{box-shadow:var(--shadow-lift)}.resource-title{font-family:var(--font-display);font-size:var(--text-sm);color:var(--foreground);margin-bottom:var(--space-1);font-weight:700}.resource-sub{font-size:var(--text-xs);color:var(--muted-foreground)}.logout-btn{width:100%;padding:var(--space-3);border-radius:var(--radius-ctl);border:1.5px solid var(--border-mid);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;margin-top:var(--space-3);background:0 0;font-family:inherit;font-weight:600;transition:background .15s}.logout-btn:hover{background:var(--muted)}.profile-card{background:var(--card);border-radius:var(--radius-card);padding:var(--space-3);margin-bottom:var(--space-3);align-items:center;gap:var(--space-3);box-shadow:var(--shadow-soft);display:flex}.profile-avatar-big{background:var(--primary);width:56px;height:56px;font-family:var(--font-display);font-size:var(--text-lg);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:flex}.profile-name{font-family:var(--font-display);font-size:var(--text-base);color:var(--foreground);font-weight:700}.profile-role{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-1)}.pref-row{padding:var(--space-3);margin-bottom:var(--space-2);background:var(--card);border-radius:var(--radius-ctl);box-shadow:var(--shadow-soft);cursor:pointer;justify-content:space-between;align-items:center;transition:box-shadow .15s;display:flex}.pref-row:hover{box-shadow:var(--shadow-lift)}.pref-left{flex:1;min-width:0}.pref-title{font-size:var(--text-sm);color:var(--foreground);margin-bottom:var(--space-1);font-weight:600}.pref-val{font-size:var(--text-xs);color:var(--primary);text-overflow:ellipsis;font-weight:500;overflow:hidden}.pref-arrow{font-size:var(--text-lg);color:var(--muted-foreground);margin-left:var(--space-2)}.mode-toggle{background:var(--secondary);border-radius:var(--radius-ctl);padding:var(--space-1);margin-bottom:var(--space-3);display:flex}.mode-btn{padding:var(--space-2);font-size:var(--text-sm);color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;border-radius:12px;flex:1;font-family:inherit;font-weight:600;transition:background .2s,color .2s,box-shadow .2s}.mode-btn.active-mode{background:var(--card);color:var(--foreground);box-shadow:var(--shadow-soft)}.break-circle{border:3px solid var(--border);width:170px;height:170px;margin:0 auto var(--space-4);background:var(--card);box-shadow:var(--shadow-soft);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex}.break-time{font-family:var(--font-display);font-size:var(--text-display);color:var(--foreground);letter-spacing:-.02em;font-weight:800}.break-label{font-size:var(--text-xs);color:var(--muted-foreground);margin-top:var(--space-1);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.break-activity{background:var(--card);border-radius:var(--radius-ctl);padding:var(--space-3);margin-bottom:var(--space-3);box-shadow:var(--shadow-soft)}.break-activity-title{font-family:var(--font-display);font-size:var(--text-sm);color:var(--foreground);margin-bottom:var(--space-2);font-weight:700}.break-activity-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6}.tool-menu-card{align-items:center;gap:var(--space-3);padding:var(--space-3);margin-bottom:var(--space-3);background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);cursor:pointer;transition:box-shadow .15s;display:flex}.tool-menu-card:hover{box-shadow:var(--shadow-lift)}.tool-icon{background:var(--mint-soft);width:48px;height:48px;color:var(--forest);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tool-icon svg{width:22px;height:22px}.tool-menu-body{flex:1}.tool-menu-title{font-family:var(--font-display);font-size:var(--text-base);color:var(--foreground);margin-bottom:var(--space-1);letter-spacing:-.01em;font-weight:700}.tool-menu-sub{font-size:var(--text-sm);color:var(--muted-foreground);line-height:1.45}.tool-menu-arrow{font-size:var(--text-lg);color:var(--muted-foreground)}.admin-body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);font-family:var(--font-body);background:var(--background);min-height:100vh;padding:0}.admin-sidebar{background:var(--forest-deep);width:220px;min-height:100vh;padding:var(--space-4) var(--space-3);gap:var(--space-1);flex-direction:column;display:flex;position:fixed;top:0;left:0}.admin-content{padding:var(--space-5);min-height:100vh;margin-left:220px}.stat-card{background:var(--card);border-radius:var(--radius-ctl);padding:var(--space-4);box-shadow:var(--shadow-soft)}.stat-value{font-family:var(--font-display);font-size:var(--text-xl);color:var(--foreground);font-weight:800}.stat-label{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-1)}.stat-sub{font-size:var(--text-xs);color:var(--muted-foreground);margin-top:var(--space-1)}.admin-table{border-collapse:collapse;width:100%}.admin-table th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--border);font-weight:600}.admin-table td{font-size:var(--text-sm);color:var(--foreground);padding:var(--space-3);border-bottom:1px solid var(--muted);vertical-align:top}.admin-table tr:last-child td{border-bottom:none}.status-badge{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:20px;font-weight:600;display:inline-block}.status-pending{background:var(--sand);color:#7a6231}.status-approved{background:var(--mint-soft);color:var(--forest)}.status-rejected{background:var(--muted);color:var(--muted-foreground)}.approve-btn{padding:var(--space-2) var(--space-3);background:var(--primary);color:#fff;font-size:var(--text-xs);cursor:pointer;margin-right:var(--space-2);border:none;border-radius:10px;font-family:inherit;font-weight:600}.reject-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--border);background:var(--card);color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;border-radius:10px;font-family:inherit;font-weight:600}
