:root{
  --bg:#f3f1eb;--surface:#fffdf9;--surface-2:#f8f6f1;--white:#fff;--ink:#202b29;--muted:#747b77;
  --line:#e3ded4;--teal:#2f7d74;--teal-dark:#276b64;--teal-soft:#dcece7;--coral:#df7b60;--coral-soft:#f7e4de;
  --violet:#7568bd;--violet-soft:#eae6f7;--amber:#d39b34;--amber-soft:#f7ecd4;--red:#b94a3e;--green:#3c7b59;
  --blue:#4c78a8;--blue-soft:#e2ebf5;--shadow:0 18px 55px rgba(37,54,49,.09);--shadow-sm:0 8px 25px rgba(37,54,49,.07);
  --radius:20px;--sidebar:264px;
}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);scroll-behavior:smooth}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}.hidden{display:none!important}.muted{color:var(--muted);line-height:1.55}.loading-screen{position:fixed;inset:0;background:var(--bg);display:grid;place-content:center;justify-items:center;z-index:500}.loading-logo{width:66px;height:66px;border-radius:22px;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:31px;font-weight:950;box-shadow:0 20px 45px rgba(47,125,116,.22)}.loading-pulse{width:90px;height:3px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:23px;position:relative}.loading-pulse:after{content:"";position:absolute;inset:0;width:40%;background:var(--teal);border-radius:99px;animation:loading 1s infinite ease-in-out}.loading-screen p{font-size:12px;color:var(--muted);margin-top:13px}@keyframes loading{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
.auth-screen{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.15fr) minmax(420px,.85fr);background:var(--surface)}.auth-visual{position:relative;overflow:hidden;padding:46px 55px;background:linear-gradient(145deg,#172824 0%,#27443e 55%,#2f7d74 130%);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.auth-visual:before,.auth-visual:after{content:"";position:absolute;border-radius:50%;filter:blur(2px);opacity:.18}.auth-visual:before{width:520px;height:520px;border:1px solid #bfe0d5;right:-240px;top:-150px}.auth-visual:after{width:360px;height:360px;background:#6cb4a2;left:-180px;bottom:-170px}.auth-brand,.auth-mobile-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.auth-brand span,.auth-mobile-brand span{width:45px;height:45px;border-radius:15px;background:var(--teal);display:grid;place-items:center;color:#fff;font-size:22px;font-weight:950}.auth-brand strong,.auth-mobile-brand strong{font-size:22px}.auth-message{position:relative;z-index:1;max-width:700px}.auth-message h1{font-size:clamp(38px,5vw,68px);line-height:1.03;letter-spacing:-2.5px;margin:10px 0 20px}.auth-message>p:last-child{max-width:620px;color:#c7d9d3;font-size:16px;line-height:1.65}.eyebrow{font-size:9px;letter-spacing:1.45px;color:var(--teal);font-weight:900;margin:0 0 8px}.eyebrow.light{color:#9cd2c2}.auth-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;position:relative;z-index:1}.auth-proof div{padding:15px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.06);backdrop-filter:blur(8px)}.auth-proof strong,.auth-proof span{display:block}.auth-proof strong{font-size:13px}.auth-proof span{color:#bcd0ca;font-size:10px;line-height:1.4;margin-top:5px}.auth-panel{display:grid;place-items:center;padding:35px;background:var(--surface)}.auth-card{width:min(520px,100%);background:var(--white);border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}.auth-card h2{font-size:30px;line-height:1.1;margin:0}.auth-mobile-brand{display:none;margin-bottom:30px}.stack-form{display:grid;gap:14px;margin-top:26px}.stack-form label,.field{display:grid;gap:7px;color:var(--ink);font-size:10px;font-weight:850;letter-spacing:.35px}.stack-form input,.stack-form select,.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);padding:13px 14px;color:var(--ink);outline:0;transition:.18s}.stack-form input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,116,.12);background:#fff}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:1fr 1fr}.text-link{width:100%;border:0;background:transparent;color:var(--teal);font-size:11px;font-weight:850;margin-top:18px}.button{border:1px solid transparent;border-radius:13px;padding:12px 16px;font-weight:850;transition:.18s}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--teal);color:#fff;box-shadow:0 10px 24px rgba(47,125,116,.18)}.button.primary:hover{background:var(--teal-dark)}.button.secondary{background:var(--white);border-color:var(--line);color:var(--ink)}.button.danger{background:var(--coral-soft);color:var(--red);border-color:#efc7bd}.button.ghost{background:transparent;color:var(--muted)}.button.full{width:100%}.button.compact{padding:9px 12px;font-size:11px}.button.small{padding:8px 10px;font-size:10px}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--white);border-right:1px solid var(--line);padding:25px 18px 18px;display:flex;flex-direction:column;justify-content:space-between;z-index:40}.brand{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:12px;text-align:left;padding:0 10px 28px;color:var(--ink)}.brand>span{width:45px;height:45px;border-radius:15px;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:950}.brand strong,.brand small{display:block}.brand strong{font-size:21px}.brand small{font-size:10px;color:var(--muted);margin-top:4px}.nav-list{display:grid;gap:5px}.nav-item{width:100%;border:0;background:transparent;border-radius:13px;padding:12px 14px;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:11px;color:var(--muted);text-align:left;font-size:13px;font-weight:750}.nav-item i{font-style:normal;font-size:17px;text-align:center}.nav-item:hover,.nav-item.active{background:var(--teal-soft);color:var(--teal)}.nav-badge{min-width:20px;height:20px;border-radius:99px;background:var(--coral);color:#fff;display:grid;place-items:center;font-size:8px}.sidebar-bottom{display:grid;gap:7px}.emergency-link{width:100%;border:0;border-radius:16px;background:var(--coral-soft);padding:13px 14px;display:flex;align-items:center;gap:11px;text-align:left}.emergency-link i{width:34px;height:34px;border-radius:11px;background:var(--coral);color:#fff;display:grid;place-items:center;font-style:normal;font-weight:950}.emergency-link strong,.emergency-link small{display:block}.emergency-link strong{font-size:12px}.emergency-link small{font-size:9px;color:var(--muted);margin-top:3px}.settings-link{margin-top:2px}.workspace{min-width:0}.topbar{height:77px;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);padding:0 30px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:30}.topbar-left,.topbar-right,.profile-button{display:flex;align-items:center}.topbar-left{gap:12px}.topbar-kicker{font-size:8px;color:var(--teal);letter-spacing:1.25px;font-weight:900}.topbar h1{font-size:17px;margin:3px 0 0}.topbar-right{gap:10px}.icon-button{width:41px;height:41px;border:1px solid var(--line);border-radius:13px;background:var(--white);color:var(--ink);position:relative}.notification-count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:99px;background:var(--coral);color:#fff;display:grid;place-items:center;font-size:8px}.profile-button{border:0;background:transparent;gap:9px;text-align:left;padding:4px}.profile-button strong,.profile-button small{display:block}.profile-button strong{font-size:11px}.profile-button small{font-size:9px;color:var(--muted);margin-top:3px}.avatar{width:37px;height:37px;border-radius:13px;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900;flex:none}.notification-wrap{position:relative}.notification-panel{position:absolute;right:0;top:49px;width:min(390px,calc(100vw - 30px));background:var(--white);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:12px;max-height:520px;overflow:auto}.notification-head{display:flex;align-items:center;justify-content:space-between;padding:5px 5px 11px}.notification-head h3{font-size:14px;margin:0}.notification-item{width:100%;border:0;background:transparent;border-top:1px solid var(--line);display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:12px 5px;text-align:left}.notification-item.unread{background:#f9fbfa}.notification-dot{width:9px;height:9px;border-radius:50%;background:var(--teal);margin-top:4px}.notification-item.read .notification-dot{background:var(--line)}.notification-item strong{display:block;font-size:11px}.notification-item p{font-size:10px;line-height:1.45;color:var(--muted);margin:4px 0}.notification-item small{font-size:8px;color:#9aa09d}.main-content{max-width:1500px;margin:auto;padding:31px 34px 80px}.sidebar-backdrop{position:fixed;inset:0;background:rgba(25,36,33,.44);z-index:35}.mobile-only{display:none}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-header h2{font-size:32px;line-height:1.1;margin:0;letter-spacing:-.8px}.page-header p:last-child{margin:7px 0 0;color:var(--muted);font-size:12px}.page-actions{display:flex;gap:9px;flex-wrap:wrap}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.75fr);gap:22px}.dashboard-main,.dashboard-side{display:grid;gap:18px;align-content:start}.hero-card{background:linear-gradient(135deg,#1d302c,#284b43);color:#fff;border-radius:24px;padding:23px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;box-shadow:var(--shadow)}.recipient-avatar{width:61px;height:61px;border-radius:20px;background:var(--teal);display:grid;place-items:center;font-size:22px;font-weight:950}.hero-card .label{font-size:8px;letter-spacing:1.2px;color:#a8beb7;font-weight:900}.hero-card h3{font-size:22px;margin:4px 0}.hero-card p{font-size:10px;color:#bed0ca;margin:0}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#66c49f;margin-right:6px}.sos-button{width:50px;height:50px;border:0;border-radius:16px;background:var(--coral);color:#fff;font-size:11px;font-weight:950}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.stat-card{border:0;border-radius:18px;padding:16px;text-align:left;color:var(--ink);min-height:116px}.stat-card.teal{background:var(--teal-soft)}.stat-card.coral{background:var(--coral-soft)}.stat-card.violet{background:var(--violet-soft)}.stat-card.amber{background:var(--amber-soft)}.stat-card strong{display:block;font-size:28px;line-height:1}.stat-card span{display:block;font-size:11px;font-weight:850;margin-top:7px}.stat-card small{display:block;color:var(--muted);font-size:9px;margin-top:9px}.section-card{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:18px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:13px}.section-heading h3{font-size:17px;margin:0}.section-heading p{margin:0 0 6px}.link-button{border:0;background:transparent;color:var(--teal);font-size:10px;font-weight:850}.item-list{display:grid;gap:9px}.task-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:12px;background:var(--surface)}.task-check{width:24px;height:24px;border-radius:8px;border:1.5px solid #bdc6c2;background:transparent;color:#fff;font-size:12px;font-weight:900}.task-check.done{background:var(--teal);border-color:var(--teal)}.task-item.completed{opacity:.62}.task-item.completed .item-title{text-decoration:line-through}.item-title{font-size:12px;font-weight:850}.item-meta{font-size:9px;color:var(--muted);margin-top:4px}.member-chip{display:flex;align-items:center;gap:6px;font-size:9px;font-weight:750;color:var(--muted)}.member-dot{width:25px;height:25px;border-radius:9px;color:#fff;display:grid;place-items:center;font-size:8px;font-weight:900}.badge{display:inline-flex;align-items:center;border-radius:7px;padding:4px 6px;font-size:7px;font-weight:900;letter-spacing:.4px}.badge.urgent{background:var(--coral-soft);color:var(--red)}.badge.success{background:var(--teal-soft);color:var(--teal)}.badge.warning{background:var(--amber-soft);color:#886516}.badge.info{background:var(--blue-soft);color:var(--blue)}.presence-now{background:var(--teal-soft);border-radius:18px;padding:18px}.presence-now h3{font-size:16px;margin:0}.presence-person{display:flex;align-items:center;gap:11px;margin-top:14px}.presence-person .member-dot{width:43px;height:43px;border-radius:14px;font-size:11px}.presence-person strong,.presence-person span{display:block}.presence-person strong{font-size:13px}.presence-person span{font-size:9px;color:var(--muted);margin-top:4px}.empty-state{padding:28px;text-align:center;border:1px dashed #b7c1bc;border-radius:16px;color:var(--muted)}.empty-state i{display:block;font-style:normal;font-size:31px;color:var(--teal);margin-bottom:8px}.empty-state strong{display:block;color:var(--ink);font-size:13px}.empty-state p{font-size:10px;line-height:1.5;margin:6px 0}.load-list{display:grid;gap:11px}.load-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center}.load-copy strong,.load-copy small{display:block}.load-copy strong{font-size:10px}.load-copy small{font-size:8px;color:var(--muted);margin-top:2px}.progress{height:6px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin-top:7px}.progress span{display:block;height:100%;border-radius:99px}.load-value{font-size:10px;font-weight:850}
.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}.calendar-panel,.agenda-panel{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:17px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.calendar-title{font-size:18px;font-weight:900}.calendar-nav{display:flex;gap:6px}.calendar-nav button{width:34px;height:34px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.calendar-tabs,.segmented{display:flex;background:#e8e4dc;border-radius:12px;padding:4px;gap:3px}.calendar-tabs button,.segmented button{border:0;background:transparent;border-radius:9px;padding:8px 11px;font-size:9px;font-weight:850;color:var(--muted)}.calendar-tabs button.active,.segmented button.active{background:var(--white);color:var(--ink);box-shadow:var(--shadow-sm)}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:14px;overflow:hidden}.weekday{background:var(--surface-2);padding:9px 6px;text-align:center;font-size:8px;font-weight:900;color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day{min-height:112px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;background:var(--white);text-align:left;overflow:hidden}.calendar-day.outside{background:#faf9f6;color:#aaa}.calendar-day.selected{box-shadow:inset 0 0 0 2px var(--teal)}.calendar-day.today .day-number{background:var(--teal);color:#fff}.day-number{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;font-size:9px;font-weight:850}.day-events{display:grid;gap:3px;margin-top:5px}.calendar-chip{display:block;width:100%;border:0;border-radius:6px;padding:4px 5px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:7px;font-weight:800}.calendar-chip.event{background:var(--blue-soft);color:var(--blue)}.calendar-chip.presence{background:var(--teal-soft);color:var(--teal)}.calendar-chip.urgent{background:var(--coral-soft);color:var(--red)}.more-chip{font-size:7px;color:var(--muted);padding-left:4px}.agenda-panel{align-self:start;position:sticky;top:96px}.agenda-date{font-size:19px;font-weight:900;margin:2px 0 15px}.agenda-list{display:grid;gap:9px}.agenda-item{border-left:4px solid var(--blue);background:var(--surface-2);border-radius:0 13px 13px 0;padding:11px}.agenda-item.presence{border-color:var(--teal)}.agenda-item.task{border-color:var(--coral)}.agenda-item strong{display:block;font-size:11px}.agenda-item span{display:block;color:var(--muted);font-size:9px;line-height:1.45;margin-top:4px}.week-presence{overflow:auto}.presence-table{min-width:760px;display:grid;grid-template-columns:120px repeat(7,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}.presence-table>div{min-height:64px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.presence-head{background:var(--surface-2);font-size:8px;font-weight:900;color:var(--muted)}.presence-name{display:flex;align-items:center;gap:7px;font-size:9px;font-weight:850;background:var(--surface)}.presence-block{border-radius:8px;padding:6px;background:var(--teal-soft);color:var(--teal);font-size:8px;font-weight:800;margin-bottom:4px}
.filter-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.filter-controls{display:flex;gap:7px;flex-wrap:wrap}.filter-button{border:1px solid var(--line);background:var(--white);border-radius:11px;padding:8px 11px;color:var(--muted);font-size:9px;font-weight:850}.filter-button.active{background:var(--teal-soft);border-color:#c6ded6;color:var(--teal)}.search-input{min-width:230px;border:1px solid var(--line);border-radius:12px;background:var(--white);padding:10px 12px;font-size:10px;outline:0}.data-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.data-card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:16px;position:relative}.data-card:hover{box-shadow:var(--shadow-sm)}.data-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.data-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-size:16px}.data-icon.teal{background:var(--teal-soft);color:var(--teal)}.data-icon.violet{background:var(--violet-soft);color:var(--violet)}.data-icon.amber{background:var(--amber-soft);color:#8e6819}.data-icon.coral{background:var(--coral-soft);color:var(--red)}.data-card h3{font-size:13px;margin:13px 0 4px}.data-card p{font-size:10px;line-height:1.5;color:var(--muted);margin:7px 0}.data-card footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:11px;margin-top:12px}.data-card footer small{font-size:8px;color:var(--muted)}.menu-button{border:0;background:transparent;color:var(--muted);font-size:18px}.upload-zone{border:1.5px dashed #afbeb8;background:rgba(255,255,255,.56);border-radius:20px;padding:23px;display:flex;align-items:center;gap:17px;margin-bottom:20px}.upload-zone i{width:55px;height:55px;border-radius:18px;background:var(--teal-soft);color:var(--teal);display:grid;place-items:center;font-style:normal;font-size:21px}.upload-zone div{flex:1}.upload-zone h3{font-size:15px;margin:0}.upload-zone p{font-size:10px;color:var(--muted);line-height:1.5;margin:5px 0 0}.journal-layout{display:grid;grid-template-columns:minmax(0,1.3fr) 320px;gap:18px}.composer{background:var(--white);border:1px solid var(--line);border-radius:19px;padding:15px}.composer textarea{width:100%;min-height:100px;resize:vertical;border:0;background:transparent;outline:0;color:var(--ink);line-height:1.55}.composer-footer{display:flex;align-items:center;justify-content:space-between;gap:9px;border-top:1px solid var(--line);padding-top:11px}.tag-input{border:0;background:var(--surface-2);border-radius:10px;padding:9px;font-size:9px;min-width:200px}.timeline{display:grid;margin-top:20px}.timeline-item{display:grid;grid-template-columns:22px minmax(0,1fr);gap:11px}.timeline-rail{display:flex;flex-direction:column;align-items:center}.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--teal);margin-top:4px}.timeline-line{width:2px;background:var(--line);flex:1;margin:4px 0}.timeline-copy{padding-bottom:24px}.timeline-head{display:flex;justify-content:space-between;gap:10px}.timeline-head strong{font-size:11px}.timeline-head small{font-size:8px;color:var(--muted)}.timeline-copy p{font-size:11px;line-height:1.55;margin:7px 0}.tags{display:flex;gap:5px;flex-wrap:wrap}.tag{background:var(--teal-soft);color:var(--teal);font-size:7px;font-weight:850;padding:4px 6px;border-radius:6px}.summary-card{background:var(--ink);color:#fff;border-radius:20px;padding:18px}.summary-card h3{font-size:16px;margin:0}.summary-card p{font-size:10px;color:#bdcbc7;line-height:1.55}.summary-list{display:grid;gap:8px;margin-top:13px}.summary-row{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.1);padding-top:9px;font-size:10px}.summary-row span{color:#afc2bc}.medication-card .stock{font-size:25px;font-weight:900}.renewal-warning{background:var(--amber-soft);border-radius:10px;padding:8px;color:#795b1d;font-size:8px;font-weight:750}.money-value{font-size:21px;font-weight:900}.expense-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-bottom:17px}.summary-metric{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:15px}.summary-metric strong{display:block;font-size:22px}.summary-metric span{font-size:9px;color:var(--muted);margin-top:5px;display:block}.family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.member-card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:16px}.member-card-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center}.member-card strong,.member-card small{display:block}.member-card strong{font-size:12px}.member-card small{font-size:9px;color:var(--muted);margin-top:3px}.role-pill{background:var(--surface-2);padding:5px 7px;border-radius:7px;font-size:7px;font-weight:900;text-transform:uppercase}.insight-card{background:var(--coral-soft);border-radius:20px;padding:20px;margin-bottom:18px}.insight-card h3{font-size:19px;line-height:1.3;margin:8px 0}.insight-card p{font-size:10px;color:var(--muted)}.invite-box{border:1px dashed #aebbb6;border-radius:18px;padding:17px;display:flex;align-items:center;justify-content:space-between;gap:15px}.invite-box h3{font-size:13px;margin:0}.invite-box p{font-size:9px;color:var(--muted);margin:4px 0 0}.emergency-grid{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px}.identity-card{background:var(--ink);color:#fff;border-radius:23px;padding:25px;text-align:center;align-self:start;position:sticky;top:96px}.identity-avatar{width:78px;height:78px;border-radius:25px;background:var(--teal);display:grid;place-items:center;margin:auto;font-size:24px;font-weight:950}.identity-card h3{font-size:22px;margin:14px 0 5px}.identity-card p{font-size:10px;color:#bacac5}.verified-pill{display:inline-flex;background:#314944;color:#d6e5e0;padding:7px 10px;border-radius:99px;font-size:8px;font-weight:850;margin-top:10px}.emergency-stack{display:grid;gap:12px}.emergency-card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:17px}.emergency-card.allergy{background:var(--coral-soft);border:0}.emergency-card h3{font-size:14px;margin:8px 0}.emergency-label{font-size:8px;letter-spacing:1.1px;color:var(--muted);font-weight:900}.contact-row,.treatment-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--line)}.contact-row:first-of-type,.treatment-row:first-of-type{margin-top:8px}.contact-icon{width:37px;height:37px;border-radius:12px;background:var(--teal-soft);color:var(--teal);display:grid;place-items:center}.contact-row strong,.contact-row small,.treatment-row strong,.treatment-row small{display:block}.contact-row strong,.treatment-row strong{font-size:11px}.contact-row small,.treatment-row small{font-size:9px;color:var(--muted);margin-top:3px}.warning-box{background:var(--amber-soft);border-radius:14px;padding:13px;color:#6e5727;font-size:9px;line-height:1.55}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:18px}.settings-card h3{font-size:14px;margin:0}.settings-card>p{font-size:9px;color:var(--muted);line-height:1.5}.security-list{display:grid;gap:8px;margin-top:13px}.security-row{display:flex;align-items:center;justify-content:space-between;background:var(--surface-2);border-radius:11px;padding:10px;font-size:9px}.security-ok{color:var(--green);font-weight:900}.audit-table{width:100%;border-collapse:collapse;font-size:9px}.audit-table th,.audit-table td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.audit-table th{color:var(--muted);font-size:8px;letter-spacing:.5px}.table-wrap{overflow:auto}.role-note{font-size:8px;color:var(--muted)}
.modal-shell{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:rgba(25,36,33,.5);backdrop-filter:blur(5px)}.modal{position:relative;width:min(610px,100%);max-height:92vh;overflow:auto;background:var(--white);border-radius:23px;padding:21px;box-shadow:0 35px 110px rgba(23,35,31,.28);animation:modalIn .18s ease}.modal.wide{width:min(820px,100%)}@keyframes modalIn{from{opacity:.45;transform:translateY(12px)}to{opacity:1;transform:none}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.modal-header h2{font-size:22px;margin:0}.close-button{width:36px;height:36px;border:0;border-radius:12px;background:var(--surface-2);font-size:20px}.modal-form{display:grid;gap:13px}.field textarea{min-height:90px;resize:vertical}.check-field{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:7px}.suggestions{display:grid;gap:8px}.suggestion-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;background:var(--surface-2);border-radius:12px;padding:11px}.suggestion-row input{margin-top:2px}.suggestion-row strong{font-size:10px}.suggestion-row small{display:block;color:var(--muted);font-size:8px;margin-top:3px}.toast-root{position:fixed;right:20px;bottom:20px;z-index:200;display:grid;gap:8px}.toast{min-width:260px;max-width:390px;background:var(--ink);color:#fff;border-radius:13px;padding:12px 14px;box-shadow:var(--shadow);font-size:10px;font-weight:750;animation:toastIn .18s ease}.toast.error{background:#7f332b}.toast.success{background:#245e48}@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1180px){.dashboard-grid{grid-template-columns:1fr}.dashboard-side{grid-template-columns:1fr 1fr}.calendar-layout{grid-template-columns:1fr}.agenda-panel{position:static}.data-grid{grid-template-columns:repeat(2,1fr)}.journal-layout{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}}
@media(max-width:880px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-290px;transition:.22s}.sidebar.open{left:0}.mobile-only{display:block}.main-content{padding:24px 17px 90px}.topbar{padding:0 16px}.profile-button>span:last-child{display:none}.dashboard-side{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.calendar-day{min-height:90px}.data-grid,.family-grid{grid-template-columns:1fr}.emergency-grid{grid-template-columns:1fr}.identity-card{position:static}.auth-screen{grid-template-columns:1fr}.auth-visual{display:none}.auth-panel{min-height:100vh}.auth-mobile-brand{display:flex}.expense-summary{grid-template-columns:1fr 1fr}}
@media(max-width:580px){.topbar-right>.button{display:none}.topbar h1{font-size:14px}.page-header{display:block}.page-actions{margin-top:14px}.page-header h2{font-size:27px}.stats-grid{grid-template-columns:1fr 1fr}.hero-card{grid-template-columns:auto minmax(0,1fr)}.hero-card .sos-button{grid-column:1/-1;width:100%;height:39px}.calendar-panel{padding:10px}.calendar-day{min-height:72px;padding:4px}.weekday{padding:7px 2px}.day-number{width:21px;height:21px;font-size:8px}.calendar-chip{font-size:6px;padding:3px}.form-grid.two{grid-template-columns:1fr}.auth-panel{padding:18px}.auth-card{padding:23px}.upload-zone{align-items:flex-start;flex-wrap:wrap}.upload-zone .button{width:100%}.task-item{grid-template-columns:auto minmax(0,1fr)}.task-item>.member-chip{grid-column:2}.expense-summary{grid-template-columns:1fr}.composer-footer{align-items:stretch;flex-direction:column}.tag-input{width:100%}.modal-actions{flex-direction:column-reverse}.modal-actions .button{width:100%}.toast-root{left:14px;right:14px}.toast{min-width:0}.profile-button{display:none}}


/* ==========================================================
   RELAIS CALENDAR PREMIUM V1.3 — planning RH inspiré,
   sans reprise de marque ni de composants propriétaires.
   ========================================================== */
.calendar-layout-premium{
  grid-template-columns:minmax(0,1fr) 370px;
  gap:22px;
  align-items:start;
}
.calendar-panel-premium{
  padding:0;
  overflow:hidden;
  border-radius:24px;
  border:1px solid #dde3e1;
  box-shadow:0 18px 55px rgba(32,52,47,.07);
  background:#fff;
}
.calendar-commandbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px 24px 16px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcfb 100%);
  border-bottom:1px solid #edf0ef;
}
.calendar-period{
  display:flex;
  align-items:center;
  gap:18px;
  min-width:0;
}
.calendar-title{
  font-size:22px;
  line-height:1.1;
  font-weight:920;
  letter-spacing:-.45px;
  color:#24312e;
}
.calendar-subtitle{
  color:#84908c;
  font-size:9px;
  font-weight:700;
  margin-top:5px;
}
.calendar-nav-premium{
  display:flex;
  gap:4px;
  padding:4px;
  border:1px solid #e1e7e4;
  background:#f7f9f8;
  border-radius:13px;
}
.calendar-nav-premium button{
  width:34px;
  height:34px;
  border:0;
  background:transparent;
  border-radius:9px;
  color:#50605b;
  font-size:18px;
  font-weight:800;
  transition:.18s ease;
}
.calendar-nav-premium button:hover{
  background:#fff;
  color:var(--teal);
  box-shadow:0 3px 10px rgba(27,47,41,.08);
}
.calendar-nav-premium .calendar-today-button{
  width:auto;
  padding:0 12px;
  font-size:9px;
  letter-spacing:.2px;
}
.calendar-tabs-premium{
  flex:none;
  background:#f1f3f2;
  border:1px solid #e6e9e8;
  padding:4px;
  border-radius:12px;
}
.calendar-tabs-premium button{
  display:flex;
  align-items:center;
  gap:6px;
  padding:8px 13px;
  font-size:9px;
}
.calendar-tabs-premium button span{
  font-size:12px;
}
.calendar-overview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:15px 24px;
  background:#fbfcfb;
  border-bottom:1px solid #edf0ef;
}
.calendar-kpi{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:11px 13px;
  border:1px solid #e6ebe9;
  border-radius:14px;
  background:#fff;
}
.calendar-kpi-icon{
  width:31px;
  height:31px;
  border-radius:10px;
  display:grid;
  place-items:center;
  font-size:11px;
  font-weight:900;
}
.kpi-presence .calendar-kpi-icon{background:#ddf0e9;color:#2f7d74}
.kpi-event .calendar-kpi-icon{background:#e7edfb;color:#526fb8}
.kpi-coverage .calendar-kpi-icon{background:#f1eafb;color:#795bb6}
.calendar-kpi strong{
  display:block;
  color:#26332f;
  font-size:16px;
  line-height:1;
}
.calendar-kpi span:not(.calendar-kpi-icon){
  display:block;
  color:#7f8a86;
  font-size:8px;
  font-weight:750;
  margin-top:4px;
}
.calendar-coverage-bar{
  grid-column:1/-1;
  height:4px;
  border-radius:99px;
  overflow:hidden;
  background:#ece9f4;
  margin-top:-3px;
}
.calendar-coverage-bar i{
  display:block;
  height:100%;
  border-radius:99px;
  background:linear-gradient(90deg,#7d64c4,#9a80dc);
}
.calendar-filterbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 24px;
  border-bottom:1px solid #edf0ef;
}
.calendar-filters{
  display:flex;
  align-items:center;
  gap:5px;
}
.calendar-filters button{
  display:flex;
  align-items:center;
  gap:6px;
  border:1px solid transparent;
  border-radius:99px;
  padding:7px 10px;
  background:transparent;
  color:#76817d;
  font-size:8px;
  font-weight:850;
}
.calendar-filters button:hover{background:#f5f7f6}
.calendar-filters button.active{
  background:#fff;
  color:#26332f;
  border-color:#dfe5e2;
  box-shadow:0 4px 12px rgba(29,47,42,.07);
}
.filter-dot{
  width:7px;
  height:7px;
  border-radius:50%;
}
.filter-dot.all{background:linear-gradient(135deg,#2f7d74 50%,#657cc4 50%)}
.filter-dot.presence{background:#2f7d74}
.filter-dot.event{background:#657cc4}
.calendar-legend{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  color:#89938f;
  font-size:7px;
  font-weight:750;
}
.calendar-legend span{display:flex;align-items:center;gap:5px}
.legend-swatch{
  width:8px;
  height:8px;
  border-radius:3px;
}
.legend-swatch.appointment{background:#6882c8}
.legend-swatch.visit{background:#a675c4}
.legend-swatch.transport{background:#dc9c4a}
.month-grid-wrap{
  overflow:auto;
  background:#fff;
}
.month-grid-premium{
  min-width:810px;
  border:0;
  border-radius:0;
  grid-template-columns:repeat(7,minmax(0,1fr));
}
.month-grid-premium .weekday{
  position:sticky;
  top:0;
  z-index:2;
  padding:12px 10px;
  text-align:left;
  background:#f8faf9;
  color:#65706c;
  border-color:#e8ecea;
  font-size:8px;
  letter-spacing:.25px;
}
.month-grid-premium .weekday span{display:none}
.month-grid-premium .weekday.weekend{background:#faf9fb;color:#8b8790}
.calendar-day-premium{
  position:relative;
  min-height:132px;
  padding:9px;
  border-color:#e9edeb;
  background:#fff;
  transition:background .15s ease,box-shadow .15s ease;
}
.calendar-day-premium:hover{
  z-index:1;
  background:#fbfdfc;
  box-shadow:inset 0 0 0 1px #b9d6ce;
}
.calendar-day-premium.weekend{background:#fcfbfd}
.calendar-day-premium.outside{background:#fafbfa;opacity:.58}
.calendar-day-premium.selected{
  z-index:1;
  box-shadow:inset 0 0 0 2px #4b988e;
  background:#fbfefd;
}
.calendar-day-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.calendar-day-premium .day-number{
  width:26px;
  height:26px;
  border-radius:9px;
  color:#52605c;
  font-size:9px;
}
.calendar-day-premium.today .day-number{
  background:#253d38;
  color:#fff;
  box-shadow:0 5px 11px rgba(34,60,53,.18);
}
.day-count{
  display:grid;
  place-items:center;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:99px;
  background:#f0f3f2;
  color:#7d8984;
  font-size:7px;
  font-weight:900;
}
.calendar-day-premium .day-events{
  gap:4px;
  margin-top:7px;
}
.calendar-chip{
  position:relative;
  display:grid;
  grid-template-columns:3px auto auto minmax(0,1fr);
  align-items:center;
  gap:5px;
  min-height:24px;
  padding:4px 6px 4px 4px;
  border-radius:7px;
  background:#f3f5f4;
  color:#43514c;
  box-shadow:0 1px 0 rgba(28,44,40,.04);
}
.calendar-chip-accent{
  width:3px;
  height:14px;
  border-radius:99px;
  background:currentColor;
}
.calendar-chip-time{
  font-size:7px;
  font-weight:900;
  color:inherit;
}
.calendar-chip-title{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:7px;
  font-weight:800;
}
.calendar-mini-avatar{
  width:16px;
  height:16px;
  border-radius:6px;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:5px;
  font-weight:900;
}
.calendar-chip.presence{background:#e5f2ee;color:#2f7d74}
.calendar-chip.appointment{background:#e9eefb;color:#536fba}
.calendar-chip.visit{background:#f0e8f6;color:#8a5eaa}
.calendar-chip.care{background:#e5f3f4;color:#2d8084}
.calendar-chip.transport{background:#fbefdc;color:#a66d20}
.calendar-chip.administrative{background:#f6e9e6;color:#a65c4d}
.calendar-chip.other{background:#eef0f2;color:#65717c}
.more-chip{
  padding:3px 5px;
  color:#74807c;
  font-size:7px;
  font-weight:800;
}
.agenda-panel-premium{
  top:92px;
  padding:20px;
  border-radius:24px;
  border-color:#dde3e1;
  box-shadow:0 18px 55px rgba(32,52,47,.06);
}
.agenda-panel-head{
  display:flex;
  align-items:center;
  gap:12px;
  padding-bottom:17px;
  border-bottom:1px solid #edf0ef;
}
.agenda-date-badge{
  width:54px;
  height:58px;
  border-radius:17px;
  display:grid;
  align-content:center;
  justify-items:center;
  background:#f1f3f2;
  color:#34433e;
}
.agenda-date-badge.today{
  background:#263f39;
  color:#fff;
}
.agenda-date-badge strong{
  font-size:20px;
  line-height:1;
}
.agenda-date-badge span{
  font-size:8px;
  text-transform:uppercase;
  font-weight:850;
  margin-top:4px;
}
.agenda-panel-premium .agenda-date{
  font-size:17px;
  margin:0;
}
.agenda-date-sub{
  display:block;
  margin-top:4px;
  color:#87918d;
  font-size:9px;
}
.agenda-coverage{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:center;
  margin:15px 0 18px;
  padding:11px 12px;
  border-radius:13px;
}
.agenda-coverage.covered{background:#e5f2ee;color:#2f7d74}
.agenda-coverage.free{background:#f4f5f4;color:#6f7b77}
.agenda-coverage-icon{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:rgba(255,255,255,.72);
  font-weight:900;
}
.agenda-coverage strong,.agenda-coverage span{display:block}
.agenda-coverage strong{font-size:9px}
.agenda-coverage span{font-size:7px;margin-top:3px;opacity:.82}
.agenda-timeline{
  gap:0;
  max-height:510px;
  overflow:auto;
  padding-right:3px;
}
.agenda-entry{
  display:grid;
  grid-template-columns:42px 14px minmax(0,1fr);
  gap:7px;
  width:100%;
  padding:0;
  border:0;
  background:transparent;
  text-align:left;
}
.agenda-entry-time{
  padding-top:11px;
  color:#7e8985;
  font-size:8px;
  font-weight:850;
  text-align:right;
}
.agenda-entry-line{
  position:relative;
  display:flex;
  justify-content:center;
}
.agenda-entry-line::after{
  content:"";
  position:absolute;
  top:23px;
  bottom:-1px;
  width:1px;
  background:#e2e7e5;
}
.agenda-entry:last-child .agenda-entry-line::after{display:none}
.agenda-entry-line i{
  position:relative;
  z-index:1;
  width:9px;
  height:9px;
  margin-top:13px;
  border:2px solid #fff;
  border-radius:50%;
  background:#7180b7;
  box-shadow:0 0 0 2px #dde2f3;
}
.agenda-entry.presence .agenda-entry-line i{background:#2f7d74;box-shadow:0 0 0 2px #d8ebe5}
.agenda-entry.visit .agenda-entry-line i{background:#9764ae;box-shadow:0 0 0 2px #ece0f2}
.agenda-entry.transport .agenda-entry-line i{background:#d08a31;box-shadow:0 0 0 2px #fae9d0}
.agenda-entry.care .agenda-entry-line i{background:#398b8d;box-shadow:0 0 0 2px #d9eff0}
.agenda-entry.administrative .agenda-entry-line i{background:#b26051;box-shadow:0 0 0 2px #f1ded9}
.agenda-entry.task .agenda-entry-line i{background:#df7761;box-shadow:0 0 0 2px #f5dfda}
.agenda-entry-card{
  display:block;
  margin-bottom:9px;
  padding:10px 11px;
  border:1px solid #e6ebe9;
  border-radius:12px;
  background:#fff;
  transition:.16s ease;
}
.agenda-entry:hover .agenda-entry-card{
  border-color:#cbd8d3;
  box-shadow:0 6px 16px rgba(31,49,44,.06);
  transform:translateY(-1px);
}
.agenda-entry-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.agenda-entry-card strong{
  color:#2c3935;
  font-size:9px;
}
.agenda-entry-card small{
  flex:none;
  padding:4px 6px;
  border-radius:6px;
  background:#f2f4f3;
  color:#7b8682;
  font-size:6px;
  font-weight:900;
  text-transform:uppercase;
}
.agenda-entry-card>span:not(.agenda-entry-top){
  display:block;
  color:#7e8985;
  font-size:8px;
  margin-top:5px;
}
.agenda-entry-card em{
  display:block;
  color:#65716d;
  font-size:8px;
  font-style:normal;
  line-height:1.4;
  margin-top:6px;
}
.agenda-empty{
  padding:32px 13px;
  text-align:center;
  color:#7d8985;
}
.agenda-empty>span{
  display:grid;
  place-items:center;
  width:43px;
  height:43px;
  margin:0 auto 10px;
  border-radius:14px;
  background:#f2f5f3;
  color:#6f8c83;
  font-size:18px;
}
.agenda-empty strong{display:block;color:#33413d;font-size:11px}
.agenda-empty p{font-size:8px;line-height:1.5}
.agenda-quick-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding-top:14px;
  border-top:1px solid #edf0ef;
}
.calendar-action-presence span,
.agenda-quick-actions .secondary span{color:#2f7d74}
.planning-week{padding:20px 24px 24px}
.planning-week-intro{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}
.planning-week-intro h3{font-size:15px;margin:0}
.planning-week-intro p:not(.eyebrow){font-size:9px;color:#7e8985;margin:5px 0 0}
.planning-week-members{
  display:flex;
  align-items:center;
  padding-left:8px;
}
.planning-week-members .member-dot{margin-left:-7px;border:2px solid #fff}
.planning-week-members>span{
  color:#7c8783;
  font-size:8px;
  font-weight:800;
  margin-left:8px;
}
.calendar-member-dot{
  width:31px;
  height:31px;
  border-radius:10px;
  font-size:8px;
}
.presence-table-premium{
  min-width:850px;
  grid-template-columns:170px repeat(7,minmax(95px,1fr));
  border-color:#e5eae8;
  border-radius:15px;
  overflow:hidden;
}
.presence-table-premium>div{
  min-height:78px;
  padding:9px;
  border-color:#e8ecea;
}
.presence-table-premium .presence-head{
  min-height:58px;
  display:grid;
  place-items:center;
  align-content:center;
  background:#f7f9f8;
  text-align:center;
}
.presence-table-premium .presence-head span{
  color:#7b8682;
  font-size:7px;
  font-weight:850;
  text-transform:capitalize;
}
.presence-table-premium .presence-head strong{
  color:#35433f;
  font-size:14px;
  margin:2px 0;
}
.presence-table-premium .presence-head small{
  color:#9aa29f;
  font-size:7px;
}
.presence-table-premium .presence-head.today{background:#eaf4f1}
.presence-head-member{
  justify-items:start!important;
  padding-left:14px!important;
}
.presence-name-premium{
  background:#fbfcfb;
  gap:9px;
}
.presence-name-premium>span:last-child strong,
.presence-name-premium>span:last-child small{display:block}
.presence-name-premium>span:last-child strong{font-size:9px;color:#34413d}
.presence-name-premium>span:last-child small{font-size:7px;color:#89938f;margin-top:3px}
.presence-cell{
  position:relative;
  background:#fff;
}
.presence-cell.today{background:#fbfefd}
.presence-block-premium{
  width:100%;
  border:0;
  border-left:3px solid var(--member-color);
  border-radius:8px;
  padding:7px 7px 7px 8px;
  background:color-mix(in srgb,var(--member-color) 11%,white);
  color:#34423e;
  text-align:left;
  margin-bottom:5px;
}
.presence-block-premium span{display:block;font-size:8px;font-weight:900}
.presence-block-premium small{
  display:block;
  margin-top:4px;
  overflow:hidden;
  color:#75807c;
  font-size:7px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.presence-add-cell{
  width:28px;
  height:28px;
  border:1px dashed #cfd7d4;
  border-radius:9px;
  background:transparent;
  color:#97a19d;
  opacity:0;
  transition:.15s;
}
.presence-cell:hover .presence-add-cell{opacity:1}
@media(max-width:1180px){
  .calendar-layout-premium{grid-template-columns:1fr}
  .agenda-panel-premium{position:static}
}
@media(max-width:880px){
  .calendar-commandbar{align-items:flex-start;flex-direction:column}
  .calendar-tabs-premium{align-self:stretch}
  .calendar-tabs-premium button{flex:1;justify-content:center}
  .calendar-overview{grid-template-columns:1fr 1fr}
  .calendar-overview .kpi-coverage{grid-column:1/-1}
  .calendar-filterbar{align-items:flex-start;flex-direction:column}
  .calendar-legend{display:none}
}
@media(max-width:580px){
  .calendar-commandbar{padding:16px}
  .calendar-period{align-items:flex-start;flex-direction:column-reverse;gap:10px}
  .calendar-title{font-size:19px}
  .calendar-overview{padding:12px 16px;grid-template-columns:1fr}
  .calendar-overview .kpi-coverage{grid-column:auto}
  .calendar-filterbar{padding:10px 16px}
  .calendar-filters{width:100%;overflow:auto}
  .calendar-filters button{flex:none}
  .month-grid-premium{min-width:700px}
  .month-grid-premium .weekday{padding:9px 7px}
  .calendar-day-premium{min-height:112px}
  .agenda-quick-actions{grid-template-columns:1fr}
  .planning-week{padding:16px}
  .planning-week-intro{align-items:flex-start;flex-direction:column}
}
