.employee summary { align-items: center; }
.employee-tools { display: flex; justify-content: space-between; gap: 10px; padding: 12px 0 3px; }
.employee-tools form:first-child { display: flex; gap: 8px; flex: 1; }
.employee-tools input { max-width: 190px; }
.chevron { font-size: 13px; color: var(--terracotta); font-weight: 800; }
.month-filter { display: flex; align-items: end; gap: 10px; margin-bottom: 24px; }
.month-filter label { margin: 0; }
.report-table { display: grid; }
.report-head, .report-line { display: grid; grid-template-columns: 2fr 1fr .7fr 1fr 1.6fr; gap: 12px; align-items: center; padding: 13px 8px; border-top: 1px solid var(--line); }
.report-head { border-top: 0; background: #eee5d5; border-radius: 10px; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.success { color: #367052; font-weight: 700; }
.warning { color: #a8482e; font-weight: 700; }
.person-link, .shift { display: grid; padding: 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); text-decoration: none; }
.person-link small, .shift small, .shift span { color: var(--muted); }
.form-two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
textarea { min-height: 90px; resize: vertical; width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; font: inherit; }
hr { border: 0; border-top: 1px solid var(--line); margin: 28px 0; }
.absence { border-color: #d8b277; background: #fff8e8; }
.planner-form { margin-bottom: 18px; }
.planner-form summary { cursor: pointer; }
.planner-form form { display: grid; gap: 10px; }
.calendar-wrap { overflow: hidden; }
.week-grid { display: grid; grid-template-columns: 180px repeat(7,minmax(125px,1fr)); min-width: 1100px; overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.week-head { padding: 12px 8px; background: #eee5d5; border-left: 1px solid var(--line); text-align: center; display: grid; }
.week-head span { font-size: 12px; color: var(--muted); }
.employee-col { text-align: left; border-left: 0; }
.employee-cell { padding: 12px; border-top: 1px solid var(--line); display: grid; align-content: start; background: #fffdf8; }
.employee-cell small { color: var(--muted); }
.hours-count { margin-top: 8px; color: var(--terracotta); font-weight: 800; font-size: 13px; }
.day-cell { min-height: 105px; padding: 7px; border-left: 1px solid var(--line); border-top: 1px solid var(--line); transition: background .15s; }
.day-cell.drop-target { background: #f2dfbd; }
.shift-card { padding: 9px; margin-bottom: 6px; border-radius: 8px; background: var(--ink); color: white; cursor: grab; display: grid; box-shadow: 0 3px 10px #18312d20; }
.shift-card.beach { background: #2f6f83; }
.shift-card small { color: #fff; opacity: .8; }
.shift-card.dragging { opacity: .45; }
@media (max-width: 800px) {
  .employee-tools, .employee-tools form:first-child, .month-filter { align-items: stretch; flex-direction: column; }
  .employee-tools input { max-width: none; }
  .report-head { display: none; }
  .report-line { grid-template-columns: 1fr 1fr; }
  .report-line strong, .report-line span:last-child { grid-column: 1 / -1; }
  .form-two { grid-template-columns: 1fr; }
}

.portal-hero { display:grid; grid-template-columns:1fr auto; gap:24px; align-items:end; padding:30px; margin-bottom:18px; color:#fff; background:linear-gradient(135deg,var(--ink),#27554d); border-radius:18px; }
.portal-hero h2,.portal-hero p { margin-bottom:4px; }
.portal-tabs { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.portal-tabs a { color:#fff; text-decoration:none; padding:9px 12px; border:1px solid #ffffff40; border-radius:999px; font-size:13px; font-weight:800; }
.portal-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.data-list { display:grid; gap:0; margin:0; }
.data-list div { display:flex; justify-content:space-between; gap:20px; padding:13px 0; border-top:1px solid var(--line); }
.data-list dt { color:var(--muted); }
.data-list dd { margin:0; font-weight:800; text-align:right; }
.document-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; margin-top:18px; }
.document-card { display:grid; gap:5px; min-height:130px; padding:18px; color:var(--ink); text-decoration:none; background:#f6f0e4; border:1px solid var(--line); border-radius:14px; }
.document-card span,.document-card small { color:var(--muted); }
.document-card small { margin-top:auto; color:var(--terracotta); font-weight:800; }
.request-card,.manager-card,.case-card { display:grid; gap:10px; padding:16px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.request-card small,.manager-card small,.case-card small { color:var(--muted); }
.manager-card { grid-template-columns:1fr auto; align-items:start; }
.manager-card .decision-form { grid-column:1/-1; }
.status { display:inline-flex; width:max-content; padding:5px 9px; border-radius:999px; background:#eee5d5; color:var(--ink); font-size:12px; font-weight:800; }
.status-aprobada { background:#dbeadf; color:#246141; }
.status-rechazada { background:#f4d6cf; color:#7c2718; }
.decision-form { display:grid; grid-template-columns:1fr auto auto; gap:8px; }
.counter { padding:8px 12px; background:#eee5d5; border-radius:999px; font-weight:800; }
.avatar { display:grid; place-items:center; width:64px; height:64px; border-radius:50%; background:var(--terracotta); color:#fff; font:34px Georgia,serif; }
.workflow { display:grid; gap:12px; padding-left:22px; }
.link-card { margin-bottom:18px; border-color:var(--terracotta); }
.link-card input { font-family:ui-monospace,monospace; background:#f6f0e4; }
.case-grid { display:grid; gap:14px; }
.case-head { display:flex; justify-content:space-between; gap:15px; }
.case-head div { display:grid; }
.compact-list { margin:0; }
.intake-form { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:8px; align-items:end; }
.status-form { display:flex; gap:8px; align-items:center; }
.credential-card { margin-bottom:18px; background:#fff7df; border-color:#d8b277; }
.credential-grid { display:flex; flex-wrap:wrap; gap:12px; }
.credential-grid span { padding:10px 13px; background:#fff; border-radius:10px; }
.check-row { display:flex; grid-template-columns:auto 1fr; align-items:center; justify-content:flex-start; gap:9px; }
.check-row input { width:auto; }
.privacy-note { padding:13px; margin:16px 0; border-radius:10px; background:#eef4f0; color:#35584f; }
.photo-check { max-width:720px; margin:40px auto; text-align:center; }
.photo-check video { width:min(100%,520px); aspect-ratio:4/3; object-fit:cover; border-radius:16px; background:#10211e; transform:scaleX(-1); }
.actions.two { grid-template-columns:1fr 1fr; max-width:620px; margin:18px auto 0; }
.small-photo-link { padding:6px 9px; border-radius:8px; color:var(--terracotta); text-decoration:none; font-size:12px; font-weight:800; }
@media (max-width:800px) {
  .portal-hero,.portal-grid { grid-template-columns:1fr; }
  .portal-tabs { justify-content:flex-start; }
  .manager-card { grid-template-columns:1fr; }
  .decision-form,.intake-form { grid-template-columns:1fr; }
  .status-form { align-items:stretch; flex-direction:column; }
  .actions.two { grid-template-columns:1fr; }
}

/* Direvo shared visual language */
:root {
  --ink:#071b3b;
  --cream:#eef5fb;
  --paper:#ffffff;
  --sand:#b9ddf3;
  --terracotta:#ff684f;
  --line:#d9e6f0;
  --muted:#647489;
  --direvo-blue:#42a9e0;
  --direvo-mint:#c7e8f8;
  --direvo-dark:#071b3b;
}
body { background:linear-gradient(180deg,#eaf4fb 0,#f5f7fa 340px); }
.app-header { display:grid; grid-template-columns:auto auto 1fr; gap:22px; min-height:92px; padding:16px clamp(18px,4vw,58px); background:var(--direvo-dark); box-shadow:0 8px 30px #071b3b2b; }
.direvo-brand { display:flex; align-items:center; gap:12px; color:#fff; text-decoration:none; }
.direvo-symbol { display:grid; grid-template-columns:repeat(2,13px); grid-template-rows:repeat(2,13px); gap:4px; transform:rotate(-8deg); }
.direvo-symbol i { display:block; border-radius:4px; background:var(--direvo-blue); }
.direvo-symbol i:nth-child(2),.direvo-symbol i:nth-child(3) { background:#8dd5f4; }
.direvo-wordmark { display:grid; line-height:1; }
.direvo-wordmark strong { font-size:22px; letter-spacing:.13em; }
.direvo-wordmark small { margin-top:5px; color:var(--direvo-mint); font-size:10px; font-weight:800; letter-spacing:.22em; }
.venue-brand { display:flex; align-items:center; gap:10px; padding-left:20px; border-left:1px solid #ffffff26; color:#dceafa; font-size:12px; font-weight:800; }
.venue-brand img { width:82px; height:48px; object-fit:contain; filter:drop-shadow(0 2px 5px #0002); }
.app-header nav { justify-content:flex-end; gap:5px; }
.app-header nav a,.app-header nav .link { padding:9px 10px; border-radius:9px; color:#e8f5f0; font-size:13px; font-weight:700; transition:background .15s,color .15s; }
.app-header nav a:hover,.app-header nav .link:hover { background:#ffffff12; color:#fff; }
button,.button { background:var(--terracotta); box-shadow:0 5px 14px #ff684f28; }
button:hover,.button:hover { filter:brightness(.97); transform:translateY(-1px); }
.secondary { background:var(--direvo-mint); color:var(--direvo-dark); box-shadow:none; }
.dark,.stats article,.shift-card { background:var(--direvo-dark); }
.card,.clock,.hero { box-shadow:0 12px 34px #071b3b10; }
.kicker,.eyebrow,.hours-count,.chevron,.small-photo-link { color:#218fc9; }
.portal-hero { background:linear-gradient(135deg,var(--direvo-dark),#0d3d70); }
.week-head,.report-head { background:#dceefa; }
.settings-hero { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:18px; padding:34px; color:#fff; background:linear-gradient(135deg,var(--direvo-dark),#0d3d70); border-radius:20px; box-shadow:0 18px 42px #071b3b21; }
.settings-hero h2 { margin:3px 0 7px; font-size:clamp(26px,4vw,40px); }
.settings-hero p { margin:0; color:#d9e9f8; }
.settings-badge { display:inline-flex; padding:8px 13px; border-radius:999px; background:var(--direvo-mint); color:var(--direvo-dark); font-size:12px; font-weight:900; }
.settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.settings-card { position:relative; overflow:hidden; }
.settings-card::after { content:""; position:absolute; right:-45px; top:-45px; width:125px; height:125px; border-radius:50%; background:#42a9e01d; }
.settings-icon { display:grid; place-items:center; width:46px; height:46px; margin-bottom:18px; border-radius:13px; background:#dceefa; font-size:22px; }
.settings-card h3 { font-size:21px; margin-bottom:6px; }

@media (max-width:1050px) {
  .app-header { grid-template-columns:auto 1fr; }
  .venue-brand { justify-self:end; }
  .app-header nav { grid-column:1/-1; justify-content:flex-start; overflow-x:auto; padding-bottom:2px; }
  .app-header nav a,.app-header nav .link { white-space:nowrap; }
}
@media (max-width:800px) {
  .app-header { align-items:center; gap:12px; padding:13px 16px; }
  .direvo-wordmark strong { font-size:18px; }
  .venue-brand { padding-left:12px; }
  .venue-brand img { width:62px; height:38px; }
  .venue-brand span { display:none; }
  .settings-grid { grid-template-columns:1fr; }
  .settings-hero { align-items:flex-start; flex-direction:column; padding:25px; }
}
