:root{
  --md-primary:#006B5E;--md-on-primary:#FFF;--md-primary-ctr:#6CF8E2;--md-on-primary-ctr:#00201A;
  --md-secondary:#4B635D;--md-on-secondary:#FFF;--md-secondary-ctr:#CDE8DF;--md-on-secondary-ctr:#07201B;
  --md-tertiary:#406278;--md-tertiary-ctr:#C4E7FF;--md-on-tertiary-ctr:#001E2F;
  --md-error:#BA1A1A;--md-on-error:#FFF;--md-error-ctr:#FFDAD6;
  --md-surface:#F6FBF8;--md-surface-ctr-low:#F0F5F2;--md-surface-ctr:#EAF0EC;
  --md-surface-ctr-high:#E4EAE6;--md-surface-ctr-highest:#DEE4E1;
  --md-on-surface:#181D1B;--md-on-surface-var:#3F4946;
  --md-outline:#6F7976;--md-outline-var:#BFC9C5;
  --md-inverse-surface:#2D3230;--md-inverse-on-surface:#EDF1EE;
  --elev1:0 1px 3px 1px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.1);
  --elev2:0 2px 6px 2px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.1);
  --elev3:0 4px 8px 3px rgba(0,0,0,.07),0 1px 3px rgba(0,0,0,.1);
  --r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:28px;--r-full:9999px;
  --s-prospect:#C4E7FF;--s-prospect-t:#001E2F;
  --s-applied:#E8DEF8;--s-applied-t:#4F378B;
  --s-interview:#FFE08D;--s-interview-t:#534600;
  --s-offer:#C8F9D4;--s-offer-t:#00391E;
  --s-rejected:#FFDAD6;--s-rejected-t:#8C1D18;
  --nav-w:272px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--md-surface);color:var(--md-on-surface);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,textarea,select{font-family:inherit;color:inherit}
a{color:inherit;text-decoration:none}

/* ═══ LOGIN PAGE ═══ */
.login-page{
  min-height:100vh;display:grid;place-items:center;padding:20px;
  background:
    radial-gradient(circle at 10% 10%, #c4e7ff 0%, transparent 38%),
    radial-gradient(circle at 90% 15%, #6cf8e2 0%, transparent 30%),
    linear-gradient(160deg, #f6fbf8 0%, #eaf5f1 100%);
}
.login-card{
  width:min(100%,460px);background:#fff;border-radius:28px;padding:28px 24px;
  box-shadow:0 22px 55px rgba(0,0,0,.12),0 6px 20px rgba(0,0,0,.08);
  border:1px solid var(--md-outline-var);
}
.login-mark{
  width:56px;height:56px;border-radius:16px;display:grid;place-items:center;
  background:var(--md-primary-ctr);color:var(--md-on-primary-ctr);margin-bottom:14px;
}
.login-mark .material-symbols-rounded{font-size:30px}
.login-card h1{font-size:30px;line-height:1.1;letter-spacing:-.5px}
.login-sub{font-size:14px;color:var(--md-on-surface-var);margin:8px 0 18px}
.login-actions{display:flex;justify-content:center;margin-top:20px}
.login-actions .btn-filled{min-width:240px;justify-content:center}
.login-note{font-size:12px;color:var(--md-on-surface-var);margin-top:10px}

.app-root{display:none}

.loading-overlay{
  position:fixed;inset:0;z-index:1200;
  background:rgba(24,29,27,.28);
  backdrop-filter:blur(2px);
  display:grid;place-items:center;
  opacity:0;pointer-events:none;
  transition:opacity .22s ease;
}
.loading-overlay.show{opacity:1;pointer-events:auto}
.loading-box{
  min-width:252px;
  background:#fff;
  border:1px solid var(--md-outline-var);
  border-radius:16px;
  box-shadow:0 12px 34px rgba(0,0,0,.18);
  padding:20px 22px;
  display:flex;align-items:center;gap:12px;
}
.loading-spinner{
  width:24px;height:24px;border-radius:50%;
  border:3px solid var(--md-outline-var);
  border-top-color:var(--md-primary);
  animation:spin .8s linear infinite;
}
#loadingText{font-size:15px;color:var(--md-on-surface-var)}
@keyframes spin{to{transform:rotate(360deg)}}

/* Icon class — proper Material Symbols */
.material-symbols-rounded{
  font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
  font-size:24px;
  vertical-align:middle;
  line-height:1;
  display:inline-block;
}
.ico-f{font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24}

/* ═══ SIDE NAV ═══ */
.side-nav{
  position:fixed;top:0;left:0;bottom:0;width:var(--nav-w);
  background:var(--md-surface-ctr-low);z-index:100;
  display:flex;flex-direction:column;
  transition:transform .3s cubic-bezier(.2,0,0,1);
  overflow-y:auto;border-right:1px solid var(--md-outline-var);
}
.nav-header{padding:20px 16px 8px;display:flex;align-items:center;gap:12px}
.nav-logo{width:42px;height:42px;background:var(--md-primary);border-radius:var(--r-md);display:grid;place-items:center;color:var(--md-on-primary)}
.nav-logo .material-symbols-rounded{font-size:24px}
.nav-brand{font-size:20px;font-weight:600;letter-spacing:-.3px}
.nav-brand small{display:block;font-size:11px;font-weight:400;color:var(--md-on-surface-var);letter-spacing:0}
.nav-sep{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--md-on-surface-var);padding:20px 16px 8px}
.nav-item{
  display:flex;align-items:center;gap:12px;padding:0 12px;height:48px;margin:2px 12px;
  border-radius:var(--r-full);transition:background .15s;font-size:14px;font-weight:500;color:var(--md-on-surface-var);
}
.nav-item .material-symbols-rounded{font-size:22px}
.nav-item:hover{background:rgba(0,107,94,.08)}
.nav-item.active{background:var(--md-secondary-ctr);color:var(--md-on-secondary-ctr);font-weight:600}
.nav-item.active .material-symbols-rounded{font-variation-settings:'FILL' 1,'wght' 500,'GRAD' 0,'opsz' 24}
.nav-item .badge{margin-left:auto;background:var(--md-primary);color:var(--md-on-primary);font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--r-full);min-width:22px;text-align:center}

/* ═══ MAIN ═══ */
.main{flex:1;margin-left:var(--nav-w);min-height:100vh;transition:margin .3s}

.topbar{
  position:sticky;top:0;z-index:50;height:64px;padding:0 24px;
  display:flex;align-items:center;gap:12px;
  background:var(--md-surface);transition:box-shadow .2s,background .2s;
}
.topbar.scrolled{background:var(--md-surface-ctr);box-shadow:var(--elev1)}
.topbar .menu-btn{display:none;width:48px;height:48px;border-radius:var(--r-full);place-items:center}
.topbar .menu-btn:hover{background:rgba(0,0,0,.06)}
.topbar .pg-title{font-size:22px;font-weight:600;letter-spacing:-.3px;flex:1}
.icon-btn{width:44px;height:44px;border-radius:var(--r-full);display:grid;place-items:center;transition:background .15s;color:var(--md-on-surface-var)}
.icon-btn:hover{background:rgba(0,0,0,.06)}
.icon-btn .material-symbols-rounded{font-size:24px}

.nav-scrim{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:99;opacity:0;pointer-events:none;transition:opacity .25s}
.nav-scrim.open{opacity:1;pointer-events:auto}

/* ═══ PAGES ═══ */
.page{display:none;padding:8px 24px 120px;animation:pgIn .3s ease}
.page.active{display:block}
@keyframes pgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ═══ BUTTONS ═══ */
.btn-filled{
  display:inline-flex;align-items:center;gap:8px;padding:0 24px;height:48px;
  border-radius:var(--r-full);background:var(--md-primary);color:var(--md-on-primary);
  font-size:14px;font-weight:600;box-shadow:var(--elev1);transition:box-shadow .15s,transform .15s;
}
.btn-filled .material-symbols-rounded{font-size:20px}
.btn-filled:hover{box-shadow:var(--elev2);transform:translateY(-1px)}
.btn-filled:active{transform:scale(.97)}
.btn-filled.err{background:var(--md-error);color:var(--md-on-error)}
.btn-tonal{
  display:inline-flex;align-items:center;gap:8px;padding:0 20px;height:44px;
  border-radius:var(--r-full);background:var(--md-secondary-ctr);color:var(--md-on-secondary-ctr);
  font-size:14px;font-weight:500;transition:filter .15s;
}
.btn-tonal .material-symbols-rounded{font-size:20px}
.btn-tonal:hover{filter:brightness(.96)}
.btn-text{padding:0 16px;height:44px;border-radius:var(--r-full);font-size:14px;font-weight:600;color:var(--md-primary);transition:background .15s}
.btn-text:hover{background:rgba(0,107,94,.08)}
.btn-text.err{color:var(--md-error)}
.btn-text.err:hover{background:rgba(186,26,26,.08)}

/* ═══ ONBOARDING ═══ */
.onboard-overlay{
  position:fixed;inset:0;z-index:500;
  background:linear-gradient(135deg,#E0F7F1 0%,#F6FBF8 40%,#C4E7FF 100%);
  display:grid;place-items:center;
  transition:opacity .4s,transform .4s;
}
.onboard-overlay.hide{opacity:0;pointer-events:none;transform:scale(1.04)}
.onboard-card{
  background:#FFF;border-radius:var(--r-xl);padding:40px 32px;
  max-width:500px;width:calc(100% - 32px);text-align:center;
  box-shadow:var(--elev3);
}
.onboard-card .ob-icon{
  width:80px;height:80px;border-radius:50%;
  background:var(--md-primary-ctr);color:var(--md-on-primary-ctr);
  display:grid;place-items:center;margin:0 auto 20px;
}
.onboard-card .ob-icon .material-symbols-rounded{font-size:40px}
.onboard-card h1{font-size:26px;font-weight:700;margin-bottom:8px}
.onboard-card p{font-size:15px;color:var(--md-on-surface-var);line-height:1.6;margin-bottom:8px}
.ob-steps{text-align:left;margin:20px 0;display:flex;flex-direction:column;gap:12px}
.ob-step{display:flex;align-items:flex-start;gap:12px;font-size:14px}
.ob-step .ob-num{width:28px;height:28px;border-radius:50%;flex-shrink:0;background:var(--md-primary);color:var(--md-on-primary);display:grid;place-items:center;font-size:13px;font-weight:700}
.ob-step strong{color:var(--md-primary)}

/* ═══ DASHBOARD ═══ */
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px}
.dash-card{background:var(--md-surface-ctr-low);border-radius:var(--r-lg);padding:20px;position:relative;overflow:hidden;cursor:pointer;transition:box-shadow .15s}
.dash-card:hover{box-shadow:var(--elev1)}
.dash-card::before{content:'';position:absolute;top:0;right:0;width:80px;height:80px;border-radius:50%;opacity:.12;transform:translate(20px,-20px)}
.dc-total::before{background:var(--md-primary)}.dc-applied::before{background:#7C5AC7}.dc-interview::before{background:#C79400}.dc-offer::before{background:#00873E}.dc-rejected::before{background:var(--md-error)}
.dash-card .dc-icon{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;margin-bottom:12px}
.dash-card .dc-icon .material-symbols-rounded{font-size:22px}
.dc-total .dc-icon{background:var(--md-primary-ctr);color:var(--md-on-primary-ctr)}
.dc-applied .dc-icon{background:var(--s-applied);color:var(--s-applied-t)}
.dc-interview .dc-icon{background:var(--s-interview);color:var(--s-interview-t)}
.dc-offer .dc-icon{background:var(--s-offer);color:var(--s-offer-t)}
.dc-rejected .dc-icon{background:var(--s-rejected);color:var(--s-rejected-t)}
.dash-card .dc-val{font-size:32px;font-weight:700;letter-spacing:-.5px;line-height:1}
.dash-card .dc-lbl{font-size:13px;color:var(--md-on-surface-var);margin-top:4px}
.section-head{font-size:16px;font-weight:600;margin:24px 0 12px;display:flex;align-items:center;gap:8px}
.section-head .material-symbols-rounded{font-size:20px}
.activity-list{display:flex;flex-direction:column;gap:4px}
.act-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--md-surface-ctr-low);border-radius:var(--r-md);font-size:14px}
.act-item .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.act-item .time{margin-left:auto;font-size:12px;color:var(--md-on-surface-var);white-space:nowrap}

.welcome-banner{
  background:linear-gradient(135deg,var(--md-primary-ctr),var(--md-tertiary-ctr));
  border-radius:var(--r-lg);padding:24px;margin-bottom:20px;
}
.welcome-banner h2{font-size:20px;font-weight:600;margin-bottom:4px}
.welcome-banner p{font-size:14px;color:var(--md-on-surface-var)}
.welcome-banner .wb-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}

/* ═══ DIRECTORY ═══ */
.dir-search-wrap{margin-bottom:12px}
.dir-search-wrap .search-field{width:100%}
.dir-filters{display:flex;gap:10px;margin-bottom:12px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:2px}
.dir-filters::-webkit-scrollbar{display:none}
.dir-filters .filter-select{flex-shrink:0}
.search-field{
  display:flex;align-items:center;gap:8px;
  background:var(--md-surface-ctr-high);border-radius:var(--r-full);padding:0 16px;height:52px;
  transition:background .15s,box-shadow .15s;
}
.search-field:focus-within{background:var(--md-surface-ctr-highest);box-shadow:var(--elev2)}
.search-field .material-symbols-rounded{font-size:22px;color:var(--md-on-surface-var);flex-shrink:0}
.search-field input{flex:1;border:none;background:transparent;font-size:15px;outline:none;min-width:0}
.search-field input::placeholder{color:var(--md-on-surface-var)}
.filter-select{
  height:52px;padding:0 40px 0 16px;border:1px solid var(--md-outline-var);
  border-radius:var(--r-full);background:var(--md-surface-ctr-low);
  font-size:14px;font-weight:500;outline:none;cursor:pointer;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236F7976' stroke-width='2' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;
}
.filter-select:focus{border-color:var(--md-primary)}
#dirCount{font-size:13px;color:var(--md-on-surface-var);margin-bottom:12px}

.est-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.est-card{
  background:var(--md-surface-ctr-low);border-radius:var(--r-lg);padding:20px;
  display:flex;flex-direction:column;gap:10px;
  transition:box-shadow .2s;animation:cardUp .35s ease both;animation-delay:calc(var(--i,0)*30ms);
}
@keyframes cardUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.est-card:hover{box-shadow:var(--elev1)}
.est-top{display:flex;gap:12px;align-items:flex-start}
.est-av{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;font-size:13px;font-weight:700;flex-shrink:0;letter-spacing:.3px}
.est-av.t-esat{background:#E8DEF8;color:#4F378B}.est-av.t-ea{background:#FFD8E4;color:#7D2756}
.est-av.t-entreprise{background:#D3E3FD;color:#1B4587}.est-av.t-public{background:#C2E7FF;color:#004A73}
.est-av.t-association{background:#F2E8CF;color:#6B5C00}.est-av.t-institution{background:#FFE0CC;color:#833D00}
.est-av.t-telesecretariat{background:#D4F5D0;color:#1B6D1B}.est-av.t-plateforme{background:#FFE0F0;color:#8C1D6F}
.est-av.t-agence{background:#FFE0CC;color:#833D00}
.est-info{flex:1;min-width:0}
.est-name{font-size:15px;font-weight:600;line-height:1.3}
.est-loc{font-size:13px;color:var(--md-on-surface-var);display:flex;align-items:center;gap:3px;margin-top:2px}
.est-loc .material-symbols-rounded{font-size:16px}
.est-missions{font-size:13px;line-height:1.5}
.est-meta{font-size:12px;color:var(--md-on-surface-var);line-height:1.4}

.est-contact{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;margin-top:2px}
.est-contact a,.est-contact span.ct-item{
  display:inline-flex;align-items:center;gap:4px;
  padding:4px 10px;border-radius:var(--r-full);
  background:var(--md-surface-ctr-high);color:var(--md-on-surface-var);
  transition:background .15s;word-break:break-all;
}
.est-contact a:hover{background:var(--md-secondary-ctr);color:var(--md-on-secondary-ctr)}
.est-contact .material-symbols-rounded{font-size:14px;flex-shrink:0}

.est-bottom{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:auto}
.est-tag{padding:2px 10px;border-radius:var(--r-full);font-size:11px;font-weight:600;letter-spacing:.2px}
.est-tag.tt{background:var(--md-surface-ctr-high);color:var(--md-on-surface-var)}
.est-tag.tw{background:#D4F5D0;color:#1B6D1B}
.est-tag.tw .material-symbols-rounded{font-size:14px;vertical-align:sub}
.add-cand-btn{
  margin-left:auto;display:inline-flex;align-items:center;gap:6px;
  padding:0 16px;height:36px;border-radius:var(--r-full);
  background:var(--md-primary);color:var(--md-on-primary);
  font-size:12px;font-weight:600;box-shadow:var(--elev1);transition:transform .15s,box-shadow .15s;
}
.add-cand-btn .material-symbols-rounded{font-size:18px}
.add-cand-btn:hover{transform:scale(1.03);box-shadow:var(--elev2)}
.add-cand-btn.done{background:var(--md-outline);opacity:.6;pointer-events:none}

/* ═══ APPLICATIONS ═══ */
.cand-toolbar{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap;align-items:center}
.status-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.s-pill{
  padding:6px 14px;border-radius:var(--r-full);font-size:13px;font-weight:500;
  border:1px solid var(--md-outline-var);transition:all .15s;color:var(--md-on-surface-var);
}
.s-pill:hover{background:rgba(0,0,0,.04)}
.s-pill.on{border-color:transparent}
.s-pill.on[data-s="all"]{background:var(--md-inverse-surface);color:var(--md-inverse-on-surface)}
.s-pill.on[data-s="prospect"]{background:var(--s-prospect);color:var(--s-prospect-t)}
.s-pill.on[data-s="applied"]{background:var(--s-applied);color:var(--s-applied-t)}
.s-pill.on[data-s="interview"]{background:var(--s-interview);color:var(--s-interview-t)}
.s-pill.on[data-s="offer"]{background:var(--s-offer);color:var(--s-offer-t)}
.s-pill.on[data-s="rejected"]{background:var(--s-rejected);color:var(--s-rejected-t)}

.cand-list{display:flex;flex-direction:column;gap:8px}
.cand-card{
  background:var(--md-surface-ctr-low);border-radius:var(--r-lg);
  padding:16px 20px;display:flex;gap:16px;align-items:center;
  transition:box-shadow .15s;flex-wrap:wrap;
}
.cand-card:hover{box-shadow:var(--elev1)}
.cand-card .cc-status-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.cand-card .cc-main{flex:1;min-width:160px}
.cand-card .cc-company{font-size:15px;font-weight:600;line-height:1.3}
.cand-card .cc-role{font-size:13px;color:var(--md-on-surface-var)}
.cand-card .cc-date{font-size:12px;color:var(--md-outline);font-family:'JetBrains Mono',monospace;margin-top:2px}
.cand-card .cc-badge{
  padding:4px 12px;border-radius:var(--r-full);font-size:12px;font-weight:600;white-space:nowrap;
}
.cc-badge.s-prospect{background:var(--s-prospect);color:var(--s-prospect-t)}
.cc-badge.s-applied{background:var(--s-applied);color:var(--s-applied-t)}
.cc-badge.s-interview{background:var(--s-interview);color:var(--s-interview-t)}
.cc-badge.s-offer{background:var(--s-offer);color:var(--s-offer-t)}
.cc-badge.s-rejected{background:var(--s-rejected);color:var(--s-rejected-t)}

.cand-card .cc-actions{display:flex;gap:2px}
.cc-actions .act-btn{
  width:40px;height:40px;border-radius:var(--r-full);
  display:grid;place-items:center;transition:background .15s;
}
.cc-actions .act-btn .material-symbols-rounded{font-size:20px}
.act-btn:hover{background:rgba(0,0,0,.06)}
.act-btn.del:hover{background:var(--md-error-ctr);color:var(--md-error)}
.cc-notes-preview{
  width:100%;font-size:12px;color:var(--md-on-surface-var);
  padding-top:8px;border-top:1px solid var(--md-outline-var);margin-top:4px;
  display:flex;align-items:center;gap:6px;
}
.cc-notes-preview .material-symbols-rounded{font-size:16px}

/* ═══ CALENDAR ═══ */
.cal-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.cal-header h2{font-size:20px;font-weight:600;flex:1;min-width:160px}
.cal-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:2px;
  background:var(--md-surface-ctr-low);border-radius:var(--r-lg);overflow:hidden;padding:4px;
}
.cal-dlbl{text-align:center;padding:10px 0;font-size:12px;font-weight:600;color:var(--md-on-surface-var);text-transform:uppercase}
.cal-cell{min-height:56px;padding:6px;border-radius:var(--r-sm);font-size:13px;cursor:default;transition:background .15s}
.cal-cell:hover{background:rgba(0,107,94,.04)}
.cal-cell.om{opacity:.3}
.cal-cell.today{background:var(--md-primary-ctr);font-weight:700}
.cal-cell .cn{font-weight:500}
.cal-cell .cd{display:flex;gap:3px;margin-top:4px;flex-wrap:wrap}
.cal-dot{width:7px;height:7px;border-radius:50%}
.cal-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--md-on-surface-var);margin-top:16px}
.cal-legend-item{display:flex;align-items:center;gap:5px}

/* ═══ NOTES ═══ */
.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.note-card{
  background:var(--md-surface-ctr-low);border-radius:var(--r-lg);padding:20px;
  display:flex;flex-direction:column;gap:10px;min-height:120px;transition:box-shadow .2s;
  cursor:pointer;
}
.note-card:hover{box-shadow:var(--elev1)}
.note-card .nt{font-size:15px;font-weight:600}
.note-card .nb{font-size:13px;color:var(--md-on-surface-var);flex:1;line-height:1.6;white-space:pre-wrap}
.note-card .nf{display:flex;align-items:center;justify-content:space-between;margin-top:auto;gap:8px}
.note-card .nd{font-size:11px;color:var(--md-outline)}
.note-card .note-actions{display:flex;gap:2px}
.note-card .note-act-btn{
  width:36px;height:36px;border-radius:var(--r-full);
  display:grid;place-items:center;transition:background .15s;
  color:var(--md-on-surface-var);
}
.note-card .note-act-btn .material-symbols-rounded{font-size:18px}
.note-card .note-act-btn:hover{background:rgba(0,0,0,.08)}
.note-card .note-act-btn.del:hover{background:var(--md-error-ctr);color:var(--md-error)}

/* ═══ EMPTY STATES ═══ */
.empty-state{text-align:center;padding:60px 24px}
.empty-state .material-symbols-rounded{font-size:56px;color:var(--md-outline)}
.empty-state h3{font-size:18px;font-weight:600;margin-top:16px}
.empty-state p{font-size:14px;color:var(--md-on-surface-var);margin-top:6px;max-width:360px;margin-left:auto;margin-right:auto}
.empty-state .btn-filled{margin-top:20px}

/* ═══ MODALS ═══ */
.modal-scrim{
  position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:300;
  display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .2s;padding:16px;
}
.modal-scrim.open{opacity:1;pointer-events:auto}
.modal{
  background:var(--md-surface-ctr-low);border-radius:var(--r-xl);width:100%;max-width:520px;
  max-height:85vh;overflow-y:auto;padding:24px;
  transform:scale(.95);transition:transform .25s cubic-bezier(.2,0,0,1);
}
.modal-scrim.open .modal{transform:scale(1)}
.modal h2{font-size:20px;font-weight:600;margin-bottom:20px}
.fg{margin-bottom:16px}
.fg label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--md-on-surface-var);margin-bottom:6px}
.md-input{width:100%;height:48px;padding:0 16px;border:1.5px solid var(--md-outline-var);border-radius:var(--r-sm);background:transparent;font-size:15px;outline:none;transition:border-color .15s}
.md-input:focus{border-color:var(--md-primary);border-width:2px;padding:0 15px}
.md-input[readonly]{background:var(--md-surface-ctr-high);color:var(--md-on-surface-var)}
.md-textarea{width:100%;min-height:100px;padding:12px 16px;border:1.5px solid var(--md-outline-var);border-radius:var(--r-sm);background:transparent;font-size:14px;outline:none;resize:vertical;transition:border-color .15s}
.md-textarea:focus{border-color:var(--md-primary);border-width:2px}
.md-select{width:100%;height:48px;padding:0 16px;border:1.5px solid var(--md-outline-var);border-radius:var(--r-sm);background:var(--md-surface-ctr-low);font-size:15px;outline:none;cursor:pointer}
.md-select:focus{border-color:var(--md-primary)}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:24px}

.confirm-dialog .modal{max-width:380px;text-align:center}
.confirm-dialog .cd-icon{width:56px;height:56px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;background:var(--md-error-ctr);color:var(--md-error)}
.confirm-dialog .cd-icon .material-symbols-rounded{font-size:28px}
.confirm-dialog .cd-text{font-size:15px;color:var(--md-on-surface-var);margin-bottom:4px}
.confirm-dialog .modal-actions{justify-content:center}

/* ═══ BOTTOM NAV ═══ */
.bottom-nav{
  display:none;position:fixed;bottom:0;left:0;right:0;height:80px;
  background:var(--md-surface-ctr);z-index:80;
  justify-content:space-around;align-items:center;
  border-top:1px solid var(--md-outline-var);
}
.bottom-nav button{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  font-size:11px;font-weight:500;color:var(--md-on-surface-var);padding:4px 0;min-width:56px;
}
.bottom-nav button .material-symbols-rounded{font-size:24px}
.bottom-nav button.active{color:var(--md-primary)}
.bottom-nav button.active .material-symbols-rounded{font-variation-settings:'FILL' 1,'wght' 500,'GRAD' 0,'opsz' 24}
.bnav-pill{width:56px;height:32px;border-radius:var(--r-full);display:grid;place-items:center;transition:background .15s}
.bottom-nav button.active .bnav-pill{background:var(--md-secondary-ctr)}

/* ═══ SNACKBAR ═══ */
.snackbar{
  position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--md-inverse-surface);color:var(--md-inverse-on-surface);
  padding:14px 24px;border-radius:var(--r-md);font-size:14px;
  box-shadow:var(--elev3);z-index:400;opacity:0;transition:opacity .2s,transform .2s;
  pointer-events:none;white-space:nowrap;max-width:calc(100vw - 32px);
}
.snackbar.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}

/* ═══ CONTACT MODAL ═══ */
.contact-modal-list{display:flex;flex-direction:column;gap:8px}
.contact-modal-item{
  display:flex;align-items:center;gap:14px;
  padding:14px 16px;border-radius:var(--r-md);
  background:var(--md-surface-ctr-high);
  transition:background .15s,box-shadow .15s;
  text-decoration:none;color:var(--md-on-surface);
}
.contact-modal-item:hover{background:var(--md-secondary-ctr);box-shadow:var(--elev1)}
.contact-modal-item .material-symbols-rounded{
  font-size:22px;color:var(--md-primary);
  width:40px;height:40px;border-radius:var(--r-full);
  background:var(--md-primary-ctr);display:grid;place-items:center;flex-shrink:0;
}
.cmi-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--md-on-surface-var)}
.cmi-value{font-size:14px;font-weight:500;margin-top:1px;word-break:break-all}
#contactModalAddBtn.done{background:var(--md-outline);opacity:.6;pointer-events:none}

/* ═══ NOTES FAB ═══ */
.notes-fab{
  display:none;
}

/* ═══ RESPONSIVE ═══ */
@media(max-width:960px){
  .side-nav{transform:translateX(-100%)}
  .side-nav.open{transform:translateX(0);box-shadow:var(--elev3)}
  .main{margin-left:0}
  .topbar .menu-btn{display:none}
  .bottom-nav{display:flex}
  .page{padding:8px 16px 100px}
  .est-grid{grid-template-columns:1fr}
  .dash-grid{grid-template-columns:repeat(2,1fr)}

  /* Calendrier plus grand sur tablette/mobile */
  .cal-cell{min-height:3.75em;padding:0.4em}
  .cal-dlbl{font-size:0.75em;padding:0.6em 0}

  /* Filtres annuaire : wrap sans scroll horizontal */
  .dir-filters{flex-wrap:wrap;overflow-x:visible;padding-bottom:0}
  .dir-filters .filter-select{
    flex:1;min-width:8em;
    height:2.75em;font-size:0.875em;
    padding:0 2.2em 0 0.875em;
  }

  /* Notes FAB */
  #notesToolbar{display:none}
  #page-notes{padding-bottom:9rem}
  .notes-fab{
    display:grid;
    place-items:center;
    position:fixed;
    bottom:calc(5rem + 1rem);
    left:50%;
    transform:translateX(-50%);
    width:3.5rem;
    height:3.5rem;
    border-radius:50%;
    background:var(--md-primary);
    color:var(--md-on-primary);
    box-shadow:var(--elev3);
    z-index:60;
    opacity:0;
    pointer-events:none;
    transition:opacity .2s, box-shadow .15s, transform .15s;
  }
  .notes-fab.visible{
    opacity:1;
    pointer-events:auto;
  }
  .notes-fab:active{transform:translateX(-50%) scale(.9)}
  .notes-fab .material-symbols-rounded{font-size:1.75rem}
}

@media(max-width:600px){
  .login-card{padding:24px 18px}
  .login-card h1{font-size:26px}
  .cand-card{flex-direction:column;align-items:stretch;gap:10px}
  .cand-card .cc-actions{justify-content:flex-end}
  .cand-card .cc-badge{align-self:flex-start}
  .dash-grid{grid-template-columns:1fr 1fr}
  .dash-card .dc-val{font-size:26px}
  .dash-card{padding:16px}
  .topbar .pg-title{font-size:18px}
  .onboard-card{padding:28px 20px}
  .onboard-card h1{font-size:22px}
  .est-contact a,.est-contact span.ct-item{font-size:11px;padding:3px 8px}
  .notes-grid{grid-template-columns:1fr}
  .est-card{padding:16px;gap:8px}
  .est-name{font-size:14px}
  .est-missions{font-size:12px}
  .est-meta{font-size:11px}
  .add-cand-btn{padding:0 0.75em;height:2.25em;font-size:0.6875em}
  .est-tag{font-size:0.625em;padding:2px 8px}
  .topbar{height:56px;padding:0 16px}
  .welcome-banner{padding:16px}
  .welcome-banner h2{font-size:17px}

  /* Calendrier encore plus grand sur petit mobile */
  .cal-cell{min-height:4.5em;padding:0.3em}
  .cal-cell .cn{font-size:0.875em}

  /* Filtres annuaire : bouton plus compact */
  .dir-filters .btn-filled{
    padding:0 0.875em;
    font-size:0.8125em;
    height:2.75em;
  }
  .dir-filters .btn-filled .material-symbols-rounded{font-size:1.125em}
}
