@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750&display=swap');
:root{color-scheme:dark;--bg:#101613;--card:#18211c;--raised:#202c24;--ink:#edf1e9;--muted:#a3b1a6;--line:#303e33;--green:#bfdb9f;--soft:#253625;--serif:'Manrope',sans-serif;--radius:14px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 'DM Sans',sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.4}button,input,textarea,select{accent-color:var(--green)}:focus-visible{outline:2px solid var(--green);outline-offset:3px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}a{color:var(--green);text-underline-offset:3px}p{line-height:1.6}h1,h2,h3{font-family:'Manrope',sans-serif}h1,h2,h3,p{margin-top:0}.shell{width:min(1200px,100%);padding:0 32px;margin:auto}.topbar{height:72px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{font:750 23px 'Manrope',sans-serif;letter-spacing:-1px;display:flex;gap:8px;align-items:center}.brandmark{height:30px;width:30px;border-radius:9px;background:#293d28;display:grid;place-items:center;color:var(--green);margin-right:2px}.brandmark svg{width:21px;height:21px}.brand>span:last-child{color:var(--green)!important;margin-left:-6px}.righthead{display:flex;align-items:center;gap:18px}.private{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px}.private svg{width:14px;height:14px}.avatar{display:none}#signedcontrols{display:flex;align-items:center;gap:7px}#syncstatus{font-size:11px;color:var(--muted);padding-right:8px}.preview{padding:7px 16px;text-align:center;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;color:#adbeaa;background:#1c281e;border-bottom:1px solid #2b3a2c}.preview>span{height:5px;width:5px;border-radius:50%;background:#9db983}#demoexit{margin-left:10px;font-size:11px}.intro{padding:28px 0 25px;display:flex;align-items:center;justify-content:space-between;gap:18px}.intro h1{font-size:28px;font-weight:650;letter-spacing:-1px;margin:0 0 4px;line-height:1.3}.introdate{font-size:13px;color:var(--muted);margin:0}.introactions{display:flex;align-items:center;gap:10px}.introactions .secondary{display:flex;align-items:center;gap:8px;background:transparent}.introactions svg{width:17px;height:17px}.layout{display:grid;grid-template-columns:292px minmax(0,1fr);gap:26px;align-items:start}.sidebar{position:sticky;top:20px}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}.calendarcard{padding:18px}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:12px}h2{font-size:17px;font-weight:650;letter-spacing:-.4px;margin:0}.calendarcard h2{font-size:14px}.monthbar{display:flex;align-items:center;justify-content:space-between;gap:5px;margin:18px 0 12px}.monthname{font-size:13px;font-weight:550}.arrows{display:flex;gap:2px;align-items:center}.iconbutton{background:transparent;display:grid;place-items:center;min-height:34px;min-width:32px;border:1px solid var(--line);border-radius:7px;padding:4px}.iconbutton:hover,.edit:hover{background:var(--raised)}.iconbutton svg{width:16px;height:16px}.textbutton{background:none;border:0;color:var(--green);font-size:12px;font-weight:500;min-height:36px;padding:7px 9px}.textbutton:hover{text-decoration:underline;text-underline-offset:3px}.weekdays,.dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekdays{font-size:9px;color:var(--muted);text-align:center;margin-bottom:7px}.weekdays>div{padding:4px 0}.day{height:37px;padding:3px;border:1px solid transparent;border-radius:7px;background:none;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.day:hover{background:var(--raised)}.day.other{color:#6f8174}.day.logged{background:#263728}.day.today{border-color:#6a815d}.day.selected{background:var(--green);border-color:var(--green);color:#1b2b15;font-weight:700}.dots{display:flex;gap:3px;height:3px}.dot{width:3px;height:3px;border-radius:50%;background:#b1d68d}.dot.neutral{background:#bcae8d}.day.selected .dot{background:#335025}.day.selected .dot.neutral{background:#786948}.legend{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:14px;margin-top:13px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.legend>span{display:flex;align-items:center;gap:5px}.key{width:6px;height:6px;border-radius:50%;background:#abc98f;display:inline-block}.neutralkey{background:#a79a7f}.calendarhint{font-size:11px;color:#94a28f;margin:14px 2px 0;line-height:1.7}.calendartoggle{display:none}.daycard{min-width:0}.daytop{display:flex;align-items:center;justify-content:space-between;gap:12px}.dayheading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.datechip{font-size:11px;color:#b9c8b0;padding:3px 7px;background:#243326;border:1px solid #354a33;border-radius:5px;white-space:nowrap}.dayintro{color:var(--muted);font-size:12px;margin:7px 0 0}.sortbar{display:flex;align-items:center;gap:9px;justify-content:flex-end;margin:15px 0 12px}.sortbar label{margin:0;font-size:11px;font-weight:400;color:var(--muted)}.sortbar select{width:auto;max-width:200px;font-size:12px;background:transparent;padding:6px 28px 6px 9px;min-height:34px;border-radius:7px}.sorthelp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.practice{padding:17px 18px;margin-top:10px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.practicehead{display:flex;align-items:center;justify-content:space-between;gap:18px}.taskidentity{min-width:0}.practicetitle{font-size:15px;font-weight:600;line-height:1.5;margin:0;overflow-wrap:anywhere;letter-spacing:-.2px}.practicetags{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:7px}.category{font-size:10px;color:#aebda9;letter-spacing:.4px;text-transform:uppercase;display:inline-flex;align-items:center;gap:5px}.category:before{content:'';width:4px;height:4px;background:#879d78;border-radius:50%}.difficultybadge{font-size:11px;color:#c1cdb9;white-space:nowrap;display:inline-block;font-weight:500}.practicetags .difficultybadge{border-left:1px solid #465441;padding-left:8px}.recordbutton{display:flex;gap:7px;align-items:center;justify-content:center;border:1px solid #a8c58d;border-radius:8px;background:var(--green);color:#1b2b15;padding:9px 13px;min-height:42px;font-size:12px;font-weight:650;white-space:nowrap;flex-shrink:0}.recordbutton svg{width:15px;height:15px}.recordbutton:hover,.primary:hover{background:#cde7b1}.taskfooter{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px}.daycounts{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}.daycounts .dot{display:inline-block;width:5px;height:5px}.tasktools{display:flex;align-items:center;gap:8px}.historylink{border:0;background:none;color:#bbcab2;font-size:12px;display:flex;align-items:center;gap:5px;min-height:32px;padding:2px 5px}.historylink svg{width:14px;height:14px}.historylink:hover{text-decoration:underline}.edit{background:none;border:0;color:#9daf99;min-width:32px;min-height:32px;display:grid;place-items:center;padding:6px;border-radius:7px}.edit svg{width:14px;height:14px}.dayscenarios{border-top:1px solid var(--line);margin-top:12px}.dayscenarios summary{cursor:pointer;font-size:11px;min-height:38px;padding:11px 0 0;color:#b6c5ad}.scenariorow{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-top:1px solid #2a392e;background:none;text-align:left;width:100%;padding:10px 0;min-height:50px;color:var(--ink)}.scenariorow:first-of-type{margin-top:9px}.scenariorow strong{font-size:12px;font-weight:500;display:block;overflow-wrap:anywhere}.scenariorow small{color:var(--muted);font-size:11px;display:block;margin-top:3px}.scenariorow:hover strong{color:var(--green)}.primary,.secondary,.danger{min-height:42px;border-radius:8px;padding:9px 14px;font-size:12px;font-weight:550;border:1px solid var(--line);background:var(--raised);color:var(--ink)}.primary{background:var(--green);border-color:var(--green);color:#1b2b15}.secondary:hover{background:#2a392d}.danger{color:#e0b59a;background:transparent;margin-right:auto}.danger:hover{background:#3c2a22}.add{display:flex;align-items:center;gap:6px;white-space:nowrap}.add svg{width:16px;height:16px}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:16px 0;margin:28px 0 12px;color:#91a08f;font-size:11px}.footlinks{display:flex;flex-wrap:wrap;gap:10px}.footer button{background:none;border:0;padding:6px 0;font-size:11px;color:#adbea5;cursor:pointer;min-height:32px}.footer button:hover{text-decoration:underline}.empty{text-align:center;padding:35px 15px;color:var(--muted);border:1px dashed var(--line);border-radius:12px;font-size:13px}.empty svg{width:25px;height:25px;color:var(--green)}.empty p{max-width:270px;margin:10px auto 0}.eyebrow{color:#a7bc98;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;margin-bottom:12px}
dialog{border:1px solid #3c4d3e;border-radius:16px;padding:25px;max-width:460px;width:calc(100% - 28px);max-height:calc(100dvh - 28px);overflow-y:auto;background:var(--card);color:var(--ink);box-shadow:0 30px 100px #0006}dialog::backdrop{background:#050906b8;backdrop-filter:blur(5px)}dialog h2{font-size:23px;line-height:1.35;font-weight:600;letter-spacing:-.7px;margin:0 0 8px}dialog p{font-size:12px;color:var(--muted);line-height:1.65;margin:8px 0 0}label{display:block;font-size:12px;font-weight:500;margin:17px 0 7px}label>span[style]{color:var(--muted)!important}input,textarea,select{width:100%;min-height:44px;border:1px solid #40513f;border-radius:8px;padding:10px 12px;color:var(--ink);background:#111a14}input::placeholder,textarea::placeholder{color:#82937f}textarea{resize:vertical;min-height:80px}select:disabled{color:#a9b7a1;opacity:.7}input[type=datetime-local]{min-width:0}.formhelp{font-size:11px!important;color:#a2b19a!important;margin:7px 0 0!important;line-height:1.5!important}.formerror{font-size:12px!important;color:#ecc09e!important;line-height:1.6;margin:12px 0 0!important;white-space:pre-line}.formerror:empty{display:none}.modalactions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px;padding-top:15px;border-top:1px solid var(--line)}.dialoghead{display:flex;align-items:start;justify-content:space-between;gap:16px}.dialoghead .iconbutton{min-width:34px;min-height:34px}.dialoghead h2{margin-bottom:0}.historyname{font-size:13px!important;color:#bac8b2!important;overflow-wrap:anywhere;margin:9px 0 17px!important}.historynote{font-size:12px!important;margin:0 0 16px!important;white-space:pre-wrap}.outcomefields{display:flex;gap:8px;border:0;padding:0;margin:18px 0 0}.outcomefields legend{font-size:12px;font-weight:500;margin-bottom:8px}.outcomeoption{position:relative;flex:1;margin:0;cursor:pointer}.outcomeoption input{position:absolute;width:1px;height:1px;min-height:0;opacity:0}.outcomeoption span{display:flex;align-items:center;justify-content:center;min-height:45px;border:1px solid #45533e;border-radius:8px;background:#111a14;font-size:12px;font-weight:500}.outcomeoption input:checked+span{background:#344c2b;color:#d1eab8;border-color:#88a76e}.outcomeoption input[value=not-resisted]:checked+span{background:#423929;color:#ead6b4;border-color:#a18b61}.outcomeoption input:focus-visible+span{outline:2px solid var(--green);outline-offset:3px}.specificrating{display:inline-block;font-size:11px!important;background:#263727;padding:5px 9px;border-radius:6px;color:#bfcdaf!important;margin:0 0 3px!important}#previousscenariowrap label{font-size:11px;margin-top:11px;color:var(--muted)}#previousscenario{font-size:12px;min-height:40px}.optionalfields{border-top:1px solid var(--line);margin-top:16px}.optionalfields summary{cursor:pointer;color:#b5c5ac;min-height:41px;display:list-item;padding:12px 0 5px;font-size:12px}.optionalfields summary>span{color:#8fa284;font-size:11px;margin-left:7px}.optionalfields label{margin-top:8px}.optionalfields textarea{margin-bottom:4px}#historydialog{max-width:500px}.sub{font-size:12px;color:var(--muted);margin:8px 0 0}.historycounts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 18px}.historycounts>div{display:flex;flex-direction:column;gap:4px;background:#233024;padding:14px;border-radius:9px}.historycounts strong{font:600 26px 'Manrope',sans-serif}.historycounts span{font-size:11px;color:#b0c0a6}.historyentry{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:16px 0}.entryscenario{font-size:13px;font-weight:600;line-height:1.5;margin:0 0 8px;overflow-wrap:anywhere}.outcomebadge{display:inline-block;font-size:11px;background:#2d4328;border:1px solid #405b35;color:#c1dca6;padding:3px 7px;border-radius:5px}.neutralbadge{background:#3d3426;border-color:#574a34;color:#d9c399}.entryrating{display:inline-block;font-size:11px;color:#acbda3;margin-left:8px}.historyentry time{display:block;font-size:11px;color:var(--muted);margin-top:8px}.historyentry p{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.historyfoot{position:sticky;bottom:-25px;background:var(--card);padding-top:16px;padding-bottom:2px}.historyfoot button{width:100%}#overviewdialog{max-width:700px}.overviewcontrols{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:17px}.overviewcontrols label{margin:0;color:var(--muted);font-size:12px}.overviewcontrols select{width:auto;min-width:140px;font-size:12px;min-height:38px}.overviewstats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 12px}.overviewstats>div{display:flex;flex-direction:column;gap:5px;background:#253225;padding:15px;border-radius:10px}.overviewstats strong{font:600 28px 'Manrope',sans-serif}.overviewstats span{font-size:11px;color:#b3c1a9}.evaluationhelp{font-size:11px;color:var(--muted);margin-bottom:16px}.evaluationhelp summary{cursor:pointer;padding:9px 0;min-height:36px}.evaluationhelp p{font-size:11px}.overviewitem{border:1px solid var(--line);border-radius:11px;padding:16px;margin-top:12px}.overviewitem h3{font-size:14px;font-weight:600;line-height:1.5;margin:0;overflow-wrap:anywhere}.overviewitem .sectionhead{align-items:flex-start;flex-wrap:wrap}.overviewitem .difficultybadge{font-size:11px}.overviewmeta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:10px 0 15px}.evaluation{font-size:11px;color:#c1cbb9;background:#303d2d;border-radius:5px;padding:3px 7px}.evaluation.easier{background:#304728;color:#c4dfad}.evaluation.harder{background:#403626;color:#ddc59b}.resultbar{height:8px;border-radius:6px;background:#7b6b50;overflow:hidden;margin-top:12px}.resultbar>span{display:block;height:100%;background:#a9ca86}.resultbar.noentries{background:#33412f}.resultcounts{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);margin-top:7px}.overviewitem>.textbutton{display:flex;align-items:center;gap:4px;padding-left:0;font-size:12px;margin:10px 0 -7px}.overviewitem>.textbutton svg{width:15px;height:15px}.scenarioanalysis{font-size:12px;color:var(--muted);margin-top:12px}.scenarioanalysis summary{cursor:pointer;min-height:38px;padding:10px 0}.situationanalysis{border-top:1px solid var(--line);padding:12px 0}.situationanalysis>strong{display:block;font-size:12px;color:var(--ink);font-weight:500;overflow-wrap:anywhere}.situationanalysis>.sub{display:block;font-size:11px}.authpanel{max-width:430px;margin:60px auto 30px;padding:0 20px}.authcard{padding:28px}.authcard h1{font-size:28px;font-weight:600;line-height:1.3;letter-spacing:-1px;margin:0 0 10px}.authcard>p{font-size:13px;color:var(--muted)}.authcard .primary{width:100%;margin-top:18px;min-height:46px}.authquiet{font-size:12px;color:#95a58c;text-align:center;margin-top:22px}.demolink{text-align:center;font-size:12px;margin-top:20px}.authcard .formerror{margin-top:15px!important}#authloading{font-size:12px}#notice:empty{display:none}#notice{font-size:12px;background:#3d3324;color:#ead3af;padding:12px 18px;text-align:center}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);border:1px solid #536c44;background:#2c4227;color:#e1f1d2;border-radius:9px;padding:12px 18px;font-size:12px;max-width:90%;text-align:center;z-index:20;box-shadow:0 5px 30px #0005}#toast:empty{display:none}
@media(max-width:840px){.shell{padding:0 18px}.topbar{height:62px}.brand{font-size:21px}.brandmark{height:28px;width:28px}.righthead{gap:5px}.private,#syncstatus{display:none}.intro{padding:22px 0 20px}.intro h1{font-size:25px}.introdate{font-size:12px}.introactions .secondary{padding:8px 11px;min-height:42px}.introactions svg{display:none}.layout{grid-template-columns:1fr;gap:20px}.sidebar{position:static}.calendartoggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:#c7d5bd;padding:10px 13px;font-size:12px}.calendartoggle>span{display:flex;align-items:center;gap:8px}.calendartoggle svg{width:16px;height:16px}.calendartoggle>svg{transition:transform .15s}.calendartoggle[aria-expanded=true]>svg{transform:rotate(90deg)}.calendarcard{margin-top:8px;padding:16px}.calendarcard>.sectionhead,.calendarhint{display:none}.monthbar{margin:0 0 14px}.monthname{font-size:14px}.weekdays{font-size:10px}.day{height:44px;font-size:13px}.legend{font-size:11px;gap:15px}.calendarcard .iconbutton{min-height:40px;min-width:40px}.daytop h2{font-size:17px}.dayintro{font-size:12px}.add{font-size:11px;min-height:42px;padding:8px 11px}.add svg{height:14px;width:14px}.sortbar{margin:15px 0 12px}.sortbar select{min-height:40px;font-size:12px;max-width:210px}.practice{padding:15px;margin-top:10px}.practicehead{gap:10px;align-items:flex-start}.practicetitle{font-size:14px}.practicetags{gap:7px;margin-top:8px}.practicetags .difficultybadge{font-size:10px}.category{font-size:9px}.recordbutton{font-size:11px;padding:8px 10px;min-height:44px;gap:5px}.recordbutton svg{width:13px;height:13px}.taskfooter{margin-top:10px}.daycounts{font-size:10px}.tasktools{gap:2px}.historylink{font-size:11px;min-height:40px}.edit{min-width:40px;min-height:40px}.dayscenarios summary{min-height:42px;font-size:11px}.footer{flex-direction:column;align-items:flex-start;gap:8px;margin-top:22px;padding-top:13px;font-size:10px}.footlinks{gap:16px}.footer button{min-height:36px;font-size:11px}.preview{font-size:10px;padding:7px 10px;gap:5px}#demoexit{margin-left:5px}dialog{padding:20px;max-height:calc(100dvh - 20px);width:calc(100% - 20px)}dialog h2{font-size:22px}.modalactions{margin-top:18px}.modalactions button{min-height:44px}.historyfoot{bottom:-20px}.historyentry .edit{min-width:44px;min-height:44px}.overviewstats{gap:7px}.overviewstats>div{padding:12px 10px}.overviewstats strong{font-size:25px}.overviewstats span{font-size:10px}.overviewitem{padding:14px}.overviewitem .difficultybadge{font-size:10px}.authpanel{margin-top:35px}.authcard{padding:24px}.authcard h1{font-size:27px}}
@media(max-width:370px){.shell{padding:0 12px}.practice{padding:13px}.recordbutton{padding:8px;min-width:64px}.recordbutton svg{display:none}.datechip{display:none}.daytop{gap:8px}.practicetitle{font-size:13px}.preview>span{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.daytools{display:flex;align-items:center;gap:10px;flex-shrink:0}.daytools .sortbar{margin:0}.daytools .sortbar label{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.daytools select{max-width:170px;min-height:42px}.practice{padding-top:16px;padding-bottom:14px}.taskfooter{margin-top:8px}#practices{margin-top:16px}
@media(max-width:840px){.daytop{flex-wrap:wrap;gap:13px}.daytop>div:first-child{width:100%}.daytools{width:100%;justify-content:space-between}.daytools select{max-width:185px;min-height:42px}.dayintro{margin-top:5px}.practice{padding:14px}.taskfooter{margin-top:6px}#practices{margin-top:13px}.dayheading .datechip{display:none}}

.day.other{color:#899987}@media(max-width:840px){.category{font-size:10px}.practicetags .difficultybadge{font-size:11px}.daycounts{font-size:11px}}

/* Calendar outcomes use symbols and counts as well as colour. */
.dates{gap:4px}.day{height:65px;justify-content:flex-start;gap:4px;padding:5px 2px;border-radius:8px}.daynumber{line-height:16px}.calcounts{display:flex;flex-direction:column;gap:2px;width:100%;align-items:center;min-height:30px}.calcount{display:flex;justify-content:center;align-items:center;gap:3px;min-width:26px;max-width:100%;padding:0 3px;border-radius:3px;font-size:10px;font-weight:650;line-height:14px;font-variant-numeric:tabular-nums}.calcount b{font-size:11px;font-weight:700}.resistedcount{background:#35502b;color:#e0f3cd}.othercount{background:#543c25;color:#ffe0b5}.day.logged{background:#1f2c21}.day.not-resisted-only{background:#2c281e}.day.selected{background:#283b29;border:2px solid #bfdba0;padding:4px 1px;color:#f1f5ec}.day.selected .daynumber{font-weight:750;color:#d8edc2}.day.today:not(.selected){border-color:#72925c}.calendarlegend{gap:16px;font-size:11px}.calendarlegend b{font-size:14px;line-height:1}.legendcheck{color:#d7edb9}.legendother{color:#ffd4a0}.calendardetails{margin-top:14px;border-top:1px solid var(--line);padding-top:13px}.calendardate{font-size:12px;font-weight:550;margin-bottom:9px;color:#d0ddc7}.selectedoutcomes{display:flex;flex-wrap:wrap;gap:7px}.selectedoutcomes>span{font-size:11px;border-radius:5px;padding:5px 7px;display:flex;align-items:center;gap:5px}.selectedresisted{background:#2b4226;color:#dcefc8}.selectedother{background:#473724;color:#f4d8b2}.selectedoutcomes b{font-size:12px;white-space:nowrap}.calendardetails p{font-size:11px;color:var(--muted);margin:8px 0 0}@media(max-width:840px){.day{height:69px;padding:5px 2px}.day.selected{padding:4px 1px}.calcount{font-size:11px;line-height:16px;min-width:29px}.calcounts{min-height:34px}.calendarlegend{font-size:12px;gap:20px}.selectedoutcomes>span{font-size:12px;padding:7px 9px}.calendardate{font-size:13px}}

.day{height:54px;padding:3px 2px;gap:2px}.day.selected{padding:2px 1px}.daynumber{line-height:14px}.calcount{line-height:13px}.calcounts{min-height:28px}.calendardetails{margin:0 0 14px;padding:0;border:0}.calendardetails p{margin:6px 0 0}@media(max-width:840px){.day{height:56px;padding:3px 2px}.day.selected{padding:2px 1px}.calcount{line-height:14px}.calcounts{min-height:30px}}

.groupsbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 0;color:var(--muted);font-size:11px}.groupsbar .textbutton{font-size:11px;padding-right:0}#practices{margin-top:3px}.categorygroup{margin-top:14px}.categorygroup>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;min-height:38px;padding:4px 1px;color:#d8e4cf}.categorygroup>summary::-webkit-details-marker{display:none}.groupname{font-size:14px;font-weight:600;overflow-wrap:anywhere}.groupquantity{color:var(--muted);font-size:11px;border:1px solid var(--line);border-radius:5px;padding:0 6px}.groupchevron{margin-left:auto;color:#9fb091;display:flex}.groupchevron svg{width:15px;height:15px;transform:rotate(90deg)}.categorygroup:not([open]) .groupchevron svg{transform:rotate(0)}.categorygroup:not([open]){border-bottom:1px solid var(--line);padding-bottom:7px}.groupitems>.practice:first-child{margin-top:5px}#organisedialog{max-width:560px}.organisegroup{border:1px solid var(--line);border-radius:10px;margin-top:15px;overflow:hidden}.organisegrouphead{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#243225;padding:10px 12px}.organisegrouphead h3{font-size:13px;line-height:1.5;margin:0;font-weight:600;overflow-wrap:anywhere}.movecontrols{display:flex;align-items:center;gap:5px;flex-shrink:0}.movecontrols .iconbutton{min-width:36px;min-height:36px}.moveup svg{transform:rotate(90deg)}.movedown svg{transform:rotate(-90deg)}.organisetask{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid var(--line)}.organisetask>span{font-size:12px;overflow-wrap:anywhere}.overviewcategory{color:#cfddc4;font-size:11px;border:1px solid #475d3d;border-radius:5px;padding:2px 6px}@media(max-width:840px){.categorygroup{margin-top:10px}.categorygroup>summary{min-height:43px}.groupname{font-size:13px}.groupsbar .textbutton{min-height:40px}.movecontrols .iconbutton{min-width:42px;min-height:42px}.organisetask,.organisegrouphead{padding:10px}.organisetask>span{font-size:12px}}

/* Prevent Safari's small-field focus zoom without restricting pinch-to-zoom. */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
dialog, dialog form, .authpanel, .authcard {
  min-width: 0;
}
input, textarea, select {
  min-width: 0;
  max-width: 100%;
}
@media (max-width: 840px), (hover: none) and (pointer: coarse) {
  input, textarea, select {
    font-size: 16px !important;
  }
}
@media (max-width: 840px) {
  .daytools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .daytools .sortbar {
    min-width: 0;
    max-width: 100%;
  }
  .daytools .sortbar select {
    width: 100%;
    max-width: 100%;
  }
}

/* Category colours are shared by group outlines and their compulsion dots. */
.categorygroup{border:1px solid var(--group-colour,var(--line));border-left-width:3px;border-radius:12px;padding:8px 12px 12px;margin-top:14px}
.categorygroup:not([open]){border-bottom-color:var(--group-colour,var(--line));padding-bottom:8px}
.compulsioncategorydot{display:inline-block;vertical-align:middle;width:8px;height:8px;border-radius:50%;margin:0 8px 2px 0;background:var(--group-colour);box-shadow:0 0 0 1px #ffffff18;flex-shrink:0}
.organisegroup{border-color:var(--group-colour,var(--line));border-left-width:3px}
.groupcolourpicker{width:36px;height:36px;min-height:36px;min-width:36px;padding:3px;border:1px solid #718368;border-radius:7px;background:#162017;cursor:pointer}
.groupcolourpicker::-webkit-color-swatch-wrapper{padding:2px}.groupcolourpicker::-webkit-color-swatch{border:0;border-radius:3px}.groupcolourpicker::-moz-color-swatch{border:0;border-radius:3px}
#celebrationdialog{padding:0;max-width:361px;width:calc(100% - 32px);overflow:hidden;border:1px solid #79965f;border-radius:15px;background:#142016}
#celebrationdialog::backdrop{background:#03070499;backdrop-filter:blur(3px)}
.celebrationhead{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 12px}
.celebrationhead h2{font-size:17px;letter-spacing:-.3px;margin:0}.celebrationhead button{min-width:36px;min-height:36px;font-size:21px}
#celebrationimage{display:block;width:100%;height:auto;max-height:70dvh;object-fit:contain;background:#101613}
@media(max-width:840px){.categorygroup{padding:6px 8px 9px}.categorygroup:not([open]){padding-bottom:6px}.groupcolourpicker{width:42px;height:42px;min-width:42px;min-height:42px}.organisegrouphead{gap:8px}.organisegrouphead .movecontrols{gap:4px}.compulsioncategorydot{width:7px;height:7px;margin-right:6px}.celebrationhead button{min-width:42px;min-height:42px}}

#disablecelebration{display:block;width:100%;min-height:42px;border:0;border-top:1px solid var(--line);background:#19251c;color:#c8d7bd;font-size:12px;padding:10px;cursor:pointer}#disablecelebration:hover{background:#293c24}#celebrationtoggle[aria-pressed=true]{color:#c1dca5}

/* One bounded scroller keeps touch scrolling and the action bar reliable. */
html:has(#organisedialog[open]){overflow:hidden}
#organisedialog{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;padding:0;border:0;border-radius:0;overflow:hidden;overscroll-behavior:none}
#organiseform{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
.organiseheader,.organisefooter{padding:20px max(24px,env(safe-area-inset-left)) 20px max(24px,env(safe-area-inset-right));background:var(--card)}
.organiseheader{padding-top:max(20px,env(safe-area-inset-top));border-bottom:1px solid var(--line)}
.organiseheader h2{margin-bottom:6px}.organiseheader p{margin:0;max-width:720px;color:var(--muted)}
#organiselist{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:0 max(24px,env(safe-area-inset-left)) 20px max(24px,env(safe-area-inset-right));scroll-padding:16px}
#organiselist .organisegroup{max-width:960px;margin-left:auto;margin-right:auto}
.organisefooter{border-top:1px solid var(--line);padding-bottom:max(16px,env(safe-area-inset-bottom))}
.organisefooter .formerror:empty{display:none}.organisefooter .modalactions{border:0;padding:0;margin:0}.organisefooter button{min-height:44px}
@media(max-width:840px){.organiseheader,.organisefooter{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.organiseheader{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:14px}.organiseheader h2{font-size:22px}.organiseheader p{font-size:12px}#organiselist{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}

/* A translucent category tint sits over the dark compulsion card surface. */
.categorygroup .practice{background:color-mix(in srgb,var(--group-colour) 13%,var(--card))}

/* A quiet, category-matched action on tinted compulsion cards. */
.categorygroup .recordbutton{background:color-mix(in srgb,var(--group-colour) 8%,var(--card));border-color:color-mix(in srgb,var(--group-colour) 55%,var(--line));color:color-mix(in srgb,var(--group-colour) 35%,var(--ink))}
@media(hover:hover){.categorygroup .recordbutton:hover{background:color-mix(in srgb,var(--group-colour) 23%,var(--card));border-color:var(--group-colour)}}
.categorygroup .recordbutton:active{background:color-mix(in srgb,var(--group-colour) 30%,var(--card))}
#editortitle:focus{outline:none}

/* Partial resistance has its own blue outcome, separate from either endpoint. */
.outcomeoption input[value=partially-resisted]:checked+span,.partialbadge,.partialcount,.selectedpartial{background:#263e52;color:#d2e8fb;border-color:#769dbf}
.outcomeoption span{padding:8px;text-align:center;height:100%}
.resultbar{display:flex}.resultbar .partialsegment{background:#83b3d9}.resultcounts{flex-wrap:wrap;gap:4px 12px}
.historycounts{grid-template-columns:repeat(3,minmax(0,1fr))}.overviewstats{grid-template-columns:repeat(4,minmax(0,1fr))}
.calcounts{gap:1px}.calcount{line-height:13px}.day{height:76px}
.daycounts{overflow-wrap:anywhere}
@media(max-width:840px){.overviewstats{grid-template-columns:repeat(2,minmax(0,1fr))}.outcomefields{flex-direction:column;gap:7px}.outcomeoption span{min-height:44px}.day{height:78px}.calcount{line-height:15px}.taskfooter{flex-wrap:wrap}.daycounts{flex:1 1 100%}.tasktools{margin-left:auto}}
