.portal-shell main{padding-top:20px}
.portal-profile,.portal-team-member,.portal-finance,.portal-team{min-width:0}
.portal-profile,.portal-team-member{display:grid;grid-template-columns:88px minmax(0,1fr);gap:18px;align-items:start}
.portal-avatar{width:88px;height:88px;border:1px solid #2A323A;border-radius:24px;background:linear-gradient(180deg,#151A1F,#0D1115);display:grid;place-items:center;overflow:hidden;color:#F4F6F8;font-size:22px;font-weight:950;letter-spacing:-.4px;box-shadow:0 16px 34px rgba(0,0,0,.22);position:relative}
.portal-avatar-image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center 24%;z-index:1}
.portal-avatar-fallback{position:absolute;inset:0;display:grid;place-items:center;z-index:0}
.portal-avatar-fallback[hidden]{display:none!important}
.portal-avatar-image:not([hidden]) + .portal-avatar-fallback{display:none!important}
.portal-profile-head{min-width:0;align-self:center}
.portal-profile-head h2{margin:5px 0 6px;font-size:25px;line-height:1.02;letter-spacing:-.9px;overflow-wrap:anywhere}
.portal-profile-head p{margin:0;color:#89939D;font-size:10px;line-height:1.45}
.portal-photo-action{margin-top:11px;border:0;background:transparent;color:#A9B3BC;font:inherit;font-size:9px;font-weight:850;padding:0;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.portal-photo-action:disabled{opacity:.45}
.portal-avatar-input{display:none}
.portal-departments,.portal-info{grid-column:1/-1;min-width:0}
.portal-departments{display:grid;gap:8px;margin-top:5px}
.portal-departments>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:#0D1115;border:1px solid #1C232A;border-radius:15px}
.portal-departments b{min-width:0;font-size:12px;overflow-wrap:anywhere}
.portal-departments span{flex:none;color:#7D8892;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.portal-info{margin-top:4px;border-top:1px solid #1A2026}
.portal-info-row{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:12px;align-items:center;padding:13px 2px;border-bottom:1px solid #151B20}
.portal-info-row span{color:#727D87;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.portal-info-row b{min-width:0;text-align:right;font-size:11px;overflow-wrap:anywhere}
.portal-finance-grid{margin-top:20px}
.portal-ledger{min-width:0}
.portal-team-card{width:100%;appearance:none;-webkit-appearance:none;color:inherit;text-align:left;font:inherit;text-decoration:none}
.portal-team-card+.portal-team-card{margin-top:9px}
.portal-team-card .person-main{text-align:left}
.portal-team-workspace{display:grid;gap:12px;min-width:0}
.portal-team-department-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:1px}
.portal-team-department-tabs button,.portal-team-department-title{min-height:34px;border-radius:12px;border:1px solid #283138;background:#0D1215;color:#8E9AA2;padding:0 11px;font-size:9px;font-weight:900;white-space:nowrap}
.portal-team-department-tabs button.active{border-color:rgba(53,201,133,.42);background:rgba(53,201,133,.11);color:#80E6B4}
.portal-team-department-title{display:flex;align-items:center;width:max-content}
.portal-team-workspace-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:4px;border:1px solid #242D33;border-radius:14px;background:#0A0F12}
.portal-team-workspace-tabs button{min-height:36px;border:0;border-radius:10px;background:transparent;color:#75818A;font-size:9px;font-weight:950}
.portal-team-workspace-tabs button.active{background:#151C20;color:#F2F5F7;box-shadow:inset 0 0 0 1px #29343B}
.portal-team-workspace .availability-page{margin-top:0}
.portal-team-back{grid-column:1/-1;justify-self:start;margin:0 0 2px}
.portal-bottom .nav{min-width:0}
.portal-bottom .nav-label{font-size:clamp(7px,2.2vw,9px);max-width:100%}
@media(max-width:340px){
  .portal-profile,.portal-team-member{grid-template-columns:80px minmax(0,1fr);gap:14px}
  .portal-avatar{width:80px;height:80px;border-radius:22px}
  .portal-profile-head h2{font-size:22px}
  .portal-info-row{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px}
}


.birthday-greeting-card{grid-column:1/-1;margin:0 0 18px;padding:18px;border-radius:20px;background:radial-gradient(circle at 85% 12%,rgba(233,176,74,.16),transparent 32%),linear-gradient(180deg,#11161B,#0B0F12);border:1px solid rgba(233,176,74,.28);box-shadow:0 18px 40px rgba(0,0,0,.22)}
.birthday-greeting-card small{display:block;color:#E9B04A;font-size:9px;text-transform:uppercase;letter-spacing:.14em;font-weight:900}
.birthday-greeting-card b{display:block;margin-top:8px;font-size:17px;letter-spacing:-.35px}
.birthday-greeting-card p{margin:11px 0 0;color:#D7DCE0;font-size:12px;line-height:1.65;white-space:pre-wrap}

.birthday-celebration{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 25%,rgba(0,138,76,.20),rgba(3,4,5,.94) 52%,#030405 100%);overflow:hidden}
.birthday-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.birthday-balloon{position:absolute;left:var(--x);bottom:-90px;width:36px;height:46px;border-radius:50% 50% 46% 46%;background:linear-gradient(160deg,rgba(255,255,255,.85),rgba(0,138,76,.72));box-shadow:inset -7px -9px 14px rgba(0,0,0,.14);animation:birthday-balloon-rise 5.6s calc(var(--i)*-.31s) linear infinite}
.birthday-balloon:after{content:"";position:absolute;left:50%;top:44px;width:1px;height:52px;background:rgba(255,255,255,.22)}
.birthday-spark{position:absolute;left:var(--x);top:var(--y);width:5px;height:5px;border-radius:50%;background:#F4D67A;box-shadow:0 0 16px rgba(244,214,122,.85);animation:birthday-spark-pop 1.8s calc(var(--i)*-.11s) ease-in-out infinite}
.birthday-celebration-card{position:relative;z-index:2;width:min(420px,100%);padding:28px 22px 22px;border-radius:28px;background:linear-gradient(180deg,rgba(18,24,29,.98),rgba(8,11,14,.98));border:1px solid rgba(255,255,255,.11);box-shadow:0 30px 90px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.06);text-align:center}
.birthday-celebration-kicker{color:#6BCB99;font-size:9px;font-weight:950;letter-spacing:.22em}
.birthday-celebration-emoji{font-size:48px;margin-top:14px;filter:drop-shadow(0 12px 20px rgba(0,0,0,.25))}
.birthday-celebration-card h2{margin:8px 0 0;font-size:30px;line-height:1;letter-spacing:-1.1px}
.birthday-celebration-card p{margin:16px 0 20px;color:#D7DCE0;font-size:13px;line-height:1.65;white-space:pre-wrap}
.birthday-celebration-card .ui-button{width:100%;min-height:50px;border-radius:16px}
@keyframes birthday-balloon-rise{0%{transform:translate(-50%,0) rotate(-4deg);opacity:0}8%{opacity:.9}90%{opacity:.9}100%{transform:translate(-50%,-125vh) rotate(7deg);opacity:0}}
@keyframes birthday-spark-pop{0%,100%{transform:scale(.25);opacity:.15}45%{transform:scale(1.7);opacity:1}70%{transform:scale(.7);opacity:.45}}
@media(prefers-reduced-motion:reduce){.birthday-balloon,.birthday-spark{animation:none}.birthday-balloon{display:none}.birthday-spark{opacity:.55}}


.leader-next-event{grid-column:1/-1;margin:0 0 16px}
.leader-next-event-card{display:grid;grid-template-columns:54px minmax(0,1fr) 14px;align-items:center;gap:12px;padding:13px;border:1px solid #203029;border-radius:19px;background:radial-gradient(circle at 88% 0,rgba(0,138,76,.12),transparent 38%),linear-gradient(180deg,#101619,#0B1012);box-shadow:0 14px 34px rgba(0,0,0,.16);cursor:pointer;min-width:0}
.leader-next-event-card.has-overdue{border-color:rgba(238,99,116,.28);box-shadow:inset 3px 0 0 rgba(238,99,116,.62),0 14px 34px rgba(0,0,0,.16)}
.leader-next-event-card:active{transform:scale(.994)}
.leader-next-event-card:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 65%,white);outline-offset:2px}
.leader-next-event-date{width:54px;height:58px;border-radius:16px;display:grid;place-items:center;align-content:center;gap:2px;background:#0E1A16;border:1px solid rgba(0,138,76,.34)}
.leader-next-event-date b{font-size:22px;line-height:1;font-weight:950;letter-spacing:-.7px}
.leader-next-event-date span{color:#72A88D;font-size:8px;font-weight:900;letter-spacing:.12em}
.leader-next-event-main{min-width:0}
.leader-next-event-kicker{color:#6BCB99;font-size:7px;font-weight:950;text-transform:uppercase;letter-spacing:.12em}
.leader-next-event-card h3{margin:6px 0 0;font-size:14px;line-height:1.2;letter-spacing:-.25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leader-next-event-card p{margin:5px 0 0;color:#78848D;font-size:8px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leader-next-event-meta{display:flex;gap:9px;flex-wrap:wrap;margin-top:8px;color:#839089;font-size:8px}
.leader-next-event-meta .overdue{color:#F18D9C}
.leader-next-event-chevron{color:#5D6B64;font-size:18px}
.leader-next-event-empty{padding:14px 15px;border:1px dashed #233029;border-radius:16px;background:#0B1110;color:#738078;font-size:9px}
@media(max-width:340px){
  .leader-next-event-card{grid-template-columns:48px minmax(0,1fr) 12px;gap:9px;padding:11px}
  .leader-next-event-date{width:48px;height:54px}
  .leader-next-event-date b{font-size:20px}
  .leader-next-event-card h3{font-size:13px}
}

.admin-next-event{margin-top:14px;margin-bottom:18px}

.leader-next-event-card.is-readonly{cursor:default;border-color:#26312B;background:linear-gradient(180deg,#101514,#0B100E)}
.leader-next-event-card.is-readonly:active{transform:none}
.leader-next-event-card.is-readonly .leader-next-event-chevron{color:#49534E}
.leader-next-event-meta .readonly-note{color:#748078}

/* Requisites leadership: expense-only financial events. */
.props-expenses-page{display:grid;gap:16px;padding-bottom:30px;min-width:0}
.props-expenses-hint{font-size:12px;line-height:1.5;color:var(--muted);margin:0}
.props-expenses-list{display:grid;gap:10px}
.props-event-card,.props-expense-card{width:100%;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);padding:15px;text-align:left;min-width:0}
.props-event-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;cursor:pointer}
.props-event-date{font-size:11px;color:var(--muted);grid-column:1}
.props-event-name{font-size:15px;font-weight:750;grid-column:1}
.props-event-card small{font-size:12px;color:var(--muted);grid-column:1}
.props-event-arrow{grid-row:1/span 3;grid-column:2;font-size:24px;color:var(--muted)}
.props-back{justify-self:start}
.props-event-heading{display:grid;gap:5px;padding:4px 0}
.props-event-heading strong{font-size:19px;line-height:1.3}
.props-event-heading span{font-size:12px;color:var(--muted)}
.props-expenses-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.props-expenses-toolbar h3{margin:0;font-size:16px}
.props-expense-card{display:grid;gap:9px}
.props-expense-meta{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.props-expense-meta span{font-size:11px;color:var(--muted)}
.props-expense-amount{font-size:19px}
.props-expense-card p{margin:0;font-size:12px;color:var(--muted);word-break:break-word}
.props-expense-card button{justify-self:start}
.props-expense-file{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px;overflow-wrap:anywhere}
.props-expense-file a{color:var(--accent);flex-shrink:0}
.props-expenses-error{color:var(--danger);font-size:12px}

.props-reimbursement-toggle{display:flex;align-items:flex-start;gap:12px;padding:14px;
  border:1px solid var(--line);border-radius:13px;background:var(--surface-2);cursor:pointer}
.props-reimbursement-toggle input[type="checkbox"]{width:20px;height:20px;min-width:20px;margin:2px 0 0;
  accent-color:var(--accent)}
.props-reimbursement-toggle span{display:grid;gap:4px;min-width:0}
.props-reimbursement-toggle b{font-size:14px;color:var(--text)}
.props-reimbursement-toggle small{font-size:12px;font-weight:400;line-height:1.45;color:var(--muted)}
.props-reimbursement-badge{display:inline-flex;justify-self:start;font-size:11px;font-weight:700;
  border:1px solid var(--line);background:var(--surface-2);color:var(--text);
  border-radius:100px;padding:5px 9px}
.props-expenses-page input[type="file"],.sheet input[name="receipts"]{max-width:100%;font-size:13px}
