:root{--navy-950:#08192a;--navy-900:#0b2236;--navy-800:#0f2a3f;--navy-700:#17425f;--navy-500:#3b6a8a;--teal-500:#2ba6a0;--teal-400:#4fc3b9;--teal-100:#d8f0ee;--teal-50:#eaf7f5;--sand-50:#faf8f4;--sand-100:#f6f3ee;--sand-200:#ece7de;--sand-300:#ddd6ca;--ink:#12202b;--ink-2:#3d4d5a;--ink-3:#66747f;--amber:#b9782a;--amber-bg:#fbf1e1;--danger:#b4483f;--radius:16px;--radius-sm:10px;--shadow-sm:0 1px 2px rgba(11,34,54,0.05),0 1px 1px rgba(11,34,54,0.03);--shadow:0 6px 24px -8px rgba(11,34,54,0.14),0 2px 6px rgba(11,34,54,0.04);--font:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;--font-display:"Segoe UI Variable Display","Segoe UI",system-ui,sans-serif}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--sand-100);line-height:1.55;font-size:15px;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);margin:0;letter-spacing:-.01em;color:var(--navy-900)}h1{font-size:1.85rem;line-height:1.2}h1,h2{font-weight:650}h2{font-size:1.05rem}p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.muted{color:var(--ink-3)}.small{font-size:.85rem}:focus-visible{outline:3px solid var(--teal-500);outline-offset:2px;border-radius:6px}.skip-link{position:absolute;left:-999px;top:8px;background:var(--navy-900);color:#fff;padding:8px 14px;border-radius:8px;z-index:100}.skip-link:focus{left:8px}.logo{display:inline-flex;align-items:center;gap:12px}.logo-text{display:flex;flex-direction:column;line-height:1.1}.logo-word{font-family:var(--font-display);font-weight:700;letter-spacing:.22em;font-size:1.15rem;color:var(--navy-900)}.logo-tag{font-size:.72rem;color:var(--ink-3);margin-top:4px;letter-spacing:.01em}.logo-light .logo-word{color:#f6f3ee}.logo-light .logo-tag{color:#8fb0c4}.shell{min-height:100vh;display:grid;grid-template-columns:272px 1fr}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;padding:24px 16px 18px;color:#cfe0ea;background:linear-gradient(180deg,var(--navy-800),var(--navy-950));overflow-y:auto}.space-institution .sidebar{background:linear-gradient(180deg,#1a2f3f,#0c1a26)}.sidebar-top{justify-content:space-between;padding:0 8px}.sidebar-top,.space-badge{display:flex;align-items:center}.space-badge{gap:10px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}.space-badge small{display:block;font-size:.7rem;color:#8fb0c4;text-transform:uppercase;letter-spacing:.08em}.space-badge strong{font-size:.92rem;color:#fff;font-weight:600}.space-badge .dot{width:9px;height:9px;border-radius:50%;background:var(--teal-400);box-shadow:0 0 0 4px rgba(79,195,185,.18)}.space-institution .space-badge .dot{background:#e0b25c;box-shadow:0 0 0 4px rgba(224,178,92,.18)}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:#b9cfdc;font-weight:500;transition:background .15s,color .15s}.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}.nav-item.active{background:rgba(79,195,185,.16);color:#fff;box-shadow:inset 3px 0 0 var(--teal-400)}.space-institution .nav-item.active{background:rgba(224,178,92,.16);box-shadow:inset 3px 0 0 #e0b25c}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:14px}.switch-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px dashed rgba(255,255,255,.2);font-size:.86rem;color:#cfe0ea}.switch-link:hover{background:rgba(255,255,255,.06)}.side-disclaimer{font-size:.72rem;color:#7f9db1;padding:0 6px;line-height:1.45}.main-col{min-width:0;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;gap:12px;padding:12px 32px;background:rgba(246,243,238,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--sand-200)}.topbar,.topbar-role{display:flex;align-items:center}.topbar-role{gap:8px;margin-right:auto}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--sand-200);color:var(--ink-2)}.chip-accent{background:var(--teal-100);color:#0e6a66}.space-institution .chip-accent{background:var(--amber-bg);color:#8a5a17}.lang{display:flex;align-items:center;gap:2px;border-radius:999px;background:#fff;border:1px solid var(--sand-300);color:var(--ink-3);padding:3px 3px 3px 10px}.lang button{border:0;background:transparent;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:700;color:var(--ink-3)}.lang button.on{background:var(--navy-800);color:#fff}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:.78rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--teal-500),var(--navy-700))}.content{width:100%;max-width:1180px;padding:32px 32px 56px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--sand-300);background:#fff;color:var(--navy-800)}.sidebar .icon-btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);color:#fff}.bottom-nav,.only-mobile,.scrim{display:none}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-head p{margin-top:6px;max-width:62ch}.grid{display:grid;grid-gap:20px;gap:20px}.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.stack{flex-direction:column;gap:14px}.row,.stack{display:flex}.row{align-items:center;gap:10px;flex-wrap:wrap}.spread{justify-content:space-between}.card{background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-sm)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.hero{position:relative;overflow:hidden;border-radius:22px;padding:30px 32px;color:#e7f1f6;background:radial-gradient(900px 300px at 100% 0,rgba(79,195,185,.35),transparent 60%),linear-gradient(135deg,var(--navy-700),var(--navy-900));box-shadow:var(--shadow)}.hero h1{color:#fff;font-size:2rem}.hero p{margin-top:8px;color:#b9d1df;max-width:56ch}.hero .orb{position:absolute;right:36px;top:50%;translate:0 -50%;opacity:.9}.hero .orb-ring{position:absolute;right:-30px;bottom:-80px;width:260px;height:260px;border-radius:50%;border:1px solid rgba(255,255,255,.12)}.stat{display:flex;flex-direction:column;gap:4px}.stat strong{font-family:var(--font-display);font-size:1.9rem;color:var(--navy-900);line-height:1.1}.stat span{color:var(--ink-3);font-size:.86rem}.stat-icon{width:38px;height:38px;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-500);margin-bottom:10px}.btn,.stat-icon{border-radius:11px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border:1px solid transparent;font-weight:600;font-size:.92rem;transition:transform .1s,background .15s,box-shadow .15s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--navy-800);color:#fff;box-shadow:0 4px 14px -4px rgba(15,42,63,.5)}.btn-primary:hover{background:var(--navy-700)}.btn-teal{background:var(--teal-500);color:#fff}.btn-teal:hover{background:#249690}.btn-ghost{background:#fff;border-color:var(--sand-300);color:var(--navy-800)}.btn-ghost:hover{background:var(--sand-100)}.btn-danger{background:#fff;border-color:#e6c3bf;color:var(--danger)}.btn-danger:hover{background:#fbeeec}.btn-sm{padding:6px 12px;font-size:.84rem;border-radius:9px}.btn[disabled]{opacity:.5;cursor:not-allowed}.link-btn{border:0;background:none;color:var(--navy-700);font-weight:600;padding:4px}.link-btn:hover{color:var(--teal-500)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.84rem;font-weight:600;color:var(--ink-2)}.field label em{font-style:normal;color:var(--ink-3);font-weight:400}.input,.select,.textarea{width:100%;padding:10px 12px;border:1px solid var(--sand-300);border-radius:10px;background:#fff;transition:border-color .15s,box-shadow .15s}.textarea{min-height:120px;resize:vertical}.input:hover,.select:hover,.textarea:hover{border-color:#c2b9a9}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--teal-500);box-shadow:0 0 0 4px rgba(43,166,160,.18)}.field-error{color:var(--danger);font-size:.82rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.form-grid .full{grid-column:1/-1}.tabs{display:inline-flex;gap:4px;padding:4px;background:var(--sand-200);border-radius:12px;flex-wrap:wrap}.tabs button{border:0;background:transparent;padding:7px 14px;border-radius:9px;font-weight:600;font-size:.86rem;color:var(--ink-2)}.tabs button.on{background:#fff;color:var(--navy-900);box-shadow:var(--shadow-sm)}.switch{position:relative;width:44px;height:26px;flex:none}.switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.switch span{position:absolute;inset:0;border-radius:999px;background:var(--sand-300);transition:background .2s;pointer-events:none}.switch span:after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:translate .2s}.switch input:checked+span{background:var(--teal-500)}.switch input:checked+span:after{translate:18px 0}.switch input:focus-visible+span{outline:3px solid var(--teal-500);outline-offset:2px}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--sand-200)}.list li:last-child{border-bottom:0}.list .grow{flex:1 1;min-width:0}.list .title{font-weight:600}.done .title{text-decoration:line-through;color:var(--ink-3)}.checkbox{width:24px;height:24px;border-radius:8px;border:2px solid var(--sand-300);background:#fff;display:grid;place-items:center;color:#fff;flex:none;padding:0}.checkbox.on{background:var(--teal-500);border-color:var(--teal-500)}.tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:600;background:var(--sand-200);color:var(--ink-2)}.tag-teal{background:var(--teal-100);color:#0e6a66}.tag-amber{background:var(--amber-bg);color:#8a5a17}.tag-red{background:#fbeeec;color:var(--danger)}.tag-navy{background:#e4edf4;color:var(--navy-700)}.empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:30px 16px;color:var(--ink-3)}.empty-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-500)}.notice{display:flex;gap:12px;padding:14px 16px;border-radius:12px;font-size:.9rem;align-items:flex-start}.notice svg{flex:none;margin-top:2px}.notice-info{background:var(--teal-50);color:#0e5b57;border:1px solid var(--teal-100)}.notice-warn{background:var(--amber-bg);color:#6f4713;border:1px solid #f0dcb8}.moods{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:10px;gap:10px}.mood-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;border-radius:14px;border:1.5px solid var(--sand-200);background:#fff;font-size:.82rem;font-weight:600;color:var(--ink-2);transition:transform .15s,border-color .15s,background .15s}.mood-btn:hover{transform:translateY(-2px);border-color:var(--teal-400)}.mood-btn.on{border-color:var(--teal-500);background:var(--teal-50)}.bars{display:flex;align-items:stretch;gap:10px}.bar-col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.bar-track{flex:1 1;max-width:44px;display:flex;align-items:flex-end;background:var(--sand-100);overflow:hidden}.bar,.bar-track{width:100%;border-radius:10px}.bar{background:linear-gradient(180deg,var(--teal-400),var(--teal-500));min-height:4px;transition:height .4s ease}.bar-label{font-size:.74rem;color:var(--ink-3)}.meter{height:10px;border-radius:999px;background:var(--sand-200);overflow:hidden;display:flex}.meter i{display:block;height:100%}.breath-stage{display:grid;place-items:center;padding:20px 0}.breath-orb{width:200px;height:200px;border-radius:50%;display:grid;place-items:center;text-align:center;color:#fff;font-family:var(--font-display);font-weight:600;font-size:1.15rem;background:radial-gradient(circle at 35% 30%,var(--teal-400),var(--navy-700));box-shadow:0 0 0 14px rgba(43,166,160,.12),0 0 0 30px rgba(43,166,160,.06);transition:transform 4s ease-in-out}.breath-orb.inhale{transition-duration:4s}.breath-orb.hold,.breath-orb.inhale{transform:scale(1.18)}.breath-orb.exhale{transform:scale(.84);transition-duration:6s}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600;padding:10px 12px}td,th{border-bottom:1px solid var(--sand-200)}td{padding:13px 12px;vertical-align:middle}tr:last-child td{border-bottom:0}.split{display:grid;grid-template-columns:300px minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}.entry-btn{width:100%;text-align:left;border:1px solid transparent;background:transparent;padding:12px;border-radius:12px;display:flex;flex-direction:column;gap:2px}.entry-btn:hover{background:var(--sand-100)}.entry-btn.on{background:var(--teal-50);border-color:var(--teal-100)}.quick{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:var(--sand-100);border:1px solid var(--sand-200);font-weight:600;transition:transform .15s,background .15s}.quick:hover{transform:translateY(-2px);background:var(--teal-50)}.quick .stat-icon{margin:0;background:#fff}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);grid-gap:20px;gap:20px;align-items:start}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.eyebrow{display:block;color:var(--ink-3);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.calendar-month{margin-top:3px;font-size:1.35rem;text-transform:capitalize}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.calendar-weekday{padding:8px 2px;color:var(--ink-3);font-size:.76rem;font-weight:700;text-align:center;text-transform:capitalize}.calendar-day{min-height:76px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:9px;border:1px solid var(--sand-200);border-radius:12px;background:#fff;color:var(--ink-2);text-align:left;transition:background .15s,border-color .15s}.calendar-day:hover{background:var(--teal-50);border-color:var(--teal-400)}.calendar-day.outside{color:#a4adb3;background:#fcfbf9}.calendar-day.today>span:first-child{color:#087c74;font-weight:800}.calendar-day.selected{color:#fff;background:var(--navy-800);border-color:var(--navy-800);box-shadow:var(--shadow-sm)}.calendar-day.selected.today>span:first-child{color:#fff}.calendar-markers{min-height:8px;display:flex;gap:4px;align-items:center}.calendar-marker{width:7px;height:7px;display:inline-block;border-radius:50%;background:var(--navy-500)}.agenda-dot.deadline,.calendar-marker.deadline{background:var(--amber)}.agenda-dot.study,.calendar-marker.study{background:var(--navy-500)}.agenda-dot.rest,.calendar-marker.rest{background:var(--teal-500)}.calendar-day.selected .calendar-marker{box-shadow:0 0 0 2px rgba(255,255,255,.28)}.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;padding-top:18px;color:var(--ink-3);font-size:.78rem}.calendar-legend span{display:inline-flex;gap:7px;align-items:center}.agenda-date{padding-bottom:18px;border-bottom:1px solid var(--sand-200)}.agenda-date h2{margin-top:4px;text-transform:capitalize}.agenda-balance,.balance-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;padding:16px 0}.agenda-balance>div,.balance-stats>div{display:flex;flex-direction:column;gap:3px}.agenda-balance strong,.balance-stats strong{color:var(--navy-900);font-size:1.1rem}.agenda-balance span,.balance-stats span{color:var(--ink-3);font-size:.8rem}.agenda-section{display:flex;flex-direction:column;gap:11px;padding:16px 0;border-top:1px solid var(--sand-200)}.agenda-section h3{font-size:.9rem}.agenda-item{display:flex;align-items:flex-start;gap:10px}.agenda-dot{width:9px;height:9px;flex:0 0 9px;margin-top:6px;border-radius:50%;background:var(--navy-500)}.agenda-item>div{display:flex;flex-direction:column;gap:2px}.agenda-item strong{font-size:.88rem;font-weight:650}.agenda-item span:not(.agenda-dot){color:var(--ink-3);font-size:.78rem}.weekly-chart-legend{display:flex;gap:16px;flex-wrap:wrap;padding:8px 0 2px;color:var(--ink-3);font-size:.8rem}.weekly-chart-legend span{display:inline-flex;gap:7px;align-items:center}.focus-timer{padding:18px 0;color:var(--navy-900);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:clamp(2.4rem,8vw,3.2rem);font-weight:650;letter-spacing:.06em;text-align:center}.devlog{max-width:860px;display:flex;flex-direction:column;gap:16px}.devlog .card p{line-height:1.75}.storage-error{padding:12px 16px;border:1px solid #e5b3ad;border-radius:12px;background:#fff3f1;color:#8a2c25}.toast{position:fixed;bottom:24px;left:50%;translate:-50% 0;background:var(--navy-900);color:#fff;padding:11px 18px;border-radius:12px;box-shadow:var(--shadow);z-index:60;font-size:.9rem;animation:rise .25s ease}@keyframes rise{0%{opacity:0;translate:-50% 10px}}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-art{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:44px 52px;color:#dbe9f1;background:radial-gradient(700px 420px at 85% 10%,rgba(79,195,185,.35),transparent 60%),radial-gradient(600px 400px at 0 100%,rgba(59,106,138,.5),transparent 60%),linear-gradient(160deg,var(--navy-700),var(--navy-950))}.login-art h2{color:#fff;font-size:2.3rem;line-height:1.15;max-width:14ch;font-weight:650}.login-art p{margin-top:14px;color:#a9c4d4;max-width:44ch;font-size:1.02rem}.login-art .rings{position:absolute;right:-120px;bottom:-120px;width:460px;height:460px;border-radius:50%;border:1px solid rgba(255,255,255,.1);box-shadow:0 0 0 60px rgba(255,255,255,.025),0 0 0 120px rgba(255,255,255,.02)}.pillars{display:flex;gap:10px;flex-wrap:wrap;position:relative}.pillars span{padding:6px 13px;border-radius:999px;font-size:.82rem;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06)}.login-panel{display:grid;place-items:center;padding:32px;background:var(--sand-50)}.login-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:18px}.login-lang{position:absolute;top:20px;right:24px}@media (max-width:1080px){.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-layout,.g-3,.g-main{grid-template-columns:1fr}}@media (max-width:880px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:50;width:288px;translate:-100% 0;transition:translate .25s ease}.sidebar.open{translate:0 0}.scrim{display:block;position:fixed;inset:0;background:rgba(8,25,42,.5);z-index:40}.only-mobile{display:grid}.topbar{padding:10px 16px}.content{padding:20px 16px 96px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fff;border-top:1px solid var(--sand-200);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.bottom-nav a{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:.66rem;color:var(--ink-3);border-radius:10px;min-width:0}.bottom-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.bottom-nav a.active{color:var(--navy-800);font-weight:700}.bottom-nav a.active svg{color:var(--teal-500)}.hide-sm{display:none}.form-grid,.g-2,.split{grid-template-columns:1fr}.calendar-grid{gap:3px}.calendar-day{min-height:54px;padding:6px;border-radius:9px;font-size:.86rem}.calendar-toolbar{align-items:flex-start}.calendar-toolbar .row{gap:5px}.calendar-legend{gap:10px}.hero{padding:24px 20px}.hero .orb{display:none}h1{font-size:1.5rem}.login{grid-template-columns:1fr}.login-art{padding:28px 24px;min-height:260px;gap:26px}.login-art h2{font-size:1.6rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}