@import "https://fonts.googleapis.com/css2?family=Literata:opsz,wght@7..72,400;7..72,600;7..72,700&family=Manrope:wght@400;500;600;700&display=swap";:root{--bg:#eef3f8;--bg-accent:#e4edf6;--ink:#152033;--muted:#5a6b80;--line:#c9d6e6;--panel:#f8fbfff0;--accent:#1d4f91;--accent-soft:#d6e6f8;--danger:#9b3b2f;--shadow:0 18px 40px #15203314;--radius:18px;--font-display:"Literata", Georgia, serif;--font-body:"Manrope", sans-serif;--pad-x:20px;--touch:44px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{min-height:100%}body{color:var(--ink);font-family:var(--font-body);background:radial-gradient(circle at top left, #d4e6fb 0%, transparent 42%), radial-gradient(circle at top right, #e7eef8 0%, transparent 36%), linear-gradient(165deg, var(--bg), var(--bg-accent));background-attachment:fixed;margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.field input,.field textarea,.field select,.cell-input,.matrix-cell{font-size:16px}button{cursor:pointer;touch-action:manipulation}.app-shell{max-width:1120px;padding:24px var(--pad-x) 64px;padding-left:max(var(--pad-x), env(safe-area-inset-left));padding-right:max(var(--pad-x), env(safe-area-inset-right));padding-bottom:max(64px, env(safe-area-inset-bottom));margin:0 auto}.topbar{min-height:var(--touch);justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.03em;flex-shrink:0;font-size:1.6rem;font-weight:700}.brand span{color:var(--accent)}.muted{color:var(--muted)}.topbar-profile{border-radius:999px;align-items:center;gap:10px;min-width:0;padding:4px 8px 4px 4px;display:flex}.topbar-profile:hover{background:var(--accent-soft)}.user-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:20px}.grid-2{grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:20px;display:grid}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;margin:0 0 12px}h1{font-size:clamp(1.45rem,4vw,2rem)}h2{font-size:clamp(1.15rem,3vw,1.35rem)}.stack{flex-direction:column;gap:12px;min-width:0;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label{color:var(--muted);font-size:.85rem}.field input,.field textarea,.field select{border:1px solid var(--line);width:100%;color:var(--ink);min-height:var(--touch);background:#fff;border-radius:12px;padding:12px}.field textarea{resize:vertical;min-height:160px;line-height:1.5}.btn{min-height:var(--touch);background:var(--accent);color:#fff;border:none;border-radius:999px;justify-content:center;align-items:center;padding:12px 16px;font-weight:600;display:inline-flex}.btn.secondary{background:var(--accent-soft);color:var(--accent)}.btn.ghost{color:var(--muted);border:1px solid var(--line);background:0 0}.btn.danger{color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 35%, white);background:0 0}.btn:disabled{opacity:.6;cursor:not-allowed}.list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.list>li{width:100%;display:block}.list button,.list a.item{box-sizing:border-box;text-align:left;width:100%;color:var(--ink);min-height:var(--touch);background:0 0;border:1px solid #0000;border-radius:12px;padding:14px;line-height:1.35;text-decoration:none;display:block}.list a.item strong{letter-spacing:-.02em;font-size:1.05rem;font-weight:700;display:block}.list a.item .muted,.list button .muted{margin-top:2px;font-size:.88rem;display:block}.list button:hover,.list a.item:hover,.list button.active,.list a.item.active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 25%, white)}.auth-wrap{min-height:100dvh;padding:20px;padding-bottom:max(20px, env(safe-area-inset-bottom));place-items:center;display:grid}.auth-card{width:min(420px,100%)}.auth-card h1{margin-bottom:4px}.error{color:var(--danger);font-size:.9rem}.markdown-preview{overflow-wrap:anywhere;line-height:1.6}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3{margin-top:1em}.markdown-preview p{margin:.6em 0}.markdown-preview ul,.markdown-preview ol{padding-left:1.2em}.tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{border:1px solid var(--line);min-height:var(--touch);white-space:nowrap;background:0 0;border-radius:999px;flex:none;padding:10px 14px}.tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.table-wrap{-webkit-overflow-scrolling:touch;max-width:100%;margin:0 -4px;padding:0 4px;overflow-x:auto}table.data{border-collapse:collapse;width:100%;min-width:520px;font-size:.92rem}table.data th,table.data td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 6px}.editor-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;padding:6px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.schedule-table th,.schedule-table td{padding:6px}.schedule-table{min-width:980px;font-size:.82rem}.schedule-table .cell-input{min-width:110px;font-size:.82rem}.schedule-table .cell-input.time{min-width:58px}.schedule-table .sticky-col{z-index:1;background:var(--panel);position:sticky;left:0}.schedule-mobile{display:none}.schedule-desktop{display:block}.day-timeline{flex-direction:column;gap:8px;display:flex}.day-slot{grid-template-columns:72px minmax(0,1fr) 44px;align-items:center;gap:8px;display:grid}.day-slot-text{width:100%;min-width:0!important}.day-tabs{margin-bottom:8px}.cell-input{background:#fff;border:1px solid #0000;border-radius:8px;width:100%;min-width:64px;min-height:40px;padding:10px 8px}.cell-input:focus{border-color:var(--accent);outline:none}.cell-input.time{min-width:52px;font-weight:600}.matrix-table{min-width:640px}.matrix-table th{color:var(--muted);max-width:140px;font-size:.78rem;font-weight:600}.matrix-cell{border:1px solid var(--line);resize:vertical;background:#fff;border-radius:10px;width:100%;min-height:72px;padding:8px}.progress-card{gap:12px;min-height:0;display:grid}.progress-strip{flex:140px;align-items:center;gap:10px;min-width:140px;max-width:220px;min-height:28px;display:flex}.xp-track{background:var(--accent-soft);border-radius:999px;height:10px;overflow:hidden}.xp-fill{border-radius:inherit;background:linear-gradient(90deg, #3d7cc9, var(--accent));height:100%}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;display:grid}.badge{border:1px solid var(--line);opacity:.55;background:#fff;border-radius:14px;padding:10px 12px}.badge.earned{border-color:color-mix(in srgb, var(--accent) 40%, white);background:var(--accent-soft);opacity:1}.badge .title{font-weight:700}.level-pill{color:var(--accent);white-space:nowrap;font-weight:700}.xp-toast{top:max(16px, env(safe-area-inset-top));z-index:1100;background:var(--accent);color:#fff;box-shadow:var(--shadow);border-radius:999px;padding:10px 16px;font-weight:700;animation:.35s xp-pop;position:fixed;left:50%;transform:translate(-50%)}@keyframes xp-pop{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.alcohol-stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.alcohol-stat strong{margin-top:4px;font-size:1.35rem;display:block}.preset-row{flex-wrap:wrap;gap:8px;display:flex}button.preset-chip,.chip.preset-chip{cursor:pointer;border:1px solid var(--line);font:inherit;background:#fff}.alcohol-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.alcohol-list li{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.measure-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.measure-grid-howto{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.measure-field .measure-how,.measure-history-grid .measure-how{color:var(--muted);margin:2px 0 8px;font-size:.78rem;font-weight:400;line-height:1.35;display:block}.measure-guide-list{color:var(--muted);flex-direction:column;gap:6px;margin:0;padding-left:1.15rem;display:flex}.measure-history{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.measure-history-toggle{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;justify-content:space-between;align-items:baseline;gap:12px;padding:0;display:flex}.measure-history-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px 16px;margin:0;display:grid}.measure-history-grid dt{font-size:.92rem;font-weight:600}.measure-history-grid dd{font-variant-numeric:tabular-nums;margin:4px 0 0}.today-plan h3{font-size:1.05rem}.today-tasks{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.today-tasks label{border:1px solid var(--line);min-height:var(--touch);background:#fff;border-radius:12px;grid-template-columns:28px 56px minmax(0,1fr);align-items:start;gap:8px;padding:10px 12px;display:grid}.today-tasks input[type=checkbox]{width:18px;height:18px;margin-top:2px}.today-tasks .time{color:var(--muted);font-size:.85rem;font-weight:600}.today-tasks .text{overflow-wrap:anywhere}.today-tasks label.done{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 30%, white)}.today-tasks label.done .text{opacity:.75;text-decoration:line-through}.modal-root{z-index:1000;place-items:end center;display:grid;position:fixed;inset:0}.modal-backdrop{background:#15203373;border:0;padding:0;position:absolute;inset:0}.modal-sheet{z-index:1;background:var(--panel);border:1px solid var(--line);width:min(720px,100%);max-height:min(92dvh,920px);box-shadow:var(--shadow);padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));border-radius:20px 20px 0 0;position:relative;overflow:auto}.modal-header{background:var(--panel);z-index:2;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:8px;display:flex;position:sticky;top:0}.modal-header h2{margin:0}.modal-body{flex-direction:column;gap:12px;display:flex}.media-preview{border:1px solid var(--line);border-radius:12px;max-width:100%}@media (width>=801px){.modal-root{place-items:center;padding:24px}.modal-sheet{border-radius:20px;max-height:min(88vh,860px)}}@media (width<=800px){:root{--pad-x:14px;--radius:16px}.app-shell{padding-top:16px}.topbar{flex-wrap:wrap;align-items:flex-start;margin-bottom:18px}.topbar-actions{justify-content:space-between;width:100%}.progress-strip{flex:auto;max-width:none}.grid-2,.editor-grid{grid-template-columns:1fr}.panel{padding:14px}.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field{flex:100%}.row>.btn{width:auto}.row>.field{flex:100%}.schedule-mobile{display:block}.schedule-desktop{display:none}}@media (width<=480px){.brand{font-size:1.35rem}.user-label{display:none}.badge-grid{grid-template-columns:1fr}.btn{width:100%}.row>.btn{flex:calc(50% - 10px)}.topbar-actions .btn{flex:none;width:auto;padding-inline:14px}table.data{font-size:.85rem}.auth-wrap{padding:16px}.measure-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.measure-grid-howto,.measure-history-grid{grid-template-columns:1fr}.editor-grid .field textarea{min-height:220px}}@media (hover:none){.list button:hover,.list a.item:hover{background:0 0;border-color:#0000}.list button.active,.list a.item.active,.list button:active,.list a.item:active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 25%, white)}}
