:root{--bg:#f5f7fb;--panel:#fff;--text:#172033;--muted:#687386;--line:#e3e8ef;--brand:#123b5d;--brand2:#176b87;--soft:#eaf2f7;--danger:#a53a3a;--shadow:0 12px 32px rgba(24,39,75,.08)}
html[data-theme="dark"]{--bg:#0f1620;--panel:#16212d;--text:#edf4fb;--muted:#98a7b8;--line:#2a3948;--brand:#69b5d1;--brand2:#8ac9df;--soft:#1c3040;--danger:#ff9e9e;--shadow:0 12px 32px rgba(0,0,0,.28)}
*{box-sizing:border-box}html{color-scheme:light}html[data-theme="dark"]{color-scheme:dark}body{margin:0;font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}a{color:var(--brand2)}.topnav{min-height:72px;padding:10px max(3vw,22px);display:flex;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--panel) 94%,transparent);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font-size:19px;font-weight:850}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:white;font-size:12px;letter-spacing:.08em}.navlinks{display:flex;align-items:center;gap:5px}.navlinks>a,.nav-logout,.theme-toggle{padding:9px 10px;border-radius:9px;text-decoration:none;color:var(--text);background:none;border:0;cursor:pointer}.navlinks>a:hover,.nav-logout:hover,.theme-toggle:hover{background:var(--soft)}.mobile-menu{display:none;background:transparent;color:var(--text);font-size:22px;padding:8px}.inline{display:inline}.nav-logout{font:inherit}.theme-toggle{font-size:18px}main{max-width:1280px;margin:auto;padding:42px 24px;min-height:82vh}footer{text-align:center;padding:34px 20px;color:var(--muted);border-top:1px solid var(--line)}h1,h2,h3,h4{line-height:1.15}h1{font-size:clamp(32px,4vw,48px);margin:7px 0 10px}h2{font-size:22px;margin:0 0 8px}h3{margin:0 0 8px}.eyebrow{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--brand2)}.muted,small{color:var(--muted)}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}.page-head p,.panel-head p{color:var(--muted);margin:0}.button,button.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:var(--brand);color:#fff!important;padding:11px 16px;text-decoration:none;font-weight:750;cursor:pointer}.button:hover{transform:translateY(-1px)}.button.secondary{background:var(--brand2)}.button.ghost{background:var(--soft);color:var(--text)!important}.button.compact{padding:8px 11px}.quick-actions{display:flex;gap:9px;flex-wrap:wrap}.panel,.card,article{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:22px;box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.panel-head>a{text-decoration:none;font-weight:700}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat-card{position:relative;display:flex;flex-direction:column;min-height:150px;background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:20px;text-decoration:none;color:var(--text);box-shadow:var(--shadow);transition:.18s ease}.stat-card:hover{transform:translateY(-4px);border-color:var(--brand2)}.stat-card b{font-size:30px;margin-top:14px}.stat-card small{margin-top:auto;color:var(--brand2);font-weight:700}.stat-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--soft);font-size:11px;font-weight:850}.dashboard-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.calendar-panel{grid-row:span 2}.list-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.list-row div{min-width:0}.list-row strong,.list-row small{display:block}.list-row time{white-space:nowrap;color:var(--muted);font-size:13px}.linked{text-decoration:none;color:var(--text)}.linked:hover strong{color:var(--brand2)}.empty-state{padding:24px 4px;color:var(--muted);text-align:center}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-grid a{padding:14px;border-radius:11px;background:var(--soft);text-decoration:none;font-weight:750}.money-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.money-grid>div{background:var(--soft);padding:16px;border-radius:12px}.money-grid span,.money-grid strong{display:block}.money-grid strong{font-size:25px;margin-top:5px}.tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--line)}.tabs a{padding:10px 14px;text-decoration:none;color:var(--muted);font-weight:700;border-bottom:2px solid transparent}.tabs a.active{color:var(--brand2);border-color:var(--brand2)}.year-picker{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px}.year-picker a{padding:7px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--line);text-decoration:none;color:var(--text)}.year-picker a.active{background:var(--brand);color:white;border-color:var(--brand)}.stats.three{grid-template-columns:repeat(3,1fr)}.mini-stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px}.mini-stat b,.mini-stat span{display:block}.mini-stat b{font-size:25px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 11px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}td small{display:block}.status{display:inline-flex;padding:5px 9px;background:var(--soft);border-radius:999px;font-size:12px;font-weight:750}.status.warn{background:#fff2cf;color:#744f00}.status.muted{color:var(--muted)}.cards-list{display:grid;gap:14px}.renewal-card,.file-row{display:flex;justify-content:space-between;align-items:center;gap:20px}.renewal-date{text-align:right}.renewal-date>*{display:block}.renewal-date strong{font-size:18px}.storage-card{margin-bottom:16px}.progress{height:10px;border-radius:999px;background:var(--soft);overflow:hidden}.progress span{display:block;height:100%;background:var(--brand2);border-radius:inherit}.planner-grid,.profile-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.profile-grid{grid-template-columns:1fr 1fr}.narrow{max-width:680px;margin:auto}.warning{padding:12px 14px;border-radius:10px;background:#fff5dd;color:#694700;border:1px solid #f0dfa7}.hero{padding:70px 0 80px}.hero h1{font-size:clamp(48px,7vw,82px);max-width:850px;letter-spacing:-.04em}.hero p{font-size:20px;max-width:720px;color:var(--muted)}.pill{display:inline-flex;padding:7px 12px;border-radius:999px;background:var(--soft);font-weight:800;color:var(--brand2)}form p{margin:0 0 15px}label{display:block;font-weight:700;margin-bottom:6px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);font:inherit}textarea{min-height:110px;resize:vertical}input[type=checkbox]{width:auto;margin-right:7px}ul.errorlist{color:var(--danger);padding-left:18px}.form-actions{display:flex;gap:9px;margin-top:18px}.modal-root{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px}.modal-root.show{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(3,12,22,.62);backdrop-filter:blur(3px)}.modal-panel{position:relative;width:min(700px,100%);max-height:90vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:19px;padding:26px;box-shadow:0 24px 70px rgba(0,0,0,.35)}.modal-close{position:absolute;right:15px;top:12px;border:0;background:transparent;color:var(--muted);font-size:28px;cursor:pointer}.modal-form h2{font-size:28px;margin:6px 0 20px}.toast-stack{position:fixed;right:20px;top:88px;z-index:90}.toast{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);padding:12px 16px;border-radius:12px}.copy-row{display:flex;gap:8px}.referral-box{margin-bottom:18px}.fc{--fc-border-color:var(--line);--fc-page-bg-color:var(--panel);--fc-neutral-bg-color:var(--soft);--fc-list-event-hover-bg-color:var(--soft)}.fc .fc-button-primary{background:var(--brand);border-color:var(--brand)}.fc .fc-toolbar-title{font-size:18px}.fc-event{cursor:pointer}
@media(max-width:980px){.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.planner-grid{grid-template-columns:1fr}.calendar-panel{grid-row:auto}.navlinks{gap:0}.navlinks>a{font-size:13px;padding:8px 7px}}
@media(max-width:760px){main{padding:28px 16px}.topnav{padding:9px 16px}.mobile-menu{display:block}.navlinks{display:none;position:absolute;left:12px;right:12px;top:68px;flex-direction:column;align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:var(--shadow)}.navlinks.open{display:flex}.navlinks>a,.navlinks form,.navlinks button{width:100%;text-align:left}.page-head{align-items:flex-start;flex-direction:column}.stats,.stats.three,.grid,.profile-grid{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}.renewal-card,.file-row{align-items:flex-start}.renewal-date{text-align:left}.money-grid{grid-template-columns:1fr}.hero{padding:45px 0}.hero h1{font-size:48px}.copy-row{flex-direction:column}.modal-panel{padding:22px 17px}.fc .fc-toolbar{align-items:flex-start;gap:8px}.fc .fc-toolbar-title{font-size:16px}}
.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin:-6px 0 16px;color:var(--muted);font-size:13px}.calendar-legend span{display:inline-flex;align-items:center;gap:7px}.calendar-legend i{width:10px;height:10px;border-radius:50%;background:var(--legend);box-shadow:0 0 0 3px color-mix(in srgb,var(--legend) 16%,transparent)}
.document-category-help{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.document-category-help span,.history-hint{padding:8px 11px;border:1px solid var(--line);background:var(--soft);border-radius:999px;color:var(--muted);font-size:13px}.history-hint{display:block;border-radius:11px;margin:-6px 0 16px}.year-label{align-self:center;color:var(--muted);font-size:13px;font-weight:700}.file-note{margin:5px 0 0;color:var(--muted);font-size:13px}.stats.four{grid-template-columns:repeat(4,1fr)}.finance-stats{margin-bottom:18px}
@media(max-width:980px){.stats.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.stats.four{grid-template-columns:1fr}}
/* Calendar item actions */
.fc-event{position:relative;padding-right:19px!important}.calendar-delete{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:18px;height:18px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.2);color:#fff;font:700 15px/1 system-ui;cursor:pointer;z-index:5}.calendar-delete:hover{background:rgba(0,0,0,.45)}.fc-list-event .calendar-delete{right:8px}.calendar-legend small{flex-basis:100%;margin-top:-4px}
.document-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.danger-button{background:var(--danger)!important}.consultant-panel{margin-top:18px}.consultant-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--soft);font-weight:750;color:var(--brand2);font-size:12px}.field-help{display:block;margin-top:5px;color:var(--muted);font-size:12px}.year-select-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 20px}.year-select-wrap label{margin:0}.year-select-wrap select{width:auto;min-width:180px}

.stats.main-order{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1180px){.stats.main-order{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.stats.main-order{grid-template-columns:1fr}}


/* JININO colour system and agenda ordering */
:root{--planner:#2563eb;--cpd:#7c3aed;--renewals:#d97706;--documents:#0891b2;--finance:#059669;--profile:#db2777}
.stat-card{overflow:hidden}.stat-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--accent,var(--brand2))}.stat-card .stat-icon{background:color-mix(in srgb,var(--accent,var(--brand2)) 14%,var(--panel));color:var(--accent,var(--brand2))}.stat-card small{color:var(--accent,var(--brand2))}.accent-planner{--accent:var(--planner)}.accent-cpd{--accent:var(--cpd)}.accent-renewals{--accent:var(--renewals)}.accent-documents{--accent:var(--documents)}.accent-finance{--accent:var(--finance)}
.section-planner{border-top:4px solid var(--planner)}.section-agenda{border-top:4px solid #db2777}.section-calendar-events{border-top:4px solid #0891b2}.section-cpd{border-top:4px solid var(--cpd)}.section-renewals{border-top:4px solid var(--renewals)}.section-documents{border-top:4px solid var(--documents)}.section-finance{border-top:4px solid var(--finance)}
.navlinks .nav-planner:hover{background:color-mix(in srgb,var(--planner) 13%,var(--panel));color:var(--planner)}.navlinks .nav-cpd:hover{background:color-mix(in srgb,var(--cpd) 13%,var(--panel));color:var(--cpd)}.navlinks .nav-renewals:hover{background:color-mix(in srgb,var(--renewals) 13%,var(--panel));color:var(--renewals)}.navlinks .nav-documents:hover{background:color-mix(in srgb,var(--documents) 13%,var(--panel));color:var(--documents)}.navlinks .nav-finance:hover{background:color-mix(in srgb,var(--finance) 13%,var(--panel));color:var(--finance)}.navlinks .nav-profile:hover{background:color-mix(in srgb,var(--profile) 13%,var(--panel));color:var(--profile)}
.agenda-list{display:grid;gap:10px}.agenda-item,.dashboard-agenda-row,.dashboard-event-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-left:4px solid var(--item-colour);background:color-mix(in srgb,var(--item-colour) 7%,var(--panel));border-radius:12px;padding:10px 9px;min-width:0}.agenda-item{cursor:grab;transition:transform .12s ease,opacity .12s ease}.agenda-item.dragging{opacity:.55;transform:scale(.99)}.agenda-colour{width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:var(--item-colour);box-shadow:0 0 0 4px color-mix(in srgb,var(--item-colour) 15%,transparent)}.agenda-copy,.dashboard-agenda-row>div,.dashboard-event-row>div{flex:1;min-width:0}.agenda-copy strong,.agenda-copy small,.agenda-copy time,.dashboard-agenda-row strong,.dashboard-agenda-row small,.dashboard-event-row strong,.dashboard-event-row small{display:block}.agenda-copy time{font-size:12px;color:var(--muted);margin-top:3px}.agenda-actions{display:flex;gap:3px}.drag-handle,.agenda-move,.agenda-delete,.dashboard-task-delete,.dashboard-event-delete{border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:8px;display:grid;place-items:center;min-width:30px;height:30px;font:700 16px/1 system-ui}.drag-handle{cursor:grab;font-size:14px}.agenda-move:hover,.drag-handle:hover{background:var(--soft);color:var(--text)}.agenda-delete:hover,.dashboard-task-delete:hover,.dashboard-event-delete:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.agenda-item.is-complete{opacity:.6}.dashboard-agenda-row,.dashboard-event-row{margin-bottom:8px}.dashboard-agenda-row time,.dashboard-event-row time{white-space:nowrap;color:var(--muted);font-size:12px}.planner-heading{padding-bottom:4px}
.action-grid a:nth-child(1){border-left:4px solid var(--cpd)}.action-grid a:nth-child(2){border-left:4px solid #db2777}.action-grid a:nth-child(3){border-left:4px solid #0891b2}.action-grid a:nth-child(4){border-left:4px solid #059669}
@media(max-width:760px){.agenda-item,.dashboard-agenda-row,.dashboard-event-row{align-items:flex-start;flex-wrap:wrap}.agenda-copy{flex-basis:calc(100% - 92px)}.agenda-actions{margin-left:auto}.dashboard-agenda-row time,.dashboard-event-row time{margin-left:20px}.drag-handle{display:none}}

.page-head-cpd .eyebrow,.page-head-cpd h1{color:var(--cpd)}.page-head-renewals .eyebrow,.page-head-renewals h1{color:var(--renewals)}.page-head-documents .eyebrow,.page-head-documents h1{color:var(--documents)}.page-head-finance .eyebrow,.page-head-finance h1{color:var(--finance)}.page-head-profile .eyebrow{color:var(--profile)}
.cpd-stats .mini-stat:nth-child(1){border-top:4px solid var(--cpd)}.cpd-stats .mini-stat:nth-child(2){border-top:4px solid #db2777}.cpd-stats .mini-stat:nth-child(3){border-top:4px solid #0891b2}.finance-colour-stats .mini-stat:nth-child(1){border-top:4px solid var(--finance)}.finance-colour-stats .mini-stat:nth-child(2){border-top:4px solid #0891b2}.finance-colour-stats .mini-stat:nth-child(3){border-top:4px solid #2563eb}.finance-colour-stats .mini-stat:nth-child(4){border-top:4px solid #dc2626}
.reflection-cards .panel{border-left:4px solid #db2777}.casebook-cards .panel{border-left:4px solid #0891b2}.renewal-card{border-left:4px solid var(--renewals)}.renewal-gmc{border-left-color:#2563eb}.renewal-royal_college{border-left-color:#7c3aed}.renewal-indemnity{border-left-color:#dc2626}.renewal-insurance{border-left-color:#d97706}.renewal-society{border-left-color:#059669}.renewal-other{border-left-color:#475569}.file-row{border-left:4px solid var(--documents)}

/* v8: renewals, editable portfolio/finance, combined dashboard agenda, plan tiers */
.renewal-card{border-left-color:var(--renewals)!important;background:color-mix(in srgb,var(--renewals) 4%,var(--panel))}.renewal-card .renewal-status{background:color-mix(in srgb,var(--renewals) 14%,var(--panel));color:var(--renewals);border-color:color-mix(in srgb,var(--renewals) 35%,var(--line))}.renewal-main{flex:1;min-width:0}.renewal-dashboard-row{border-left:4px solid var(--renewals);padding-left:12px;background:color-mix(in srgb,var(--renewals) 5%,var(--panel))}
.finance-colour-stats .mini-stat:nth-child(n){border-top:4px solid var(--finance);background:color-mix(in srgb,var(--finance) 5%,var(--panel))}.finance-colour-stats .mini-stat b{color:var(--finance)}.finance-panel{border-top:4px solid var(--finance)}.page-head-finance .button,.page-head-finance .button.secondary{border-color:var(--finance)}
.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.icon-action{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);text-decoration:none;cursor:pointer;font:700 16px/1 system-ui}.icon-action:hover{background:var(--soft);border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}.danger-icon:hover{color:var(--danger);background:color-mix(in srgb,var(--danger) 9%,var(--panel));border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}
.section-agenda-upcoming{border-top:4px solid var(--planner)}.dashboard-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.plan-badge{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid var(--line);background:var(--soft)}.plan-free{color:#475569}.plan-plus{color:#2563eb;background:color-mix(in srgb,#2563eb 9%,var(--panel));border-color:color-mix(in srgb,#2563eb 25%,var(--line))}.plan-pro{color:#7c3aed;background:color-mix(in srgb,#7c3aed 9%,var(--panel));border-color:color-mix(in srgb,#7c3aed 25%,var(--line))}
.membership-plan-panel{margin-bottom:20px;border-top:4px solid var(--profile)}.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.plan-card{display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.plan-card.current{border:2px solid var(--brand);background:color-mix(in srgb,var(--brand) 5%,var(--panel))}.plan-card h3{font-size:25px;margin:4px 0}.plan-card h3 small{font-size:13px;color:var(--muted);font-weight:600}.plan-card p{color:var(--muted);min-height:44px}.plan-card form,.plan-card button{margin-top:auto}
@media(max-width:760px){.plan-grid{grid-template-columns:1fr}.dashboard-head-actions{justify-content:flex-start}.renewal-card{gap:12px}.renewal-card .row-actions{width:100%;justify-content:flex-end}}

.plan-badge{text-decoration:none}.plan-badge:hover{filter:brightness(.97)}

/* v9: persistence feedback, finance reports, expandable locum months, supervisor tracking */
.form-status{min-height:20px;margin-top:8px;color:var(--muted);font-size:13px;font-weight:650}.form-status:not(:empty){padding:8px 10px;border-radius:9px;background:var(--soft)}
.agenda-edit{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;text-decoration:none;color:var(--text);background:var(--panel);font-weight:800}.agenda-edit:hover{background:var(--soft)}
.report-summary{border-top:4px solid var(--finance);background:color-mix(in srgb,var(--finance) 4%,var(--panel));margin-bottom:18px}.report-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.report-metrics>div{padding:14px;border-radius:12px;background:color-mix(in srgb,var(--finance) 8%,var(--panel));border:1px solid color-mix(in srgb,var(--finance) 20%,var(--line))}.report-metrics span,.report-metrics strong{display:block}.report-metrics span{font-size:12px;color:var(--muted)}.report-metrics strong{margin-top:4px;font-size:19px;color:var(--finance)}
.month-report-list{display:grid;gap:10px}.month-report{border:1px solid color-mix(in srgb,var(--finance) 24%,var(--line));border-radius:13px;overflow:hidden;background:var(--panel)}.month-report>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 16px;background:color-mix(in srgb,var(--finance) 6%,var(--panel))}.month-report>summary::-webkit-details-marker{display:none}.month-report>summary:before{content:'›';font-size:22px;color:var(--finance);transition:transform .15s}.month-report[open]>summary:before{transform:rotate(90deg)}.month-report>summary>span:first-of-type{margin-right:auto}.month-report>summary strong,.month-report>summary small{display:block}.month-money{text-align:right;font-size:19px;font-weight:800;color:var(--finance)}.month-money small{font-size:11px;font-weight:650;color:var(--muted)}.month-shifts{padding:0 12px 12px}.month-recorded{display:flex;gap:16px;flex-wrap:wrap;padding:10px 16px 14px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.month-recorded strong{color:var(--finance)}.compact-empty{padding:12px 16px;text-align:left}
.page-head-supervision .eyebrow,.page-head-supervision h1{color:#7c3aed}.section-supervision,.supervisor-callout{border-top:4px solid #7c3aed}.supervisor-stats .mini-stat{border-top:4px solid #7c3aed}.trainee-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.trainee-card{border-left:4px solid #7c3aed}.trainee-on_track{border-left-color:#059669}.trainee-watch{border-left-color:#d97706}.trainee-action{border-left-color:#dc2626}.trainee-completed{border-left-color:#475569;opacity:.88}.trainee-initials{display:inline-grid;place-items:center;min-width:44px;height:34px;padding:0 9px;border-radius:10px;background:color-mix(in srgb,#7c3aed 12%,var(--panel));color:#7c3aed;font-weight:900;letter-spacing:.08em;margin-bottom:8px}.trainee-status{white-space:nowrap}.progress-row{display:flex;align-items:center;gap:12px;margin:15px 0}.progress-track{height:10px;flex:1;border-radius:99px;background:var(--soft);overflow:hidden}.progress-track span{display:block;height:100%;border-radius:inherit;background:#7c3aed}.trainee-on_track .progress-track span{background:#059669}.trainee-watch .progress-track span{background:#d97706}.trainee-action .progress-track span{background:#dc2626}.trainee-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.trainee-meta>div{background:var(--soft);border-radius:10px;padding:10px}.trainee-meta small,.trainee-meta strong{display:block}
@media(max-width:980px){.report-metrics{grid-template-columns:repeat(2,1fr)}.trainee-grid{grid-template-columns:1fr}}
@media(max-width:620px){.report-metrics{grid-template-columns:1fr}.month-report>summary{align-items:flex-start}.month-money{font-size:17px}.trainee-meta{grid-template-columns:1fr}}

/* v10: calendar month/week switcher + longitudinal trainee progress */
.fc .fc-button-group .fc-button{min-width:72px}.fc .fc-timegrid-slot{height:2.5em}.fc .fc-timegrid-now-indicator-line{border-color:#dc2626}.fc .fc-timegrid-now-indicator-arrow{border-color:#dc2626}
.supervisor-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.button.ghost{background:var(--soft);color:var(--text)!important}.progress-history{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.progress-history>summary{cursor:pointer;font-weight:800;display:flex;justify-content:space-between;gap:12px;align-items:center}.progress-history>summary span{font-size:12px;color:var(--muted);font-weight:700}.progress-timeline{margin-top:14px;display:grid;gap:0}.progress-update{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding-bottom:18px}.progress-update:not(:last-child)::before{content:"";position:absolute;left:7px;top:16px;bottom:0;width:2px;background:var(--line)}.progress-dot{width:16px;height:16px;border-radius:50%;background:#7c3aed;border:3px solid color-mix(in srgb,#7c3aed 18%,var(--panel));margin-top:2px;z-index:1}.progress-update-body{min-width:0;background:var(--soft);border-radius:12px;padding:12px}.progress-update-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.progress-update-head>div:first-child{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.progress-update-body p{margin:10px 0}.progress-note{display:grid;gap:3px;padding-top:9px;margin-top:9px;border-top:1px solid var(--line)}.progress-note small{font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:10px}.compact-empty{padding:10px 0;text-align:left}
@media(max-width:700px){.fc .fc-toolbar{display:grid;grid-template-columns:1fr;gap:9px}.fc .fc-toolbar-chunk{display:flex;justify-content:center}.fc .fc-toolbar-title{font-size:16px}.fc .fc-button{padding:.45em .55em}.fc .fc-button-group .fc-button{min-width:64px}.progress-update-head{flex-direction:column}.supervisor-actions .button{flex:1}}


/* v11: smoother calendars, external integrations, uniform supervision, news feed, task completion */
.fc .fc-daygrid-day-frame{min-height:112px;padding:2px}.fc .fc-daygrid-day-top{padding:3px 5px}.fc .fc-daygrid-day-number{font-weight:800;color:var(--text);text-decoration:none}.fc .fc-day-today{background:color-mix(in srgb,var(--brand2) 7%,var(--panel))!important}.fc .fc-daygrid-event{margin:2px 3px;padding:3px 22px 3px 6px;border:0!important;border-radius:7px;box-shadow:0 1px 3px rgba(0,0,0,.08);font-size:11px;font-weight:750;line-height:1.25;transition:transform .12s ease,filter .12s ease;overflow:hidden}.fc .fc-daygrid-event .fc-event-main{overflow:hidden}.fc .fc-daygrid-event .fc-event-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc .fc-daygrid-event .fc-event-time{font-size:10px;font-weight:800;opacity:.9}.fc .fc-daygrid-more-link{display:inline-flex;margin:3px 4px;padding:3px 7px;border-radius:999px;background:var(--soft);font-size:11px;font-weight:800;text-decoration:none}.fc .fc-timegrid-event{border-radius:8px;border:0!important;box-shadow:0 2px 5px rgba(0,0,0,.08)}.fc-event:hover{filter:brightness(.97);transform:translateY(-1px)}.external-calendar-event{outline:1px dashed rgba(255,255,255,.65);outline-offset:-2px}.external-calendar-event .fc-event-title:after{content:' ↗';font-size:9px;opacity:.85}.calendar-delete{opacity:.86}.calendar-delete:hover{opacity:1}.agenda-complete,.complete-icon{display:grid;place-items:center;width:32px;height:32px;border:1px solid color-mix(in srgb,#059669 35%,var(--line));border-radius:9px;background:color-mix(in srgb,#059669 8%,var(--panel));color:#059669;font-weight:900;cursor:pointer}.agenda-item.is-complete .agenda-copy{text-decoration:line-through;opacity:.62}.agenda-item.is-complete .agenda-complete{color:var(--muted);border-color:var(--line);background:var(--soft)}
/* Educational Supervisor: one consistent trainee colour, regardless of progress state. */
.trainee-card,.trainee-on_track,.trainee-watch,.trainee-action,.trainee-completed{border-left-color:#7c3aed!important;opacity:1}.trainee-card .progress-track span,.trainee-on_track .progress-track span,.trainee-watch .progress-track span,.trainee-action .progress-track span,.trainee-completed .progress-track span{background:#7c3aed!important}.trainee-card .trainee-status{background:color-mix(in srgb,#7c3aed 10%,var(--panel));color:#6d28d9}
.integration-help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.integration-help{border-top:4px solid var(--planner)}.integration-help p{margin-bottom:0;color:var(--muted)}.integration-list{margin-bottom:18px}.integration-card{display:flex;justify-content:space-between;align-items:center;gap:18px;border-left:5px solid var(--integration-colour)}.integration-main{min-width:0}.integration-title{display:flex;align-items:center;gap:10px}.integration-title h3{margin:0}.integration-dot{width:13px;height:13px;border-radius:50%;background:var(--integration-colour);flex:none}.integration-error{margin-top:10px}.integration-note code{padding:2px 5px;border-radius:5px;background:var(--soft)}
.news-heading .eyebrow,.news-heading h1{color:#2563eb}.news-filters{display:flex;gap:10px;align-items:center;margin-bottom:18px}.news-filters select{max-width:260px}.news-grid{display:grid;gap:16px}.news-card{position:relative;border-left:5px solid #2563eb}.news-card.news-event{border-left-color:#7c3aed}.news-card.news-sponsored{border-left-color:#d97706;background:color-mix(in srgb,#d97706 3%,var(--panel))}.news-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px}.news-meta time{margin-left:auto}.news-badge{padding:4px 8px;border-radius:999px;background:var(--soft);font-weight:850;color:var(--text)}.news-sponsored .news-badge{background:color-mix(in srgb,#d97706 14%,var(--panel));color:#a45a00}.news-summary{font-size:17px;font-weight:650;color:var(--text)}.news-body{color:var(--text)}.news-event-date{margin-top:14px;padding:10px 12px;border-radius:10px;background:var(--soft)}.news-footer{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.news-footer strong,.news-footer small{display:block}
@media(max-width:900px){.integration-help-grid{grid-template-columns:1fr}.integration-card{align-items:flex-start;flex-direction:column}.news-filters{flex-wrap:wrap}.news-filters select{max-width:none;flex:1 1 220px}}
@media(max-width:620px){.fc .fc-daygrid-day-frame{min-height:88px}.fc .fc-daygrid-event{margin:1px 2px;padding:3px 18px 3px 4px;font-size:10px}.fc .fc-daygrid-event .fc-event-time{display:none}.news-footer{align-items:flex-start;flex-direction:column}}

.calendar-panel .fc .fc-daygrid-day-frame{min-height:86px}

/* v12: News & Events two-column card layout */
.news-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.news-card{display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.news-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(24,39,75,.12)}
.news-card h2{font-size:clamp(20px,2vw,25px);margin:14px 0 9px;letter-spacing:-.015em}
.news-card .news-summary{margin:0 0 12px}
.news-card .news-body{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;line-height:1.58;color:var(--muted)}
.news-card .news-event-date{border-left:3px solid #7c3aed}
.news-card .news-footer{margin-top:auto}
.news-card.news-news{border-top:4px solid #2563eb;border-left:1px solid var(--line)}
.news-card.news-event{border-top:4px solid #7c3aed;border-left:1px solid var(--line)}
.news-card.news-sponsored{border-top:4px solid #d97706;border-left:1px solid var(--line)}
.news-card.news-sponsored:before{content:'Sponsored';position:absolute;top:0;right:18px;transform:translateY(-1px);padding:4px 9px;border-radius:0 0 9px 9px;background:#d97706;color:white;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:820px){.news-grid{grid-template-columns:1fr}.news-card .news-body{-webkit-line-clamp:8}}

/* v13: colour-matched calendar modals, premium locum/supervisor modules, rota coordinator */
.modal-panel{transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.modal-panel.modal-accented{border:2px solid color-mix(in srgb,var(--modal-accent) 58%,var(--line));background:color-mix(in srgb,var(--modal-accent) 12%,var(--panel));box-shadow:0 22px 70px color-mix(in srgb,var(--modal-accent) 18%,transparent)}.modal-panel.modal-accented .eyebrow,.modal-panel.modal-accented h2{color:color-mix(in srgb,var(--modal-accent) 86%,var(--text))}.modal-panel.modal-accented input,.modal-panel.modal-accented select,.modal-panel.modal-accented textarea{background:color-mix(in srgb,var(--panel) 94%,var(--modal-accent));}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.detail-grid>div{padding:10px;border-radius:10px;background:color-mix(in srgb,var(--panel) 72%,transparent);border:1px solid color-mix(in srgb,var(--modal-accent) 22%,var(--line))}.detail-grid small,.detail-grid strong{display:block}.detail-grid small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.rota-heading .eyebrow,.rota-heading h1{color:#0891b2}.rota-group-panel{border-top:4px solid #0891b2}.rota-members{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 16px}.rota-member-chip{padding:6px 9px;border-radius:999px;background:color-mix(in srgb,#0891b2 10%,var(--panel));color:#0e7490;font-weight:750;font-size:12px}.rota-event-list{display:grid;gap:8px}.rota-event-row{display:grid;grid-template-columns:8px minmax(0,1fr) auto 36px auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.rota-event-row small,.rota-event-row strong{display:block}.rota-event-row time{font-size:12px;color:var(--muted)}
.premium-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,#7c3aed 12%,var(--panel));color:#6d28d9;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.locum-status{display:inline-flex;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,#059669 10%,var(--panel));color:#047857;font-weight:800;font-size:11px}.locum-status-overdue{background:color-mix(in srgb,#dc2626 10%,var(--panel));color:#b91c1c}.locum-status-paid{background:color-mix(in srgb,#059669 14%,var(--panel));color:#047857}
@media(max-width:680px){.detail-grid{grid-template-columns:1fr}.rota-event-row{grid-template-columns:8px minmax(0,1fr) 34px auto}.rota-event-row time{grid-column:2/5}}
.rota-calendar-event{outline:1px dotted rgba(255,255,255,.8);outline-offset:-2px}.rota-calendar-event .fc-event-title:after{content:' • rota';font-size:9px;opacity:.9}
.locum-pro-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.month-kpis{display:flex;gap:16px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.month-kpis strong{color:var(--finance)}.premium-lock{border-top:4px solid #7c3aed}.locum-status-booked{background:color-mix(in srgb,#2563eb 10%,var(--panel));color:#1d4ed8}.locum-status-worked,.locum-status-timesheet{background:color-mix(in srgb,#7c3aed 10%,var(--panel));color:#6d28d9}.locum-status-invoiced,.locum-status-awaiting{background:color-mix(in srgb,#d97706 12%,var(--panel));color:#a45a00}.locum-status-overdue{background:color-mix(in srgb,#dc2626 12%,var(--panel));color:#b91c1c}.locum-status-paid{background:color-mix(in srgb,#059669 14%,var(--panel));color:#047857}
@media(max-width:1100px){.locum-pro-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:650px){.locum-pro-stats{grid-template-columns:repeat(2,1fr)}}
.supervisor-pro-meta{grid-template-columns:repeat(4,1fr)}.objective-history{margin-top:16px;border-top:1px solid var(--line);padding-top:13px}.objective-history>summary{cursor:pointer;font-weight:850;display:flex;justify-content:space-between}.objective-list{display:grid;gap:7px;margin-top:10px}.objective-row{display:grid;grid-template-columns:32px minmax(0,1fr) 32px 32px;align-items:center;gap:8px;padding:9px;border-radius:10px;background:var(--soft)}.objective-row small,.objective-row strong{display:block}.objective-row.is-complete{opacity:.62}.objective-row.is-complete strong{text-decoration:line-through}.objective-toggle{width:30px;height:30px;border-radius:9px;border:1px solid color-mix(in srgb,#7c3aed 30%,var(--line));background:color-mix(in srgb,#7c3aed 8%,var(--panel));color:#7c3aed;font-weight:900;cursor:pointer}
@media(max-width:760px){.supervisor-pro-meta{grid-template-columns:repeat(2,1fr)}}
.advertiser-rate-card{border-top:4px solid #d97706;margin-bottom:16px}.rate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.rate-grid>div{padding:12px;border-radius:11px;background:color-mix(in srgb,#d97706 7%,var(--panel));border:1px solid color-mix(in srgb,#d97706 18%,var(--line))}.rate-grid strong,.rate-grid span{display:block}.rate-grid strong{font-size:18px;color:#a45a00}.rate-grid span{font-size:12px;color:var(--muted);margin-top:3px}.workflow-badge{padding:4px 8px;border-radius:999px;font-weight:850;background:var(--soft)}.workflow-review{background:color-mix(in srgb,#d97706 12%,var(--panel));color:#a45a00}.workflow-approved{background:color-mix(in srgb,#7c3aed 12%,var(--panel));color:#6d28d9}.workflow-published{background:color-mix(in srgb,#059669 12%,var(--panel));color:#047857}.workflow-rejected{background:color-mix(in srgb,#dc2626 10%,var(--panel));color:#b91c1c}.news-unpublished{border-style:dashed;opacity:.94}.commercial-package{margin-top:12px;padding:9px 10px;border-radius:9px;background:var(--soft);font-size:12px}
@media(max-width:760px){.rate-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.rate-grid{grid-template-columns:1fr}}
.guide-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.guide-nav a{padding:7px 10px;border-radius:999px;background:var(--soft);font-weight:750;text-decoration:none}.guide-section{margin-bottom:14px;scroll-margin-top:90px}.guide-section ol{padding-left:22px;line-height:1.65}.guide-security{padding:11px 12px;border-radius:10px;background:color-mix(in srgb,#0891b2 7%,var(--panel));border-left:4px solid #0891b2}

/* v14: priority agenda, supervisor progress slider, adaptive calendar views */
.progress-slider-wrap{display:grid;grid-template-columns:minmax(0,1fr) 64px;align-items:center;gap:14px;padding:4px 0 2px}
input.progress-slider,input[type="range"].progress-slider{width:100%;padding:0;border:0;background:transparent;accent-color:#7c3aed;cursor:pointer}
.progress-slider-value{display:grid;place-items:center;min-height:40px;border-radius:10px;background:color-mix(in srgb,#7c3aed 10%,var(--panel));border:1px solid color-mix(in srgb,#7c3aed 24%,var(--line));color:#6d28d9;font-weight:900;font-size:16px}
html[data-theme="dark"] .progress-slider-value{color:#c4b5fd}

.agenda-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.agenda-title-line strong{min-width:0}
.priority-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
.priority-high{background:color-mix(in srgb,#dc2626 12%,var(--panel));color:#b91c1c}.priority-medium{background:color-mix(in srgb,#d97706 11%,var(--panel));color:#a45a00}.priority-low{background:color-mix(in srgb,#64748b 11%,var(--panel));color:#475569}
html[data-theme="dark"] .priority-high{color:#fca5a5}html[data-theme="dark"] .priority-medium{color:#fcd34d}html[data-theme="dark"] .priority-low{color:#cbd5e1}
.agenda-group{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.agenda-group:first-of-type{margin-top:0;padding-top:0;border-top:0}
.agenda-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.agenda-group-head h3{font-size:14px;margin:0 0 2px}.agenda-group-head>span{display:grid;place-items:center;min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:var(--soft);font-size:11px;font-weight:900;color:var(--muted)}
.agenda-group-urgent .agenda-group-head h3{color:#b91c1c}.agenda-group-today .agenda-group-head h3{color:#2563eb}.agenda-group-week .agenda-group-head h3{color:#7c3aed}.agenda-group-unscheduled .agenda-group-head h3{color:#64748b}

/* Clearer event chips: time is separated from the title and titles may wrap to two lines in month view. */
.fc .fc-daygrid-event{padding:4px 24px 4px 6px;min-height:28px}
.mc-event-content{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:5px;width:100%}.mc-event-time{font-size:9px;font-weight:900;opacity:.88;line-height:1.35;padding-top:1px}.mc-event-title{min-width:0;font-size:11px;font-weight:800;line-height:1.28;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.fc .fc-timegrid-event .mc-event-content{display:block;padding:2px 3px}.fc .fc-timegrid-event .mc-event-time{display:block;font-size:10px;margin-bottom:2px}.fc .fc-timegrid-event .mc-event-title{font-size:11px;-webkit-line-clamp:3}
.fc .fc-daygrid-day-frame{min-height:124px}.fc .fc-daygrid-day-top{padding:5px 6px}.fc .fc-daygrid-more-link{margin-top:4px}.fc .fc-popover{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}.fc .fc-popover-header{background:var(--soft);color:var(--text)}
.calendar-view-card{transition:grid-column .18s ease,width .18s ease,padding .18s ease}.calendar-view-card.is-week-view{padding-bottom:16px}.calendar-view-card.is-week-view .fc .fc-timegrid-slot{height:2.15em}.calendar-view-card.is-week-view .fc .fc-timegrid-axis{font-size:11px}.calendar-view-card.is-week-view .fc .fc-col-header-cell-cushion{padding:8px 4px;font-weight:850;text-decoration:none;color:var(--text)}
.planner-grid.calendar-month-layout{grid-template-columns:minmax(0,1.6fr) minmax(300px,.75fr)}
.planner-grid.calendar-week-layout{grid-template-columns:1fr}.planner-grid.calendar-week-layout .planner-calendar-card{grid-column:1/-1}.planner-grid.calendar-week-layout .section-agenda{grid-column:1/-1}
.dashboard-grid.calendar-week-layout .calendar-panel{grid-column:1/-1;grid-row:auto}.dashboard-grid.calendar-week-layout .calendar-panel .fc{max-width:none}
.dashboard-grid.calendar-month-layout .calendar-panel .fc .fc-daygrid-day-frame{min-height:92px}.dashboard-grid.calendar-month-layout .calendar-panel .mc-event-title{font-size:10px}.dashboard-grid.calendar-month-layout .calendar-panel .mc-event-time{font-size:8px}

@media(max-width:980px){.planner-grid.calendar-month-layout,.planner-grid.calendar-week-layout{grid-template-columns:1fr}.planner-grid .planner-calendar-card,.planner-grid .section-agenda{grid-column:auto}.dashboard-grid.calendar-week-layout .calendar-panel{grid-column:auto}.fc .fc-daygrid-day-frame{min-height:104px}}
@media(max-width:700px){.mc-event-content{grid-template-columns:1fr;gap:0}.fc .fc-daygrid-event{padding:3px 18px 3px 4px;min-height:24px}.fc .fc-daygrid-event .mc-event-time{display:none}.fc .fc-daygrid-day-frame{min-height:88px}.calendar-view-card{padding:15px}.calendar-view-card .panel-head{margin-bottom:10px}.agenda-group-head small{font-size:11px}.progress-slider-wrap{grid-template-columns:minmax(0,1fr) 56px}.progress-slider-value{min-height:38px;font-size:14px}}
@media(max-width:700px){.calendar-view-card.is-week-view #fullCalendar,.calendar-view-card.is-week-view #dashboardCalendar{overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.calendar-view-card.is-week-view #fullCalendar>.fc,.calendar-view-card.is-week-view #dashboardCalendar>.fc{min-width:720px}}

/* v15: appraisal pack, 10% supervisor slider ticks, calendar hub */
.page-head-appraisal{border-bottom:1px solid color-mix(in srgb,#0f766e 24%,var(--line));padding-bottom:16px}.appraisal-button{background:#0f766e;border-color:#0f766e}.appraisal-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;border-color:color-mix(in srgb,#0f766e 30%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,#0f766e 9%,var(--panel)),var(--panel))}.appraisal-hero>div{display:flex;gap:16px;align-items:flex-start;min-width:0}.appraisal-hero h2{margin:5px 0 7px}.appraisal-icon{flex:0 0 52px;width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:#0f766e;color:#fff;font-size:24px;font-weight:900}.appraisal-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.appraisal-source{position:relative;overflow:hidden;padding:18px;border-top:4px solid var(--appraisal-colour,#0f766e)}.appraisal-source b,.appraisal-source span,.appraisal-source small{display:block}.appraisal-source b{font-size:28px}.appraisal-source span{font-weight:800;margin-top:3px}.appraisal-source small{color:var(--muted);margin-top:2px}.appraisal-source.cpd{--appraisal-colour:#2563eb}.appraisal-source.reflection{--appraisal-colour:#7c3aed}.appraisal-source.casebook{--appraisal-colour:#0891b2}.appraisal-source.renewal{--appraisal-colour:#ea580c}.appraisal-source.documents{--appraisal-colour:#475569}.appraisal-source.supervisor{--appraisal-colour:#7c3aed}.appraisal-editor{margin-top:16px}.appraisal-editor textarea{min-height:150px}.appraisal-checklist{margin-top:16px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0 16px}.check-grid span{padding:10px 12px;background:var(--soft);border-radius:10px;font-weight:700;font-size:13px}

.progress-slider-wrap{grid-template-columns:minmax(0,1fr) 64px}.progress-slider-track-wrap{min-width:0}.progress-slider-scale{display:flex;justify-content:space-between;align-items:flex-start;margin:2px 2px 0;min-height:23px;position:relative}.progress-slider-tick{display:grid;justify-items:center;gap:3px;min-width:0;color:var(--muted);font-size:9px}.progress-slider-tick::before{content:"";width:5px;height:5px;border-radius:50%;background:color-mix(in srgb,#7c3aed 56%,var(--line))}.progress-slider-tick.is-active::before{width:7px;height:7px;background:#7c3aed}.progress-slider-tick span{transform:translateX(0);line-height:1}.progress-slider-tick:not(:first-child):not(:nth-child(6)):not(:last-child) span{visibility:hidden}.progress-slider-tick:first-child span,.progress-slider-tick:nth-child(6) span,.progress-slider-tick:last-child span{visibility:visible}

.calendar-hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.calendar-direction{position:relative;padding-top:22px}.integration-direction-badge{position:absolute;right:16px;top:14px;display:grid;place-items:center;width:36px;height:28px;border-radius:999px;font-weight:900;font-size:11px}.import-direction{border-top:4px solid #2563eb}.import-direction .integration-direction-badge{background:color-mix(in srgb,#2563eb 12%,var(--panel));color:#2563eb}.export-direction{border-top:4px solid #059669}.export-direction .integration-direction-badge{background:color-mix(in srgb,#059669 12%,var(--panel));color:#047857}.switch-line{display:flex;align-items:center;gap:9px;font-weight:700;margin:10px 0}.switch-line input{width:auto}.private-feed-panel{margin:16px 0;border-color:color-mix(in srgb,#059669 28%,var(--line))}.private-feed-panel .copy-row input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.integration-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.integration-steps>div{background:var(--soft);padding:12px;border-radius:11px}.integration-steps strong,.integration-steps small{display:block}.integration-steps small{margin-top:4px;color:var(--muted);line-height:1.4}

@media(max-width:900px){.appraisal-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-hub-grid{grid-template-columns:1fr}.integration-steps{grid-template-columns:1fr}}
@media(max-width:600px){.appraisal-hero{align-items:flex-start;flex-direction:column}.appraisal-source-grid,.check-grid{grid-template-columns:1fr}.appraisal-icon{width:44px;height:44px;flex-basis:44px}.progress-slider-wrap{grid-template-columns:minmax(0,1fr) 54px}.progress-slider-tick{font-size:8px}.private-feed-panel .copy-row{display:grid;grid-template-columns:1fr}.private-feed-panel .copy-row input{min-width:0}}
.appraisal-dashboard-cta{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:10px 0 14px;padding:13px 14px;border-radius:12px;background:color-mix(in srgb,#0f766e 10%,var(--panel));border:1px solid color-mix(in srgb,#0f766e 24%,var(--line));text-decoration:none;color:var(--text)}.appraisal-dashboard-cta strong,.appraisal-dashboard-cta span{display:block}.appraisal-dashboard-cta span{color:var(--muted);font-size:12px;text-align:right}.appraisal-dashboard-cta:hover{border-color:#0f766e}
@media(max-width:600px){.appraisal-dashboard-cta{align-items:flex-start;flex-direction:column}.appraisal-dashboard-cta span{text-align:left}}


/* v16: quick-start onboarding, Teaching, separated Agenda/To-Do, plan comparison and sharing */
.onboarding-shell{max-width:820px;margin:0 auto}.onboarding-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.onboarding-top h1{font-size:clamp(34px,5vw,52px)}.onboarding-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:0 0 18px}.onboarding-steps>span{display:flex;align-items:center;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);font-weight:800;color:var(--muted)}.onboarding-steps>span b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--soft);color:var(--text)}.onboarding-steps>span.active{border-color:color-mix(in srgb,var(--brand2) 45%,var(--line));background:color-mix(in srgb,var(--brand2) 7%,var(--panel));color:var(--text)}.onboarding-steps>span.active b{background:var(--brand2);color:#fff}.onboarding-steps small{font-size:10px;margin-left:auto}.onboarding-card{padding:28px;border-top:5px solid var(--brand2)}.setup-icon{display:grid;place-items:center;width:46px;height:38px;border-radius:12px;background:var(--soft);font-weight:900;color:var(--brand2);margin-bottom:14px}.onboarding-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.onboarding-footnote{text-align:center;color:var(--muted);font-size:13px;margin:18px auto 0;max-width:650px}.setup-banner{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 17px;margin:-8px 0 20px;border-radius:14px;border:1px solid color-mix(in srgb,var(--brand2) 25%,var(--line));background:color-mix(in srgb,var(--brand2) 7%,var(--panel));text-decoration:none;color:var(--text)}.setup-banner span strong,.setup-banner span small{display:block}.setup-banner b{white-space:nowrap;color:var(--brand2)}
.teaching-card{border-left:4px solid #7c3aed}.teaching-status{background:color-mix(in srgb,#7c3aed 12%,var(--panel));color:#6d28d9}.appraisal-source.teaching{border-top:4px solid #7c3aed}
.dashboard-scroll-panel{min-height:420px}.scroll-list{max-height:470px;overflow-y:auto;overscroll-behavior:contain;padding-right:5px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--brand2) 45%,transparent) transparent}.scroll-list::-webkit-scrollbar{width:8px}.scroll-list::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--brand2) 35%,var(--line));border-radius:99px}.agenda-calendar-panel{border-top:4px solid #2563eb}.todo-panel{border-top:4px solid #7c3aed}.timeline-row{width:100%;display:grid;grid-template-columns:42px 8px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:12px 8px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer;border-radius:10px}.timeline-row:hover,.todo-main:hover{background:var(--soft)}.timeline-date{display:grid;place-items:center;line-height:1}.timeline-date b{font-size:20px}.timeline-date small{text-transform:uppercase;font-size:10px;margin-top:4px}.timeline-copy{min-width:0}.timeline-copy strong,.timeline-copy small{display:block}.timeline-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-copy small{margin-top:3px}.locum-mini{white-space:nowrap;background:color-mix(in srgb,#059669 10%,var(--panel));color:#047857}.todo-scroll .agenda-group{padding:8px 0 2px}.todo-row{display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.todo-main{display:grid;grid-template-columns:8px minmax(0,1fr);align-items:center;gap:10px;width:100%;padding:11px 8px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;border-radius:9px}.dashboard-scroll-panel .agenda-colour{width:8px;height:34px;border-radius:99px;background:var(--item-colour)}
.plan-comparison-wrap{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.plan-comparison th:not(:first-child),.plan-comparison td:not(:first-child){text-align:center}.plan-comparison td:first-child{font-weight:750}.plan-comparison tbody tr:hover{background:var(--soft)}.referral-share-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.share-button{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line);border-radius:11px;text-decoration:none;font-weight:800;background:var(--panel);color:var(--text);cursor:pointer}.share-button.whatsapp{background:color-mix(in srgb,#16a34a 10%,var(--panel));color:#15803d}.share-button.sms{background:color-mix(in srgb,#2563eb 9%,var(--panel));color:#2563eb}.share-button.native-share{font:inherit}.danger-button{background:#b91c1c!important}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 16px}.detail-grid>div{background:var(--soft);border-radius:10px;padding:11px}.detail-grid small,.detail-grid strong{display:block}
@media(max-width:760px){.onboarding-top{flex-direction:column}.onboarding-steps{grid-template-columns:1fr}.onboarding-steps small{margin-left:0}.referral-share-grid{grid-template-columns:1fr}.timeline-row{grid-template-columns:38px 7px minmax(0,1fr)}.timeline-row>.status{grid-column:3}.dashboard-scroll-panel{min-height:auto}.scroll-list{max-height:390px}.detail-grid{grid-template-columns:1fr}.plan-comparison{min-width:640px}.setup-banner{align-items:flex-start;flex-direction:column}.setup-banner b{white-space:normal}}

/* v17: agenda/month/week calendar, plan gating, profile cleanup, thumbnails, page ads */
.toast-success{border-left:4px solid #059669}.toast-hide{opacity:0;transform:translateY(-6px);transition:.25s ease}
.page-ad-card{margin:28px 0 0;border:1px solid var(--line);border-radius:17px;background:var(--panel);padding:14px 18px;box-shadow:var(--shadow);overflow:hidden}.page-ad-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:850;margin-bottom:8px}.page-ad-content{min-height:72px;display:grid;place-items:center;text-align:center}.page-ad-content>*{max-width:100%}
.membership-summary-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;border-top:4px solid var(--brand2)}.membership-summary-card h2{margin:5px 0}.membership-summary-card p{margin:0;color:var(--muted);max-width:760px}.membership-detail-grid{margin-bottom:18px}.membership-detail-grid .plan-card{min-height:250px}.account-actions-card .action-grid a{display:flex;align-items:center;min-height:52px}.panel-add{align-self:center;white-space:nowrap}
.news-thumbnail{height:190px;margin:-22px -22px 16px;overflow:hidden;border-radius:16px 16px 0 0;background:var(--soft)}.news-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.news-card{overflow:hidden}
.calendar-move-hint{margin-left:auto;flex:0 0 auto;font-size:13px;font-weight:900;opacity:.9;padding-left:4px}.fc-event[style*="cursor"] .calendar-move-hint{cursor:grab}.fc-event:active .calendar-move-hint{cursor:grabbing}.fc .fc-daygrid-event{min-height:29px;padding:4px 20px 4px 5px;border-radius:7px;box-shadow:0 1px 2px rgba(0,0,0,.12)}.fc .fc-daygrid-event .mc-event-content{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px;width:100%}.fc .fc-daygrid-event .mc-event-title{font-size:11px;font-weight:800;line-height:1.2;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.fc .fc-daygrid-event .mc-event-time{font-size:9px;font-weight:850;opacity:.92}.fc .fc-timegrid-event .mc-event-content{display:flex;gap:5px;align-items:flex-start;flex-wrap:wrap}.fc .fc-timegrid-event .mc-event-title{font-weight:800;line-height:1.18}.fc .fc-timegrid-event .calendar-move-hint{margin-left:0}.fc .fc-list-event{cursor:pointer}.fc .fc-list-event-title a{font-weight:800;color:var(--text)}.fc .fc-list-day-cushion{background:var(--soft);padding:9px 12px}.fc .fc-list-event td{padding:11px 10px}.fc .fc-list-event-dot{border-width:6px}.calendar-view-card.is-agenda-view{padding-bottom:18px}.planner-grid.calendar-agenda-layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr)}.calendar-view-card.is-week-view,.calendar-view-card.is-agenda-view{box-shadow:0 12px 34px color-mix(in srgb,var(--brand) 8%,transparent)}
.fc .fc-button{font-weight:800}.fc .fc-button-active{box-shadow:inset 0 0 0 2px rgba(255,255,255,.28)}.fc .fc-daygrid-day-number{font-weight:800;color:var(--text);text-decoration:none}.fc .fc-day-today{background:color-mix(in srgb,var(--brand) 7%,var(--panel))!important}
.plan-badge.plan-free{background:var(--soft)}.plan-badge.plan-plus{background:color-mix(in srgb,#059669 12%,var(--panel));color:#047857}.plan-badge.plan-pro{background:color-mix(in srgb,#7c3aed 12%,var(--panel));color:#6d28d9}
@media(max-width:980px){.planner-grid.calendar-agenda-layout{grid-template-columns:1fr}.membership-summary-card{align-items:flex-start;flex-direction:column}.news-thumbnail{height:175px}}
@media(max-width:700px){.fc .fc-toolbar{gap:8px;align-items:stretch;flex-direction:column}.fc .fc-toolbar-chunk{display:flex;justify-content:center;flex-wrap:wrap}.fc .fc-toolbar-title{text-align:center}.fc .fc-daygrid-event{padding-right:18px}.fc .fc-daygrid-event .mc-event-title{-webkit-line-clamp:1}.calendar-move-hint{font-size:12px}.news-thumbnail{height:160px}.membership-summary-card .button{width:100%}}

.calendar-own-event{cursor:grab!important}.calendar-own-event:active{cursor:grabbing!important}.calendar-own-event:hover{filter:brightness(1.04);transform:translateY(-1px)}

/* v18: JININO branding, notifications, reviews, legal */
.brand-logo-pair{display:flex;align-items:center;gap:10px}.brand-icon{width:38px;height:38px;object-fit:contain;flex:0 0 auto}.brand-wordmark{height:32px;width:auto;object-fit:contain}.theme-dark-only{display:none}html[data-theme="dark"] .theme-light-only{display:none}html[data-theme="dark"] .theme-dark-only{display:block}
footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.footer-links{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.footer-links a{text-decoration:none;color:var(--muted)}.footer-links a:hover{color:var(--brand2)}
.docos-announcement{position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:18px;background:rgba(3,12,22,.5);backdrop-filter:blur(3px)}.docos-announcement-card{max-width:620px;width:min(100%,620px);border-top:6px solid var(--brand2)}.docos-announcement-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.docos-announcement-card p{color:var(--text);margin:0 0 8px}.docos-announcement-card .form-actions{margin-top:14px}
.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.review-card,.review-card-full{border-top:4px solid color-mix(in srgb,#f59e0b 70%,var(--line));background:var(--panel)}.review-card h3,.review-card-full h2{margin:8px 0}.review-stars{font-size:20px;letter-spacing:.08em;color:#f59e0b}.review-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;color:var(--muted)}.testimonial-panel{margin-top:22px}
.legal-card h2{margin-top:22px}.legal-card p{color:var(--text)}
.hero-docos{position:relative;overflow:hidden}.hero-docos::after{content:"";position:absolute;right:-90px;top:-70px;width:290px;height:290px;background:radial-gradient(circle, color-mix(in srgb,var(--brand2) 18%, transparent), transparent 60%);pointer-events:none}
@media(max-width:760px){.brand-wordmark{height:26px}.brand-icon{width:34px;height:34px}footer{flex-direction:column}.review-grid{grid-template-columns:1fr}}

/* v19: conversion landing, portfolio interactions, readable calendar, vault */
.nav-premium-tease{position:relative;font-weight:800}.nav-premium-tease sup{font-size:9px;color:#7c3aed;margin-left:2px}.course-button{border:1px solid color-mix(in srgb,#0891b2 35%,var(--line));color:#0e7490!important}.notes-indicator{display:inline-flex!important;align-items:center;gap:4px;color:var(--brand2)!important;font-weight:800}.important-star{color:#f59e0b;margin-right:5px}.important-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,#f59e0b 14%,var(--panel));color:#b45309;font-size:12px;font-weight:850}.row-open-cue{font-size:12px;color:var(--brand2);font-weight:850;white-space:nowrap}.portfolio-row{cursor:pointer;transition:.15s ease}.portfolio-row:hover{background:var(--soft)}.portfolio-row:focus{outline:2px solid color-mix(in srgb,var(--brand2) 45%,transparent);outline-offset:-2px}.portfolio-card{padding:0;overflow:hidden}.portfolio-title-button{display:flex;width:100%;justify-content:space-between;align-items:center;gap:15px;padding:18px 20px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.portfolio-title-button>span:first-child{display:grid;gap:5px}.portfolio-title-button strong{font-size:17px}.portfolio-title-button:hover{background:var(--soft)}.portfolio-preview{border-top:1px solid var(--line);padding:0 20px}.portfolio-preview summary{cursor:pointer;padding:12px 0;font-weight:800;color:var(--brand2)}.portfolio-preview[open]{padding-bottom:14px}.portfolio-preview p{margin:8px 0}.detail-title-line{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.portfolio-detail-actions{flex-wrap:wrap}
.document-groups{display:grid;gap:14px}.document-group{padding:0;overflow:hidden}.document-group>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:17px 20px;cursor:pointer}.document-group>summary::-webkit-details-marker{display:none}.document-group>summary span:first-child{display:grid;gap:3px}.document-group[open] .document-group-chevron{transform:rotate(180deg)}.document-group-chevron{transition:.2s ease}.document-group-items{border-top:1px solid var(--line);padding:0 20px}.document-file-card{box-shadow:none;border:0;border-radius:0;padding:15px 0}.document-file-main{min-width:0}.document-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.document-actions form{margin:0}
.profile-tool-list{display:grid;gap:8px;margin-bottom:24px}.profile-tool-list a{display:flex;justify-content:space-between;align-items:center;padding:14px 15px;border:1px solid var(--line);border-radius:11px;text-decoration:none;color:var(--text);font-weight:850;background:var(--panel)}.profile-tool-list a:hover{background:var(--soft);border-color:var(--brand2)}.profile-settings-title{margin-top:8px}
.appraisal-paywall .paywall-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.paywall-option{display:grid;gap:5px;padding:18px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--text);background:var(--panel)}.paywall-option:hover{border-color:var(--brand2);transform:translateY(-1px)}.paywall-option strong{font-size:18px}.paywall-option.pro{background:color-mix(in srgb,#7c3aed 8%,var(--panel));border-color:color-mix(in srgb,#7c3aed 28%,var(--line))}.plan-badge.appraisal-paywall-trigger{border:0;cursor:pointer}

/* readable FullCalendar items without oversized cells */
.fc .mc-readable-event{--event-color:#2563eb;background:color-mix(in srgb,var(--event-color) 14%,var(--panel))!important;border:1px solid color-mix(in srgb,var(--event-color) 32%,var(--line))!important;border-left:4px solid var(--event-color)!important;color:var(--text)!important;box-shadow:none!important}.fc .mc-readable-event:hover{background:color-mix(in srgb,var(--event-color) 20%,var(--panel))!important}.fc .fc-daygrid-event.mc-readable-event{min-height:25px;padding:3px 19px 3px 5px;margin:2px 2px;border-radius:6px}.fc .fc-daygrid-event .mc-event-content{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:5px;align-items:center}.fc .fc-daygrid-event .mc-event-time{font-size:9px;font-weight:900;color:color-mix(in srgb,var(--event-color) 78%,var(--text));line-height:1}.fc .fc-daygrid-event .mc-event-title{font-size:11px;font-weight:800;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.fc .fc-timegrid-event.mc-readable-event{padding:3px 5px;border-radius:6px}.fc .fc-timegrid-event .mc-event-time{font-size:10px;font-weight:900}.fc .fc-timegrid-event .mc-event-title{font-size:11px;font-weight:800}.fc .calendar-move-hint{font-size:11px;color:color-mix(in srgb,var(--event-color) 80%,var(--text));opacity:.8}.fc .calendar-delete{color:var(--text)!important;background:color-mix(in srgb,var(--panel) 72%,transparent)!important;border-radius:50%!important;width:17px!important;height:17px!important;line-height:14px!important;top:4px!important;right:3px!important}.fc .fc-daygrid-day-frame{min-height:92px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-more-link{font-size:10px;font-weight:850;padding:1px 4px}.fc .fc-list-event.mc-readable-event{background:transparent!important;border:0!important}.fc .fc-list-event.mc-readable-event td{background:color-mix(in srgb,var(--event-color) 8%,var(--panel))}.fc .fc-list-event.mc-readable-event td:first-child{border-left:4px solid var(--event-color)}

/* landing conversion */
.landing-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:center;gap:34px;padding:58px 0 46px}.landing-hero h1{font-size:clamp(46px,6.2vw,76px);letter-spacing:-.045em;max-width:820px}.landing-hero-copy>p{font-size:19px;color:var(--muted);max-width:760px}.landing-actions{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 18px}.landing-primary{padding:13px 20px;font-size:16px}.landing-proof{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:13px;font-weight:700}.landing-hero-visual{padding:22px;border-top:5px solid var(--brand2);background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 10%,var(--panel)),var(--panel))}.mini-os-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.brand-chip{font-size:28px;font-weight:950;letter-spacing:-.04em}.brand-chip span{color:#0891b2}.mini-os-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mini-os-grid>div{padding:15px;border-radius:13px;background:var(--soft)}.mini-os-grid b,.mini-os-grid strong,.mini-os-grid small{display:block}.mini-os-grid strong{font-size:24px;margin:4px 0}.mini-os-list{display:grid;gap:8px;margin-top:12px}.mini-os-list span{display:flex;align-items:center;gap:8px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.mini-os-list i{width:7px;height:25px;border-radius:99px;background:var(--c)}.landing-section{padding:48px 0}.landing-section-head{max-width:780px;margin-bottom:24px}.landing-section-head h2,.landing-problem h2,.landing-final-cta h2{font-size:clamp(30px,4vw,48px);margin:7px 0 10px;letter-spacing:-.025em}.landing-section-head p,.landing-problem p,.landing-final-cta p{color:var(--muted);font-size:17px}.landing-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.landing-feature-grid article{min-height:210px}.feature-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:color-mix(in srgb,var(--brand2) 11%,var(--panel));color:var(--brand2);font-weight:900;margin-bottom:16px}.landing-problem{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;border:1px solid var(--line);border-radius:20px;padding:34px;background:var(--panel);box-shadow:var(--shadow)}.landing-checks{display:grid;gap:10px}.landing-checks span{padding:12px 14px;border-radius:11px;background:var(--soft);font-weight:800}.workflow-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.workflow-steps article{padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--panel)}.workflow-steps b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand);color:white;margin-bottom:12px}.landing-pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.landing-plan{position:relative;display:flex;flex-direction:column;gap:10px}.landing-plan h3{font-size:32px}.landing-plan h3 small{font-size:13px;color:var(--muted)}.landing-plan .button{margin-top:auto}.landing-plan.recommended{border-color:color-mix(in srgb,#059669 42%,var(--line));box-shadow:0 14px 38px color-mix(in srgb,#059669 12%,transparent)}.recommended-label{position:absolute;right:14px;top:14px;padding:5px 9px;border-radius:999px;background:#059669;color:#fff;font-size:11px;font-weight:850}.pricing-note{text-align:center;color:var(--muted);margin-top:16px}.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.faq-grid details{border:1px solid var(--line);border-radius:13px;padding:14px 16px;background:var(--panel)}.faq-grid summary{cursor:pointer;font-weight:850}.landing-final-cta{text-align:center;padding:44px;margin:28px 0 10px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand2) 10%,var(--panel)),var(--panel))}

/* password keeper */
.vault-security-banner{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;border-top:5px solid #059669;margin-bottom:18px}.vault-lock{font-size:32px}.vault-lock.big{font-size:48px}.vault-workplaces{display:grid;gap:14px}.vault-workplace{padding:0;overflow:hidden}.vault-workplace>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:18px 20px;cursor:pointer}.vault-workplace>summary::-webkit-details-marker{display:none}.vault-workplace>summary span:first-child{display:grid;gap:3px}.vault-workplace-body{border-top:1px solid var(--line);padding:15px 20px 20px}.vault-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.vault-actions form{margin:0}.vault-credential-list{display:grid;gap:8px}.vault-credential-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;text-decoration:none;color:var(--text)}.vault-credential-row:hover{background:var(--soft);border-color:var(--brand2)}.vault-credential-row span:nth-child(2){display:grid}.vault-key-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,#059669 12%,var(--panel));color:#047857;font-weight:900}.vault-form-card hr{border:0;border-top:1px solid var(--line);margin:20px 0}.password-field-row{display:grid;grid-template-columns:1fr auto;gap:7px}.vault-existing-box{padding:12px 14px;border-radius:11px;background:var(--soft);margin:12px 0}.link-button{border:0;background:none;padding:0;color:var(--brand2);font:inherit;font-weight:800;cursor:pointer}.vault-locked-state{text-align:center}.vault-detail-card .detail-grid{margin-top:18px}.vault-password-display{display:flex!important;align-items:center;justify-content:space-between;gap:8px}.form-status{min-height:20px;margin:6px 0;color:var(--muted);font-size:13px}

@media(max-width:980px){.landing-hero{grid-template-columns:1fr}.landing-hero-visual{max-width:680px}.landing-feature-grid{grid-template-columns:repeat(2,1fr)}.workflow-steps{grid-template-columns:repeat(2,1fr)}.landing-pricing-grid{grid-template-columns:1fr}.landing-problem{grid-template-columns:1fr}}
@media(max-width:700px){.appraisal-paywall .paywall-options{grid-template-columns:1fr}.landing-feature-grid,.faq-grid{grid-template-columns:1fr}.workflow-steps{grid-template-columns:1fr}.landing-hero{padding-top:36px}.landing-hero h1{font-size:44px}.document-file-card{align-items:flex-start;flex-direction:column}.document-actions{justify-content:flex-start}.vault-security-banner{grid-template-columns:1fr}.password-field-row{grid-template-columns:1fr}.fc .fc-daygrid-day-frame{min-height:76px}.fc .fc-daygrid-event.mc-readable-event{min-height:23px}.fc .fc-daygrid-event .mc-event-title{font-size:10px}}

/* v21 calendar concept chosen by user: clean clinical month/week/day/agenda */
.docos-live-brand{gap:10px;min-width:max-content}.docos-calendar-mark{position:relative;width:38px;height:38px;border:3px solid #123b5d;border-radius:8px;display:grid;place-items:center;color:#0ea5a8;background:color-mix(in srgb,#0ea5a8 5%,var(--panel));flex:0 0 auto}.docos-calendar-mark::before{content:"";position:absolute;left:4px;right:4px;top:9px;border-top:3px solid #123b5d}.docos-calendar-rings::before,.docos-calendar-rings::after{content:"";position:absolute;top:-5px;width:4px;height:9px;background:#123b5d;border-radius:3px}.docos-calendar-rings::before{left:8px}.docos-calendar-rings::after{right:8px}.docos-calendar-plus{font-size:24px;line-height:1;font-weight:950;margin-top:8px;color:#0ea5a8}.docos-brand-copy{display:flex;flex-direction:column;line-height:1}.docos-brand-copy strong{font-size:25px;letter-spacing:-.055em;color:var(--text)}.docos-brand-copy strong span{color:#0ea5a8}.docos-brand-copy small{font-size:10px;letter-spacing:.015em;color:var(--muted);margin-top:4px;font-weight:750}html[data-theme="dark"] .docos-calendar-mark{border-color:#a7d7e8;background:#102636}.docos-calendar-mark::before,html[data-theme="dark"] .docos-calendar-rings::before,html[data-theme="dark"] .docos-calendar-rings::after{border-color:#a7d7e8}html[data-theme="dark"] .docos-calendar-mark::before{border-color:#a7d7e8}html[data-theme="dark"] .docos-calendar-rings::before,html[data-theme="dark"] .docos-calendar-rings::after{background:#a7d7e8}

.calendar-type-legend{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 14px;margin-bottom:16px;align-items:center}.calendar-type-legend small{margin-left:auto}.calendar-view-card{overflow:hidden;border-radius:15px!important;padding:0!important}.calendar-view-card>.panel-head{padding:18px 20px 8px;margin:0}.calendar-view-card #fullCalendar{padding:0 12px 14px}.calendar-view-card .fc{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}
.fc .fc-toolbar{padding:8px 2px 12px;margin-bottom:0!important;gap:10px}.fc .fc-toolbar-title{font-size:20px!important;font-weight:900!important;letter-spacing:-.025em;color:var(--text)}.fc .fc-button{border-radius:8px!important;min-height:34px!important;padding:6px 11px!important;font-size:12px!important;font-weight:850!important;box-shadow:none!important;text-transform:none!important}.fc .fc-button-primary{background:var(--panel)!important;border:1px solid var(--line)!important;color:var(--text)!important}.fc .fc-button-primary:hover{background:var(--soft)!important;border-color:color-mix(in srgb,var(--brand2) 35%,var(--line))!important}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background:#0f4f7a!important;border-color:#0f4f7a!important;color:#fff!important}.fc .fc-today-button{background:var(--panel)!important;color:var(--text)!important}.fc .fc-prev-button,.fc .fc-next-button{width:35px;padding:5px!important}.fc-theme-standard td,.fc-theme-standard th{border-color:color-mix(in srgb,var(--line) 88%,transparent)!important}.fc .fc-col-header-cell{background:color-mix(in srgb,var(--soft) 60%,var(--panel));padding:7px 0}.fc .fc-col-header-cell-cushion{font-size:11px;font-weight:850;text-decoration:none;color:var(--muted);text-transform:none}.fc .fc-daygrid-day{background:var(--panel);transition:background .15s ease}.fc .fc-daygrid-day:hover{background:color-mix(in srgb,#0ea5a8 3%,var(--panel))}.fc .fc-daygrid-day-frame{min-height:100px!important}.fc .fc-daygrid-day-top{flex-direction:row!important;justify-content:flex-start!important;padding:3px 4px 0}.fc .fc-daygrid-day-number{display:grid;place-items:center;min-width:28px;height:28px;padding:0!important;border-radius:8px;font-size:14px!important;font-weight:900!important;line-height:1;text-decoration:none!important;color:var(--text)!important}.fc .fc-day-today{background:color-mix(in srgb,#0ea5a8 4%,var(--panel))!important}.fc .fc-day-today .fc-daygrid-day-number{background:#0f4f7a;color:#fff!important}.fc .fc-day-other .fc-daygrid-day-number{color:var(--muted)!important;opacity:.62}.fc .fc-daygrid-day-events{margin:1px 3px 0!important;min-height:0}.fc .fc-daygrid-event-harness{margin-top:2px!important}

.fc .mc-readable-event{--event-color:#2563eb;background:color-mix(in srgb,var(--event-color) 11%,var(--panel))!important;border:1px solid color-mix(in srgb,var(--event-color) 22%,var(--line))!important;border-left:3px solid var(--event-color)!important;color:var(--text)!important;border-radius:6px!important;box-shadow:none!important;transition:background .15s ease,border-color .15s ease,transform .12s ease}.fc .mc-readable-event:hover{background:color-mix(in srgb,var(--event-color) 17%,var(--panel))!important;border-color:color-mix(in srgb,var(--event-color) 38%,var(--line))!important}.fc .fc-daygrid-event.mc-readable-event{padding:3px 18px 3px 5px!important;min-height:25px!important;margin:1px 0!important}.fc .fc-daygrid-event .mc-event-content{display:grid!important;grid-template-columns:7px auto minmax(0,1fr) auto!important;gap:4px!important;align-items:center!important;width:100%;min-width:0}.mc-event-dot{width:7px;height:7px;border-radius:50%;background:var(--event-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--event-color) 12%,transparent)}.fc .mc-event-time{font-size:9px!important;font-weight:900!important;color:color-mix(in srgb,var(--event-color) 74%,var(--text))!important;white-space:nowrap}.fc .mc-event-title{font-size:11px!important;font-weight:800!important;line-height:1.18!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;color:var(--text)!important}.fc .calendar-move-hint{font-size:10px!important;letter-spacing:-.08em!important;opacity:.45!important;color:var(--text)!important;margin-left:2px!important}.fc .calendar-own-event:hover .calendar-move-hint{opacity:.9!important}.fc .calendar-delete{opacity:.2!important;transition:opacity .15s ease}.fc .calendar-own-event:hover .calendar-delete{opacity:.95!important}.fc .fc-more-link{display:inline-flex!important;align-items:center;gap:3px;font-size:10px!important;font-weight:850!important;color:#0f4f7a!important;background:color-mix(in srgb,#0ea5a8 8%,var(--panel));padding:2px 6px!important;border-radius:999px;text-decoration:none!important}

/* Time-grid week/day follows the same palette but allows readable stacked text */
.fc .fc-timegrid-slot{height:2.35em!important}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{font-size:10px;font-weight:750;color:var(--muted)}.fc .fc-timegrid-col.fc-day-today{background:color-mix(in srgb,#0ea5a8 4%,var(--panel))!important}.fc .fc-timegrid-event.mc-readable-event{padding:4px 6px!important;border-left-width:4px!important}.fc .fc-timegrid-event .mc-event-content{display:grid!important;grid-template-columns:7px auto minmax(0,1fr)!important;align-items:start!important;gap:4px!important}.fc .fc-timegrid-event .mc-event-title{white-space:normal!important;font-size:11px!important}.fc .fc-timegrid-event .calendar-move-hint{display:none}.fc .fc-timegrid-event .mc-event-dot{margin-top:3px}.fc .fc-timegrid-now-indicator-line{border-color:#ef4444!important}.fc .fc-timegrid-now-indicator-arrow{border-color:#ef4444!important}

/* Agenda/list view */
.fc .fc-list{border-radius:10px;overflow:hidden;border:1px solid var(--line)!important}.fc .fc-list-day-cushion{background:color-mix(in srgb,var(--soft) 65%,var(--panel))!important;padding:9px 12px!important}.fc .fc-list-day-text,.fc .fc-list-day-side-text{font-size:12px;font-weight:850;color:var(--text);text-decoration:none}.fc .fc-list-event td{padding:10px 9px!important;border-color:var(--line)!important;background:var(--panel)!important}.fc .fc-list-event:hover td{background:var(--soft)!important}.fc .fc-list-event-dot{border-width:5px!important}.fc .fc-list-event-time{font-size:11px;font-weight:800;color:var(--muted)}.fc .fc-list-event-title a{font-size:12px;font-weight:800;color:var(--text)!important;text-decoration:none!important}
.calendar-day-layout,.calendar-week-layout,.calendar-agenda-layout{grid-template-columns:minmax(0,1.65fr) minmax(290px,.72fr)!important}.calendar-day-layout .calendar-view-card,.calendar-week-layout .calendar-view-card,.calendar-agenda-layout .calendar-view-card{min-width:0}.calendar-view-card.is-day-view,.calendar-view-card.is-week-view{box-shadow:0 12px 34px color-mix(in srgb,#0f4f7a 8%,transparent)}

@media(max-width:980px){.calendar-day-layout,.calendar-week-layout,.calendar-agenda-layout{grid-template-columns:1fr!important}.calendar-type-legend small{width:100%;margin-left:0}}
@media(max-width:760px){.docos-brand-copy small{display:none}.docos-brand-copy strong{font-size:22px}.docos-calendar-mark{width:34px;height:34px}.fc .fc-toolbar{display:grid!important;grid-template-columns:1fr;justify-items:center!important}.fc .fc-toolbar-chunk{display:flex;flex-wrap:wrap;justify-content:center}.fc .fc-toolbar-title{font-size:18px!important}.fc .fc-daygrid-day-frame{min-height:82px!important}.fc .fc-daygrid-day-number{font-size:13px!important;min-width:25px;height:25px}.fc .fc-daygrid-event.mc-readable-event{padding:3px 15px 3px 4px!important}.fc .mc-event-time{display:none}.fc .fc-daygrid-event .mc-event-content{grid-template-columns:7px minmax(0,1fr) auto!important}.fc .mc-event-title{font-size:10px!important}.fc .calendar-move-hint{display:none}.fc .calendar-delete{opacity:.55!important}.calendar-type-legend{gap:8px 12px}}

/* v22 calendar rebuild: match the selected JININO mockup more closely */
.planner-calendar-stack{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.planner-calendar-stack>.planner-calendar-card{width:100%;min-width:0}.planner-todo-card{width:100%}.planner-todo-card .agenda-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:420px;overflow:auto;padding-right:4px}.planner-todo-card .agenda-item{margin:0;min-width:0}
.calendar-view-card{border-radius:16px!important;border:1px solid color-mix(in srgb,var(--line) 92%,transparent)!important;box-shadow:0 8px 26px rgba(22,48,74,.07)!important}.calendar-view-card>.panel-head{padding:18px 20px 4px}.calendar-view-card>.panel-head h2{font-size:23px;letter-spacing:-.02em}.calendar-view-card #fullCalendar{padding:0 14px 16px}
.calendar-type-legend{display:flex;gap:10px 18px;min-height:52px;padding:11px 16px}.calendar-type-legend span{font-weight:750;color:var(--text)}.calendar-type-legend i{width:11px;height:11px;box-shadow:none}.calendar-type-legend small{font-size:12px}

/* FullCalendar shell */
.calendar-view-card .fc{font-size:14px}.fc .fc-toolbar{display:grid!important;grid-template-columns:minmax(190px,1fr) auto minmax(300px,1fr);align-items:center!important;padding:10px 2px 14px!important}.fc .fc-toolbar-chunk:first-child{justify-self:start;display:flex;gap:7px}.fc .fc-toolbar-chunk:nth-child(2){justify-self:center}.fc .fc-toolbar-chunk:last-child{justify-self:end;display:flex}.fc .fc-toolbar-title{font-size:24px!important;font-weight:900!important;letter-spacing:-.035em!important}.fc .fc-button{min-height:38px!important;padding:7px 14px!important;font-size:13px!important;border-radius:9px!important}.fc .fc-button-primary{background:var(--panel)!important;border:1px solid var(--line)!important;color:var(--text)!important}.fc .fc-button-primary:not(:disabled).fc-button-active{background:#0f4f7a!important;border-color:#0f4f7a!important;color:#fff!important}.fc .fc-prev-button,.fc .fc-next-button{width:40px!important;padding:7px!important}.fc .fc-today-button{font-weight:800!important}

/* Month grid: generous enough to read but not oversized */
.fc .fc-scrollgrid{border-radius:12px;overflow:hidden;border-color:var(--line)!important}.fc .fc-col-header-cell{height:38px;background:color-mix(in srgb,var(--soft) 72%,var(--panel))!important}.fc .fc-col-header-cell-cushion{padding:10px 4px!important;font-size:12px!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.03em;color:var(--text)!important}.fc .fc-daygrid-day-frame{min-height:118px!important;padding:0 3px 4px}.fc .fc-daygrid-day-top{padding:6px 5px 1px!important}.fc .fc-daygrid-day-number{min-width:31px!important;height:31px!important;font-size:16px!important;font-weight:900!important;border-radius:9px!important}.fc .fc-daygrid-day-events{margin:2px 3px 0!important}.fc .fc-daygrid-event-harness{margin-top:4px!important}.fc .fc-daygrid-day.fc-day-today{background:color-mix(in srgb,#0ea5a8 5%,var(--panel))!important}.fc .fc-day-today .fc-daygrid-day-number{background:#0f4f7a!important;color:#fff!important}.fc .fc-day-other{background:color-mix(in srgb,var(--soft) 28%,var(--panel))!important}.fc .fc-day-other .fc-daygrid-day-number{opacity:.38!important}

/* Month event pills: title first, colour second. Time lives in detail/week/day views. */
.fc .fc-daygrid-event.mc-readable-event{position:relative;min-height:30px!important;padding:5px 19px 5px 7px!important;margin:0!important;border-radius:7px!important;background:color-mix(in srgb,var(--event-color) 14%,var(--panel))!important;border:1px solid color-mix(in srgb,var(--event-color) 25%,var(--line))!important;border-left:4px solid var(--event-color)!important;overflow:hidden}.fc .fc-daygrid-event .mc-event-content{display:grid!important;grid-template-columns:9px minmax(0,1fr) 8px!important;gap:6px!important;align-items:center!important}.fc .fc-daygrid-event .mc-event-dot{width:8px!important;height:8px!important}.fc .fc-daygrid-event .mc-event-time{display:none!important}.fc .fc-daygrid-event .mc-event-title{font-size:12.5px!important;line-height:1.18!important;font-weight:820!important;letter-spacing:-.01em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;color:var(--text)!important}.fc .fc-daygrid-event .calendar-move-hint{font-size:13px!important;opacity:.28!important}.fc .calendar-own-event:hover .calendar-move-hint{opacity:.8!important}.fc .calendar-delete{font-size:14px!important;width:17px!important;height:17px!important;right:1px!important;top:1px!important;opacity:0!important;background:color-mix(in srgb,var(--panel) 88%,transparent)!important;border-radius:50%!important}.fc .calendar-own-event:hover .calendar-delete{opacity:.9!important}.fc .fc-more-link{margin-top:4px!important;font-size:11px!important;font-weight:850!important;padding:3px 8px!important;color:#0f4f7a!important;background:color-mix(in srgb,#0ea5a8 11%,var(--panel))!important}

/* Week/day cards use the same pastel language but show time explicitly */
.fc .fc-timegrid-slot{height:2.65em!important}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{font-size:11px!important;font-weight:780!important}.fc .fc-timegrid-event.mc-readable-event{border-radius:7px!important;background:color-mix(in srgb,var(--event-color) 16%,var(--panel))!important;border:1px solid color-mix(in srgb,var(--event-color) 28%,var(--line))!important;border-left:4px solid var(--event-color)!important;padding:6px 7px!important}.fc .fc-timegrid-event .mc-event-content{grid-template-columns:8px auto minmax(0,1fr)!important;gap:6px!important}.fc .fc-timegrid-event .mc-event-time{font-size:11px!important;font-weight:900!important}.fc .fc-timegrid-event .mc-event-title{font-size:12px!important;font-weight:820!important;line-height:1.25!important}.fc .fc-timegrid-col-frame{min-width:90px}.fc .fc-timegrid-col-events{margin:0 3px!important}

/* Agenda is a clean readable table/list */
.fc .fc-list{border-radius:11px!important}.fc .fc-list-day-cushion{padding:10px 14px!important;background:color-mix(in srgb,var(--soft) 78%,var(--panel))!important}.fc .fc-list-day-text,.fc .fc-list-day-side-text{font-size:13px!important;font-weight:900!important}.fc .fc-list-event td{padding:12px 11px!important}.fc .fc-list-event-time{font-size:12px!important;font-weight:850!important}.fc .fc-list-event-title a{font-size:13px!important;font-weight:820!important}.fc .fc-list-event-dot{border-width:6px!important}

html[data-theme="dark"] .calendar-view-card{box-shadow:0 8px 28px rgba(0,0,0,.22)!important}html[data-theme="dark"] .fc .fc-daygrid-event.mc-readable-event{background:color-mix(in srgb,var(--event-color) 20%,#16212d)!important;border-color:color-mix(in srgb,var(--event-color) 32%,#2a3948)!important}html[data-theme="dark"] .fc .fc-timegrid-event.mc-readable-event{background:color-mix(in srgb,var(--event-color) 22%,#16212d)!important}

@media(max-width:1100px){.fc .fc-toolbar{grid-template-columns:1fr auto;grid-template-areas:"title title" "left right";row-gap:10px}.fc .fc-toolbar-chunk:nth-child(2){grid-area:title}.fc .fc-toolbar-chunk:first-child{grid-area:left}.fc .fc-toolbar-chunk:last-child{grid-area:right}.planner-todo-card .agenda-list{grid-template-columns:1fr}}
@media(max-width:760px){.fc .fc-toolbar{display:flex!important;flex-direction:column!important;align-items:stretch!important}.fc .fc-toolbar-chunk{justify-content:center!important}.fc .fc-toolbar-title{font-size:20px!important}.fc .fc-button{padding:6px 10px!important;font-size:12px!important}.fc .fc-daygrid-day-frame{min-height:86px!important;padding-left:1px;padding-right:1px}.fc .fc-daygrid-day-number{font-size:14px!important;min-width:27px!important;height:27px!important}.fc .fc-daygrid-event.mc-readable-event{min-height:25px!important;padding:4px 12px 4px 5px!important;border-left-width:3px!important}.fc .fc-daygrid-event .mc-event-content{grid-template-columns:7px minmax(0,1fr)!important;gap:4px!important}.fc .fc-daygrid-event .mc-event-title{font-size:10.5px!important}.fc .fc-daygrid-event .calendar-move-hint,.fc .calendar-delete{display:none!important}.calendar-type-legend small{display:none}.calendar-view-card #fullCalendar{padding-left:7px;padding-right:7px}}

/* v23: calendar proportion/readability correction after live-browser review */
/* Month rules must not inflate the time-grid all-day row. */
.fc .fc-timegrid .fc-daygrid-day-frame{min-height:38px!important;padding:0 2px!important}
.fc .fc-timegrid .fc-daygrid-day-events{margin:1px 2px!important;min-height:0!important}
.fc .fc-timegrid-divider{padding:0!important;height:3px!important}
.fc .fc-timegrid-axis{width:58px!important;max-width:58px!important}
.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{font-size:11px!important;font-weight:750!important;color:var(--muted)!important;padding:0 8px!important}

/* A one-hour rhythm makes the week readable without an internal scrollbar. */
.fc .fc-timegrid-slot{height:36px!important;border-bottom:1px solid color-mix(in srgb,var(--line) 74%,transparent)!important}
.fc .fc-timegrid-slot-minor{border-top:0!important}
.fc .fc-timegrid-col{background:var(--panel)!important}
.fc .fc-timegrid-col.fc-day-today{background:color-mix(in srgb,#0ea5a8 4%,var(--panel))!important}
.fc .fc-timegrid-col-frame{min-width:0!important}
.fc .fc-timegrid-col-events{margin:0 5px!important}
.fc .fc-timegrid-event-harness{margin-right:2px!important}

/* Week/day event cards: stacked time + title, not squeezed into one line. */
.fc .fc-timegrid-event.mc-readable-event{min-height:42px!important;padding:5px 18px 5px 7px!important;border-radius:8px!important;overflow:hidden!important;box-shadow:0 1px 3px rgba(15,23,42,.08)!important}
.fc .fc-timegrid-event .mc-event-content{display:grid!important;grid-template-columns:8px minmax(0,1fr) 8px!important;gap:6px!important;align-items:start!important;width:100%!important}
.fc .mc-event-copy{display:flex!important;flex-direction:column!important;min-width:0!important;gap:1px!important}
.fc .fc-timegrid-event .mc-event-time{display:block!important;font-size:10px!important;line-height:1.15!important;font-weight:850!important;color:color-mix(in srgb,var(--text) 72%,var(--event-color))!important;white-space:nowrap!important}
.fc .fc-timegrid-event .mc-event-title{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;white-space:normal!important;overflow:hidden!important;font-size:12px!important;line-height:1.22!important;font-weight:820!important;color:var(--text)!important}
.fc .fc-timegrid-event .calendar-move-hint{align-self:center!important;font-size:14px!important;opacity:.25!important}
.fc .fc-timegrid-event.calendar-own-event:hover .calendar-move-hint{opacity:.8!important}

/* Week headers mirror the selected mock-up: short weekday + date, calm typography. */
.fc .fc-timegrid .fc-col-header-cell{height:42px!important;background:color-mix(in srgb,var(--soft) 60%,var(--panel))!important}
.fc .fc-timegrid .fc-col-header-cell-cushion{padding:11px 5px!important;font-size:12px!important;font-weight:850!important;letter-spacing:0!important;text-transform:none!important}

/* Month view: day number + compact readable colour-coded label. */
.fc .fc-daygrid-day-frame{min-height:108px!important}
.fc .fc-daygrid-day-top{justify-content:flex-end!important;padding:5px 6px 2px!important}
.fc .fc-daygrid-day-number{display:grid!important;place-items:center!important;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;font-size:15px!important;font-weight:850!important;letter-spacing:-.02em!important;color:var(--text)!important}
.fc .fc-daygrid-event.mc-readable-event{min-height:29px!important;padding:5px 18px 5px 6px!important;border-radius:7px!important}
.fc .fc-daygrid-event .mc-event-content{grid-template-columns:8px minmax(0,1fr) 7px!important;gap:5px!important;align-items:center!important}
.fc .fc-daygrid-event .mc-event-copy{display:block!important;min-width:0!important}
.fc .fc-daygrid-event .mc-event-title{display:block!important;font-size:12px!important;line-height:1.18!important;font-weight:800!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.fc .fc-daygrid-event .mc-event-dot,.fc .fc-timegrid-event .mc-event-dot{width:8px!important;height:8px!important;border-radius:50%!important;background:var(--event-color)!important;margin-top:2px!important}

/* The calendar should grow with its content; no calendar-within-a-calendar scrollbar. */
.calendar-view-card.is-week-view .fc-scroller,.calendar-view-card.is-day-view .fc-scroller{overflow:visible!important;max-height:none!important}
.calendar-view-card.is-week-view .fc-scroller-liquid-absolute,.calendar-view-card.is-day-view .fc-scroller-liquid-absolute{position:static!important}
.calendar-view-card.is-week-view .fc-timegrid-body,.calendar-view-card.is-day-view .fc-timegrid-body{min-width:100%!important;width:100%!important}

/* Agenda remains a compact readable alternative. */
.fc .fc-list-event .mc-event-content{display:grid!important;grid-template-columns:8px minmax(0,1fr)!important;gap:8px!important;align-items:center!important}
.fc .fc-list-event .mc-event-copy{display:flex!important;flex-direction:row!important;gap:8px!important;align-items:center!important;min-width:0!important}
.fc .fc-list-event .mc-event-time{font-size:11px!important;font-weight:850!important;color:var(--muted)!important;white-space:nowrap!important}
.fc .fc-list-event .mc-event-title{font-size:13px!important;font-weight:800!important;white-space:normal!important}

html[data-theme="dark"] .fc .fc-timegrid-event .mc-event-time{color:#b7c8d8!important}
html[data-theme="dark"] .fc .fc-timegrid-event .mc-event-title,html[data-theme="dark"] .fc .fc-daygrid-event .mc-event-title{color:#f4f8fb!important}

@media(max-width:900px){
  .fc .fc-timegrid-axis{width:50px!important;max-width:50px!important}
  .fc .fc-timegrid-col-events{margin:0 2px!important}
  .fc .fc-timegrid-event.mc-readable-event{padding:4px 12px 4px 5px!important}
  .fc .fc-timegrid-event .mc-event-title{font-size:11px!important}
  .fc .fc-timegrid-event .mc-event-time{font-size:9.5px!important}
}
@media(max-width:620px){
  .calendar-view-card{overflow-x:auto}
  .calendar-view-card.is-week-view #fullCalendar{min-width:760px}
  .calendar-view-card.is-day-view #fullCalendar{min-width:520px}
  .fc .fc-daygrid-day-frame{min-height:82px!important}
  .fc .fc-daygrid-event .mc-event-title{font-size:10.5px!important}
}

/* v24: one event colour identity across Month / Week / Day / Agenda */
.fc .mc-readable-event{--event-surface:color-mix(in srgb,var(--event-color) 18%,var(--panel));--event-border:color-mix(in srgb,var(--event-color) 42%,var(--line));--event-strong:var(--event-color)}

/* Month */
.fc .fc-daygrid-event.mc-readable-event{
  background:var(--event-surface)!important;
  border-color:var(--event-border)!important;
  border-left:5px solid var(--event-strong)!important;
  color:var(--text)!important;
}
.fc .fc-daygrid-event.mc-readable-event .mc-event-dot{background:var(--event-strong)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--event-strong) 14%,transparent)}
.fc .fc-daygrid-event.mc-readable-event .mc-event-title{color:var(--text)!important}

/* Week + Day */
.fc .fc-timegrid-event.mc-readable-event{
  background:color-mix(in srgb,var(--event-color) 20%,var(--panel))!important;
  border:1px solid color-mix(in srgb,var(--event-color) 45%,var(--line))!important;
  border-left:5px solid var(--event-color)!important;
  color:var(--text)!important;
  box-shadow:0 2px 7px color-mix(in srgb,var(--event-color) 10%,transparent)!important;
}
.fc .fc-timegrid-event.mc-readable-event .mc-event-dot{background:var(--event-color)!important}
.fc .fc-timegrid-event.mc-readable-event .mc-event-time{color:color-mix(in srgb,var(--event-color) 58%,var(--text))!important}
.fc .fc-timegrid-event.mc-readable-event .mc-event-title{color:var(--text)!important}

/* Agenda / list: entire row carries the same colour identity */
.fc .fc-list-event.mc-readable-event td{
  background:color-mix(in srgb,var(--event-color) 13%,var(--panel))!important;
  border-top-color:color-mix(in srgb,var(--event-color) 24%,var(--line))!important;
  border-bottom-color:color-mix(in srgb,var(--event-color) 24%,var(--line))!important;
}
.fc .fc-list-event.mc-readable-event td:first-child{
  border-left:5px solid var(--event-color)!important;
}
.fc .fc-list-event.mc-readable-event:hover td{
  background:color-mix(in srgb,var(--event-color) 20%,var(--panel))!important;
}
.fc .fc-list-event.mc-readable-event .fc-list-event-dot{border-color:var(--event-color)!important}
.fc .fc-list-event.mc-readable-event .mc-event-dot{background:var(--event-color)!important}
.fc .fc-list-event.mc-readable-event .mc-event-title{color:var(--text)!important}
.fc .fc-list-event.mc-readable-event .mc-event-time{color:color-mix(in srgb,var(--event-color) 55%,var(--text))!important}

html[data-theme="dark"] .fc .mc-readable-event{--event-surface:color-mix(in srgb,var(--event-color) 27%,#16212d);--event-border:color-mix(in srgb,var(--event-color) 48%,#2a3948)}
html[data-theme="dark"] .fc .fc-daygrid-event.mc-readable-event{background:var(--event-surface)!important;border-color:var(--event-border)!important}
html[data-theme="dark"] .fc .fc-timegrid-event.mc-readable-event{background:color-mix(in srgb,var(--event-color) 29%,#16212d)!important;border-color:color-mix(in srgb,var(--event-color) 50%,#2a3948)!important}
html[data-theme="dark"] .fc .fc-list-event.mc-readable-event td{background:color-mix(in srgb,var(--event-color) 20%,#16212d)!important}
html[data-theme="dark"] .fc .fc-list-event.mc-readable-event:hover td{background:color-mix(in srgb,var(--event-color) 28%,#16212d)!important}

/* v25: collapsible Educational Supervisor trainee groups */
.trainee-group-section{margin-top:24px}.trainee-group-section+ .trainee-group-section{margin-top:34px}.trainee-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:12px}.trainee-group-head h2{margin:4px 0}.trainee-group-head p{margin:0;color:var(--muted)}.trainee-group-count{display:grid;place-items:center;min-width:40px;height:40px;padding:0 12px;border-radius:999px;background:color-mix(in srgb,#7c3aed 10%,var(--panel));border:1px solid color-mix(in srgb,#7c3aed 28%,var(--line));color:#7c3aed;font-weight:900}.trainee-group-completed .trainee-group-count{background:var(--soft);border-color:var(--line);color:var(--muted)}
.trainee-stack{display:grid;gap:12px}.trainee-collapsible{padding:0!important;overflow:hidden;border-left:4px solid #7c3aed!important}.trainee-collapsible>summary{list-style:none}.trainee-collapsible>summary::-webkit-details-marker{display:none}.trainee-card-summary{display:grid;grid-template-columns:minmax(190px,1.1fr) minmax(150px,.8fr) minmax(280px,1.25fr) 34px;align-items:center;gap:18px;padding:15px 18px;cursor:pointer;background:var(--panel);transition:.16s ease}.trainee-card-summary:hover{background:color-mix(in srgb,#7c3aed 4%,var(--panel))}.trainee-collapsible[open]>.trainee-card-summary{background:color-mix(in srgb,#7c3aed 6%,var(--panel));border-bottom:1px solid var(--line)}.trainee-summary-identity{display:flex;align-items:center;gap:12px;min-width:0}.trainee-summary-identity .trainee-initials{margin:0;flex:0 0 auto}.trainee-summary-identity strong,.trainee-summary-identity small{display:block}.trainee-summary-identity strong{font-size:16px}.trainee-summary-progress{display:grid;grid-template-columns:minmax(80px,1fr) auto;align-items:center;gap:10px}.trainee-summary-progress .progress-track{margin:0}.trainee-summary-progress>strong{font-size:17px;color:#7c3aed}.trainee-summary-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.trainee-summary-facts span{min-width:0;padding:8px 10px;border-radius:9px;background:var(--soft)}.trainee-summary-facts small,.trainee-summary-facts b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trainee-summary-facts small{font-size:10px;text-transform:uppercase;letter-spacing:.04em}.trainee-summary-facts b{font-size:13px;margin-top:2px}.trainee-expand-cue{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--soft);color:#7c3aed;font-size:19px;font-weight:900;transition:transform .18s ease}.trainee-collapsible[open] .trainee-expand-cue{transform:rotate(180deg)}.trainee-card-body{padding:18px}.trainee-notes{margin:12px 0 0}.trainee-inner-sections{display:grid;gap:10px;margin-top:18px}.trainee-inner-details{margin:0!important;padding:0!important;border:1px solid var(--line)!important;border-radius:12px;background:var(--panel);overflow:hidden}.trainee-inner-details>summary{list-style:none!important;display:flex!important;justify-content:space-between;align-items:center;gap:14px;padding:13px 15px;cursor:pointer;font-weight:850;background:var(--soft)}.trainee-inner-details>summary::-webkit-details-marker{display:none}.trainee-inner-details>summary>span:last-child{font-size:12px;color:var(--muted);font-weight:700}.trainee-inner-details>summary::after{content:'+';font-size:18px;color:#7c3aed;margin-left:auto}.trainee-inner-details[open]>summary::after{content:'−'}.trainee-inner-details .objective-list,.trainee-inner-details .progress-timeline{padding:12px 14px;margin-top:0}.trainee-group-completed .trainee-collapsible{opacity:.88}.trainee-group-completed .trainee-card-summary{background:color-mix(in srgb,var(--muted) 3%,var(--panel))}
@media(max-width:1050px){.trainee-card-summary{grid-template-columns:minmax(180px,1fr) minmax(130px,.75fr) 32px}.trainee-summary-facts{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(3,1fr)}.trainee-expand-cue{grid-column:3;grid-row:1}}
@media(max-width:700px){.trainee-group-head{align-items:flex-start}.trainee-card-summary{grid-template-columns:minmax(0,1fr) 32px;gap:12px}.trainee-summary-progress,.trainee-summary-facts{grid-column:1/-1}.trainee-expand-cue{grid-column:2;grid-row:1}.trainee-summary-facts{grid-template-columns:1fr 1fr}.trainee-summary-facts span:last-child{grid-column:1/-1}.trainee-card-body{padding:14px}.supervisor-pro-meta{grid-template-columns:1fr 1fr}.supervisor-actions .button{flex:1 1 auto}.trainee-inner-details>summary{align-items:flex-start;flex-wrap:wrap}}

/* v27: Portfolio Pathway (formerly CESR) workspace */
.nav-pathway{color:#0f766e!important}.pathway-head{align-items:center}.pathway-setup-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.8fr);gap:18px}.pathway-setup-card{border-top:5px solid #0f766e}.pathway-guidance-card{border-top:5px solid #0891b2}.pathway-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,#0f766e 12%,var(--panel));color:#0f766e;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.pathway-guidance-card li{margin:7px 0}.pathway-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.pathway-stats .stat-card{min-height:170px}.pathway-progress{border-top:4px solid #0f766e}.pathway-progress .progress{margin-top:12px}.pathway-progress .progress span{background:#0f766e}.pathway-alert-panel{border-left:5px solid #f59e0b;margin-bottom:18px}.pathway-flag-list{display:grid;gap:9px}.pathway-flag-list>div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:11px;background:color-mix(in srgb,#f59e0b 8%,var(--panel));border:1px solid color-mix(in srgb,#f59e0b 20%,var(--line))}.pathway-flag-list span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#f59e0b;color:#fff;font-weight:900}.pathway-flag-list p{margin:1px 0}.pathway-official-guide{margin-bottom:18px;border-top:4px solid #0ea5e9}.pathway-link-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.pathway-link-grid a{display:block;padding:13px;border-radius:12px;background:var(--soft);text-decoration:none;color:var(--text);border:1px solid transparent}.pathway-link-grid a:hover{border-color:#0f766e}.pathway-link-grid strong,.pathway-link-grid small{display:block}.pathway-link-grid small{margin-top:4px}.pathway-workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.7fr);gap:18px;align-items:start}.pathway-main,.pathway-side{display:grid;gap:14px}.section-heading h2{margin:3px 0 0}.pathway-group{padding:0;overflow:hidden}.pathway-group>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:17px 19px;cursor:pointer;background:color-mix(in srgb,#0f766e 5%,var(--panel));border-bottom:1px solid transparent}.pathway-group[open]>summary{border-color:var(--line)}.pathway-group>summary::-webkit-details-marker{display:none}.pathway-group>summary strong,.pathway-group>summary small{display:block}.pathway-group>summary>span{font-size:12px;color:var(--muted);font-weight:800}.pathway-requirement-list{padding:12px}.pathway-requirement{padding:14px 15px;border:1px solid var(--line);border-left:4px solid #94a3b8;border-radius:12px;margin-bottom:10px;background:var(--panel)}.pathway-requirement:last-child{margin-bottom:0}.pathway-requirement.status-collecting{border-left-color:#0ea5e9}.pathway-requirement.status-ready{border-left-color:#f59e0b}.pathway-requirement.status-complete{border-left-color:#10b981}.pathway-requirement-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.pathway-requirement-top h3{margin:4px 0;font-size:16px}.pathway-code{font-size:10px;font-weight:900;color:#0f766e;letter-spacing:.08em}.pathway-mini-progress{height:6px;margin:10px 0}.pathway-mini-progress span{background:#0f766e}.pathway-target{font-size:13px;margin:8px 0;color:var(--muted)}.pathway-target-meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted)}.pathway-target-meta a{margin-left:auto;font-weight:800;text-decoration:none}.pathway-evidence-inline{margin-top:10px;border-top:1px dashed var(--line);padding-top:9px}.pathway-evidence-inline>summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--brand2)}.pathway-evidence-inline>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.pathway-evidence-chip{display:block;padding:7px 9px;border:1px solid color-mix(in srgb,#0f766e 25%,var(--line));border-radius:9px;background:color-mix(in srgb,#0f766e 6%,var(--panel));text-decoration:none;color:var(--text);max-width:280px}.pathway-evidence-chip span,.pathway-evidence-chip small{display:block}.pathway-evidence-chip span{font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pathway-quality-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pathway-quality-grid>div{text-align:center;padding:12px 6px;background:var(--soft);border-radius:10px}.pathway-quality-grid b,.pathway-quality-grid span{display:block}.pathway-quality-grid b{font-size:24px}.pathway-referee-row{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.pathway-referee-row:last-child{border-bottom:0}.pathway-referee-row strong,.pathway-referee-row small{display:block}.pathway-evidence-register{margin-top:18px}.status.good{background:color-mix(in srgb,#10b981 13%,var(--panel));color:#047857}.warning-text{color:#b45309!important;font-weight:800}.pathway-summary-hero{display:flex;align-items:center;gap:22px;border-top:5px solid #0f766e;margin-bottom:16px}.pathway-summary-score{display:grid;place-items:center;width:120px;height:120px;border-radius:50%;background:conic-gradient(#0f766e calc(var(--p,1)*1%),var(--soft) 0);border:10px solid color-mix(in srgb,#0f766e 12%,var(--panel))}.pathway-summary-score b{font-size:31px}.pathway-summary-score span{font-size:10px;color:var(--muted)}
@media(max-width:1050px){.pathway-stats{grid-template-columns:repeat(2,1fr)}.pathway-workspace,.pathway-setup-grid{grid-template-columns:1fr}.pathway-link-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.pathway-stats,.pathway-link-grid{grid-template-columns:1fr}.pathway-requirement-top,.pathway-summary-hero{flex-direction:column;align-items:flex-start}.pathway-target-meta a{margin-left:0}.pathway-summary-score{width:95px;height:95px}}

/* v28 JININO focused product identity */
.jinino-nav{padding:10px 28px;background:color-mix(in srgb,var(--panel) 96%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.jinino-brand{display:flex;align-items:center;gap:10px;min-width:max-content}.jinino-brand-icon{width:38px;height:38px;object-fit:contain;border-radius:10px}.jinino-brand-copy{display:grid;line-height:1}.jinino-brand-copy strong{font-size:21px;font-weight:950;letter-spacing:.06em;color:var(--text)}.jinino-brand-copy small{font-size:9px;color:var(--muted);margin-top:5px;letter-spacing:.04em}.jinino-navlinks{gap:4px}.jinino-navlinks>a{font-weight:760;border-radius:10px;padding:8px 10px}.jinino-navlinks>a:hover{background:var(--soft)}
.jinino-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:28px;align-items:center;padding:56px 0 34px}.jinino-hero h1{font-size:clamp(48px,7vw,78px);line-height:.98;letter-spacing:-.055em;max-width:760px;margin:18px 0}.hero-lead{font-size:20px;line-height:1.55;color:var(--muted);max-width:760px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0 18px}.hero-primary{padding:13px 22px}.hero-trust{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:13px}.jinino-hero-brand{padding:28px;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,#2563eb 8%,var(--panel)),color-mix(in srgb,#0ea5a8 6%,var(--panel)))}.jinino-hero-logo{display:block;width:min(100%,470px);margin:0 auto 20px}.hero-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hero-mini-grid>div{padding:14px;border-radius:13px;background:color-mix(in srgb,var(--panel) 86%,transparent);border:1px solid var(--line)}.hero-mini-grid strong,.hero-mini-grid span{display:block}.hero-mini-grid strong{font-size:18px}.hero-mini-grid span{font-size:11px;color:var(--muted);margin-top:3px}.landing-section{margin:42px 0}.landing-section-head{max-width:780px;margin-bottom:20px}.landing-section-head h2{font-size:36px;line-height:1.08;margin:7px 0 10px}.focus-feature-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.focus-feature{position:relative;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--panel);min-height:245px;overflow:hidden}.focus-feature:nth-child(1),.focus-feature:nth-child(2){grid-column:span 3}.focus-feature:nth-child(n+3){grid-column:span 2}.focus-feature::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--focus,#2563eb)}.focus-feature.agenda{--focus:#2563eb}.focus-feature.cpd{--focus:#7c3aed}.focus-feature.finance{--focus:#059669}.focus-feature.supervisor{--focus:#db2777}.focus-feature.pathway{--focus:#0f766e}.focus-feature h3{font-size:22px;margin:10px 0}.focus-feature p{color:var(--muted);line-height:1.55}.focus-feature strong{display:block;margin-top:14px}.focus-number{font-size:11px;font-weight:900;color:var(--focus);letter-spacing:.08em}.appraisal-callout{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:26px;border-radius:20px;border:1px solid color-mix(in srgb,#7c3aed 22%,var(--line));background:color-mix(in srgb,#7c3aed 5%,var(--panel))}.appraisal-callout h2{margin:5px 0}.jinino-pricing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.pricing-card{position:relative;padding:24px;border-radius:18px;border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column}.pricing-card.popular{border:2px solid #2563eb;transform:translateY(-6px)}.pricing-card.pro{border-top:5px solid #7c3aed}.pricing-card.add-on{border-top:5px solid #f59e0b}.pricing-card h3{font-size:34px;margin:8px 0}.pricing-card h3 small{font-size:12px;color:var(--muted)}.pricing-card p{color:var(--muted)}.pricing-card ul{padding-left:18px;line-height:1.85;flex:1}.price-ribbon{position:absolute;right:14px;top:12px;font-size:10px;font-weight:900;padding:5px 8px;border-radius:999px;background:#2563eb;color:#fff;text-transform:uppercase}.landing-final-cta{text-align:center;padding:54px 24px;border-radius:22px;background:linear-gradient(145deg,#071f43,#0b3b6d);color:#fff;margin:48px 0}.landing-final-cta h2{font-size:36px;margin:0 0 8px}.landing-final-cta p{color:#d9e8f7}.jinino-footer{margin-top:36px}.appraisal-price-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}
/* Calendar readability: allow up to three title lines in every view */
.fc .fc-daygrid-event .mc-event-title{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;line-height:1.18!important}
.fc .fc-timegrid-event .mc-event-title{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;white-space:normal!important;overflow:hidden!important}
.fc .fc-list-event .mc-event-title{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;white-space:normal!important;overflow:hidden!important}
@media(max-width:1050px){.jinino-hero{grid-template-columns:1fr}.jinino-pricing-grid{grid-template-columns:1fr 1fr}.focus-feature-grid{grid-template-columns:1fr 1fr}.focus-feature:nth-child(n){grid-column:span 1}}
@media(max-width:700px){.jinino-nav{padding:9px 13px}.jinino-brand-copy small{display:none}.jinino-hero{padding-top:28px}.jinino-hero h1{font-size:46px}.hero-lead{font-size:17px}.jinino-pricing-grid,.focus-feature-grid{grid-template-columns:1fr}.pricing-card.popular{transform:none}.appraisal-callout,.appraisal-price-card{align-items:flex-start;flex-direction:column}.jinino-hero-brand{padding:18px}.fc .fc-daygrid-event .mc-event-title{-webkit-line-clamp:3!important}}

/* v28 desktop shell inspired by the approved JININO mockups */
@media(min-width:1051px){
  .jinino-shell .jinino-nav{position:fixed;left:0;top:0;bottom:0;width:238px;z-index:80;display:flex;flex-direction:column;align-items:stretch;padding:22px 16px;background:linear-gradient(180deg,#071c35 0%,#0a2948 100%);border-right:1px solid rgba(255,255,255,.08);border-bottom:0;box-shadow:14px 0 40px rgba(3,20,38,.08)}
  .jinino-shell .jinino-brand{padding:0 8px 20px;margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,.10)}
  .jinino-shell .jinino-brand-icon{width:42px;height:42px;background:#fff;padding:2px}
  .jinino-shell .jinino-brand-copy strong{color:#fff;font-size:22px}.jinino-shell .jinino-brand-copy small{color:#9fc1d9}
  .jinino-shell .jinino-navlinks{display:flex!important;flex-direction:column;align-items:stretch;gap:5px;width:100%}
  .jinino-shell .jinino-navlinks>a{display:block;color:#d8e7f3!important;padding:11px 12px;border-radius:10px;font-size:13px}
  .jinino-shell .jinino-navlinks>a:hover{background:rgba(255,255,255,.08);color:#fff!important}.jinino-shell .jinino-navlinks .nav-premium-tease{border:1px solid rgba(124,58,237,.35);background:rgba(124,58,237,.08)}
  .jinino-shell .jinino-navlinks .theme-toggle{margin-top:auto;width:100%;height:38px;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#fff}
  .jinino-shell .jinino-navlinks form.inline{width:100%;margin-top:2px}.jinino-shell .jinino-navlinks .nav-logout{width:100%;text-align:left;padding:10px 12px;color:#d8e7f3;background:transparent;border:0}
  .jinino-shell main{margin-left:238px;max-width:none;width:auto;padding-left:28px;padding-right:28px}
  .jinino-shell footer{margin-left:238px;padding-left:30px;padding-right:30px}
  .jinino-shell .mobile-menu{display:none!important}
}

/* v29 — Premium Agenda & Calendar */
.premium-agenda-page{max-width:1480px;margin:0 auto}.agenda-premium-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:4px 0 24px}.agenda-premium-head h1{font-size:clamp(34px,4vw,52px);letter-spacing:-.045em;margin:6px 0 8px}.agenda-premium-head p{max-width:780px;color:var(--muted);font-size:16px;margin:0}.agenda-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.premium-icon-button{display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-decoration:none;font-weight:760;box-shadow:0 4px 16px rgba(15,23,42,.04)}.premium-icon-button:hover{border-color:color-mix(in srgb,var(--brand2) 42%,var(--line));transform:translateY(-1px)}.premium-new-button{border-radius:12px!important;padding:11px 18px!important;background:linear-gradient(135deg,#1769ff,#0d4fd7)!important;box-shadow:0 10px 26px rgba(37,99,235,.22)}.premium-add-menu{position:relative}.premium-add-menu>summary{list-style:none}.premium-add-menu>summary::-webkit-details-marker{display:none}.premium-add-popover{position:absolute;right:0;top:calc(100% + 10px);z-index:45;width:300px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 65px rgba(15,23,42,.18)}.premium-add-popover a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:11px;text-decoration:none;color:var(--text)}.premium-add-popover a:hover{background:var(--soft)}.premium-add-popover strong,.premium-add-popover small{display:block}.premium-add-popover strong{font-size:13px}.premium-add-popover small{font-size:11px;margin-top:2px}.add-menu-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:color-mix(in srgb,currentColor 10%,var(--panel));font-size:12px}.add-menu-icon.type-event{color:#2563eb}.add-menu-icon.type-meeting{color:#db2777}.add-menu-icon.type-course{color:#0891b2}.add-menu-icon.type-locum{color:#059669}.add-menu-icon.type-task{color:#7c3aed}
.agenda-insight-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.agenda-insight-card{appearance:none;width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:14px 15px;border:1px solid var(--line);border-radius:15px;background:var(--panel);color:var(--text);text-decoration:none;cursor:pointer;box-shadow:0 6px 20px rgba(15,23,42,.045);transition:.18s ease}.agenda-insight-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,#2563eb 32%,var(--line));box-shadow:0 12px 30px rgba(15,23,42,.075)}.agenda-insight-card>span:last-child{min-width:0}.agenda-insight-card small,.agenda-insight-card strong{display:block}.agenda-insight-card small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--muted)}.agenda-insight-card strong{margin-top:3px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-insight-icon{display:grid;place-items:center;flex:0 0 39px;width:39px;height:39px;border-radius:12px;font-size:12px;font-weight:900}.agenda-insight-icon.today{background:#eaf1ff;color:#2563eb}.agenda-insight-icon.week{background:#edf8ff;color:#0284c7}.agenda-insight-icon.tasks{background:#f3edff;color:#7c3aed}.agenda-insight-icon.next{background:color-mix(in srgb,var(--next-colour,#0f766e) 12%,var(--panel));color:var(--next-colour,#0f766e)}
.premium-calendar-shell{background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 42px rgba(15,23,42,.07);overflow:hidden}.premium-calendar-toolbar{display:grid;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 96%,#f8fbff)}.calendar-nav-cluster{display:flex;align-items:center;gap:6px}.calendar-nav-button,.calendar-today-button{height:38px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;cursor:pointer;font-weight:800}.calendar-nav-button{width:38px;font-size:22px;line-height:1}.calendar-today-button{padding:0 13px;font-size:12px}.calendar-nav-button:hover,.calendar-today-button:hover{background:var(--soft)}.calendar-period-title{text-align:center;font-size:18px;font-weight:900;letter-spacing:-.02em}.calendar-view-switch{display:flex;padding:3px;border-radius:12px;background:var(--soft);border:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.calendar-view-switch button{border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:9px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.calendar-view-switch button.is-active{background:var(--panel);color:#155eef;box-shadow:0 2px 9px rgba(15,23,42,.08)}
.premium-calendar-filters{display:flex;align-items:center;gap:7px;padding:11px 18px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;background:color-mix(in srgb,var(--soft) 42%,var(--panel))}.premium-calendar-filters::-webkit-scrollbar{display:none}.filter-label{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-right:3px}.calendar-filter-chip{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:6px 9px;background:var(--panel);color:var(--muted);font:inherit;font-size:11px;font-weight:760;cursor:pointer;opacity:.55;transition:.15s}.calendar-filter-chip i{width:7px;height:7px;border-radius:50%;background:var(--chip)}.calendar-filter-chip.is-active{opacity:1;border-color:color-mix(in srgb,var(--chip) 30%,var(--line));color:var(--text);background:color-mix(in srgb,var(--chip) 5%,var(--panel))}.calendar-filter-hint{margin-left:auto;white-space:nowrap;color:var(--muted);font-size:10px}.premium-calendar-stage{padding:10px 12px 14px;background:var(--panel)}
/* FullCalendar: premium shell overrides */
.premium-calendar-stage .fc{--fc-border-color:color-mix(in srgb,var(--line) 88%,transparent);--fc-page-bg-color:var(--panel);--fc-neutral-bg-color:color-mix(in srgb,var(--soft) 48%,var(--panel));font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.premium-calendar-stage .fc-theme-standard td,.premium-calendar-stage .fc-theme-standard th{border-color:color-mix(in srgb,var(--line) 84%,transparent)}.premium-calendar-stage .fc .fc-scrollgrid{border:0!important;border-radius:14px;overflow:hidden}.premium-calendar-stage .fc .fc-col-header-cell{background:color-mix(in srgb,var(--soft) 48%,var(--panel))!important}.premium-calendar-stage .fc .fc-col-header-cell-cushion{padding:11px 6px!important;color:var(--muted)!important;font-size:10px!important;letter-spacing:.08em!important;text-transform:uppercase!important;font-weight:900!important}.premium-calendar-stage .fc .fc-daygrid-day-frame{min-height:126px!important;padding:2px 4px 5px!important}.premium-calendar-stage .fc .fc-daygrid-day-top{justify-content:flex-start!important;padding:6px 4px 1px!important}.premium-calendar-stage .fc .fc-daygrid-day-number{display:grid!important;place-items:center!important;width:30px!important;height:30px!important;border-radius:10px!important;padding:0!important;font-size:13px!important;font-weight:900!important;color:var(--text)!important;text-decoration:none!important}.premium-calendar-stage .fc .fc-day-today{background:color-mix(in srgb,#2563eb 3.5%,var(--panel))!important}.premium-calendar-stage .fc .fc-day-today .fc-daygrid-day-number{background:#2563eb!important;color:white!important;box-shadow:0 5px 14px rgba(37,99,235,.22)}.premium-calendar-stage .fc .fc-day-other .fc-daygrid-day-number{opacity:.36}.premium-calendar-stage .fc .fc-daygrid-day:hover{background:color-mix(in srgb,#2563eb 2.5%,var(--panel))!important}.premium-calendar-stage .fc .fc-daygrid-day-events{margin-top:2px!important}.premium-calendar-stage .fc .fc-daygrid-event-harness{margin-top:3px!important}.premium-calendar-stage .fc .fc-daygrid-event.mc-readable-event{min-height:32px!important;padding:5px 20px 5px 7px!important;border:1px solid color-mix(in srgb,var(--event-color) 32%,var(--line))!important;border-left:4px solid var(--event-color)!important;border-radius:9px!important;background:color-mix(in srgb,var(--event-color) 10%,var(--panel))!important;box-shadow:none!important;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease!important}.premium-calendar-stage .fc .fc-daygrid-event.mc-readable-event:hover{transform:translateY(-1px)!important;box-shadow:0 6px 14px color-mix(in srgb,var(--event-color) 12%,transparent)!important;border-color:color-mix(in srgb,var(--event-color) 55%,var(--line))!important}.premium-calendar-stage .fc .fc-daygrid-event .mc-event-content{display:grid!important;grid-template-columns:7px minmax(0,1fr)!important;gap:6px!important;align-items:start!important}.premium-calendar-stage .fc .fc-daygrid-event .mc-event-dot{width:7px!important;height:7px!important;background:var(--event-color)!important;margin-top:3px!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--event-color) 12%,transparent)}.premium-calendar-stage .fc .fc-daygrid-event .mc-event-title{font-size:11px!important;line-height:1.2!important;font-weight:820!important;letter-spacing:-.01em!important;color:var(--text)!important;-webkit-line-clamp:3!important}.premium-calendar-stage .fc .fc-more-link{display:inline-flex;padding:3px 6px;border-radius:7px;background:var(--soft);font-size:9.5px;font-weight:850;color:var(--brand2);margin-top:3px;text-decoration:none}.premium-calendar-stage .fc .calendar-delete{opacity:0!important;transform:translateY(-50%) scale(.85)!important;transition:.15s!important;background:color-mix(in srgb,var(--event-color) 78%,#0b1320)!important;width:17px!important;height:17px!important;font-size:12px!important}.premium-calendar-stage .fc .calendar-own-event:hover .calendar-delete{opacity:.8!important;transform:translateY(-50%) scale(1)!important}
.premium-calendar-stage .fc .fc-timegrid-axis{width:54px!important;max-width:54px!important}.premium-calendar-stage .fc .fc-timegrid-slot{height:32px!important}.premium-calendar-stage .fc .fc-timegrid-slot-label-cushion{font-size:10px!important;color:var(--muted)!important;font-weight:750!important}.premium-calendar-stage .fc .fc-timegrid-col-events{margin:0 4px!important}.premium-calendar-stage .fc .fc-timegrid-event.mc-readable-event{border-radius:10px!important;border:1px solid color-mix(in srgb,var(--event-color) 32%,var(--line))!important;border-left:4px solid var(--event-color)!important;background:color-mix(in srgb,var(--event-color) 11%,var(--panel))!important;padding:6px 18px 6px 8px!important;box-shadow:0 4px 12px rgba(15,23,42,.055)!important;overflow:hidden!important}.premium-calendar-stage .fc .fc-timegrid-event .mc-event-content{display:grid!important;grid-template-columns:7px minmax(0,1fr)!important;gap:6px!important;align-items:start!important}.premium-calendar-stage .fc .fc-timegrid-event .mc-event-time{font-size:9.5px!important;font-weight:900!important;color:color-mix(in srgb,var(--event-color) 64%,var(--text))!important}.premium-calendar-stage .fc .fc-timegrid-event .mc-event-title{font-size:11.5px!important;line-height:1.2!important;font-weight:850!important;-webkit-line-clamp:3!important}.premium-calendar-stage .fc .fc-timegrid-event .mc-event-meta{display:block;font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.premium-calendar-stage .fc .fc-timegrid-now-indicator-line{border-color:#ef4444!important;border-width:1.5px!important}.premium-calendar-stage .fc .fc-timegrid-now-indicator-arrow{border-color:#ef4444!important}
.premium-calendar-stage .fc .fc-list{border:0!important}.premium-calendar-stage .fc .fc-list-day-cushion{background:color-mix(in srgb,var(--soft) 58%,var(--panel))!important;padding:10px 12px!important}.premium-calendar-stage .fc .fc-list-day-text,.premium-calendar-stage .fc .fc-list-day-side-text{font-size:11px!important;font-weight:900!important;color:var(--text)!important;text-transform:uppercase;letter-spacing:.06em}.premium-calendar-stage .fc .fc-list-event.mc-readable-event td{background:color-mix(in srgb,var(--event-color) 7%,var(--panel))!important;border-bottom-color:color-mix(in srgb,var(--event-color) 15%,var(--line))!important;padding-top:12px!important;padding-bottom:12px!important}.premium-calendar-stage .fc .fc-list-event.mc-readable-event td:first-child{border-left:4px solid var(--event-color)!important}.premium-calendar-stage .fc .fc-list-event .mc-event-title{font-size:12.5px!important;font-weight:820!important}.premium-calendar-stage .fc .fc-list-event .mc-event-time{font-size:10px!important}.premium-calendar-stage .fc .fc-list-event .mc-event-meta{display:none}
/* Hover preview */
.calendar-hover-card{position:fixed;z-index:130;width:300px;display:none;padding:14px 15px;border-radius:14px;background:color-mix(in srgb,var(--panel) 97%,transparent);border:1px solid color-mix(in srgb,var(--hover-colour,#2563eb) 28%,var(--line));border-top:4px solid var(--hover-colour,#2563eb);box-shadow:0 20px 55px rgba(15,23,42,.19);backdrop-filter:blur(14px);pointer-events:none}.calendar-hover-card.show{display:block}.calendar-hover-card .hover-type{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.calendar-hover-card .hover-type i{width:7px;height:7px;border-radius:50%;background:var(--hover-colour)}.calendar-hover-card strong,.calendar-hover-card span,.calendar-hover-card small{display:block}.calendar-hover-card strong{font-size:14px;line-height:1.3;margin:6px 0 4px}.calendar-hover-card span{font-size:11px;font-weight:780}.calendar-hover-card small{margin-top:3px;font-size:10px}
/* Upcoming + tasks */
.agenda-lower-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);gap:16px;margin-top:16px}.premium-upcoming-panel,.premium-todo-panel{padding:20px!important}.premium-panel-head{margin-bottom:10px}.panel-kicker{display:block;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--brand2);margin-bottom:4px}.premium-panel-head h2{font-size:20px;margin:0 0 4px}.premium-panel-head p{font-size:11px}.text-button{border:0;background:transparent;color:var(--brand2);font:inherit;font-size:11px;font-weight:850;cursor:pointer}.premium-upcoming-list{display:grid;gap:4px;max-height:480px;overflow:auto;padding-right:3px}.premium-upcoming-row{appearance:none;display:grid;grid-template-columns:42px 8px minmax(0,1fr) 18px;align-items:center;gap:10px;width:100%;padding:9px 8px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left;cursor:pointer;border-radius:10px}.premium-upcoming-row:hover{background:color-mix(in srgb,var(--event-colour) 5%,var(--soft))}.premium-upcoming-row:last-child{border-bottom:0}.upcoming-date{display:grid;place-items:center;width:38px;height:42px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.upcoming-date b{font-size:14px;line-height:1}.upcoming-date small{font-size:8px;margin-top:2px;font-weight:850}.upcoming-dot{width:8px;height:8px;border-radius:50%;background:var(--event-colour);box-shadow:0 0 0 3px color-mix(in srgb,var(--event-colour) 11%,transparent)}.upcoming-copy{min-width:0}.upcoming-copy strong,.upcoming-copy small{display:block}.upcoming-copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-copy small{font-size:9.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-arrow{font-size:20px;color:var(--muted)}
.premium-task-list{display:grid!important;gap:7px!important;max-height:480px!important;overflow:auto!important;padding-right:3px!important}.premium-task-item{display:grid!important;grid-template-columns:16px 26px minmax(0,1fr) auto!important;align-items:center!important;gap:9px!important;padding:10px 10px!important;border:1px solid var(--line)!important;border-left:3px solid var(--item-colour)!important;border-radius:11px!important;background:var(--panel)!important;box-shadow:none!important;min-height:62px!important}.premium-task-item:hover{background:color-mix(in srgb,var(--item-colour) 4%,var(--panel))!important;border-color:color-mix(in srgb,var(--item-colour) 24%,var(--line))!important}.premium-task-item .drag-handle{opacity:.24!important;font-size:12px!important;padding:0!important;background:transparent!important;border:0!important;color:var(--muted)!important;cursor:grab!important}.premium-task-item:hover .drag-handle{opacity:.65!important}.premium-checkbox{display:grid!important;place-items:center!important;width:24px!important;height:24px!important;border-radius:8px!important;border:1.5px solid color-mix(in srgb,var(--item-colour) 45%,var(--line))!important;background:color-mix(in srgb,var(--item-colour) 5%,var(--panel))!important;color:var(--item-colour)!important;font-size:12px!important;padding:0!important}.premium-task-item.is-complete .premium-checkbox{background:var(--item-colour)!important;color:#fff!important}.premium-task-item .agenda-title-line{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}.premium-task-item .agenda-title-line strong{font-size:12px!important;line-height:1.25!important}.premium-task-item .priority-badge{font-size:8px!important;padding:3px 6px!important}.premium-task-item .task-meta{display:flex;align-items:center;gap:8px;margin-top:3px}.premium-task-item .task-meta time,.premium-task-item .task-meta small{font-size:9px!important;color:var(--muted)!important}.premium-task-item .agenda-actions{display:flex!important;gap:3px!important;opacity:0!important;transition:.15s}.premium-task-item:hover .agenda-actions{opacity:1!important}.premium-task-item .agenda-edit,.premium-task-item .agenda-delete{display:grid!important;place-items:center!important;width:26px!important;height:26px!important;border-radius:8px!important;border:1px solid var(--line)!important;background:var(--panel)!important;color:var(--muted)!important;text-decoration:none!important;padding:0!important}.premium-task-item .agenda-delete{font-size:16px!important}.premium-empty{display:grid;place-items:center;text-align:center;padding:34px 12px;color:var(--muted)}.premium-empty>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--soft);color:var(--brand2);font-weight:900;margin-bottom:8px}.premium-empty strong,.premium-empty small{display:block}.premium-empty strong{color:var(--text);font-size:13px}.premium-empty small{font-size:10px;margin-top:3px}
html[data-theme="dark"] .premium-calendar-stage .fc .fc-daygrid-event.mc-readable-event,html[data-theme="dark"] .premium-calendar-stage .fc .fc-timegrid-event.mc-readable-event{background:color-mix(in srgb,var(--event-color) 18%,#16212d)!important;border-color:color-mix(in srgb,var(--event-color) 36%,#2a3948)!important}html[data-theme="dark"] .calendar-view-switch button.is-active{color:#7db3ff}html[data-theme="dark"] .agenda-insight-icon.today{background:rgba(37,99,235,.18)}html[data-theme="dark"] .agenda-insight-icon.week{background:rgba(2,132,199,.18)}html[data-theme="dark"] .agenda-insight-icon.tasks{background:rgba(124,58,237,.18)}
@media(max-width:1100px){.agenda-insight-strip{grid-template-columns:1fr 1fr}.agenda-lower-grid{grid-template-columns:1fr}.premium-calendar-toolbar{grid-template-columns:auto 1fr}.calendar-period-title{grid-column:1/-1;grid-row:1;text-align:center}.calendar-nav-cluster{grid-row:2}.calendar-view-switch{grid-row:2;justify-self:end}.calendar-filter-hint{display:none}}
@media(max-width:760px){.agenda-premium-head{align-items:flex-start;flex-direction:column}.agenda-head-actions{width:100%}.premium-icon-button{flex:1}.premium-add-menu{flex:1}.premium-new-button{width:100%}.premium-add-popover{right:auto;left:0;width:min(310px,88vw)}.agenda-insight-strip{grid-template-columns:1fr 1fr;gap:8px}.agenda-insight-card{padding:11px}.agenda-insight-card strong{font-size:11px}.agenda-insight-icon{width:34px;height:34px;flex-basis:34px}.premium-calendar-shell{border-radius:15px}.premium-calendar-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;padding:12px}.calendar-period-title{order:-1;width:100%;text-align:left;font-size:17px}.calendar-view-switch{width:100%;order:3}.calendar-view-switch button{flex:1;padding:8px 6px}.premium-calendar-filters{padding:9px 12px}.premium-calendar-stage{padding:5px}.premium-calendar-stage .fc .fc-daygrid-day-frame{min-height:96px!important;padding:1px!important}.premium-calendar-stage .fc .fc-daygrid-day-number{width:27px!important;height:27px!important;font-size:12px!important}.premium-calendar-stage .fc .fc-daygrid-event.mc-readable-event{min-height:27px!important;padding:4px 6px!important;border-left-width:3px!important}.premium-calendar-stage .fc .fc-daygrid-event .mc-event-content{grid-template-columns:6px minmax(0,1fr)!important;gap:4px!important}.premium-calendar-stage .fc .fc-daygrid-event .mc-event-title{font-size:9px!important;-webkit-line-clamp:3!important}.premium-calendar-stage .fc .fc-daygrid-event .mc-event-dot{width:6px!important;height:6px!important}.premium-calendar-stage .fc .calendar-delete{display:none!important}.agenda-lower-grid{gap:12px}.premium-upcoming-panel,.premium-todo-panel{padding:15px!important}.premium-task-item .agenda-actions{opacity:1!important}}

/* v30 — Quick Rota: universal, fast weekly rota capture */
.global-quick-rota{position:fixed;right:22px;bottom:22px;z-index:70;display:flex;align-items:center;gap:9px;padding:11px 15px;border-radius:999px;background:linear-gradient(135deg,#16a34a,#059669);color:#fff!important;text-decoration:none;box-shadow:0 14px 35px rgba(5,150,105,.3);font-size:13px;font-weight:850;border:1px solid rgba(255,255,255,.18);transition:transform .16s ease,box-shadow .16s ease}.global-quick-rota span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(255,255,255,.16);font-size:18px}.global-quick-rota:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(5,150,105,.38)}
.rota-reminder-banner{margin:14px auto 0;max-width:1220px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 16px;border-radius:15px;background:color-mix(in srgb,#22c55e 10%,var(--panel));border:1px solid color-mix(in srgb,#22c55e 35%,var(--line));box-shadow:var(--shadow)}.rota-reminder-copy{display:flex;align-items:center;gap:12px;min-width:0}.rota-reminder-copy>div{display:grid;gap:2px}.rota-reminder-copy strong{font-size:14px}.rota-reminder-copy small{color:var(--muted)}.rota-reminder-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#22c55e;color:#fff;font-size:21px;flex:0 0 auto}.rota-reminder-actions{display:flex;gap:8px;flex:0 0 auto}
.quick-rota-page{max-width:1180px;margin:0 auto}.quick-rota-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.quick-rota-head h1{margin:3px 0 5px;font-size:clamp(30px,4vw,46px);letter-spacing:-.035em}.quick-rota-head p{max-width:680px;color:var(--muted);margin:0}.quick-rota-weekbar{display:grid;grid-template-columns:auto auto auto 1fr;align-items:center;gap:10px;padding:14px 16px;margin-bottom:14px}.rota-week-arrow{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;border:1px solid var(--line);text-decoration:none;color:var(--text);font-size:24px;background:var(--soft)}.rota-week-title{display:grid;min-width:190px;padding:0 8px}.rota-week-title small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.rota-week-title strong{font-size:17px}.rota-week-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.quick-rota-settings{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;margin-bottom:14px;padding:18px}.quick-rota-settings label{font-size:13px}.quick-rota-settings label span{font-weight:500;color:var(--muted)}.quick-rota-settings small{display:block;color:var(--muted);margin-top:5px;font-size:11px}.quick-rota-reminder-setting select{max-width:190px;margin-top:8px}.toggle-label{display:flex;align-items:center;gap:7px}.toggle-label input{width:auto}.quick-rota-days{display:grid;gap:9px}.quick-rota-day{display:grid;grid-template-columns:90px 1fr;gap:14px;align-items:center;padding:11px 13px;background:var(--panel);border:1px solid var(--line);border-radius:15px;box-shadow:0 3px 15px rgba(15,23,42,.035);transition:.16s ease}.quick-rota-day.has-shift{border-color:color-mix(in srgb,#22c55e 35%,var(--line));background:color-mix(in srgb,#22c55e 4%,var(--panel))}.quick-rota-day-date{display:grid;grid-template-columns:1fr auto;align-items:end;padding-left:5px;border-right:1px solid var(--line);padding-right:14px}.quick-rota-day-date span{grid-column:1/-1;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.quick-rota-day-date strong{font-size:28px;line-height:1}.quick-rota-day-date small{font-size:11px;color:var(--muted);margin-left:3px}.quick-rota-preset-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.rota-preset{margin:0;cursor:pointer;min-width:0}.rota-preset input{position:absolute;opacity:0;pointer-events:none}.rota-preset span{display:flex;align-items:center;justify-content:center;gap:5px;min-height:48px;padding:7px 8px;border:1px solid var(--line);border-radius:11px;background:var(--soft);font-size:12px;font-weight:750;transition:.13s ease}.rota-preset span small{font-size:9px;color:var(--muted);font-weight:600}.rota-preset input:checked+span{background:#dcfce7;border-color:#22c55e;color:#14532d;box-shadow:inset 0 0 0 1px #22c55e}.rota-preset.off input:checked+span{background:var(--soft);border-color:var(--muted);color:var(--muted);box-shadow:none}.quick-rota-savebar{position:sticky;bottom:12px;z-index:20;margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(15,23,42,.16)}.quick-rota-savebar>div{display:grid}.quick-rota-savebar small{color:var(--muted)}.quick-rota-save{background:linear-gradient(135deg,#16a34a,#059669);border-color:#059669}
@media(max-width:820px){.rota-reminder-banner{margin:10px 12px 0;align-items:flex-start;flex-direction:column}.rota-reminder-actions{width:100%}.rota-reminder-actions>*{flex:1;text-align:center}.global-quick-rota{right:14px;bottom:14px}.global-quick-rota strong{display:none}.quick-rota-head{flex-direction:column}.quick-rota-weekbar{grid-template-columns:auto 1fr auto}.rota-week-actions{grid-column:1/-1;justify-content:flex-start}.quick-rota-settings{grid-template-columns:1fr}.quick-rota-day{grid-template-columns:62px 1fr;padding:9px}.quick-rota-preset-grid{grid-template-columns:repeat(3,1fr)}.quick-rota-day-date{padding-right:8px}.quick-rota-day-date strong{font-size:24px}.quick-rota-savebar{bottom:8px;align-items:stretch;flex-direction:column}.quick-rota-save{width:100%}}

/* v32 — Calendar-only Quick Rota + multi-week slider */
.quick-rota-calendar-button{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,#16a34a,#059669);border-color:transparent!important;color:#fff!important;box-shadow:0 10px 24px rgba(5,150,105,.18)}
.quick-rota-calendar-button:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(5,150,105,.24)}
.quick-rota-rangebar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;padding:16px 18px}.rota-range-copy{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.rota-range-copy small{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.rota-range-copy strong{font-size:18px}.rota-range-copy span{font-size:12px;color:var(--muted)}.rota-range-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rota-range-size{display:flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.rota-range-size a{padding:6px 9px;border-radius:7px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:850}.rota-range-size a.active{background:var(--panel);color:var(--text);box-shadow:0 2px 8px rgba(15,23,42,.07)}
.rota-week-slider-shell{padding:0;overflow:hidden}.rota-week-slider-nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:stretch;padding:10px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--soft) 50%,var(--panel))}.rota-slider-arrow{width:42px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);font-size:24px;cursor:pointer;transition:.15s}.rota-slider-arrow:hover:not(:disabled){border-color:color-mix(in srgb,#059669 45%,var(--line));color:#059669}.rota-slider-arrow:disabled{opacity:.28;cursor:default}.rota-week-tabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.rota-week-tabs::-webkit-scrollbar{display:none}.rota-week-tab{position:relative;min-width:116px;padding:9px 12px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--muted);text-align:left;cursor:pointer;scroll-snap-align:center;transition:.16s}.rota-week-tab span,.rota-week-tab strong,.rota-week-tab small{display:block}.rota-week-tab span{font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.rota-week-tab strong{font-size:14px;color:var(--text);margin:2px 0}.rota-week-tab small{font-size:10px}.rota-week-tab:hover{background:var(--panel)}.rota-week-tab.is-active{background:var(--panel);border-color:color-mix(in srgb,#059669 35%,var(--line));box-shadow:0 5px 16px rgba(15,23,42,.07)}.week-saved-dot{position:absolute;right:9px;top:9px;width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px color-mix(in srgb,#22c55e 14%,transparent)}.week-edited-badge{display:none;position:absolute;right:6px;bottom:5px;padding:2px 5px;border-radius:999px;background:#f59e0b;color:#fff;font-size:8px;font-style:normal;font-weight:900;text-transform:uppercase}.rota-week-tab.is-edited .week-edited-badge{display:block}.rota-week-tab.is-edited{border-color:color-mix(in srgb,#f59e0b 35%,var(--line))}
.rota-week-slider-viewport{overflow:hidden}.rota-week-track{display:flex;width:100%;transition:transform .28s cubic-bezier(.2,.8,.2,1);will-change:transform}.rota-week-panel{min-width:100%;padding:18px;box-sizing:border-box}.rota-week-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.rota-week-panel-head h2{margin:4px 0 3px;font-size:23px}.rota-week-panel-head p{margin:0;color:var(--muted);font-size:12px}.rota-week-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.multiweek-savebar{z-index:15}.multiweek-savebar button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.quick-rota-multiweek .quick-rota-days{margin-bottom:0}.quick-rota-multiweek .quick-rota-day{border-color:color-mix(in srgb,var(--line) 90%,transparent)}
@media(max-width:840px){.quick-rota-rangebar,.rota-week-panel-head{align-items:flex-start;flex-direction:column}.rota-range-actions,.rota-week-actions{width:100%;justify-content:flex-start}.rota-week-slider-nav{grid-template-columns:36px minmax(0,1fr) 36px}.rota-slider-arrow{width:36px}.rota-week-tab{min-width:104px}.rota-week-panel{padding:12px}.quick-rota-calendar-button{order:-1}}
@media(max-width:600px){.quick-rota-rangebar{padding:13px}.rota-range-size{width:100%;justify-content:space-between}.rota-range-size a{flex:1;text-align:center}.rota-range-actions .button{flex:1}.rota-week-panel-head h2{font-size:20px}.rota-week-actions .button{flex:1}.quick-rota-multiweek .quick-rota-day{grid-template-columns:54px 1fr}.quick-rota-multiweek .quick-rota-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* v33 — published Design Studio tokens */
html{font-size:var(--jinino-base-font,15px)}
body{background:var(--jinino-page-bg,var(--bg))}
main{max-width:var(--jinino-content-width,1440px);margin-left:auto;margin-right:auto}
.topnav{min-height:var(--jinino-nav-height,64px)}
.panel,.card,.focus-feature,.pricing-card,.mini-stat,.dashboard-card,.premium-calendar-shell,.premium-upcoming-panel,.premium-todo-panel{border-radius:var(--jinino-card-radius,18px);box-shadow:var(--jinino-card-shadow,var(--shadow));border-width:var(--jinino-card-border,1px)}
.panel,.card{padding:var(--jinino-card-padding,24px)}
.button,button.button,.nav-logout{border-radius:var(--jinino-button-radius,10px);font-size:var(--jinino-button-font,14px)}
input,select,textarea{border-radius:var(--jinino-input-radius,10px)}
h1{font-size:calc(var(--jinino-heading-scale,1) * clamp(32px,4vw,52px))}h2{font-size:calc(var(--jinino-heading-scale,1) * 1.75rem)}h3{font-size:calc(var(--jinino-heading-scale,1) * 1.15rem)}
.grid,.cards-list,.agenda-lower-grid,.stats,.dashboard-grid{gap:var(--jinino-section-gap,24px)}
.nav-design-studio{background:linear-gradient(135deg,#7c3aed,#2563eb)!important;color:#fff!important;padding:8px 11px!important;border-radius:10px;font-weight:850}

/* v33 Super Admin Design Studio */
.design-studio-page{max-width:1800px;margin:0 auto}.design-studio-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:18px 0 20px}.design-studio-head h1{margin:5px 0 6px}.design-studio-head p{margin:0;color:var(--muted)}.design-publish-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.design-save-state{font-size:12px;font-weight:800;color:var(--muted);padding:7px 10px;border-radius:999px;background:var(--soft)}.design-save-state.saving{color:#b45309}.design-save-state.saved{color:#047857}
.design-studio-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px;align-items:start}.design-control-panel{padding:0!important;overflow:hidden;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto}.design-panel-top{display:flex;justify-content:space-between;align-items:center;padding:18px 18px 12px}.design-panel-top strong,.design-panel-top small{display:block}.design-panel-top small{color:var(--muted);font-size:11px;margin-top:3px}.design-control-tabs{display:grid;grid-template-columns:repeat(4,1fr);padding:0 10px 10px;gap:5px;border-bottom:1px solid var(--line)}.design-control-tabs button{border:0;background:transparent;border-radius:8px;padding:8px 4px;font-size:10px;font-weight:850;color:var(--muted);cursor:pointer}.design-control-tabs button.active{background:color-mix(in srgb,var(--brand) 11%,var(--panel));color:var(--brand)}.design-tab-pane{display:none;padding:17px}.design-tab-pane.active{display:block}.design-section-label{margin-bottom:15px}.design-section-label strong,.design-section-label small{display:block}.design-section-label small{color:var(--muted);margin-top:3px}.design-field{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.design-field>span{display:flex;justify-content:space-between;gap:12px;font-size:12px;font-weight:800}.design-field output{color:var(--muted);font-weight:700}.design-field input[type=range]{width:100%;accent-color:var(--brand)}.design-field.color-field{grid-template-columns:1fr 42px auto;align-items:center}.design-field.color-field>span{display:block}.design-field.color-field input{width:42px;height:32px;padding:2px;border:1px solid var(--line);background:var(--panel);border-radius:8px}.design-field.color-field output{font-size:10px}.design-switch{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 0}.design-switch strong,.design-switch small{display:block}.design-switch small{color:var(--muted);font-size:10px;margin-top:3px}.design-switch input{width:20px;height:20px;accent-color:var(--brand)}.design-component-demo,.design-type-sample,.design-control-sample{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line)}.design-component-demo .panel{margin-top:8px}.design-component-demo p,.design-type-sample p{color:var(--muted)}.design-control-sample{display:grid;gap:10px}.design-control-sample>div{display:flex;gap:8px}.design-reset-box{padding:16px 17px;border-top:1px solid var(--line);background:var(--soft)}.design-reset-box p{font-size:11px;color:var(--muted);line-height:1.5}.design-reset-box>div{display:flex;gap:7px;flex-wrap:wrap}
.design-preview-shell{border:1px solid var(--line);border-radius:20px;background:#0f172a;box-shadow:0 24px 60px rgba(15,23,42,.15);overflow:hidden;min-width:0}.design-preview-toolbar{height:48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:0 12px;background:#111827;color:#dbeafe}.preview-device-switch{display:flex;gap:4px}.preview-device-switch button{border:0;border-radius:7px;background:#1f2937;color:#94a3b8;padding:6px 10px;font-size:10px;font-weight:800;cursor:pointer}.preview-device-switch button.active{background:#334155;color:white}.preview-address{font-size:11px;color:#94a3b8}.preview-address span{color:#22c55e}.design-preview-toolbar>.icon-action{justify-self:end;color:#fff}.design-preview-stage{height:calc(100vh - 170px);min-height:650px;background:#334155;padding:10px;display:flex;justify-content:center;transition:.25s}.design-preview-stage iframe{width:100%;height:100%;border:0;border-radius:11px;background:white;transition:.25s}.design-preview-stage[data-device=tablet] iframe{width:820px}.design-preview-stage[data-device=mobile] iframe{width:390px}.design-history-panel{margin-top:20px}.design-history-list{display:grid;gap:8px}.design-history-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:11px 0;border-top:1px solid var(--line)}.design-history-row strong,.design-history-row small{display:block}.design-history-row small{color:var(--muted);margin-top:3px}
@media(max-width:1100px){.design-studio-layout{grid-template-columns:300px minmax(0,1fr)}.design-preview-stage{min-height:580px}}@media(max-width:820px){.design-studio-head{align-items:flex-start;flex-direction:column}.design-publish-actions{justify-content:flex-start}.design-studio-layout{grid-template-columns:1fr}.design-control-panel{position:static;max-height:none}.design-preview-stage{height:620px}.design-preview-toolbar{grid-template-columns:1fr auto}.preview-address{display:none}.design-history-row{align-items:flex-start;flex-direction:column}}


/* v34 Click-to-edit Design Studio */
.design-selected-box{margin:0 14px 4px;padding:12px;border:1px dashed color-mix(in srgb,var(--brand) 45%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--brand) 5%,var(--panel))}.design-selected-box strong,.design-selected-box small{display:block}.design-selected-box small{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.45}.design-selection-controls{padding:10px 12px;margin-bottom:8px;border-radius:12px;background:var(--soft)}
.jinino-design-preview-mode [data-jinino-editable=card]{cursor:pointer!important;transition:outline .12s,transform .12s!important}.jinino-design-preview-mode [data-jinino-editable=card]:hover{outline:2px dashed color-mix(in srgb,var(--brand) 70%,transparent)!important;outline-offset:3px}.jinino-design-preview-mode [data-jinino-selected]{outline:3px solid var(--brand)!important;outline-offset:4px;transform:scale(var(--jinino-selected-card-scale,1));position:relative;z-index:5}.jinino-design-preview-mode [data-jinino-selected] h1,.jinino-design-preview-mode [data-jinino-selected] h2,.jinino-design-preview-mode [data-jinino-selected] h3{font-size:var(--jinino-selected-card-title,22px)!important}


/* v35 dark theme + renewal reminder restoration */
html[data-theme="dark"] body{background:var(--bg)!important}
html[data-theme="dark"] main,html[data-theme="dark"] .jinino-shell{background:transparent}
.renewal-reminder-banner{max-width:var(--jinino-content-width,1440px);margin:14px auto 0;padding:13px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid color-mix(in srgb,var(--renewals,#d97706) 35%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--renewals,#d97706) 8%,var(--panel));box-shadow:var(--shadow)}
.renewal-reminder-copy{display:flex;align-items:center;gap:12px;min-width:0}.renewal-reminder-copy strong,.renewal-reminder-copy small{display:block}.renewal-reminder-copy small{margin-top:2px;color:var(--muted)}.renewal-reminder-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:11px;background:color-mix(in srgb,var(--renewals,#d97706) 16%,var(--panel));color:var(--renewals,#d97706);font-size:21px;font-weight:900}.renewal-reminder-actions{display:flex;gap:8px;flex:0 0 auto}.renewal-reminder-actions .button:first-child{background:var(--renewals,#d97706)}
html[data-theme="dark"] .renewal-reminder-banner{background:color-mix(in srgb,var(--renewals,#d97706) 11%,var(--panel))}
@media(max-width:700px){.renewal-reminder-banner{margin:10px 12px 0;align-items:flex-start;flex-direction:column}.renewal-reminder-actions{width:100%}.renewal-reminder-actions .button{flex:1}}


/* v36: unified CPD purple accents */
.page-head-cpd,.cpd-stats,.cpd-tabs,.cpd-card,.teaching-card,.reflection-card,.casebook-card{--accent:var(--cpd);--focus:var(--cpd)}
.cpd-stats .mini-stat:nth-child(n){border-top-color:var(--cpd)!important}.page-head-cpd .button,.cpd-page .button:not(.ghost),.cpd-card::before,.teaching-card::before,.reflection-card::before,.casebook-card::before{--accent:var(--cpd)}
.tabs a[href*="cpd"].active,.tabs a[href*="teaching"].active,.tabs a[href*="reflections"].active,.tabs a[href*="casebook"].active{color:var(--cpd);border-color:var(--cpd)}
/* v36: personal rota is deliberately subdued in the calendar */
.fc .rota-user-event{opacity:.75!important}.fc .rota-user-event .fc-event-main{background:color-mix(in srgb,#64748b 82%,transparent)!important}.calendar-filter-chip[data-filter-type="rota"]{--chip:#64748b!important}
/* v36: compact locum form */
.locum-advanced{margin:10px 0 16px;border:1px solid var(--line);border-radius:13px;background:var(--soft);padding:0 14px}.locum-advanced>summary{cursor:pointer;padding:13px 0;font-weight:850}.locum-advanced>summary small{display:block;color:var(--muted);font-weight:500;margin-top:3px}.locum-advanced[open]{padding-bottom:8px}

/* v37 — JININO keyhole brand identity */
.jinino-brand{flex-direction:column;align-items:flex-start;gap:5px!important}
.jinino-nav-wordmark{display:block;width:138px;height:auto;line-height:0}
.jinino-wordmark{display:block;width:100%;height:auto}
.jinino-wordmark-dark{display:none}
.jinino-brand-tagline{font-size:9px;color:var(--muted);letter-spacing:.055em;font-weight:700;white-space:nowrap}
html[data-theme="dark"] .jinino-wordmark-light{display:none}
html[data-theme="dark"] .jinino-wordmark-dark{display:block}
.jinino-hero-logo-lockup{display:grid;place-items:center;min-height:128px;padding:14px 8px 6px}
.jinino-hero-logo{width:min(100%,520px);height:auto;margin:0 auto 8px;filter:drop-shadow(0 12px 25px rgba(7,22,47,.08))}
.jinino-hero-logo-dark{display:none}
html[data-theme="dark"] .jinino-hero-logo-light{display:none}
html[data-theme="dark"] .jinino-hero-logo-dark{display:block}
.footer-brand{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.footer-logo-pair{display:inline-flex;align-items:center;gap:6px}.footer-brand-mark-wrap{display:block;width:24px;height:24px;line-height:0}.footer-brand-mark{width:24px;height:24px}.footer-mark-dark{display:none}.footer-brand>span:last-child{color:var(--muted)}
html[data-theme="dark"] .footer-mark-light{display:none}html[data-theme="dark"] .footer-mark-dark{display:block}

@media(min-width:1051px){
  .jinino-shell .jinino-brand{align-items:flex-start;padding:2px 8px 22px!important;gap:7px!important}
  .jinino-shell .jinino-nav-wordmark{width:148px}
  .jinino-shell .jinino-wordmark-light{display:none!important}
  .jinino-shell .jinino-wordmark-dark{display:block!important}
  .jinino-shell .jinino-brand-tagline{color:#9fc1d9;font-size:9px;letter-spacing:.06em}
}
@media(max-width:1050px){
  .jinino-brand{flex-direction:row;align-items:center;gap:9px!important}
  .jinino-nav-wordmark{width:126px}
  .jinino-brand-tagline{display:none}
}
@media(max-width:520px){.jinino-nav-wordmark{width:112px}.jinino-hero-logo-lockup{min-height:96px}.jinino-hero-logo{width:min(100%,390px)}}

/* v38 — simplified work password manager + dashboard Quick Rota */
.work-password-details{display:grid;gap:16px}.work-password-field{display:grid;gap:6px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.work-password-field>small{font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:10px}.work-secret-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center}.work-secret-row input[readonly]{background:var(--panel);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.dashboard-grid .fc .fc-quickRota-button{background:#64748b!important;border-color:#64748b!important;color:#fff!important;font-weight:850!important;white-space:nowrap}.dashboard-grid .fc .fc-quickRota-button:hover{background:#475569!important;border-color:#475569!important}.vault-credential-row small{word-break:break-word}
@media(max-width:700px){.work-secret-row{grid-template-columns:1fr 1fr}.work-secret-row input{grid-column:1/-1}.dashboard-grid .fc .fc-quickRota-button{font-size:11px!important;padding-left:8px!important;padding-right:8px!important}}

/* v39 — Referral system restored to primary navigation */
.nav-referrals{color:#7c3aed!important;font-weight:800}.nav-referrals::before{content:'↗';margin-right:5px}.nav-referrals:hover{background:color-mix(in srgb,#7c3aed 10%,transparent)!important}

/* v40 — responsive laptop density and shell geometry
   The desktop app previously used the same 238px sidebar, 24px card padding,
   large headings and wide gaps on every screen >1050px. On 1366px laptops
   that effectively made the UI behave like a desktop viewed too close. */
.dashboard-grid > *, .stats > *, .quick-actions > *, .panel-head > * { min-width:0; }

/* Keep global notices inside the authenticated content column rather than
   underneath the fixed sidebar. */
@media (min-width:1051px){
  .jinino-shell .renewal-reminder-banner,
  .jinino-shell .rota-reminder-banner{
    width:auto;
    max-width:none;
    margin-left:calc(238px + 28px);
    margin-right:28px;
  }
}

/* Normal laptop / small desktop density. This intentionally approximates the
   comfortable amount of content the user saw at browser zoom-out, without
   making text illegibly small or requiring browser zoom. */
@media (min-width:1051px) and (max-width:1536px){
  html{font-size:min(var(--jinino-base-font,15px),14px)}
  .jinino-shell .jinino-nav{
    width:204px;
    padding:18px 13px;
  }
  .jinino-shell .jinino-brand{
    padding:2px 6px 17px!important;
    margin-bottom:8px;
  }
  .jinino-shell .jinino-nav-wordmark{width:128px}
  .jinino-shell .jinino-brand-tagline{font-size:8px}
  .jinino-shell .jinino-navlinks{gap:2px}
  .jinino-shell .jinino-navlinks>a{
    padding:8px 9px;
    font-size:12px;
    border-radius:8px;
  }
  .jinino-shell .jinino-navlinks .theme-toggle{height:34px}
  .jinino-shell .jinino-navlinks .nav-logout{padding:8px 9px;font-size:12px}

  .jinino-shell main{
    margin-left:204px;
    padding:30px 20px 34px;
    max-width:none;
    width:auto;
  }
  .jinino-shell footer{margin-left:204px;padding-left:20px;padding-right:20px}
  .jinino-shell .renewal-reminder-banner,
  .jinino-shell .rota-reminder-banner{
    margin-left:224px;
    margin-right:20px;
    padding:10px 13px;
    gap:12px;
    border-radius:12px;
  }
  .renewal-reminder-icon,.rota-reminder-icon{flex-basis:32px;height:32px;font-size:17px}
  .renewal-reminder-copy small,.rota-reminder-copy small{font-size:11px}

  .jinino-shell h1{font-size:clamp(34px,3vw,42px)}
  .jinino-shell h2{font-size:calc(var(--jinino-heading-scale,1) * 1.48rem)}
  .jinino-shell h3{font-size:calc(var(--jinino-heading-scale,1) * 1.03rem)}
  .jinino-shell .page-head{margin-bottom:20px;gap:16px}
  .jinino-shell .panel,
  .jinino-shell .card{padding:min(var(--jinino-card-padding,24px),18px)}
  .jinino-shell .grid,
  .jinino-shell .cards-list,
  .jinino-shell .agenda-lower-grid,
  .jinino-shell .stats,
  .jinino-shell .dashboard-grid{gap:min(var(--jinino-section-gap,24px),14px)}
  .jinino-shell .button,.jinino-shell button.button{padding:9px 12px;font-size:12px}
  .jinino-shell .button.compact{padding:7px 10px}

  /* Dashboard header/actions */
  .dashboard-welcome{gap:16px}
  .quick-actions{gap:7px}
  .quick-actions .button{white-space:nowrap}

  /* Five KPI cards remain on one row on typical 1366/1440 laptops, but use
     compact dimensions and allow labels to wrap safely. */
  .dashboard-stats.stats{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
    margin-bottom:14px;
  }
  .dashboard-stats .stat-card,.stat-card{
    min-width:0;
    min-height:128px;
    padding:15px;
    border-radius:14px;
  }
  .dashboard-stats .stat-card b,.stat-card b{font-size:25px;margin-top:10px}
  .dashboard-stats .stat-card>span:not(.stat-icon){line-height:1.3}
  .dashboard-stats .stat-icon,.stat-icon{width:34px;height:34px;border-radius:10px}
  .dashboard-stats .stat-card small{font-size:10.5px}

  /* Main dashboard remains two-column, but neither side can force horizontal
     overflow. The right column gets enough room for the agenda labels. */
  .dashboard-grid.calendar-month-layout{
    grid-template-columns:minmax(0,1.42fr) minmax(330px,.95fr);
  }
  .dashboard-grid .calendar-panel,
  .dashboard-grid .dashboard-scroll-panel{min-width:0}
  .dashboard-scroll-panel{min-height:360px}
  .scroll-list{max-height:410px}
  .timeline-row{grid-template-columns:36px 7px minmax(0,1fr) auto;gap:7px;padding:9px 5px}
  .timeline-date b{font-size:17px}
  .timeline-copy strong{font-size:12px}
  .timeline-copy small{font-size:10px}
  .dashboard-scroll-panel .agenda-colour{height:29px}

  /* FullCalendar toolbar is the main source of crowding at 100% laptop zoom. */
  .dashboard-grid .fc .fc-toolbar{gap:8px;margin-bottom:11px}
  .dashboard-grid .fc .fc-toolbar-chunk{display:flex;align-items:center;gap:3px;min-width:0}
  .dashboard-grid .fc .fc-toolbar-title{font-size:16px!important;white-space:nowrap}
  .dashboard-grid .fc .fc-button{font-size:10.5px!important;padding:.42em .62em!important}
  .dashboard-grid .fc .fc-quickRota-button{font-size:10.5px!important;padding-left:7px!important;padding-right:7px!important}
  .dashboard-grid.calendar-month-layout .calendar-panel .fc .fc-daygrid-day-frame{min-height:78px!important}
  .dashboard-grid.calendar-month-layout .calendar-panel .mc-event-title{font-size:9.5px!important}
  .dashboard-grid.calendar-month-layout .calendar-panel .mc-event-time{font-size:7.5px!important}
}

/* 1051–1230px: still a laptop/landscape-tablet shell, but avoid squeezing five
   KPI cards and the calendar/agenda into unreadable columns. */
@media (min-width:1051px) and (max-width:1230px){
  .dashboard-stats.stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dashboard-grid.calendar-month-layout,.dashboard-grid.calendar-week-layout{grid-template-columns:1fr}
  .dashboard-grid .calendar-panel{grid-column:auto!important;grid-row:auto}
  .dashboard-grid .fc .fc-toolbar{flex-wrap:wrap}
  .dashboard-grid .fc .fc-toolbar-chunk:nth-child(2){order:-1;width:100%;justify-content:center}
}

/* FullCalendar itself needs a graceful toolbar when the browser is narrow,
   regardless of whether the page is dashboard or Plan. */
@media (max-width:1180px){
  .fc .fc-toolbar{flex-wrap:wrap;row-gap:8px}
  .fc .fc-toolbar-title{font-size:15px!important}
}

/* Phone/tablet notices keep the existing stacked layout and must not retain
   any desktop sidebar offset. */
@media (max-width:1050px){
  .jinino-shell .renewal-reminder-banner,
  .jinino-shell .rota-reminder-banner{margin-left:12px;margin-right:12px}
}


/* v42 — user feedback card and admin inbox */
.feedback-card{position:relative;overflow:hidden}.feedback-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,#2455f5,#7c3aed)}.feedback-card .eyebrow{color:#8b5cf6}.feedback-privacy-note{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--soft) 80%,transparent);color:var(--muted);font-size:12px}.feedback-recent{display:grid;gap:8px}.feedback-recent>strong{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.feedback-mini-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:start;padding:11px 0;border-top:1px solid var(--line)}.feedback-mini-row div{display:grid;min-width:0}.feedback-mini-row div>span{font-size:11px;color:var(--muted)}.feedback-mini-row div>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feedback-mini-row>p{grid-column:1/-1;margin:2px 0 0;padding:9px 10px;border-radius:9px;background:var(--soft);font-size:12px}.feedback-status-new{background:#dbeafe!important;color:#1d4ed8!important}.feedback-status-read{background:var(--soft)!important;color:var(--muted)!important}.feedback-status-replied{background:#dcfce7!important;color:#166534!important}.feedback-status-closed{background:#e5e7eb!important;color:#374151!important}.nav-feedback-inbox{color:#c4b5fd!important;font-weight:800!important}.feedback-filters{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}.feedback-filters a{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);text-decoration:none;color:var(--muted);font-weight:800}.feedback-filters a.active{background:var(--brand);border-color:var(--brand);color:white}.feedback-inbox-panel{padding:0;overflow:hidden}.feedback-inbox-list{display:grid}.feedback-inbox-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:14px;align-items:start;padding:17px 20px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text)}.feedback-inbox-row:last-child{border-bottom:0}.feedback-inbox-row:hover{background:var(--soft)}.feedback-inbox-row.is-new{background:color-mix(in srgb,#2455f5 5%,var(--panel))}.feedback-inbox-dot{width:8px;height:8px;border-radius:50%;margin-top:7px;background:var(--line)}.feedback-inbox-row.is-new .feedback-inbox-dot{background:#2455f5;box-shadow:0 0 0 4px color-mix(in srgb,#2455f5 15%,transparent)}.feedback-inbox-copy{min-width:0}.feedback-inbox-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--muted)}.feedback-inbox-meta strong{font-size:12px;color:var(--text)}.feedback-inbox-copy h3{font-size:15px;margin:4px 0}.feedback-inbox-copy p{margin:0;color:var(--muted);font-size:13px}.feedback-manage-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px}.feedback-message-meta{display:flex;gap:9px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px}.feedback-message-card h2{margin-top:18px}.feedback-sender{display:flex;align-items:baseline;gap:9px;padding:11px 0 16px;border-bottom:1px solid var(--line)}.feedback-sender small{margin-left:auto}.feedback-message-text{padding:20px 0;font-size:15px}.feedback-existing-reply{padding:15px;border-radius:12px;background:var(--soft);border-left:3px solid #7c3aed}.feedback-existing-reply p{margin:7px 0}.feedback-empty{padding:14px 4px;text-align:left}
@media(max-width:900px){.feedback-manage-grid{grid-template-columns:1fr}.feedback-inbox-row{grid-template-columns:8px minmax(0,1fr)}.feedback-inbox-row>.status{grid-column:2;justify-self:start}.feedback-sender{align-items:flex-start;flex-direction:column;gap:3px}.feedback-sender small{margin-left:0}}
