

:root{--bg:#faf8f5;--cd:#fff;--tx:#241f2b;--mu:#6e6678;--bd:#e5dfd8;--ac:#8b3a62;--rd:#c0392b;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17141b;--cd:#211d27;--tx:#efeaf3;--mu:#a79fb2;--bd:#3a3445;--ac:#d77aa6}}
:root[data-theme=dark]{--bg:#17141b;--cd:#211d27;--tx:#efeaf3;--mu:#a79fb2;--bd:#3a3445;--ac:#d77aa6}
html{scroll-padding-top:env(safe-area-inset-top,0px)}*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.5 system-ui,"Segoe UI",Arial,sans-serif}
nav{display:flex;gap:4px;overflow-x:auto;padding:8px;background:var(--cd);border-bottom:1px solid var(--bd);position:sticky;top:env(safe-area-inset-top,0px);z-index:5}
nav button{white-space:nowrap;border:0;background:none;color:var(--mu);padding:7px 12px;border-radius:20px;cursor:pointer;font:inherit}nav button.on{background:var(--ac);color:#fff}
main{max-width:1150px;margin:auto;padding:12px}.card{background:var(--cd);border:1px solid var(--bd);border-radius:14px;padding:14px;margin-bottom:12px}
.g{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.g4{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:12px}
h2{margin:6px 0 10px;font-size:20px}h3{margin:0 0 8px;font-size:16px}.mu{color:var(--mu);font-size:13px}
input,select,textarea,button{font:inherit;color:var(--tx);background:var(--bg);border:1px solid var(--bd);border-radius:8px;padding:5px 8px;max-width:100%}textarea{width:100%;min-height:60px}button{cursor:pointer}button.p{background:var(--ac);color:#fff;border-color:var(--ac)}button.d{color:var(--rd)}
.big{font-size:46px;font-weight:700;line-height:1.1}.nt{text-align:center;padding:10px;margin:0}.nt.bad .big{color:var(--rd)}
.w{background:#fdecea;color:#8a1f14;border-radius:8px;padding:6px 10px;margin:4px 0;font-size:14px}.i{background:#eef4ff;color:#1d3a6e;border-radius:8px;padding:6px 10px;margin:4px 0;font-size:14px}
.ch2{font-size:11px;border-radius:10px;padding:1px 7px;border:1px solid var(--bd);margin-inline-end:3px}.bk{background:#d9f2e3;color:#14532d}.es{border-style:dashed}.miss{background:#fdecea;color:#8a1f14}.pd{background:#cfe3ff;color:#123c7a}
.fc{border-inline-start:6px solid var(--bd)}.fc.c{border-color:#2e8b57}.fc.v{border-color:#e08a1e}.fc.u{border-color:#fff;outline:1px solid var(--bd)}
.wk{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}.dy{border:1px solid var(--bd);border-radius:10px;padding:6px;background:var(--cd)}.dy.t{border-color:var(--ac)}
.ev{margin:3px 0;padding:3px 6px;border-inline-start:4px solid;font-size:12px;border-radius:6px;display:flex;gap:4px;align-items:flex-start}.ev span{cursor:pointer;flex:1}.ev.dim{opacity:.55}.ev.done{background:#d9f2e3;color:#14532d}.ev.skip span{text-decoration:line-through;opacity:.6}.ev.trav{opacity:.5;font-style:italic}
.ck{padding:0 4px;font-size:16px;border:0;background:none;line-height:1}
.mg{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mg i{font-style:normal;text-align:center;padding:5px 0;border-radius:5px;font-size:13px;cursor:pointer}.mg.mini i{font-size:10px;padding:2px 0}.mg i.hh{cursor:default;color:var(--mu)}
.mg .c{background:#a8e0bf;color:#073}.mg .v{background:#fbd89a;color:#5a3500}.mg .u{border:1px solid var(--bd)}.mg .va{background:#a6dcd9;color:#064}.mg .td{outline:2px solid var(--ac)}
table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:4px;border-bottom:1px solid var(--bd);text-align:start}svg.k{width:100%;max-width:420px}
#md{position:fixed;inset:0;background:#0007;display:none;align-items:center;justify-content:center;z-index:9;padding:12px}#md>div{background:var(--cd);border-radius:14px;padding:16px;max-width:460px;width:100%;max-height:90vh;overflow:auto}#md label{display:block;margin:6px 0 2px;font-size:13px;color:var(--mu)}#md input:not([type=checkbox]),#md select,#md textarea{width:100%}
label.r{display:block;margin:6px 0 2px;font-size:13px;color:var(--mu)}.f2{display:grid;grid-template-columns:1fr 1fr;gap:6px}.f3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.f3 label{min-width:0}.f3 input{min-width:0;width:100%}@media(max-width:540px){.f3{gap:4px}.f3 input{font-size:13px;padding:8px 3px}}.ev.rescheduled-old{opacity:.46;background:#f1efed!important;border-style:dashed}.ev.rescheduled-old span{text-decoration:line-through}.ev.rescheduled-old .ck{display:none}summary{cursor:pointer}

body{background:var(--bg);background:linear-gradient(180deg,color-mix(in srgb,var(--ac) 11%,var(--bg)),var(--bg) 300px) no-repeat;font-family:Inter,system-ui,"Segoe UI",Arial,sans-serif}
nav{justify-content:center;flex-wrap:wrap;box-shadow:0 2px 14px #0000000f;gap:6px;padding:10px}nav button{font-weight:500;transition:.15s}nav button:hover{color:var(--ac);background:color-mix(in srgb,var(--ac) 10%,transparent)}nav button.on{box-shadow:0 4px 12px color-mix(in srgb,var(--ac) 35%,transparent)}
main{text-align:center;padding:16px 12px 40px}h2{font-size:28px;font-weight:800;margin:18px 0 16px;color:var(--ac);letter-spacing:-.3px}h3{font-size:17px;font-weight:700}
.card{box-shadow:0 4px 18px #00000012;border-radius:20px;padding:18px}.sec{font-size:19px;font-weight:700;margin:26px 0 10px}
.g4{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:12px}.g4>*{flex:1 1 130px}.g{justify-items:center}.g>.card{width:100%}
.nt{flex:1 1 160px!important;max-width:230px;border-top:5px solid var(--ac);padding:16px 10px;transition:transform .15s}.nt:hover{transform:translateY(-2px)}.big{color:var(--ac);font-size:50px}.nt.bad{border-top-color:var(--rd)}
td,th{text-align:center}.ev,.ev span,textarea,#md,#md label{text-align:start}.dy{text-align:center}.dy .ev{text-align:start}summary{font-weight:600}
button.p{box-shadow:0 3px 10px color-mix(in srgb,var(--ac) 30%,transparent)}.mg{max-width:520px;margin:auto}.mg.mini{max-width:none}

table.nb{width:auto;margin:6px auto 0}table.nb td{border:0;text-align:start;padding:3px 12px;white-space:nowrap}
table.nb2{width:100%;margin:8px 0}.nb2 td{border-bottom:1px solid var(--bd);text-align:start;padding:7px 4px}.nb2 td:nth-child(2){text-align:end}
.li{padding:9px 14px;margin:6px 0;border-radius:12px;background:color-mix(in srgb,var(--ac) 9%,transparent);text-align:start}#md h3{text-align:center}
.yr{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,175px));gap:6px 10px;justify-content:center}.yr .mu{margin-top:4px}.mg.mini i{padding:1px 0}.mg.mini{gap:1px}

.nt{background:linear-gradient(180deg,color-mix(in srgb,var(--tc,var(--ac)) 11%,var(--cd)),var(--cd) 75%);border-top-color:var(--tc,var(--ac))}.nt .big{color:var(--tc,var(--ac))}
.nt>.mu:first-child{font-weight:800;font-size:12.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--tc,var(--ac))}.nt.bad{--tc:#c0392b!important}
.sec{display:table;margin:26px auto 12px;padding:5px 20px;border-radius:24px;background:color-mix(in srgb,var(--tc,var(--ac)) 14%,transparent);color:var(--tc,var(--ac));font-size:17px}
.dy.t{background:color-mix(in srgb,var(--ac) 8%,var(--cd))}.dy>b{color:var(--ac)}

.lg{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;margin-top:14px;font-size:13px}.lg span{display:inline-flex;align-items:center;gap:6px;background:var(--bg);padding:5px 13px;border-radius:20px;border:1px solid var(--bd);font-weight:600}
.sw{display:inline-block;width:16px;height:16px;border-radius:5px}.sw.c{background:#a8e0bf}.sw.v{background:#fbd89a}.sw.u{border:1px solid var(--tx)}.sw.va{background:#a6dcd9}.sw.td{outline:2px solid var(--ac)}
.pk{background:#fff1c9;color:#6b4a00;border-radius:8px;padding:6px 9px;margin:6px 0;font-size:12.5px;text-align:start;font-weight:600}.dot{display:inline-block;width:12px;height:12px;border-radius:50%}
.past{opacity:.5;filter:grayscale(1)}.ev.unsure{opacity:.8}.ev.unsure span{font-style:italic}.mg i sup{font-size:.7em;color:#d4a017;margin-inline-start:1px}
#md .dk{display:inline-flex;align-items:center;gap:4px;margin:3px 10px 3px 0;color:var(--tx)}
.g label.r{text-align:left;display:flex;flex-direction:column;gap:5px}.g label.r select{width:100%}#mn details.card{text-align:left}#mn details.card>summary{cursor:pointer}
.li input[type=checkbox]{width:19px;height:19px;flex-shrink:0}.li button{flex-shrink:0}#reschedFields{padding:10px;background:color-mix(in srgb,var(--ac) 7%,var(--cd));border-radius:10px;margin:8px 0}
.dashboard-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start;margin:12px 0}.dashboard-plans>.card{margin:0;min-width:0}.dashboard-plans .ev{font-size:15px;line-height:1.5}.dashboard-plans .li{font-size:15px}.dashboard-week .ev,.wk .ev{font-size:15px;line-height:1.5;padding:6px 8px}.dashboard-week .dy,.wk .dy{min-width:0}.dashboard-week .pk,.wk .pk{font-size:14px;line-height:1.45}.dashboard-plans .card h3,.dashboard-week h3{font-size:20px}@media(max-width:950px){.dashboard-plans{grid-template-columns:1fr}}

.festival-heading{font-size:1.15rem;font-weight:700;padding:5px 0 13px;border-bottom:1px solid #e6ded7;margin-bottom:12px}
.fc table{margin:12px 0}.fc label.r{margin:8px 0}.fc{scroll-margin-top:75px}
.conflict-warning{background:#fff1dc;border:1px solid #e9bd71;color:#74490d;border-radius:8px;padding:6px 9px;margin:5px 0;font-size:.86em}

/* Compact festival cards: 3 desktop / 2 tablet / 1 mobile */
.festival-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch;margin-top:12px;text-align:left}
.festival-grid .fc{min-width:0;margin:0;padding:12px;border-radius:14px;box-shadow:0 2px 10px #0000000a;display:flex;flex-direction:column;height:100%;box-sizing:border-box}
.festival-grid .festival-heading{font-size:15px;line-height:1.4;margin:0 0 8px;padding:0 0 7px}
.festival-grid .fc .f2{gap:6px}.festival-grid .fc .f2 input{width:100%;min-width:0}
.festival-grid .fc label.r{margin:4px 0;font-size:12px;min-width:0}
.festival-grid .fc .g4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:6px 0}
.festival-grid .fc .g4>*{min-width:0;margin:0}
.festival-grid .fc input:not([type=checkbox]),.festival-grid .fc select,.festival-grid .fc textarea{width:100%;min-width:0;font-size:13px;padding:4px 5px}
.festival-grid .fc input[type=date]{font-size:12px;padding:4px 2px}
.festival-grid .fc h4{margin:8px 0 2px!important;font-size:13px}
.festival-grid .fc table{margin:4px 0;font-size:12px;table-layout:fixed}
.festival-grid .fc td,.festival-grid .fc th{padding:3px 2px;text-align:center;overflow-wrap:anywhere}
.festival-grid .fc td:first-child,.festival-grid .fc th:first-child{text-align:left;width:32%}
.festival-grid .fc td:nth-child(2),.festival-grid .fc th:nth-child(2){width:19%}
.festival-grid .fc td:nth-child(3),.festival-grid .fc th:nth-child(3){width:30%}
.festival-grid .fc td:nth-child(4),.festival-grid .fc th:nth-child(4){width:19%}
.festival-grid .fc input[type=checkbox]{width:16px;height:16px;vertical-align:middle}
.festival-grid .fc .mu{font-size:11px;line-height:1.35}
.festival-grid .fc h3{font-size:14px;margin:7px 0 3px}
.festival-grid .fc textarea{min-height:48px}
.festival-grid .fc button{font-size:12px;padding:3px 7px}
.festival-grid .fc.not-going{opacity:.48;filter:grayscale(1);background:#eeeeee!important;border-color:#b9b9b9!important}
.festival-grid .fc details{border:1px solid #e5dfda;border-radius:9px;padding:5px 8px;margin:7px 0;background:#fff}
.festival-grid .fc details summary{cursor:pointer;font-size:13px;font-weight:700;list-style:revert;padding:4px 0}
.festival-grid .fc details[open] summary{margin-bottom:5px;border-bottom:1px solid #eee}
.festival-grid .fc .festival-footer{margin-top:auto;padding-top:6px}
@media(max-width:1000px){.festival-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.festival-grid{grid-template-columns:1fr}.festival-grid .fc{padding:12px}}

/* Festival overview: readable two-column cards, details on demand */
.festival-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.festival-grid .fc{padding:18px;gap:0;min-height:285px}
.fest-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.fest-identity{min-width:0;flex:1}.fest-identity strong{display:block;font-size:18px;line-height:1.3;color:var(--tx)}
.fest-sub{font-size:13px;color:var(--mu,#6b6476);margin-top:5px}
.festival-grid .fc .fest-priority{width:auto;max-width:42%;font-size:12px;padding:6px 7px;flex-shrink:0}
.fest-stats{display:flex;flex-wrap:wrap;gap:7px 16px;margin:14px 0 10px;padding:10px 0;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);font-size:13px}
.fest-stats b{font-size:15px}.fest-quick{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;margin-bottom:6px}
.fest-quick label{display:flex;align-items:center;gap:6px}.fest-quick a{color:var(--ac);font-weight:600;text-decoration:none}
.festival-grid .fc details.fest-section{margin:4px 0;padding:0 10px;background:transparent;border:1px solid var(--bd);border-radius:9px}
.festival-grid .fc details.fest-section summary{padding:9px 2px;font-size:13px;font-weight:650;list-style:revert}
.fest-hint{float:right;font-size:11px;font-weight:400;color:var(--mu,#6b6476);margin-left:8px}
.fest-edit-inner{padding:6px 0 10px}.festival-grid .fc .fest-edit-inner .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
.fest-check{display:flex;gap:7px;align-items:center;font-size:12px}.fest-absence{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0;font-size:12px}
.fest-absence select{max-width:65%}.fest-bottom{margin-top:auto;padding-top:7px;text-align:right}.festival-grid .fc .fest-bottom button{font-size:11px;opacity:.75}
@media(max-width:760px){.festival-grid{grid-template-columns:1fr}}
/* Clearer festival status, editable heading and readable absence controls */
.festival-grid .fc{border-inline-start-width:12px!important}
.festival-grid .fc.v{border-inline-start-color:#e08a1e!important}
.festival-grid .fc.u{border-inline-start-color:#b7a4a0!important}
.festival-grid .fc.n{border-inline-start-color:#929292!important}
.festival-grid .fc .fest-title-edit{border:0;background:transparent;margin:0;padding:0;flex:1;min-width:0}
.festival-grid .fc .fest-title-edit>summary{list-style:none;cursor:pointer;border:0;margin:0;padding:0;font-size:inherit}
.festival-grid .fc .fest-title-edit>summary::-webkit-details-marker{display:none}
.festival-grid .fc .fest-title-edit>summary strong{font-size:22px;line-height:1.3}
.festival-grid .fc .fest-title-edit>summary .fest-sub{font-size:15px;line-height:1.5;margin-top:4px}
.fest-edit-pencil{font-size:15px;color:var(--ac);padding-left:4px}
.festival-grid .fc .fest-title-edit[open]>summary{border-bottom:0;margin-bottom:6px}
.festival-grid .fc .fest-title-fields{padding:6px 0 10px}
.festival-grid .fc .fest-title-fields label.r{font-size:14px}
.festival-grid .fc .fest-title-fields input{font-size:14px;padding:7px 6px}
.festival-grid .fc .fest-absence{font-size:17px;padding:10px 2px;gap:12px;font-weight:500}
.festival-grid .fc .fest-absence select{font-size:16px;padding:8px;max-width:68%}
.festival-grid .fc details.fest-section summary{font-size:16px}
.festival-grid .fc .fest-hint{font-size:15px}
@media(max-width:620px){.festival-grid .fc .fest-absence{font-size:15px}.festival-grid .fc .fest-absence select{font-size:14px}}
.growth-vision-progress{gap:12px}.growth-vision-progress>div:first-child{min-width:0;flex:1}.growth-vision-progress small{display:block;font-size:15px;color:#756a79;font-weight:400;margin-top:5px}.growth-vision-actions{display:flex;gap:5px;align-items:center}.growth-vision-actions select{width:130px;padding:7px;font-size:13px}.growth-vision-actions button{padding:6px 9px}@media(max-width:520px){.growth-vision-progress{flex-wrap:wrap}.growth-vision-actions{width:100%;justify-content:flex-end}}
.goal-edit-btn{border:0;background:transparent;color:#843b63;font-size:12px;padding:3px 5px;cursor:pointer}.goal-origin{display:block;color:#756a79;font-size:13px;font-weight:400;margin-top:5px}.weekly-goal-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto auto}
/* Clear, unified goal tracking */
.growth-unified{max-width:1100px;margin:0 auto;padding:24px!important}
.growth-unified-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.growth-unified-heading h3{margin:0}.growth-unified-heading span,.growth-unified-subhead{color:#806f7b;font-size:14px}
.growth-unified-group{padding:22px 0;border-top:1px solid #e9e0e4}
.growth-unified-top{display:flex;justify-content:space-between;align-items:center;gap:16px}
.growth-unified-top h3,.growth-unlinked h3{margin:0 0 8px;color:#422a3a;font-size:20px}
.growth-unified-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.growth-unified-actions strong{font-size:20px;color:#873e66}
.growth-unified-group .growth-slider{display:block;width:100%;margin:13px 0 17px}
.growth-unified-subhead{display:flex;justify-content:space-between;gap:12px;font-weight:650;margin:0 0 6px}
.simple-week-goal{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #f0e9eb}
.simple-week-goal:last-child{border-bottom:0}.simple-week-title{flex:1;min-width:0;font-size:16px;font-weight:600;line-height:1.4;text-align:left}
.simple-week-title small{display:block;color:#81727e;font-size:12px;font-weight:400;margin-top:3px}
.simple-week-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}.simple-week-actions select{width:155px;max-width:155px;font-size:14px;padding:9px 8px}
.simple-week-actions button,.growth-unified-actions button{padding:8px 11px;min-width:36px}
.growth-unified-add{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid #e9e0e4;padding-top:8px}
.weekly-goals-panel .simple-week-goal{padding:10px 0}
@media(max-width:700px){.growth-unified-add{grid-template-columns:1fr}.simple-week-goal{align-items:flex-start;flex-direction:column;gap:7px}.simple-week-actions{width:100%}.simple-week-actions select{width:auto;max-width:none;flex:1}.growth-unified{padding:16px!important}}
.milestone-library{margin-top:16px!important;text-align:left}.milestone-library>summary{font-size:17px;font-weight:750;cursor:pointer}
.milestone-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #eee5e9}
.milestone-main{flex:1;min-width:0}.milestone-main b{font-size:14px}.milestone-main small{display:block;color:#817381;font-size:11px;margin-top:4px}
.milestone-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.milestone-controls select{font-size:12px;max-width:125px}
.milestone-week-label{display:flex;align-items:center;gap:6px;font-size:11px;color:#716673}.milestone-week-label input{max-width:155px;font-size:12px;padding:7px}
.picker-option{display:flex;align-items:center;gap:9px;padding:12px;border-bottom:1px solid #eee5e9;text-align:left}
.picker-option input{width:auto}.picker-option span{font-size:14px}.picker-option small{display:block;color:#817381;font-size:11px}
.picker-list{max-height:55vh;overflow:auto}.growth-linked-milestone{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #eee5e9;text-align:left;font-size:13px}
.growth-linked-milestone small{font-size:11px;color:#817381;white-space:nowrap}
@media(max-width:700px){.milestone-row{flex-direction:column;align-items:stretch}.milestone-controls{justify-content:flex-start}.growth-linked-milestone{align-items:flex-start;flex-direction:column}}
.growth-linked-milestone{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid #eee5e9;text-align:left}
.growth-linked-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.growth-linked-copy>span{font-size:15px;font-weight:600}.growth-linked-copy small{font-size:12px;color:#817381}
.growth-linked-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.growth-linked-actions button{font-size:16px}
.focus-check{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:13px;font-weight:600;color:#823c65;cursor:pointer}
.focus-check input{width:17px;height:17px;accent-color:#823c65;cursor:pointer;margin:0}
.focus-guidance{font-size:12px;color:#817381;margin-top:12px}.focus-growth-link{border:0;background:transparent;padding:2px;color:#823c65;font-size:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
@media(max-width:700px){.growth-linked-milestone{align-items:flex-start;flex-direction:column}.growth-linked-actions{width:100%;justify-content:space-between}}

/* Vacation & absences: compact, aligned, readable data */
.absence-summary,.flagged-days{text-align:left}
.absence-summary>h3,.flagged-days>h3{margin:0 0 12px;text-align:left}
.absence-summary>table,.flagged-days table{width:100%;border-collapse:collapse;text-align:left}
.absence-summary th,.absence-summary td,.flagged-days th,.flagged-days td{padding:12px 16px;text-align:left;border-bottom:1px solid #eae3e2}
.absence-summary th,.flagged-days th{font-size:12px;text-transform:uppercase;letter-spacing:.055em;color:#796d7c;background:#f7f3f5}
.absence-summary tr:last-child td,.flagged-days tr:last-child td{border-bottom:0}
.absence-summary> .mu{margin:10px 0 0;font-size:13px}
.absence-potential{margin-top:22px;padding:18px 20px;background:#faf5f7;border:1px solid #eadfe5;border-radius:14px}
.absence-potential h4{font-size:16px;margin:0 0 4px;color:#793d63}
.absence-potential .mu{margin:0 0 14px;font-size:13px}
.absence-potential-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.absence-potential-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:white;border:1px solid #ede5e8;border-radius:10px;font-size:14px}
.absence-potential-item strong{white-space:nowrap;color:#793d63}
.absence-add{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:14px 0 18px;padding:12px 16px;background:#f8f5f6;border-radius:12px}
.absence-add label{display:flex;align-items:center;gap:10px;font-weight:600}
.absence-add .mu{font-size:12px}
.absence-table-wrap{overflow-x:auto}
.flagged-days table{min-width:540px}
.flagged-days td:first-child{width:20%;font-weight:600;white-space:nowrap}
.flagged-days td:nth-child(2){width:40%}
.flagged-days td:last-child{width:40%}
.flagged-days td select{max-width:100%;min-width:200px;width:100%;font-size:13px}
.flagged-days tbody tr:nth-child(even){background:#fcfafb}
@media(max-width:700px){.absence-potential-grid{grid-template-columns:1fr}.absence-summary th,.absence-summary td,.flagged-days th,.flagged-days td{padding:9px 10px}}

.absence-date-sections{margin-top:20px;padding:16px 18px;border:1px solid #e9e0e6;border-radius:16px;background:#fff}
.absence-date-sections.potential{background:#fbf8fa}
.absence-date-sections h4{margin:0 0 10px;color:#813f68}
.absence-date-group{border-top:1px solid #eee5e9;padding:13px 0}
.absence-date-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.absence-date-head span{color:#7e7080;font-size:13px}
.absence-date-list{display:flex;flex-wrap:wrap;gap:9px}
.absence-date-chip{display:inline-flex;align-items:center;gap:9px;padding:7px 9px;background:#f8f5f6;border:1px solid #e8dfe3;border-radius:11px;font-size:13px}
.absence-date-chip select{font-size:12px;max-width:180px;padding:7px}
@media(max-width:700px){.absence-date-chip{width:100%;justify-content:space-between}.absence-date-head{align-items:flex-start}}

/* Compact, glanceable festival attendance controls */
.absence-date-sections{padding:20px 24px;border-radius:20px;background:#fff;box-shadow:0 6px 22px rgba(65,40,55,.045)}
.absence-date-sections.potential{background:#fbf8fa}
.absence-date-group{padding:17px 0}
.absence-date-head{margin-bottom:12px}
.absence-date-head b{font-size:16px}
.absence-date-list{gap:8px}
.absence-day-toggle{display:inline-flex;align-items:center;gap:10px;border:1px solid #e3dce0;background:#fff;border-radius:999px;padding:8px 13px;font-size:13px;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}
.absence-day-toggle:hover{filter:brightness(.97);border-color:#8b426e}
.absence-day-date{font-weight:700;color:#302935}
.absence-day-state{border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;background:#f3eef2;color:#7c6d78}
.absence-day-toggle.absent{border-color:#e3a9a0;background:#fff8f6}
.absence-day-toggle.absent .absence-day-state{background:#f9dfd9;color:#a43e2b}
.absence-day-toggle.attend{border-color:#a9d4b5;background:#f7fcf8}
.absence-day-toggle.attend .absence-day-state{background:#dff3e4;color:#287d47}
.absence-day-toggle.potential .absence-day-state{background:#f5e9d4;color:#966321}
.absence-day-toggle.general .absence-day-state{background:#e7e8f8;color:#4f5894}
@media(max-width:700px){.absence-date-sections{padding:16px}.absence-day-toggle{width:auto;max-width:100%}}

.absence-date-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:0}
.absence-date-head>b{min-width:160px;font-size:16px}
.absence-date-head>.absence-date-list{flex:1;min-width:230px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.absence-date-count{margin-left:auto;color:#807280;font-size:13px;white-space:nowrap}
.absence-date-group{padding:14px 0}
.absence-day-toggle{padding:7px 11px}
@media(max-width:700px){.absence-date-head{align-items:flex-start}.absence-date-head>.absence-date-list{min-width:100%;order:3}.absence-date-count{margin-left:auto}}
.price-rule{border:1px solid #e8dfe5;border-radius:12px;padding:12px;margin:9px 0;text-align:left}.price-fields{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.price-fields input{min-width:100px;max-width:170px}.rate-history{font-size:.88rem;color:#7e536f;padding:4px 0}.rate-history button{padding:3px 8px}.social-rate{margin:7px 0}.social-rate label{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.social-rate input{max-width:95px}


.growth-bar{height:9px;background:#eee8e8;border-radius:20px;overflow:hidden;margin-top:8px}.growth-bar>div{height:100%;background:#ad7296;border-radius:20px;transition:width .2s}.growth-layout>.card{height:100%;box-sizing:border-box}.growth-goal select:has(option[value="needs_work"]:checked){background:#fff0d5;border-color:#e2b764}.growth-goal select:has(option[value="not_started"]:checked){background:#edf0f7;border-color:#a7b4cf}.growth-goal select:has(option[value="maintain"]:checked){background:#e3f3e9;border-color:#8fbea2}.growth-head h2{color:#843b63}.growth-layout .card{box-shadow:0 7px 26px #42243a0b}.growth-vision-actions select{width:95px;font-size:15px}.growth-goal-name{font-size:17px}
.goal-edit-btn{border:0;background:transparent;color:#843b63;font-size:12px;padding:3px 5px;cursor:pointer}.goal-origin{display:block;color:#756a79;font-size:13px;font-weight:400;margin-top:5px}.weekly-goal-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto auto}

.fest-website{margin:3px 0 8px;font-size:13px}.fest-website a{color:#843b63;font-weight:650}.goal-edit-btn{border:0;background:transparent;color:#843b63;font-size:12px;padding:3px 5px;cursor:pointer}.goal-origin{display:block;color:#756a79;font-size:13px;font-weight:400;margin-top:5px}.weekly-goal-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto auto}

.comp-notes-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}.comp-notes-grid textarea{width:100%;box-sizing:border-box;min-height:95px}@media(max-width:600px){.comp-notes-grid{grid-template-columns:1fr}}.comp-results{display:grid;grid-template-columns:1fr 1fr;gap:12px}.comp-results input{width:100%;box-sizing:border-box}@media(max-width:440px){.comp-results{grid-template-columns:1fr}}.goal-edit-btn{border:0;background:transparent;color:#843b63;font-size:12px;padding:3px 5px;cursor:pointer}.goal-origin{display:block;color:#756a79;font-size:13px;font-weight:400;margin-top:5px}.weekly-goal-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto auto}


.progress-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}.progress-kpis .card{display:flex;flex-direction:column;gap:5px;padding:16px}.progress-kpis strong{font-size:32px;color:#843b63}.progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0;align-items:start}.progress-grid>.card{min-width:0}.progress-grid .card{margin:0}.skill-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:11px 0;border-bottom:1px solid #e8e2de;text-align:left}.skill-row>.mu{grid-column:1/-1}.skill-state{font-size:13px;font-weight:650}.review-toolbar{display:flex;justify-content:space-between;align-items:end;gap:10px;flex-wrap:wrap}.skill-assess{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.skill-assess label{min-width:0}.progress-extra{border:1px solid #e5dfda;border-radius:10px;padding:12px;margin:10px 0;text-align:left}.progress-extra>summary{font-weight:700;cursor:pointer}.milestone{border-top:1px solid #e6dfda;padding:12px 0;text-align:left}.review-note{padding:8px 0}.review-note div{color:#6f6777;margin:4px 0}@media(max-width:760px){.progress-grid{grid-template-columns:1fr}.skill-assess{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:470px){.progress-kpis{grid-template-columns:1fr 1fr}.skill-assess{grid-template-columns:1fr}}
.goal-edit-btn{border:0;background:transparent;color:#843b63;font-size:12px;padding:3px 5px;cursor:pointer}.goal-origin{display:block;color:#756a79;font-size:13px;font-weight:400;margin-top:5px}.weekly-goal-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto auto}


.growth-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0}.growth-head h2{margin:0}.growth-head>span{color:#756a79;font-size:15px}.growth-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.growth-layout .card{margin:0;padding:22px}.growth-layout h3{margin:0 0 8px}.growth-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.growth-section-head strong{color:#843b63}.growth-goal{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px;align-items:center;padding:15px 0;border-bottom:1px solid #eee6e3}.growth-goal-name{grid-column:1/-1;text-align:left}.growth-goal>select{width:100%}.growth-goal .growth-pin{min-width:0}.growth-goal .growth-pin select{max-width:none}.growth-goal-name{font-weight:650}.growth-goal-name small{display:block;font-size:15px;font-weight:400;color:#756a79;margin-top:5px}.growth-goal select{font-size:14px;padding:8px;min-width:0}.growth-pin{display:flex;gap:4px;align-items:center;white-space:nowrap;font-size:12px;color:#756a79}.growth-pin input{width:auto}.growth-pin select{width:100%;font-size:13px;max-width:210px}.growth-add{display:flex;gap:8px;margin-top:16px}.growth-add input{min-width:0;flex:1}.growth-add button{white-space:nowrap}.growth-vision{display:flex;justify-content:space-between;gap:8px;align-items:center;border-bottom:1px solid #eee6e3;padding:12px 0;font-weight:600}.growth-vision button{font-size:13px}.growth-done{margin-top:18px;padding:12px;border:1px solid #e6dfda;border-radius:12px}.growth-done>summary{cursor:pointer;font-weight:650}.growth-footer{margin-top:16px}.growth-history>div{padding:10px;border-bottom:1px solid #eee6e3}@media(max-width:860px){.growth-layout{grid-template-columns:1fr}}@media(max-width:600px){.growth-goal{grid-template-columns:1fr 1.2fr}.growth-pin{grid-column:auto}.growth-layout .card{padding:14px}}
.goal-edit-btn{border:0;background:transparent;color:#843b63;font-size:12px;padding:3px 5px;cursor:pointer}.goal-origin{display:block;color:#756a79;font-size:13px;font-weight:400;margin-top:5px}.weekly-goal-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto auto}


.growth-vision-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.growth-vision-progress>div:first-child{min-width:0}.growth-vision-actions{display:flex;align-items:center}.growth-percent{font-weight:750;color:#544650;min-width:44px;text-align:right;font-size:17px}.growth-slider{display:block;appearance:none;-webkit-appearance:none;width:100%;height:13px;border-radius:99px;margin:13px 0 6px;cursor:pointer;border:0;outline-offset:5px;background:linear-gradient(to right,hsl(calc(var(--level)*1.2) 68% 46%) 0%,hsl(calc(var(--level)*1.2) 68% 46%) var(--pct),#eae6e5 var(--pct),#eae6e5 100%)}.growth-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:white;border:4px solid hsl(calc(var(--level)*1.2) 68% 46%);box-shadow:0 1px 5px #0002}.growth-slider::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:white;border:4px solid hsl(calc(var(--level)*1.2) 68% 46%)}.weekly-goal-row{padding:12px 0;border-bottom:1px solid #eee6e3}.weekly-goal-title{font-weight:650;font-size:16px;margin-bottom:8px}.weekly-goal-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;gap:8px;align-items:center}.weekly-goal-controls select{width:100%;min-width:0;font-size:14px;padding:8px}.weekly-goal-controls button{padding:7px 10px}.weekly-goals-panel{min-width:0}@media(max-width:550px){.weekly-goal-controls{grid-template-columns:1fr 1fr auto}.weekly-goal-controls select{font-size:12px}.growth-goal{grid-template-columns:1fr}.growth-goal-name{grid-column:1}.growth-goal .growth-pin{grid-column:1}}
.goal-edit-btn{border:0;background:transparent;color:#843b63;font-size:12px;padding:3px 5px;cursor:pointer}.goal-origin{display:block;color:#756a79;font-size:13px;font-weight:400;margin-top:5px}.weekly-goal-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto auto}


/* Connected weekly and long-term goals */
.goal-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.goal-panel-head h3{margin:0}.goal-panel-head span{color:#80516c;font-weight:650;font-size:14px}
.goal-group{border:1px solid #e8dfe3;border-radius:15px;overflow:hidden;margin:13px 0 18px;background:#fff}
.goal-group-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#f6eff3;border-left:5px solid #8b3a62;padding:12px 14px;text-align:left}
.goal-group-heading h4{margin:3px 0 0;font-size:17px;line-height:1.35;color:#342735}
.goal-group-eyebrow{font-size:10px;font-weight:750;letter-spacing:.08em;color:#875474}
.goal-group-count{font-size:12px;color:#74425d;white-space:nowrap;font-weight:700;background:#fff;border-radius:20px;padding:6px 9px}
.goal-group:has(.goal-group-eyebrow:first-child){} .goal-task{display:flex;gap:10px;justify-content:space-between;align-items:center;text-align:left;padding:12px 14px;border-top:1px solid #f0e9eb}
.goal-task-main{min-width:0;flex:1}.goal-task-title{font-size:15px;font-weight:650;line-height:1.45;overflow-wrap:anywhere}.goal-task-source{font-size:12px;color:#796e79;margin-top:4px}
.goal-task-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.goal-task-actions select{width:135px;min-width:0;padding:7px 24px 7px 9px;font-size:12px}.goal-task-actions button{font-size:15px;padding:6px 9px;min-width:32px}
.goal-status.not_started{background:#edf0f7;border-color:#b0bdd6}.goal-status.needs_work{background:#fff0d5;border-color:#e2b764}.goal-status.maintain{background:#e3f3e9;border-color:#8fbea2}
.vision-goal{text-align:left;padding:16px 0;border-bottom:1px solid #eae3e5}.vision-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.vision-head>strong{font-size:16px}.vision-controls{display:flex;align-items:center;gap:5px}.vision-controls button{padding:6px 9px}.vision-note{font-size:13px;color:#796e79;margin:5px 0}.vision-linked-head{font-size:12px;color:#875474;font-weight:700;margin:12px 0 6px}.vision-linked-list{display:grid;gap:6px}.vision-linked-list>div{display:flex;gap:8px;align-items:center;font-size:13px;line-height:1.4}.vision-linked-list>div>span:nth-child(2){flex:1;min-width:0}.vision-linked-state{font-size:11px;color:#786b77;white-space:nowrap}.goal-mini-dot{width:9px;height:9px;flex:none;border-radius:50%;background:#aab6d0}.goal-mini-dot.needs_work{background:#e6b65a}.goal-mini-dot.maintain{background:#74b08a}
@media(max-width:600px){.goal-task{flex-direction:column;align-items:stretch}.goal-task-actions{justify-content:flex-start}.goal-group-heading{flex-wrap:wrap}.goal-group-heading h4{font-size:15px}.growth-layout .card{padding:14px}}



/* Two balanced goal cards, with readable headings and compact weekly items */
.growth-unified{max-width:none!important;width:100%;box-sizing:border-box}
.growth-unified-heading{margin-bottom:18px!important}
.growth-unified-heading h3{overflow-wrap:anywhere}
.growth-unified-group{display:flex;flex-direction:column;min-width:0;border:1px solid #e7dde2!important;border-radius:18px;padding:18px!important;background:#fff;margin:0!important;box-sizing:border-box;break-inside:avoid}
.growth-unified-top{align-items:flex-start!important;min-width:0}
.growth-unified-top>div:first-child{flex:1;min-width:0}
.growth-goal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap;min-width:0}
.growth-goal-heading h3{min-width:0;overflow-wrap:anywhere;word-break:normal;font-size:19px!important;line-height:1.3;margin:0!important;text-align:left!important;flex:1 1 180px}
.growth-target{display:flex;gap:5px;align-items:center;color:#846476;font-size:12px;white-space:nowrap;font-weight:600}
.growth-target input{font-size:12px!important;padding:5px!important;width:130px!important;min-width:0}
.growth-unified-actions{flex-shrink:0}
.growth-unified-group .growth-slider{margin:12px 0!important}
.growth-unified-group .simple-week-goal{padding:9px 0!important;gap:10px!important}
.growth-unified-group .simple-week-title{font-size:14px!important;line-height:1.4!important;font-weight:550!important;text-align:left!important;min-width:0}
.growth-unified-group .simple-week-actions{gap:4px!important}
.growth-unified-group .simple-week-actions select{font-size:12px!important;padding:6px!important}
.growth-unified-group .simple-week-actions button{padding:6px 8px!important;min-width:28px!important}
.growth-unified-subhead{font-size:13px!important}
.growth-unified-add{grid-column:1/-1}
@media(min-width:850px){.growth-unified{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px!important;align-items:start}.growth-unified-heading{grid-column:1/-1}.growth-unified-group{height:100%}.growth-unified-add{grid-column:1/-1}}
@media(max-width:849px){.growth-unified-group{margin-bottom:12px!important}}
/* Weekly list: one glance, like Today */
.weekly-goals-panel .simple-week-goal{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:10px 12px!important;margin:5px 0!important;border:1px solid #ebe4e6!important;border-left:5px solid #9c6485!important;border-radius:12px!important;background:#faf7f8!important;min-height:52px!important}
.weekly-goals-panel .simple-week-title{flex:1!important;min-width:0!important;font-size:15px!important;line-height:1.35!important;font-weight:550!important;text-align:left!important;margin:0!important}
.weekly-goals-panel .simple-week-title small{font-size:11px!important;margin-top:2px!important}
.weekly-goals-panel .simple-week-actions{width:auto!important;display:flex!important;flex-shrink:0!important;gap:5px!important;align-items:center!important}
.weekly-goals-panel .simple-week-actions select{font-size:12px!important;width:125px!important;min-width:0!important;padding:7px!important}
.weekly-goals-panel .simple-week-actions button{padding:6px 9px!important;min-width:30px!important}
@media(max-width:520px){.weekly-goals-panel .simple-week-goal{flex-wrap:wrap!important}.weekly-goals-panel .simple-week-actions{margin-left:auto!important}.growth-goal-heading{flex-direction:column}}



/* Stable explicit grid wrapper: cards are always two columns on desktop */
.growth-unified{display:block!important;max-width:none!important;width:100%!important}
.growth-cards-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:stretch;gap:16px;margin:12px 0}
.growth-cards-grid>.growth-unified-group{width:auto!important;min-width:0!important;margin:0!important;height:auto!important;overflow:hidden}
.growth-cards-grid .growth-unified-top{flex-wrap:wrap;gap:8px}
.growth-cards-grid .growth-goal-heading{min-width:0;flex-wrap:wrap}
.growth-cards-grid .growth-goal-heading h3{overflow-wrap:anywhere;min-width:0}
.growth-cards-grid .simple-week-goal{display:flex;flex-direction:column;align-items:stretch;gap:5px}
.growth-cards-grid .simple-week-actions{justify-content:flex-start;flex-wrap:wrap}
/* Weekly: compact TODAY-like tiles, actions on the line below */
.weekly-goals-panel .simple-week-goal{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:5px!important;padding:9px 12px!important;min-height:0!important;margin:5px 0!important}
.weekly-goals-panel .simple-week-title{display:block!important;width:100%!important;flex:none!important;font-size:13px!important;line-height:1.35!important;font-weight:600!important;text-align:left!important;overflow-wrap:anywhere}
.weekly-goals-panel .simple-week-title small{font-size:11px!important}
.weekly-goals-panel .simple-week-actions{display:flex!important;width:100%!important;margin:0!important;justify-content:flex-start!important;align-items:center!important;gap:5px!important;flex-wrap:wrap!important}
.weekly-goals-panel .simple-week-actions select{width:120px!important;max-width:120px!important;flex:none!important;font-size:12px!important;padding:5px 7px!important}
.weekly-goals-panel .simple-week-actions button{padding:4px 8px!important;min-width:28px!important;font-size:13px!important}
@media(max-width:760px){.growth-cards-grid{grid-template-columns:minmax(0,1fr)!important}}



/* Two actual columns: each long-term goal is an independent card */
.growth-unified{display:block!important;width:100%!important;max-width:none!important;padding:0!important;margin:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
.growth-unified-heading{display:flex!important;justify-content:space-between;gap:14px;padding:0 2px 12px!important}
.growth-cards-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;align-items:start!important;width:100%!important}
.growth-cards-grid>.growth-unified-group{display:flex!important;flex-direction:column!important;grid-column:auto!important;grid-row:auto!important;min-width:0!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;align-self:start!important;padding:18px!important;border-radius:18px!important;background:var(--cd)!important;box-shadow:0 4px 18px #3821310a!important}
.growth-cards-grid .growth-unified-top{display:flex!important;flex-direction:column!important;gap:7px!important;align-items:stretch!important}
.growth-cards-grid .growth-goal-heading{display:flex!important;flex-direction:column!important;gap:9px!important;align-items:stretch!important}
.growth-cards-grid .growth-goal-heading h3{font-size:19px!important;line-height:1.25!important;font-weight:750!important;flex:none!important;width:100%!important;margin:0!important}
.growth-cards-grid .growth-target{font-size:12px!important}
.growth-cards-grid .vision-note{font-size:12px!important;margin:0!important}
.growth-cards-grid .growth-unified-actions{justify-content:flex-end!important}
.growth-cards-grid .growth-slider{width:100%!important;max-width:100%!important}
.growth-cards-grid .simple-week-goal{display:flex!important;flex-direction:column!important;align-items:stretch!important;padding:8px 0!important;gap:5px!important}
.growth-cards-grid .simple-week-title{font-size:13px!important;line-height:1.35!important;text-align:left!important}
.growth-cards-grid .simple-week-actions{width:100%!important;justify-content:flex-start!important;gap:5px!important}
.growth-cards-grid .simple-week-actions select{width:120px!important;max-width:120px!important}
.growth-unified-add{margin-top:16px;padding:14px 0!important}
/* Dashboard: Today and To-do on top; weekly goals below across full width */
.dashboard-plans{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:start!important}
.dashboard-goals{margin:12px 0!important}
.dashboard-goals>.weekly-goals-panel{width:100%!important;box-sizing:border-box!important}
.dashboard-goals .weekly-goals-panel .simple-week-goal{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px 14px!important;align-items:center!important;padding:8px 12px!important}
.dashboard-goals .weekly-goals-panel .simple-week-title{font-size:13px!important;line-height:1.35!important}
.dashboard-goals .weekly-goals-panel .simple-week-actions{width:auto!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:nowrap!important}
.dashboard-goals .weekly-goals-panel .simple-week-actions select{width:122px!important}
@media(max-width:900px){.growth-cards-grid{grid-template-columns:minmax(0,1fr)!important}}
@media(max-width:650px){.dashboard-plans{grid-template-columns:1fr!important}.dashboard-goals .weekly-goals-panel .simple-week-goal{grid-template-columns:1fr!important}.dashboard-goals .weekly-goals-panel .simple-week-actions{justify-content:flex-start!important}}



/* Grid items are complete independent cards, including slider and linked weekly goals. */
.growth-cards-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;align-items:start!important}
.growth-cards-grid > section.growth-unified-group{grid-column:auto!important;display:flex!important;flex-direction:column!important;min-width:0!important;width:auto!important;box-sizing:border-box!important;overflow:hidden!important}
.growth-cards-grid > section.growth-unified-group > .growth-slider{width:100%!important;min-width:0!important;box-sizing:border-box!important}
.weekly-parent-label{display:block!important;color:#865074!important;font-size:12px!important;font-weight:500!important;line-height:1.3!important;margin-top:4px!important}
@media(max-width:780px){.growth-cards-grid{grid-template-columns:minmax(0,1fr)!important}}



.weekly-goals-panel .simple-week-goal{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:12px!important}
.weekly-goals-panel .simple-week-actions{width:auto!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:7px!important}
.weekly-goals-panel .weekly-parent-select{width:220px!important;max-width:220px!important;font-size:12px!important;padding:6px 22px 6px 8px!important;background:#fff!important;border:1px solid #e1d9dd!important}
.growth-cards-grid>.growth-unified-group{border:2px solid var(--progress-color)!important;background:linear-gradient(180deg,var(--progress-soft),#fff 110px)!important}
.growth-unified-group .growth-percent{color:var(--progress-color)!important}
.growth-unified-group .vision-note{font-size:15px!important;line-height:1.45!important;color:#514451!important;text-align:left!important;margin:8px 0 3px!important}
.growth-cards-grid .simple-week-goal{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:12px!important}
.growth-cards-grid .simple-week-title{font-size:13px!important;text-align:left!important}
.growth-cards-grid .simple-week-actions{width:auto!important;display:flex!important;justify-content:flex-end!important;flex-wrap:nowrap!important;gap:5px!important}
.growth-target{position:relative;display:flex!important;align-items:center;gap:7px;flex-wrap:wrap;white-space:normal!important}
.month-trigger{font-size:12px!important;padding:6px 10px!important;background:#faf7f5!important;border:1px solid #e1d9d4!important;border-radius:9px!important;white-space:nowrap}
.month-trigger span{margin-left:9px}
.month-picker-slot{position:relative}
.month-picker{position:absolute;top:12px;left:0;z-index:50;width:250px;background:white;border:1px solid #e1d9dd;border-radius:14px;padding:12px;box-shadow:0 12px 30px #23151d35}
.month-picker-years{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:16px}
.month-picker-years button{border:0;background:#f3ecf0;border-radius:9px;padding:6px 12px;font-size:17px}
.month-picker-months{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.month-picker-months button{padding:8px 3px;border:0;background:#faf7f8;border-radius:7px;font-size:12px}
.month-picker-months button.selected{background:#873f6b;color:#fff}
.month-clear{margin-top:9px;border:0;background:none;color:#873f6b;font-size:12px}
@media(max-width:850px){.weekly-goals-panel .simple-week-goal{grid-template-columns:1fr!important}.weekly-goals-panel .simple-week-actions{justify-content:flex-start!important;flex-wrap:wrap!important}.weekly-goals-panel .weekly-parent-select{width:180px!important}.growth-cards-grid .simple-week-goal{grid-template-columns:1fr!important}.growth-cards-grid .simple-week-actions{justify-content:flex-start!important}}


.absence-row-actions{display:flex;align-items:center;gap:9px}.absence-row-actions select{min-width:195px}.absence-remove{display:inline-flex;align-items:center;justify-content:center;width:39px;height:39px;min-width:39px;border:1px solid #e2d8dd;border-radius:11px;background:#fff;color:#85415f;font-size:25px;line-height:1;cursor:pointer}.absence-remove:hover{background:#f8e9ee;color:#a8324c}.other-course-absences{background:#faf6f8;border-radius:18px;padding:20px 22px;margin-top:22px}.other-course-absences h4{margin:0 0 8px;color:#7c3b61}.other-course-absences .absence-add{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:16px 0}.other-absence-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #e8dfe4}.other-absence-row select{max-width:240px}@media(max-width:620px){.other-absence-row{flex-wrap:wrap}.other-absence-row select{width:100%;max-width:none}}
.settings-subtitle{margin:24px 0 8px;text-align:left;color:#813e62;font-size:19px}.calendar-export{padding:18px;margin:18px 0;border:1px solid #e7dbe1;border-radius:16px;background:#faf6f8;text-align:left}.calendar-export h3{margin:0 0 8px}.calendar-export .f2{margin:12px 0}.calendar-export input{width:100%}.settings-section{border-radius:18px}#mn .card:has(.settings-subtitle){text-align:left!important}#mn .card:has(.settings-subtitle) .r{text-align:left}#mn .card:has(.settings-subtitle) .social-rate{padding:9px 12px;background:#faf7f8;border-radius:9px}#mn .card:has(.settings-subtitle) .price-rule{background:#fbf8fa}
.private-rate-table{border:1px solid #e5dce1;border-radius:14px;overflow:hidden;margin:12px 0}.private-rate-head,.private-rate-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(110px,1fr) 100px 50px;gap:8px;align-items:center;padding:10px 12px}.private-rate-head{font-weight:700;background:#f7f0f4;color:#804061}.private-rate-row{border-top:1px solid #eee5e9}.private-rate-row input{width:100%;min-width:0}.private-rate-row strong{text-align:center;color:#824062}.private-rate-history{padding:8px 14px 14px;border-top:1px solid #eee5e9;background:#fdfbfc}.private-rate-history summary{cursor:pointer;color:#824062;font-weight:600}.private-rate-history .price-fields{margin:10px 0;display:flex;flex-wrap:wrap;align-items:end;gap:8px}.private-rate-history .price-fields label{flex:1;min-width:130px}@media(max-width:650px){.private-rate-head{display:none}.private-rate-row{grid-template-columns:1fr 1fr 85px 40px;padding:8px;gap:4px}.private-rate-row input{font-size:13px}}

.week-toolbar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 20px;margin:0 0 22px;padding:12px 10px 19px;border-bottom:1px solid #eee5e9}
.week-navigation,.week-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.week-navigation b{white-space:nowrap;margin:0 7px;font-size:16px;color:#493247}
.week-toolbar button,.calendar-month-nav button,.focus-growth-link{border:1px solid #e2d5dc!important;border-radius:12px!important;background:#fffafc!important;color:#793c61!important;padding:9px 15px!important;box-shadow:0 2px 5px #59314a0b;transition:background .15s,transform .15s,border-color .15s;font-weight:650}
.week-toolbar button:hover,.calendar-month-nav button:hover,.focus-growth-link:hover{background:#f4e8ee!important;border-color:#caa8b9!important;transform:translateY(-1px)}
.week-filter{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;margin:0!important;font-size:13px;color:#695c69}
.week-filter input{margin:0}.calendar-month-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin:2px auto 20px}.calendar-month-nav b{min-width:175px;text-align:center;color:#56334e;font-size:19px}.calendar-month-nav button{min-width:44px}
.calendar-month{padding:24px!important}.calendar-month .mg{margin:0 auto 18px;max-width:780px}.calendar-month .lg{justify-content:center;gap:14px;flex-wrap:wrap}
@media(max-width:700px){.week-toolbar{gap:10px;padding:8px 0 15px}.week-navigation b{font-size:14px}.week-toolbar button{padding:8px 10px!important}.calendar-month{padding:14px!important}}


.vacation-planner{padding:22px 24px!important;text-align:left}.vacation-planner>h3{text-align:center;font-size:20px;margin:0 0 20px}.vacation-table-wrap{overflow-x:auto}.vacation-table{border-collapse:separate;border-spacing:0 7px;min-width:690px}.vacation-table th{font-size:12px;letter-spacing:.035em;text-transform:uppercase;color:#846e7c;padding:8px 12px;border:0;background:#f7f1f4}.vacation-table td{padding:12px;border-top:1px solid #e8dfe4;border-bottom:1px solid #e8dfe4;background:#fdfbfc;vertical-align:middle}.vacation-table td:first-child{border-left:1px solid #e8dfe4;border-radius:12px 0 0 12px;font-weight:700;color:#804061;width:54px}.vacation-table td:last-child{border-right:1px solid #e8dfe4;border-radius:0 12px 12px 0;width:55px}.vacation-table input[type=date],.vacation-table input:not([type=checkbox]){width:100%;max-width:320px;box-sizing:border-box;background:#fff}.vacation-table td:nth-child(2){width:230px}.vacation-table td:nth-child(4){width:130px}.vacation-table label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.vacation-table input[type=checkbox]{accent-color:#843b63;width:19px;height:19px}.vacation-clear{width:38px;height:38px;border-radius:11px;border:1px solid #e3d8de;background:#fff;color:#914965;font-size:23px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,border-color .15s}.vacation-clear:hover{background:#f9e9ef;border-color:#b86e8f}.vacation-planner>.mu{margin-top:12px;text-align:center}
/* Consistent compact action buttons across tabs */
button:not(.p):not(.ck):not(.absence-remove):not(.vacation-clear){transition:background-color .15s,border-color .15s,box-shadow .15s}button:not(.p):not(.ck):not(.absence-remove):not(.vacation-clear):hover{box-shadow:0 2px 9px #41253712}

/* Consistent semantic surfaces, contrast and responsive refinements */
:root{--surface:var(--cd);--surface-muted:color-mix(in srgb,var(--ac) 5%,var(--cd));--focus-ring:#8b3a62}
:root[data-theme=dark] .growth-unified-group,:root[data-theme=dark] .growth-cards-grid>.growth-unified-group,
:root[data-theme=dark] .absence-date-sections,:root[data-theme=dark] .absence-potential-item,
:root[data-theme=dark] .festival-grid .fc details,:root[data-theme=dark] .goal-group,
:root[data-theme=dark] .absence-day-toggle,:root[data-theme=dark] .goal-group-count{background:var(--cd)!important;color:var(--tx)!important;border-color:var(--bd)!important}
:root[data-theme=dark] .absence-potential,:root[data-theme=dark] .absence-date-sections.potential,
:root[data-theme=dark] .flagged-days tbody tr:nth-child(even),:root[data-theme=dark] .absence-add,
:root[data-theme=dark] .absence-date-chip,:root[data-theme=dark] .goal-group-heading,
:root[data-theme=dark] .weekly-goals-panel .simple-week-goal{background:var(--surface-muted)!important;color:var(--tx)!important}
:root[data-theme=dark] .growth-unified-top h3,:root[data-theme=dark] .growth-goal-heading h3,
:root[data-theme=dark] .absence-day-date,:root[data-theme=dark] .goal-group-heading h4{color:var(--tx)!important}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .growth-cards-grid>.growth-unified-group,:root:not([data-theme=light]) .absence-date-sections,:root:not([data-theme=light]) .festival-grid .fc details{background:var(--cd)!important;color:var(--tx)!important}}
@media(max-width:760px){.growth-cards-grid{grid-template-columns:1fr!important}.festival-grid{grid-template-columns:1fr!important}.dashboard-plans{grid-template-columns:1fr!important}}
@media(max-width:460px){.dashboard-goals .weekly-goals-panel .simple-week-actions{flex-wrap:wrap!important}.f2{grid-template-columns:1fr}.growth-unified-actions{flex-wrap:wrap}}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
button{min-height:32px}nav button{min-height:40px}
#save-status{font-size:13px;display:inline-block;min-width:65px}



:root{--soft:color-mix(in srgb,var(--ac) 5%,var(--cd));--soft-border:color-mix(in srgb,var(--ac) 15%,var(--bd))}
.growth-cards-grid>.growth-unified-group,.growth-unified-group,.goal-group,.absence-date-sections,.absence-day-toggle,.absence-potential-item,.festival-grid .fc details{background:var(--cd)!important;color:var(--tx)!important;border-color:var(--bd)!important}
.goal-group-heading,.absence-add,.absence-potential,.absence-date-chip,.weekly-goals-panel .simple-week-goal{background:var(--soft)!important;color:var(--tx)!important}
.growth-unified-top h3,.growth-goal-heading h3,.goal-group-heading h4,.absence-day-date{color:var(--tx)!important}
.festival-grid .fc .mu,.goal-origin,.growth-linked-copy small,.growth-vision-progress small{color:var(--mu)!important}
@media(max-width:760px){.growth-cards-grid,.dashboard-plans,.festival-grid,.growth-layout{grid-template-columns:minmax(0,1fr)!important}}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ac);outline-offset:2px}
@media(max-width:620px){table.nb{max-width:100%;width:100%;table-layout:fixed}table.nb td{white-space:normal;overflow-wrap:anywhere;padding:4px 6px}main{min-width:0;overflow-wrap:anywhere}}
.backup-file-label{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:14px;margin:8px}.backup-file-label input{max-width:220px}
#backup-reminder:not([hidden]){padding:8px;border:1px solid var(--bd);border-radius:8px}

/* Release cleanup: theme-safe backgrounds and readable controls */
.growth-cards-grid>.growth-unified-group,.growth-unified-group,.goal-group,.absence-date-sections,.absence-day-toggle,.absence-potential-item{background:var(--cd)!important;color:var(--tx)}
.growth-unified-top h3,.growth-unlinked h3,.goal-group-heading h4,.absence-day-date{color:var(--tx)}
.growth-unified-group small,.growth-linked-copy small,.growth-vision-progress small{color:var(--mu)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .festival-grid .fc details{background:var(--cd);color:var(--tx)}}
:root[data-theme=dark] .festival-grid .fc details{background:var(--cd);color:var(--tx)}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ac);outline-offset:2px}
@media(max-width:540px){#md>div{max-height:85dvh}button{min-height:34px}}



/* Weekly layout stability: seven equal days on wide screens, graceful wrapping on smaller screens. */
@media(min-width:1120px){.wk{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(min-width:720px) and (max-width:1119px){.wk{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:719px){.wk{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.wk{grid-template-columns:minmax(0,1fr)}}
.wk .dy,.wk .ev,.wk .ev span{min-width:0;overflow-wrap:anywhere}
.wk .ev{align-items:flex-start}
.wk .ev button{flex-shrink:0}
@media(max-width:850px){table.nb{max-width:100%;width:100%}table.nb td{white-space:normal;overflow-wrap:anywhere;padding:4px 6px}}



/* Restore user-approved My Growth design; override later generic card resets. */
.growth-cards-grid > section.growth-unified-group {
  border: 2px solid var(--progress-color) !important;
  background: linear-gradient(180deg, var(--progress-soft), var(--cd) 115px) !important;
  color: var(--tx) !important;
}
.growth-cards-grid > section.growth-unified-group .growth-percent { color:var(--progress-color) !important; }
.growth-cards-grid > section.growth-unified-group .growth-slider {
  background:linear-gradient(to right,var(--progress-color) 0%,var(--progress-color) var(--pct),color-mix(in srgb,var(--tx) 12%,var(--cd)) var(--pct),color-mix(in srgb,var(--tx) 12%,var(--cd)) 100%) !important;
}
.growth-cards-grid > section.growth-unified-group .growth-slider::-webkit-slider-thumb {border-color:var(--progress-color) !important;}
.growth-cards-grid > section.growth-unified-group .growth-slider::-moz-range-thumb {border-color:var(--progress-color) !important;}
