:root{color:#203351;background:#dbe7f3;font-size:15px;--accent:#1680ed;--line:#e3ebf5;--landscape:url('landscape.png')}
[hidden]{display:none!important}
body{background:linear-gradient(#122d4c33,#34557c88),var(--landscape) center/cover fixed;min-height:100vh}button{border-color:#dce7f5;color:#28446d;border-radius:8px;background:#f8fbff}button:hover{background:#e7f1ff}button[aria-pressed=true],.primary{background:#167ff0;color:#fff;border-color:#167ff0}.page-title{max-width:1440px;margin:0 auto;padding:35px 32px 24px;color:white;text-shadow:0 2px 16px #10284499}.page-title h1{font-size:34px;letter-spacing:.08em;font-weight:500}.page-title p{margin:10px 0 0;font-size:14px;letter-spacing:.15em}.app-frame{display:flex;max-width:1440px;margin:0 auto 36px;background:#f3f7fced;border:1px solid #ffffffbb;border-radius:20px;overflow:hidden;box-shadow:0 25px 90px #0b264e44}.sidebar{width:205px;flex-shrink:0;padding:30px 15px;background:linear-gradient(155deg,#fff,#e9f0f9);border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;margin:7px 5px 30px}.brand small{display:block;font-size:10px;color:#536a8c}.brand-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#0a9b82;color:white;font-size:27px}.sidebar nav{display:flex;flex-direction:column;gap:8px;margin:0}.sidebar nav button{text-align:left;border:0;background:transparent;display:flex;align-items:center;gap:14px;font-size:14px}.sidebar nav button[aria-pressed=true]{color:#1259a4;background:#d9eaff}.sidebar nav span{width:22px;text-align:center;font-size:22px;line-height:1}.side-photo{height:255px;margin:60px 0 15px;background:linear-gradient(0deg,#11305299,transparent),var(--landscape) center/cover;border-radius:12px;position:relative;overflow:hidden}.side-photo div{position:absolute;bottom:18px;left:14px;color:#fff;font-size:14px;line-height:1.7}.sidebar-note{font-size:12px;line-height:1.9;color:#607895;text-align:center}.shell{width:calc(100% - 205px);max-width:none;padding:25px 25px 35px;margin:0}header{margin:0 0 18px}header h1{font-size:23px}.eyebrow{color:#7086a4;font-size:10px}.muted,small,.time,.footer{color:#617694}.hero{height:170px;position:relative;display:flex;align-items:center;border-radius:12px;overflow:hidden;padding:25px;background:linear-gradient(90deg,#0a244cb8,#0a244c22),var(--landscape) center 48%/cover;color:white}.hero h2{font-size:27px;margin:12px 0 8px}.hero p{margin:0;line-height:1.7;font-size:13px}.hero .eyebrow{color:#d3e5f6;letter-spacing:.14em}.photo-label{position:absolute;right:12px;bottom:10px;font-size:10px;background:#102b4b88;border-radius:4px;padding:4px 8px}.banner{font-size:11px;background:#eaf1fa;border:1px solid var(--line);color:#617694;margin:0 0 16px;padding:9px 12px}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.stat{background:linear-gradient(120deg,white,#f7faff);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;align-items:center;gap:15px;text-align:left;box-shadow:0 3px 12px #32598d04}.stat span.icon{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;font-size:24px;color:#1680ed;background:#e8f3ff}.stat.orange span.icon{color:#f1852b;background:#fff1e2}.stat.pink span.icon{color:#ed5685;background:#fff0f5}.stat strong{display:block;font-size:24px;color:#132d55;margin-top:7px}.stat small{font-size:11px}.controls{margin:16px 0}.controls button{font-size:12px;min-height:40px}.controls strong{font-size:14px}.status{font-size:12px;background:#edf4fc;padding:10px 14px;min-height:auto;border-left:3px solid #9dc9f6}.grid{grid-template-columns:1.2fr 1fr;gap:16px}.panel{border:1px solid var(--line);border-radius:12px;padding:20px;background:linear-gradient(140deg,#fff,#fafdff);box-shadow:0 3px 20px #3f669008}.panel h2{font-size:17px;display:flex;align-items:center;gap:9px}.panel h2 .section-icon{background:#eaf3ff;color:#1680ed;border-radius:7px;width:28px;height:28px;display:inline-grid;place-items:center;font-size:18px}.schedule-panel{grid-row:span 2}.candidate-panel{grid-column:2;grid-row:1/3}.selected-panel{grid-column:1}.grid.candidates-first .candidate-panel{grid-column:1}.grid.candidates-first .schedule-panel,.grid.candidates-first .selected-panel{grid-column:2}.row{padding:15px 0;overflow-wrap:anywhere;border-color:#edf2f9}.row h3{font-size:14px;color:#203859;line-height:1.7}.actions{gap:5px;margin-top:9px}.actions button{font-size:11px;min-height:36px;padding:5px 8px;border-color:#e3edf8}.tag{font-size:10px;color:#a26226;background:#fff1e6}.tag.wish{background:#fff0f5;color:#d14e7c}.filters{gap:5px}.filters button{font-size:11px;min-height:36px;padding:6px 9px}.photo-thumb{float:left;width:64px;height:58px;border-radius:8px;object-fit:cover;margin:2px 12px 7px 0;background:#e9f1fa}.photo-settings{max-width:850px}.photo-settings .upload-row{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:22px 0;border-top:1px solid var(--line)}.photo-settings img{width:130px;height:100px;object-fit:cover;border-radius:10px;background:#eaf1fa}.photo-settings input{font-size:13px;max-width:100%;border-color:var(--line)}.photo-settings h3{font-size:15px}.photo-settings p{font-size:13px;line-height:1.8}.upload-row .actions{margin-top:8px}.timeline-entry{border-left:3px solid #1680ed;padding:12px 14px;margin-top:10px;border-radius:6px;background:#edf5ff}.timeline-entry:nth-child(even){border-color:#9b75e2;background:#f4efff}.timeline-entry h3{margin:6px 0;font-size:14px}.day-label{font-size:13px;font-weight:600;margin:22px 0 10px}.timeline-entry .row{padding:0;border:none}.timeline-entry .time{font-size:11px}input,select{color:#203351;border-color:#d6e2f1}.full{max-width:900px}dialog{max-height:90vh;overflow:auto}.footer{font-size:11px}.summary button:hover{background:#eef6ff}.empty{font-size:13px}
@media(min-width:801px) and (max-width:1080px){.sidebar{width:170px}.shell{width:calc(100% - 170px);padding:20px 16px}.stat{padding:12px;gap:8px}.stat span.icon{width:32px;height:32px}.panel{padding:16px}.filters button{font-size:10px}}
@media(max-width:800px){body{background:#eff5fc}.page-title{display:none}.app-frame{margin:0;border:0;border-radius:0;display:block;box-shadow:none}.sidebar{width:0;padding:0;border:0}.brand,.side-photo,.sidebar-note{display:none}.sidebar nav{flex-direction:row;position:fixed;bottom:0;left:0;right:0;top:auto;z-index:4;background:#fffffff5;padding:8px 5px max(8px,env(safe-area-inset-bottom));border-top:1px solid #dce6f2;gap:0;justify-content:space-around}.sidebar nav button{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;min-width:0;flex:1;padding:5px 2px;border-radius:6px}.sidebar nav span{font-size:23px}.sidebar nav button[aria-pressed=true]{background:transparent;color:#087af0}.shell{width:100%;padding:20px 14px 100px}.hero{height:155px;margin:0 -14px;border-radius:0;padding:20px}.hero h2{font-size:22px}.hero p{font-size:11px}.hero .eyebrow{font-size:9px}.photo-label{font-size:9px}.summary{gap:7px;margin:12px 0}.stat{padding:12px 5px;display:flex;flex-direction:column;gap:5px;text-align:center;border-radius:9px}.stat strong{font-size:20px;margin-top:5px}.stat small{font-size:10px}.stat span.icon{height:35px;width:35px;font-size:21px}header h1{font-size:20px}header .muted{font-size:11px}header .primary{font-size:12px;padding:7px 10px}header{margin-bottom:13px}.banner{font-size:10px;padding:7px 9px;margin-bottom:12px}.grid{display:flex;flex-direction:column;gap:12px}.grid>.panel{width:100%}.grid.candidates-first .candidate-panel{order:-1}.panel{padding:17px;border-radius:10px}.panel h2{font-size:16px}.controls{gap:6px}.controls strong{font-size:12px}.controls button{min-height:44px}.actions button,.filters button{min-height:44px}.row h3{font-size:14px}.photo-settings .upload-row{grid-template-columns:80px minmax(0,1fr);gap:12px}.photo-settings img{width:80px;height:80px}.photo-settings input{font-size:11px;padding:8px}.photo-settings h3{font-size:14px}.summary[hidden]{display:none}}

/* Content-sized columns prevent the shorter schedule from inheriting the candidate list height. */
.page-title{padding:18px 24px 14px}.page-title h1{font-size:28px}.page-title p{margin-top:5px}
.app-frame{margin-bottom:16px}.sidebar{padding-top:20px}.brand{margin-bottom:18px}.sidebar nav{gap:3px}.side-photo{margin-top:20px}
.shell{padding:16px 18px 20px}header{margin-bottom:10px}.banner{margin-bottom:10px;padding:6px 10px}
.hero{height:112px;padding:18px 22px}.hero h2{font-size:24px;margin:6px 0}.hero p{font-size:12px}
.summary{gap:10px;margin:10px 0}.stat{padding:10px 14px;gap:10px}.stat strong{font-size:22px;margin-top:2px}.stat span.icon{width:36px;height:36px}
.controls{margin:10px 0}.status{margin:10px 0;padding:7px 10px}.grid{gap:10px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.dashboard-column{display:flex;flex-direction:column;gap:10px;min-width:0}.grid .panel{grid-column:auto;grid-row:auto}.panel{padding:14px}.panel h2{margin-bottom:10px}.panel p{margin:8px 0}
.row{padding:10px 0}.row h3{margin-bottom:4px}.actions{margin-top:6px}.filters{margin-bottom:8px}.candidate-panel>h3{margin-top:12px!important}
.day-label{margin:12px 0 6px}.timeline-entry{padding:9px 10px;margin-top:6px}.empty{padding:12px 0}.full,.photo-settings{max-width:none}.footer{margin-top:14px}
.photo-settings .upload-row{padding:14px 0;gap:14px}
@media(max-width:800px){.shell{padding:14px 12px 88px}.hero{height:112px;margin:0 -12px;padding:16px}.hero h2{font-size:22px}.summary{gap:6px;margin:8px 0}.stat{padding:8px 4px;gap:3px}.stat span.icon{width:30px;height:30px;font-size:20px}.stat strong{font-size:20px}.grid{gap:10px}.dashboard-column{display:contents}.panel{padding:14px}.sidebar nav{gap:0}.controls button,.actions button,.filters button{min-height:44px}.photo-settings .upload-row{gap:12px}}
@media(max-width:800px){.grid .panel{width:100%}}

/* Fixed home arrangement: action panels left, three-day vertical calendar right. */
.dashboard-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr)}
.wishes-panel h2 .section-icon{color:#e45287;background:#fff0f5}.calendar-help{font-size:11px;line-height:1.6}
.vertical-calendar{min-width:0;margin-top:10px;border:1px solid #e0e9f6;border-radius:9px;overflow:hidden;background:white}
.calendar-head,.calendar-allday,.calendar-body{display:grid;grid-template-columns:42px repeat(3,minmax(0,1fr))}
.calendar-head{background:#f5f9ff}.calendar-date{min-width:0;border:0;border-radius:0;background:transparent;padding:7px 2px;font-size:12px;min-height:44px;white-space:normal}.calendar-date small{display:block;line-height:1.3;font-size:10px}.calendar-date.is-active{background:#e8f3ff;color:#1761ac}.calendar-date[aria-pressed=true]{background:#e8f3ff;color:#1761ac}
.calendar-allday{border-top:1px solid #e5edf8;border-bottom:1px solid #e5edf8;align-items:stretch}.all-day-label{font-size:10px;color:#7184a0;padding:10px 2px;text-align:center}.all-day-cell{min-width:0;border-left:1px solid #e5edf8;padding:3px;display:flex;flex-direction:column;gap:3px}.all-day-event{padding:5px;font-size:11px;min-height:30px;border:0;background:#e8f6ef;color:#24745e;border-radius:4px;overflow-wrap:anywhere}.no-all-day{font-size:11px;color:#8798af;text-align:center;padding:5px}
.calendar-body{height:var(--calendar-height)}.hour-axis{position:relative;background:#fafcff}.hour-axis span{position:absolute;left:2px;font-size:10px;color:#7184a0;line-height:16px}.calendar-day{position:relative;min-width:0;border-left:1px solid #e5edf8}.hour-line{position:absolute;left:0;right:0;height:56px;border-top:1px solid #e5edf8;background:linear-gradient(transparent 27px,#f2f6fc 27px,#f2f6fc 28px,transparent 28px);pointer-events:none}
.calendar-event{position:absolute;text-align:left;padding:4px 5px;min-height:0;overflow:hidden;border:0;border-left:3px solid #1680ed;border-radius:5px;background:#e1efff;color:#173f70;z-index:1}.calendar-event:hover{background:#cfe6ff}.calendar-event span{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event strong{display:block;font-size:12px;font-weight:600;line-height:1.45;overflow-wrap:anywhere}.calendar-empty{position:absolute;top:14px;left:8px;font-size:11px;color:#8495ad}
@media(max-width:800px){.dashboard-layout{display:flex}.dashboard-layout .dashboard-column{display:contents}.calendar-column .schedule-panel{order:3}.calendar-head{grid-template-columns:repeat(3,minmax(0,1fr))}.axis-spacer{display:none}.calendar-allday,.calendar-body{grid-template-columns:38px minmax(0,1fr)}.calendar-day:not(.is-active),.all-day-cell:not(.is-active){display:none}.calendar-date{font-size:13px}.calendar-event strong{font-size:14px}.calendar-event span{font-size:11px}.calendar-event{padding:5px 8px}.all-day-event{min-height:44px}}

/* Let the left stack determine the desktop height; the calendar fills that height. */
.hour-line{height:var(--hour-height);background:linear-gradient(transparent calc(50% - .5px),#f2f6fc calc(50% - .5px),#f2f6fc calc(50% + .5px),transparent calc(50% + .5px))}
@media(min-width:801px){
.dashboard-layout{align-items:stretch}
.calendar-column{position:relative;display:block}
.calendar-column>.schedule-panel{position:absolute;inset:0;display:flex;flex-direction:column;min-height:0}
.schedule-panel>h2,.schedule-panel>.calendar-help{flex-shrink:0}
.schedule-panel>.vertical-calendar{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}
.vertical-calendar>.calendar-head,.vertical-calendar>.calendar-allday{flex-shrink:0}
.vertical-calendar>.calendar-body{height:auto;flex:1 0 var(--calendar-min-height);min-height:var(--calendar-min-height)}
}

/* Full category pages: all records, searchable list and editable detail. */
.view-all{display:block;margin-top:10px;width:100%;color:#126dcb;background:#f0f6ff;border-color:#e2edf9;font-size:12px;min-height:40px}.excerpt-note{display:block;margin-top:5px;font-size:10px}.schedule-panel>.view-all{flex-shrink:0;margin-top:8px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0 18px}.page-heading h2{font-size:26px;margin:5px 0}.page-heading p{font-size:13px;margin:0;line-height:1.8}.page-heading>button{flex-shrink:0}.page-tools{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.page-tools>div{flex:1;min-width:130px}.page-tools>div:first-child{flex:2;min-width:180px}.page-tools label{margin:0 0 6px;font-size:12px}.page-tools input,.page-tools select{font-size:13px;min-width:0}.page-tools>button{font-size:12px;min-height:44px}.dedicated-page>#record-count{font-size:12px;margin:12px 0}.records-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:12px;align-items:start}.record-list{padding:0;overflow:hidden}.record-card{padding:14px 16px;border-top:1px solid #e7eef8;overflow-wrap:anywhere}.record-card:first-child{border-top:0}.record-card.is-selected{background:#f0f6ff;box-shadow:inset 3px 0 #1680ed}.record-title{font-weight:600;font-size:15px;text-align:left;min-height:44px;padding:5px 0;border:0;border-radius:0;background:transparent;max-width:100%;overflow-wrap:anywhere}.record-title:hover{background:transparent;color:#167bdc}.record-meta{font-size:11px;color:#627898;line-height:1.9}.record-snippet{color:#647894;font-size:12px;margin:5px 0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.record-detail{position:sticky;top:14px;overflow-wrap:anywhere}.detail-heading h3{font-size:20px;line-height:1.6;margin:8px 0 16px}.record-fields{margin:14px 0;display:grid;gap:0}.record-fields>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px solid #e9eff7;font-size:13px}.record-fields dt{color:#6c809b}.record-fields dd{margin:0;color:#243e63}.record-detail h4{font-size:13px;margin:18px 0 8px}.detail-notes{white-space:pre-wrap;font-size:13px;line-height:1.9;color:#526b8d}.detail-photo{width:100%;height:170px;object-fit:cover;border-radius:9px}.record-list .empty{padding:24px}textarea{width:100%;font:inherit;resize:vertical;min-height:100px;border:1px solid #d6e2f1;border-radius:10px;padding:10px;color:#203351}.range-error{color:#9d5c25;font-size:13px;padding:12px}
@media(max-width:800px){.page-heading{align-items:flex-start;flex-direction:column;margin:14px 0}.page-heading h2{font-size:24px}.page-heading p{font-size:12px}.page-tools{gap:10px}.page-tools>div,.page-tools>div:first-child{flex:1 1 calc(50% - 10px);min-width:0}.page-tools>div:first-child{flex-basis:100%}.page-tools input,.page-tools select{font-size:14px}.records-layout{display:flex;flex-direction:column;gap:12px}.records-layout>.panel{width:100%}.record-detail{position:static;order:-1;scroll-margin-top:16px}.record-card{padding:12px 14px}.record-title{font-size:14px}.record-meta{font-size:12px}.detail-photo{height:140px}.view-all{min-height:44px}.record-fields>div{grid-template-columns:85px minmax(0,1fr)}.page-heading>button{min-height:44px}.record-card .actions button{min-height:44px}}
.detail-close{display:none}
@media(max-width:800px){.record-detail[data-expanded="false"]{display:none}.detail-close{display:block;margin-bottom:12px;min-height:44px}}
.primary:hover{background:#0869d4;color:white}
button:focus-visible{outline:2px solid #1680ed;outline-offset:3px}

/* Schedule page: a full month above creation, search and record details. */
.month-panel{padding:0;overflow:hidden;margin-bottom:22px;background:#fff}
.month-toolbar{display:flex;align-items:center;gap:22px;padding:18px 20px}
.month-toolbar h3{font-size:16px;font-weight:500;margin:0;white-space:nowrap}.month-toolbar h3 span{font-size:26px;font-weight:650;margin-left:10px}
.month-navigation{display:flex;gap:6px;align-items:center}.month-navigation button{min-width:42px;min-height:42px;padding:6px 12px}.month-navigation button:first-child,.month-navigation button:last-child{font-size:23px;line-height:1}
.month-caption{margin-left:auto;font-size:12px;color:#7386a0;white-space:nowrap}
.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.month-weekdays{border-top:1px solid var(--line);background:#f7faff}.month-weekdays span{text-align:center;padding:10px 0;font-size:12px;color:#6b7f9b}.month-weekdays span:first-child{color:#d97885}.month-weekdays span:last-child{color:#528cc7}
.month-cell{min-width:0;min-height:122px;padding:5px 4px 10px;border-top:1px solid var(--line);border-right:1px solid var(--line);background:#fff}.month-cell:nth-child(7n){border-right:0}.month-cell.outside-month{background:#f7f9fc}.outside-month .month-day{color:#8a99ae}.month-cell.selected-date{background:#eff6ff;box-shadow:inset 0 0 0 2px #a7cff7}
.month-day{display:flex;align-items:center;justify-content:center;gap:3px;margin:0 auto 5px;min-width:32px;min-height:32px;padding:4px 6px;border:0;background:transparent;font-size:12px;border-radius:18px}.month-day small{font-size:9px}.month-day[aria-pressed=true]{background:#d8eaff;color:#145b9b}.month-day.is-today,.month-day.is-today[aria-pressed=true]{background:#167ff0;color:#fff}.month-day.is-today small{color:#fff}
.month-events{display:flex;flex-direction:column;gap:4px}.month-event{display:flex;align-items:flex-start;gap:4px;min-width:0;min-height:30px;width:100%;padding:5px 5px;text-align:left;font-size:11px;border:0;border-left:3px solid #1680ed;border-radius:4px;background:#e8f2ff;color:#214b79;line-height:1.5}.month-event:hover{background:#cfe6ff}.month-event-time{flex-shrink:0;font-size:10px;padding-top:1px}.month-event-title{min-width:0;overflow-wrap:anywhere}.month-event.is-all-day{background:#def4eb;border-color:#179879;color:#226d58}.month-event.is-all-day:hover{background:#c7ecde}
.month-panel .month-hint{margin:0;padding:10px 16px;border-top:1px solid var(--line);font-size:11px;line-height:1.7;color:#7185a0}
.event-records-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;scroll-margin-top:16px}.event-records-heading h3{font-size:20px;margin:5px 0}.event-records-heading p{font-size:12px;line-height:1.8;margin:5px 0}.event-records-heading>button{flex-shrink:0;min-height:44px;font-size:13px}
@media(max-width:1100px){.month-event{flex-direction:column;gap:0}.month-cell{min-height:115px}}
@media(max-width:800px){.month-toolbar{gap:8px;padding:12px 10px;flex-wrap:wrap}.month-toolbar h3{font-size:13px}.month-toolbar h3 span{font-size:22px;margin-left:6px}.month-navigation{margin-left:auto;gap:3px}.month-navigation button{padding:5px 10px;min-width:36px;min-height:44px}.month-caption{display:none}.month-weekdays span{font-size:11px;padding:8px 0}.month-cell{padding:4px 2px 6px;min-height:100px}.month-day{font-size:12px;min-width:32px;min-height:36px;padding:4px 3px;gap:1px}.month-day small{font-size:8px}.month-events{gap:3px}.month-event{font-size:10px;line-height:1.45;padding:4px 2px;border-left-width:2px;min-height:44px;flex-direction:column;gap:0}.month-event-time{font-size:9px}.month-event-title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.month-panel .month-hint{font-size:10px;padding:9px 10px}.event-records-heading{align-items:flex-start;flex-direction:column;gap:8px}.event-records-heading h3{font-size:18px}.event-records-heading>button{width:100%}.month-panel{margin-bottom:18px}}
