@font-face{font-family:Outfit;font-style:normal;font-weight:100;font-display:swap;src:url('../fonts/outfit-100.ttf') format('truetype');}
@font-face{font-family:Outfit;font-style:normal;font-weight:200;font-display:swap;src:url('../fonts/outfit-200.ttf') format('truetype');}
@font-face{font-family:Outfit;font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/outfit-300.ttf') format('truetype');}
@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/outfit-400.ttf') format('truetype');}
@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/outfit-500.ttf') format('truetype');}
@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/outfit-600.ttf') format('truetype');}
@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/outfit-700.ttf') format('truetype');}
@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/outfit-800.ttf') format('truetype');}
@font-face{font-family:Outfit;font-style:normal;font-weight:900;font-display:swap;src:url('../fonts/outfit-900.ttf') format('truetype');}
#dcp-portal,
#dcp-portal * { box-sizing: border-box; }

#dcp-portal {
  --dcp-accent: #F2775C;
  --dcp-accent-dark: #092A47;
  --dcp-ink: #092A47;
  --dcp-muted: #7a7d91;
  --dcp-line: #e8eaf2;
  --dcp-bg: #f3f5fa;
  --dcp-white: #fff;
  color: var(--dcp-ink);
  background: var(--dcp-bg);
  min-height: 100vh;
  font-family:Outfit,sans-serif;
  font-size: 14px;
  line-height: 1.5;
  display: flex;
}

body.dcp-fullscreen-page { margin: 0; overflow-x: hidden; background: #f3f5fa; }

#dcp-portal a { color: inherit; text-decoration: none; }
#dcp-portal button,
#dcp-portal input,
#dcp-portal select,
#dcp-portal textarea { font: inherit; }
#dcp-portal button { cursor: pointer; }
#dcp-portal p { margin-top: 0; }
#dcp-portal .dcp-icon { width: 20px; height: 20px; flex: 0 0 auto; }

.dcp-sidebar {
  position: fixed;
  z-index: 30;
  inset: 0 auto 0 0;
  width: 260px;
  padding: 32px 22px 24px;
  background: #fff;
  border-right: 1px solid var(--dcp-line);
  display: flex;
  flex-direction: column;
  transition: transform .25s ease;
}

.dcp-brand { display: flex; align-items: center; gap: 12px; margin: 0 8px 38px; font-size: 17px; font-weight: 800; letter-spacing: -.35px; }
.dcp-logo { width: 34px; height: 34px; position: relative; display: inline-grid; place-items: center; flex: 0 0 auto; }
.dcp-logo i { width: 6px; height: 15px; background: var(--dcp-accent); border-radius: 7px 7px 2px 2px; position: absolute; transform-origin: 3px 17px; }
.dcp-logo i:nth-child(1) { transform: rotate(0deg) translateY(-8px); }
.dcp-logo i:nth-child(2) { transform: rotate(45deg) translateY(-8px); }
.dcp-logo i:nth-child(3) { transform: rotate(90deg) translateY(-8px); }
.dcp-logo i:nth-child(4) { transform: rotate(135deg) translateY(-8px); }
.dcp-logo i:nth-child(5) { transform: rotate(180deg) translateY(-8px); }
.dcp-logo i:nth-child(6) { transform: rotate(225deg) translateY(-8px); }
.dcp-logo i:nth-child(7) { transform: rotate(270deg) translateY(-8px); }
.dcp-logo i:nth-child(8) { transform: rotate(315deg) translateY(-8px); }
.dcp-side-label { color: #aaaebe; font-size: 10px; font-weight: 800; letter-spacing: 1.5px; margin: 0 12px 10px; }
.dcp-other-label { margin-top: 30px; }
.dcp-nav { display: grid; gap: 6px; }
.dcp-nav a { display: flex; align-items: center; gap: 13px; height: 46px; padding: 0 13px; border-radius: 9px; color: #696c80; font-weight: 650; transition: .2s ease; }
.dcp-nav a:hover { color: var(--dcp-ink); background: #fff7f4; }
.dcp-nav a.is-active { background: color-mix(in srgb, var(--dcp-accent) 11%, white); color: var(--dcp-accent); box-shadow: inset 3px 0 0 var(--dcp-accent); }
.dcp-side-user { margin-top: auto; padding: 18px 8px 0; border-top: 1px solid var(--dcp-line); display: flex; align-items: center; gap: 11px; min-width: 0; }
.dcp-side-user div { min-width: 0; }
.dcp-side-user strong, .dcp-side-user small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.dcp-side-user strong { font-size: 13px; }
.dcp-side-user small { color: var(--dcp-muted); font-size: 11px; margin-top: 2px; }
.dcp-avatar { width: 38px; height: 38px; flex: 0 0 auto; display: inline-grid; place-items: center; border-radius: 50%; font-size: 12px; font-weight: 800; color: #092A47; background: #fff1ed; }

.dcp-main { width: calc(100% - 260px); margin-left: 260px; min-width: 0; }
.dcp-topbar { height: 84px; padding: 0 40px; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--dcp-line); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); }
.dcp-search { width: min(430px, 50%); height: 43px; border-radius: 9px; background: #f5f6fa; color: #9da0b2; display: flex; align-items: center; gap: 10px; padding: 0 14px; }
.dcp-search input { width: 100%; background: none; border: 0 !important; outline: 0; box-shadow: none !important; color: var(--dcp-ink); padding: 0 !important; }
.dcp-search input::placeholder { color: #a9acbb; }
.dcp-top-user { display: flex; align-items: center; gap: 12px; }
.dcp-top-user div { text-align: right; }
.dcp-top-user small, .dcp-top-user strong { display: block; }
.dcp-top-user small { color: var(--dcp-muted); font-size: 10px; }
.dcp-top-user strong { font-size: 13px; }
.dcp-content { max-width: 1500px; margin: 0 auto; padding: 36px 40px 64px; }
.dcp-page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 28px; }
.dcp-page-head h1 { font-size: clamp(27px, 2.4vw, 36px); line-height: 1.15; margin: 4px 0 7px; letter-spacing: -1.2px; }
.dcp-page-head p { color: var(--dcp-muted); margin: 0; }
.dcp-eyebrow, .dcp-kicker { font-size: 10px; line-height: 1; font-weight: 800; letter-spacing: 1.6px; color: var(--dcp-accent); }
.dcp-btn { min-height: 43px; padding: 0 18px; border: 1px solid var(--dcp-accent); border-radius: 8px; background: var(--dcp-accent); color: #fff !important; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 750; line-height: 1; box-shadow: 0 8px 20px color-mix(in srgb, var(--dcp-accent) 22%, transparent); transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.dcp-btn:hover { transform: translateY(-1px); box-shadow: 0 11px 26px color-mix(in srgb, var(--dcp-accent) 30%, transparent); }
.dcp-btn .dcp-icon { width: 17px; height: 17px; }
.dcp-btn-light { background: #fff; border-color: var(--dcp-line); color: var(--dcp-ink) !important; box-shadow: none; }
.dcp-btn-outline { width: 100%; background: transparent; color: var(--dcp-accent) !important; box-shadow: none; margin-top: 9px; }
.dcp-btn-success { width: 100%; background: #16a66a; border-color: #16a66a; box-shadow: 0 8px 20px rgba(22,166,106,.17); }
.dcp-btn-small { min-height: 36px; padding: 0 13px; font-size: 12px; margin-top: 9px; }
.dcp-btn-danger { background: #c9364c; border-color: #c9364c; box-shadow: 0 8px 20px rgba(201,54,76,.2); }
.dcp-btn-danger:hover { box-shadow: 0 11px 26px rgba(201,54,76,.28); }
.dcp-btn-danger-outline { background: #fff; border-color: #f0c4cb; color: #b72f45 !important; box-shadow: none; }
.dcp-btn-danger-outline:hover { background: #fff4f5; box-shadow: none; }
.dcp-head-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }
.dcp-icon-btn { width: 36px; height: 36px; border-radius: 8px; border: 1px solid var(--dcp-line); color: var(--dcp-accent); background: #fff; display: grid; place-items: center; }
.dcp-icon-btn .dcp-icon { width: 17px; }

.dcp-alert { display: flex; align-items: center; gap: 10px; padding: 13px 16px; border-radius: 9px; margin-bottom: 20px; font-weight: 650; }
.dcp-alert-success { color: #067b4a; background: #eafaf2; border: 1px solid #bfead5; }
.dcp-alert-error { color: #b62f42; background: #fff0f2; border: 1px solid #ffcbd2; }
.dcp-alert .dcp-icon { width: 18px; }
.dcp-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-bottom: 22px; }
.dcp-stat { min-height: 118px; background: #fff; border: 1px solid var(--dcp-line); border-radius: 13px; padding: 23px; display: flex; align-items: center; gap: 16px; box-shadow: 0 8px 28px rgba(30,29,70,.035); }
.dcp-stat-icon { width: 50px; height: 50px; border-radius: 13px; display: inline-grid; place-items: center; color: var(--dcp-accent); background: #fff1ed; }
.dcp-stat-icon .dcp-icon { width: 23px; height: 23px; }
.dcp-stat div strong, .dcp-stat div span { display: block; }
.dcp-stat div strong { font-size: 28px; letter-spacing: -1px; line-height: 1.1; }
.dcp-stat div span { color: var(--dcp-muted); font-size: 12px; margin-top: 5px; }
.dcp-stat-blue .dcp-stat-icon { color: #2780ef; background: #e7f2ff; }
.dcp-stat-green .dcp-stat-icon { color: #0b9a60; background: #e5f8ef; }
.dcp-stat-orange .dcp-stat-icon { color: #e98b15; background: #fff2dd; }
.dcp-grid { display: grid; gap: 22px; align-items: start; }
.dcp-grid-2-1 { grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); }
.dcp-grid-main-side { grid-template-columns: minmax(0, 1.8fr) minmax(300px, .85fr); }
.dcp-panel { background: #fff; border: 1px solid var(--dcp-line); border-radius: 13px; padding: 24px; box-shadow: 0 8px 28px rgba(30,29,70,.035); min-width: 0; }
.dcp-panel + .dcp-panel { margin-top: 22px; }
.dcp-panel h2 { margin: 0 0 5px; font-size: 17px; letter-spacing: -.25px; }
.dcp-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.dcp-panel-head h2 { margin: 0; }
.dcp-panel-head p { margin: 3px 0 0; color: var(--dcp-muted); font-size: 11px; }
.dcp-panel-head > a { color: var(--dcp-accent) !important; font-size: 12px; font-weight: 750; }

.dcp-project-row { min-height: 68px; display: flex; align-items: center; gap: 14px; padding: 10px 5px; border-bottom: 1px solid var(--dcp-line); }
.dcp-project-row:last-child { border-bottom: 0; }
.dcp-project-row:hover strong { color: var(--dcp-accent); }
.dcp-project-mark { width: 43px; height: 43px; border-radius: 10px; background: #fff1ed; color: var(--dcp-accent); display: grid; place-items: center; font-weight: 850; flex: 0 0 auto; }
.dcp-project-row-main { flex: 1; min-width: 0; }
.dcp-project-row-main > div:first-child { display: flex; align-items: center; gap: 9px; margin-bottom: 7px; }
.dcp-project-row-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dcp-project-row > b { font-size: 12px; }
.dcp-project-row > .dcp-icon { width: 16px; color: #b2b4c1; }
.dcp-progress { height: 5px; border-radius: 10px; background: #edeef3; overflow: hidden; }
.dcp-progress > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--dcp-accent), color-mix(in srgb, var(--dcp-accent) 62%, #F2775C)); }
.dcp-progress-lg { height: 8px; }
.dcp-progress-label { display: flex; justify-content: space-between; align-items: center; color: var(--dcp-muted); font-size: 11px; margin: 18px 0 8px; }
.dcp-progress-label b { color: var(--dcp-ink); }
.dcp-mini-tasks > a { min-height: 61px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--dcp-line); }
.dcp-mini-tasks > a:last-child { border-bottom: 0; }
.dcp-mini-tasks > a > div { flex: 1; min-width: 0; }
.dcp-mini-tasks strong, .dcp-mini-tasks small { display: block; }
.dcp-mini-tasks strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.dcp-mini-tasks small { color: var(--dcp-muted); font-size: 10px; margin-top: 3px; }
.dcp-task-check { width: 27px; height: 27px; border: 1px solid #dfe1e9; border-radius: 50%; display: grid; place-items: center; color: transparent; flex: 0 0 auto; }
.dcp-task-check .dcp-icon { width: 14px; }
.dcp-task-check.is-done { color: #fff; border-color: #17a668; background: #17a668; }
.dcp-badge { display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; border-radius: 6px; background: #f0f1f5; color: #6d7080; font-size: 9px; font-weight: 800; white-space: nowrap; }
.dcp-badge-active, .dcp-badge-in_progress, .dcp-badge-team { background: #e9f2ff; color: #2674d7; }
.dcp-badge-planning, .dcp-badge-todo, .dcp-badge-medium, .dcp-badge-review { background: #fff1ed; color: #092A47; }
.dcp-badge-completed, .dcp-badge-approved, .dcp-badge-answered { background: #e7f8ef; color: #0c8c58; }
.dcp-badge-high, .dcp-badge-urgent, .dcp-badge-blocked, .dcp-badge-revision_requested { background: #fff0f1; color: #d24a5c; }
.dcp-badge-low, .dcp-badge-client { background: #e9f8f8; color: #178b8d; }
.dcp-badge-requested, .dcp-badge-pending_review, .dcp-badge-waiting, .dcp-badge-on_hold { background: #fff3df; color: #c8750d; }
.dcp-project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.dcp-project-card { background: #fff; border: 1px solid var(--dcp-line); border-radius: 13px; padding: 23px; box-shadow: 0 8px 28px rgba(30,29,70,.035); transition: transform .2s ease, box-shadow .2s ease; }
.dcp-project-card:hover { transform: translateY(-3px); box-shadow: 0 15px 36px rgba(30,29,70,.08); }
.dcp-card-top { display: flex; justify-content: space-between; align-items: start; margin-bottom: 18px; }
.dcp-project-card h2 { font-size: 18px; margin: 0 0 7px; }
.dcp-project-card > p { min-height: 42px; color: var(--dcp-muted); font-size: 12px; }
.dcp-project-meta { display: flex; gap: 16px; flex-wrap: wrap; border-top: 1px solid var(--dcp-line); padding-top: 15px; color: var(--dcp-muted); font-size: 10px; }
.dcp-project-meta span { display: flex; align-items: center; gap: 5px; }
.dcp-project-meta .dcp-icon { width: 14px; }
.dcp-card-link { display: flex; justify-content: space-between; align-items: center; color: var(--dcp-accent) !important; font-weight: 750; font-size: 12px; margin-top: 19px; }
.dcp-card-link .dcp-icon { width: 16px; }

.dcp-project-hero { margin-bottom: 22px; padding: 28px; border-radius: 14px; color: #fff; background: radial-gradient(circle at 90% 20%, rgba(255,255,255,.16), transparent 22%), linear-gradient(130deg, var(--dcp-accent), color-mix(in srgb, var(--dcp-accent) 66%, #2b1a90)); display: grid; grid-template-columns: 1.6fr 1fr; gap: 35px; box-shadow: 0 14px 35px color-mix(in srgb, var(--dcp-accent) 20%, transparent); }
.dcp-project-hero p { color: rgba(255,255,255,.78); max-width: 750px; }
.dcp-project-hero .dcp-progress { background: rgba(255,255,255,.25); }
.dcp-project-hero .dcp-progress > span { background: #fff; }
.dcp-project-hero .dcp-progress-label { color: rgba(255,255,255,.75); }
.dcp-project-hero .dcp-progress-label b { color: #fff; }
.dcp-hero-badges { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 15px; }
.dcp-project-hero .dcp-badge { background: rgba(255,255,255,.16); color: #fff; border: 1px solid rgba(255,255,255,.18); }
.dcp-project-hero dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dcp-project-hero dl div { padding: 13px; border-radius: 9px; background: rgba(255,255,255,.10); }
.dcp-project-hero dt { color: rgba(255,255,255,.6); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; }
.dcp-project-hero dd { margin: 4px 0 0; font-weight: 750; font-size: 12px; }
.dcp-task-table > div > .dcp-task-row { border-bottom: 1px solid var(--dcp-line); }
.dcp-task-row { min-height: 70px; display: flex; align-items: center; gap: 12px; padding: 10px 2px; border-bottom: 1px solid var(--dcp-line); }
.dcp-task-row:last-child { border-bottom: 0; }
.dcp-task-row > div { flex: 1; min-width: 0; }
.dcp-task-row strong, .dcp-task-row small { display: block; }
.dcp-task-row strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; }
.dcp-task-row small { color: var(--dcp-muted); font-size: 10px; margin-top: 4px; }
.dcp-task-row > .dcp-icon { width: 15px; color: #b3b5c3; }
.dcp-task-row:hover strong { color: var(--dcp-accent); }
.dcp-requirements { display: grid; gap: 12px; }
.dcp-requirement { border: 1px solid var(--dcp-line); padding: 16px; border-radius: 10px; }
.dcp-requirement > div:first-child { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.dcp-requirement small { color: var(--dcp-muted); font-size: 9px; }
.dcp-requirement h3 { font-size: 13px; line-height: 1.5; margin: 11px 0; }
.dcp-requirement textarea { width: 100%; resize: vertical; border: 1px solid var(--dcp-line); border-radius: 8px; padding: 10px; outline: none; }
.dcp-answer { background: #f7f8fb; padding: 11px; border-radius: 8px; color: #606375; font-size: 11px; margin-bottom: 10px; }
.dcp-answer p:last-child { margin-bottom: 0; }
.dcp-filter-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.dcp-filter-row button { border: 1px solid var(--dcp-line); background: #fff; color: var(--dcp-muted); border-radius: 7px; min-height: 34px; padding: 0 13px; font-size: 11px; font-weight: 700; }
.dcp-filter-row button.is-active { color: #fff; border-color: var(--dcp-accent); background: var(--dcp-accent); }

.dcp-task-detail > h2 { margin: 20px 0 12px; }
.dcp-richtext { color: #5e6174; }
.dcp-richtext p:last-child { margin-bottom: 0; }
.dcp-muted { color: var(--dcp-muted); }
.dcp-detail-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; border-top: 1px solid var(--dcp-line); padding-top: 20px; margin-top: 24px; }
.dcp-detail-meta span, .dcp-detail-meta strong, .dcp-detail-meta a { display: block; }
.dcp-detail-meta span { color: var(--dcp-muted); text-transform: uppercase; font-weight: 750; letter-spacing: .6px; font-size: 8px; }
.dcp-detail-meta strong, .dcp-detail-meta a { margin-top: 4px; font-size: 11px; }
.dcp-detail-meta a { color: var(--dcp-accent) !important; font-weight: 750; }
.dcp-thread { display: grid; gap: 18px; max-height: 560px; overflow: auto; padding-right: 5px; }
.dcp-thread-empty { color: var(--dcp-muted); text-align: center; padding: 25px 0; }
.dcp-timeline-date { display: flex; align-items: center; gap: 10px; color: var(--dcp-muted); font-size: 9px; font-weight: 800; letter-spacing: .7px; text-transform: uppercase; }
.dcp-timeline-date::before, .dcp-timeline-date::after { content: ''; height: 1px; background: var(--dcp-line); flex: 1; }
.dcp-timeline-date span { flex: 0 0 auto; }
.dcp-message { display: flex; align-items: flex-start; gap: 10px; }
.dcp-message > div { max-width: 78%; }
.dcp-message.is-mine { flex-direction: row-reverse; }
.dcp-message.is-mine > div { display: flex; flex-direction: column; align-items: flex-end; }
.dcp-message-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; }
.dcp-message-meta strong { font-size: 11px; }
.dcp-message-meta span { color: var(--dcp-muted); font-size: 9px; }
.dcp-message-bubble { border-radius: 4px 12px 12px 12px; background: #f2f3f7; color: #55586b; padding: 11px 13px; font-size: 12px; }
.dcp-message-bubble p:last-child { margin-bottom: 0; }
.dcp-message.is-mine .dcp-message-bubble { border-radius: 12px 4px 12px 12px; background: color-mix(in srgb, var(--dcp-accent) 11%, white); color: #4e3bb0; }
.dcp-attachment { min-width: 240px; margin-top: 7px; padding: 10px; border: 1px solid var(--dcp-line); border-radius: 9px; display: flex; align-items: center; gap: 9px; }
.dcp-attachment > span { flex: 1; min-width: 0; }
.dcp-attachment strong, .dcp-attachment small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dcp-attachment strong { font-size: 10px; }
.dcp-attachment small { font-size: 8px; color: var(--dcp-muted); }
.dcp-attachment > .dcp-icon { width: 17px; color: var(--dcp-accent); }
.dcp-comment-form { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--dcp-line); }
.dcp-comment-form > textarea { width: 100%; resize: vertical; border: 1px solid var(--dcp-line); border-radius: 9px; padding: 12px; outline: none; }
.dcp-comment-form > div { margin-top: 10px; }
.dcp-update-form-head { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.dcp-update-form-head > span { color: var(--dcp-muted); font-size: 10px; padding-bottom: 10px; }
.dcp-update-date { display: grid; gap: 6px; color: var(--dcp-ink); font-size: 10px; font-weight: 750; }
.dcp-update-date input { min-height: 40px; border: 1px solid var(--dcp-line); border-radius: 8px; background: #fff; padding: 0 11px; color: var(--dcp-ink); outline: none; }
.dcp-comment-actions { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.dcp-file-picker { color: var(--dcp-muted); display: flex; align-items: center; gap: 7px; font-size: 11px; cursor: pointer; }
.dcp-file-picker input { display: none; }
.dcp-file-picker .dcp-icon { width: 17px; }
.dcp-approval-card { text-align: center; }
.dcp-approval-card .dcp-stat-icon { margin: 0 auto 14px; }
.dcp-approval-card p { color: var(--dcp-muted); font-size: 12px; }
.dcp-approval-card textarea { width: 100%; border: 1px solid var(--dcp-line); border-radius: 8px; padding: 10px; resize: vertical; margin: 7px 0 11px; }
.dcp-email-note { text-align: center; color: var(--dcp-muted); }
.dcp-email-note > .dcp-icon, .dcp-security-card > .dcp-icon { width: 35px; height: 35px; color: var(--dcp-accent); margin-bottom: 12px; }
.dcp-email-note h3 { color: var(--dcp-ink); font-size: 14px; margin: 0 0 7px; }
.dcp-email-note p { margin: 0; font-size: 11px; }

.dcp-people-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.dcp-person { position: relative; min-height: 128px; padding: 20px; background: #fff; border: 1px solid var(--dcp-line); border-radius: 13px; display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; }
.dcp-avatar-lg { width: 52px; height: 52px; font-size: 14px; }
.dcp-person h3 { margin: 0 0 4px; font-size: 14px; }
.dcp-person p { margin: 0; color: var(--dcp-muted); font-size: 10px; word-break: break-all; }
.dcp-person > small { grid-column: 2 / -1; color: var(--dcp-muted); font-size: 9px; }
.dcp-settings-form { margin-top: 20px; }
.dcp-security-card { text-align: center; }
.dcp-security-card p { color: var(--dcp-muted); font-size: 12px; }
.dcp-security-card .dcp-btn { width: 100%; }
.dcp-text-link { display: block; color: var(--dcp-accent) !important; font-size: 11px; font-weight: 750; margin-top: 16px; }
.dcp-empty { min-height: 210px; grid-column: 1/-1; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; color: var(--dcp-muted); }
.dcp-empty > span { width: 54px; height: 54px; border-radius: 50%; background: #fff1ed; color: var(--dcp-accent); display: grid; place-items: center; }
.dcp-empty > span .dcp-icon { width: 24px; }
.dcp-empty h3 { color: var(--dcp-ink); margin: 13px 0 5px; font-size: 14px; }
.dcp-empty p { margin: 0; max-width: 280px; font-size: 11px; }

.dcp-modal { position: fixed; z-index: 100001; inset: 0; visibility: hidden; opacity: 0; transition: .2s ease; }
.dcp-modal.is-open { visibility: visible; opacity: 1; }
.dcp-modal-backdrop { position: absolute; inset: 0; background: rgba(20,18,42,.55); backdrop-filter: blur(4px); }
.dcp-modal-card { position: absolute; top: 4vh; bottom: 4vh; right: 3vw; width: min(680px, calc(100vw - 30px)); overflow: auto; background: #fff; border-radius: 16px; padding: 34px; box-shadow: 0 25px 80px rgba(15,12,40,.26); transform: translateX(30px); transition: transform .25s ease; }
.dcp-modal.is-open .dcp-modal-card { transform: translateX(0); }
.dcp-modal-small { width: min(530px, calc(100vw - 30px)); }
.dcp-modal-card > h2 { margin: 7px 0 6px; font-size: 23px; letter-spacing: -.5px; }
.dcp-modal-card > p { color: var(--dcp-muted); font-size: 12px; }
.dcp-modal-close { position: absolute; right: 20px; top: 17px; width: 34px; height: 34px; border-radius: 50%; background: #f3f4f7; border: 0; color: #6d7080; font-size: 22px; line-height: 1; }
.dcp-form { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; margin-top: 24px; }
.dcp-field { display: block; min-width: 0; }
.dcp-field > span, .dcp-check-field legend { display: block; font-size: 10px; font-weight: 750; color: #55586b; margin-bottom: 7px; }
.dcp-field input, .dcp-field select, .dcp-field textarea { width: 100%; min-height: 43px; border: 1px solid #dfe1e9 !important; border-radius: 8px !important; background: #fff; outline: none; padding: 10px 12px !important; color: var(--dcp-ink); box-shadow: none !important; }
.dcp-field textarea { resize: vertical; }
.dcp-field input:focus, .dcp-field select:focus, .dcp-field textarea:focus, .dcp-comment-form textarea:focus, .dcp-update-date input:focus { border-color: var(--dcp-accent) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--dcp-accent) 10%, transparent) !important; }
.dcp-field input:disabled { background: #f4f5f8; color: #8a8d9d; }
.dcp-span-2 { grid-column: 1 / -1; }
.dcp-form-actions { display: flex; justify-content: flex-end; gap: 9px; padding-top: 5px; }
.dcp-check-field { border: 0; padding: 0; margin: 0; }
.dcp-check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dcp-check-grid label { border: 1px solid var(--dcp-line); border-radius: 8px; padding: 9px; display: flex; align-items: center; gap: 7px; font-size: 11px; }
.dcp-check-grid input { width: 15px; height: 15px; margin: 0; min-height: auto; }
.dcp-csv-picker { min-height: 82px; padding: 18px; border: 1px dashed #c9c5dc; border-radius: 10px; color: #676a7c; background: #faf9ff; display: flex; align-items: center; justify-content: center; gap: 10px; cursor: pointer; text-align: center; }
.dcp-csv-picker:hover { border-color: var(--dcp-accent); background: color-mix(in srgb, var(--dcp-accent) 4%, white); }
.dcp-csv-picker .dcp-icon { width: 23px; color: var(--dcp-accent); }
.dcp-csv-picker strong { font-size: 11px; }
.dcp-csv-picker input { position: absolute; width: 1px !important; height: 1px; min-height: 0; opacity: 0; pointer-events: none; }
.dcp-import-help { padding: 16px; border: 1px solid var(--dcp-line); border-radius: 10px; color: #656879; background: #f8f9fc; font-size: 10px; }
.dcp-import-help > strong { display: block; color: var(--dcp-ink); margin-bottom: 8px; font-size: 11px; }
.dcp-import-help code { display: block; overflow-x: auto; padding: 9px 10px; border-radius: 7px; background: #fff; color: #4d39bd; white-space: nowrap; }
.dcp-import-help ul { margin: 11px 0; padding-left: 18px; line-height: 1.65; }
.dcp-template-link { color: var(--dcp-accent) !important; display: inline-flex; align-items: center; gap: 6px; font-weight: 800; }
.dcp-template-link .dcp-icon { width: 15px; }
.dcp-import-empty { padding: 34px 12px 10px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.dcp-import-empty > span { width: 58px; height: 58px; border-radius: 50%; color: var(--dcp-accent); background: #fff1ed; display: grid; place-items: center; }
.dcp-import-empty > span .dcp-icon { width: 25px; }
.dcp-import-empty h3 { margin: 15px 0 6px; font-size: 16px; }
.dcp-import-empty p { max-width: 370px; margin: 0 0 18px; color: var(--dcp-muted); font-size: 11px; line-height: 1.6; }
.dcp-import-empty .dcp-template-link { margin-top: 18px; }
.dcp-eyebrow-danger { color: #bd3047; }
.dcp-danger-box { margin: 19px 0 2px; padding: 17px; border: 1px solid #f1c7ce; border-radius: 10px; background: #fff5f6; }
.dcp-danger-box strong, .dcp-danger-box span { display: block; }
.dcp-danger-box strong { color: #9f2439; font-size: 14px; }
.dcp-danger-box span { color: #bd5364; margin-top: 4px; font-size: 10px; font-weight: 750; }
.dcp-danger-box p { color: #75535a; margin: 12px 0 0; font-size: 11px; line-height: 1.55; }

.dcp-mobile-toggle { display: none; position: fixed; z-index: 42; top: 18px; left: 16px; width: 42px; height: 42px; border: 1px solid var(--dcp-line); background: #fff; border-radius: 9px; box-shadow: 0 6px 20px rgba(20,18,42,.12); place-items: center; }
.dcp-overlay { display: none; position: fixed; z-index: 29; inset: 0; background: rgba(20,18,42,.45); }
[data-dcp-item].dcp-search-hidden,
[data-dcp-status].dcp-filter-hidden { display: none !important; }

.dcp-login-wrap { width: 100%; min-height: 100vh; display: grid !important; grid-template-columns: 1.05fr .95fr; background: #fff !important; }
.dcp-login-art { color: #fff; padding: clamp(35px, 6vw, 85px); display: flex; flex-direction: column; justify-content: space-between; gap: 80px; background: radial-gradient(circle at 15% 18%, rgba(255,255,255,.18), transparent 18%), radial-gradient(circle at 80% 75%, rgba(255,255,255,.13), transparent 24%), linear-gradient(145deg, var(--dcp-accent), color-mix(in srgb, var(--dcp-accent) 60%, #281176)); }
.dcp-login-brand { display: flex; align-items: center; gap: 13px; font-weight: 850; font-size: 19px; }
.dcp-login-art .dcp-logo i { background: #fff; }
.dcp-login-art .dcp-kicker { color: rgba(255,255,255,.66); }
.dcp-login-art h1 { max-width: 670px; font-size: clamp(38px, 5vw, 68px); line-height: 1.02; letter-spacing: -3px; margin: 14px 0 22px; }
.dcp-login-art p { max-width: 570px; color: rgba(255,255,255,.76); font-size: 16px; }
.dcp-login-pills { display: flex; gap: 9px; flex-wrap: wrap; }
.dcp-login-pills span { border: 1px solid rgba(255,255,255,.23); background: rgba(255,255,255,.10); padding: 8px 12px; border-radius: 8px; font-size: 10px; font-weight: 750; }
.dcp-login-panel { padding: 40px; display: grid; place-items: center; }
.dcp-login-card { width: min(430px, 100%); }
.dcp-login-card h2 { font-size: 31px; letter-spacing: -1px; margin: 8px 0 8px; }
.dcp-login-card > p { color: var(--dcp-muted); margin-bottom: 27px; }
.dcp-login-card form p { margin: 0 0 15px; }
.dcp-login-card form label { display: block; font-size: 11px; font-weight: 750; color: #55586b; }
.dcp-login-card .input { width: 100%; height: 47px; border: 1px solid #dfe1e9; border-radius: 8px; margin-top: 7px; padding: 0 12px; box-shadow: none; }
.dcp-login-card .login-remember label { display: flex; align-items: center; gap: 7px; color: var(--dcp-muted); font-weight: 500; }
.dcp-login-card .button-primary { width: 100%; min-height: 47px; border: 0; border-radius: 8px; background: var(--dcp-accent); color: #fff; font-weight: 800; box-shadow: 0 10px 24px color-mix(in srgb, var(--dcp-accent) 25%, transparent); }
.dcp-forgot { display: block; color: var(--dcp-accent) !important; text-align: center; font-weight: 750; font-size: 11px; margin-top: 18px; }
.dcp-auth-register .dcp-login-art { position: sticky; top: 0; height: 100vh; }
.dcp-auth-register .dcp-login-panel { padding-block: 32px; }
.dcp-signup-card { width: min(620px, 100%); }
.dcp-auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 5px; margin-bottom: 26px; border-radius: 9px; background: #f2f3f7; }
.dcp-auth-tabs a { min-height: 38px; padding: 0 12px; border-radius: 6px; color: #7d8090; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 750; }
.dcp-auth-tabs a.is-active { color: var(--dcp-accent); background: #fff; box-shadow: 0 4px 15px rgba(31,25,75,.08); }
.dcp-auth-alert { display: flex; align-items: flex-start; gap: 9px; padding: 11px 12px; margin-bottom: 19px; border: 1px solid; border-radius: 8px; font-size: 11px; font-weight: 650; }
.dcp-auth-alert .dcp-icon { width: 17px; height: 17px; margin-top: 1px; }
.dcp-auth-alert.is-error { color: #b83246; border-color: #ffcbd2; background: #fff0f2; }
.dcp-auth-alert.is-success { color: #087a4b; border-color: #bfead5; background: #eafaf2; }
.dcp-auth-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 23px; }
.dcp-signin-form { grid-template-columns: 1fr; }
.dcp-auth-field { display: block; min-width: 0; }
.dcp-auth-field > span:first-child { display: block; margin-bottom: 6px; color: #55586b; font-size: 10px; font-weight: 750; }
.dcp-auth-field > input,
.dcp-password-input { width: 100%; height: 45px; border: 1px solid #dfe1e9; border-radius: 8px; background: #fff; display: flex; align-items: center; overflow: hidden; transition: border-color .18s ease, box-shadow .18s ease; }
.dcp-auth-field > input { padding: 0 11px; outline: 0; }
.dcp-password-input input { width: 100%; height: 100%; min-width: 0; padding: 0 8px 0 11px; border: 0 !important; outline: 0; box-shadow: none !important; }
.dcp-password-input button { height: 29px; margin-right: 7px; padding: 0 8px; border: 0; border-radius: 5px; color: var(--dcp-accent); background: #fff1ed; font-size: 9px; font-weight: 800; }
.dcp-auth-field > input:focus,
.dcp-password-input:focus-within { border-color: var(--dcp-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--dcp-accent) 10%, transparent); }
.dcp-auth-field input::placeholder { color: #afb1bd; }
.dcp-auth-wide { grid-column: 1 / -1; }
.dcp-password-help { margin-top: -3px; color: #9295a5; font-size: 9px; }
.dcp-password-meter { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; margin-bottom: 7px; }
.dcp-password-meter i { height: 3px; border-radius: 3px; background: #e3e4ea; }
.dcp-register-form[data-strength="1"] .dcp-password-meter i:nth-child(1) { background: #e95768; }
.dcp-register-form[data-strength="2"] .dcp-password-meter i:nth-child(-n+2) { background: #ed9b2c; }
.dcp-register-form[data-strength="3"] .dcp-password-meter i:nth-child(-n+3) { background: #4f8ee8; }
.dcp-register-form[data-strength="4"] .dcp-password-meter i { background: #16a66a; }
.dcp-authority { display: flex; align-items: flex-start; gap: 8px; color: #696c7d; font-size: 10px; cursor: pointer; }
.dcp-authority input { width: 15px; height: 15px; margin: 1px 0 0; flex: 0 0 auto; accent-color: var(--dcp-accent); }
.dcp-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.dcp-signin-options { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: -2px; }
.dcp-signin-options label { display: flex !important; align-items: center; gap: 7px; color: #777a8b !important; font-size: 10px !important; font-weight: 550 !important; cursor: pointer; }
.dcp-signin-options input { width: 15px; height: 15px; margin: 0; accent-color: var(--dcp-accent); }
.dcp-signin-options a { color: var(--dcp-accent) !important; font-size: 10px; font-weight: 750; }
.dcp-auth-submit { min-height: 47px; border: 0; border-radius: 8px; color: #fff; background: var(--dcp-accent); display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 800; box-shadow: 0 10px 24px color-mix(in srgb, var(--dcp-accent) 25%, transparent); }
.dcp-auth-submit .dcp-icon { width: 17px; }
.dcp-auth-submit:disabled { opacity: .65; cursor: wait; }
.dcp-auth-switch { margin: 18px 0 0 !important; color: #858898; text-align: center; font-size: 10px; }
.dcp-auth-switch a { color: var(--dcp-accent) !important; font-weight: 800; }
.dcp-person-company { display: block; margin-bottom: 2px; color: var(--dcp-accent); font-size: 9px; font-weight: 750; }

@media (max-width: 1180px) {
  .dcp-stat-grid { grid-template-columns: repeat(2, 1fr); }
  .dcp-project-grid, .dcp-people-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .dcp-grid-main-side { grid-template-columns: minmax(0, 1.5fr) minmax(270px, .8fr); }
}

@media (max-width: 960px) {
  .dcp-mobile-toggle { display: grid; }
  .dcp-sidebar { transform: translateX(-105%); box-shadow: 10px 0 40px rgba(20,18,42,.14); }
  #dcp-portal.dcp-menu-open .dcp-sidebar { transform: translateX(0); }
  #dcp-portal.dcp-menu-open .dcp-overlay { display: block; }
  .dcp-main { width: 100%; margin-left: 0; }
  .dcp-topbar { padding: 0 20px 0 72px; }
  .dcp-content { padding: 30px 24px 55px; }
  .dcp-grid-2-1, .dcp-grid-main-side { grid-template-columns: 1fr; }
  .dcp-project-hero { grid-template-columns: 1fr; }
  .dcp-login-wrap { grid-template-columns: 1fr; }
  .dcp-login-art { min-height: 430px; gap: 45px; }
  .dcp-auth-register .dcp-login-art { position: relative; height: auto; }
}

@media (max-width: 680px) {
  #dcp-portal { font-size: 13px; }
  .dcp-topbar { height: 72px; }
  .dcp-top-user div { display: none; }
  .dcp-search { width: calc(100% - 55px); }
  .dcp-content { padding: 25px 15px 45px; }
  .dcp-page-head { align-items: flex-start; flex-direction: column; }
  .dcp-page-head > div + * { width: 100%; }
  .dcp-page-head > .dcp-btn { width: 100%; }
  .dcp-head-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .dcp-head-actions .dcp-btn { width: 100%; }
  .dcp-stat-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .dcp-stat { min-height: 98px; padding: 15px; gap: 10px; }
  .dcp-stat-icon { width: 39px; height: 39px; }
  .dcp-stat div strong { font-size: 23px; }
  .dcp-stat div span { font-size: 9px; }
  .dcp-panel { padding: 17px; }
  .dcp-project-grid, .dcp-people-grid { grid-template-columns: 1fr; }
  .dcp-project-hero { padding: 21px; gap: 23px; }
  .dcp-project-hero dl { grid-template-columns: 1fr 1fr; }
  .dcp-task-row { flex-wrap: wrap; }
  .dcp-task-row > .dcp-badge { order: 3; }
  .dcp-detail-meta { grid-template-columns: 1fr 1fr; }
  .dcp-update-form-head, .dcp-comment-actions { align-items: stretch; flex-direction: column; }
  .dcp-update-form-head > span { padding-bottom: 0; }
  .dcp-update-date input { width: 100%; }
  .dcp-message > div { max-width: calc(100% - 48px); }
  .dcp-attachment { min-width: 0; width: 100%; }
  .dcp-modal-card { inset: 10px; width: auto; border-radius: 13px; padding: 28px 18px; }
  .dcp-form { grid-template-columns: 1fr; }
  .dcp-span-2 { grid-column: auto; }
  .dcp-form-actions { flex-direction: column-reverse; }
  .dcp-form-actions .dcp-btn { width: 100%; }
  .dcp-check-grid { grid-template-columns: 1fr; }
  .dcp-login-art { min-height: 390px; padding: 30px 24px; }
  .dcp-login-art h1 { letter-spacing: -2px; }
  .dcp-login-panel { padding: 55px 22px; }
  .dcp-auth-register .dcp-login-panel { padding: 42px 18px; }
  .dcp-auth-form { grid-template-columns: 1fr; }
  .dcp-auth-wide { grid-column: auto; }
}
/* Workspace v2 */
.dcp-work-pad{padding:24px;margin-bottom:22px}.dcp-work-pad h2{margin:0 0 14px}.dcp-work-pad p{line-height:1.65}.dcp-work-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid #ececf2}.dcp-work-row p{margin:7px 0 0;color:#697386;font-size:13px}.dcp-work-overdue{color:#b42318;font-weight:600}.dcp-work-event{border-left:3px solid var(--dcp-accent);padding:12px 20px;margin:20px 0;background:#fafaff}.dcp-work-event small{color:#697386}.dcp-feed-url{width:100%;padding:13px;border:1px solid #d8dce6;border-radius:8px}.dcp-work-pad select{padding:10px;border:1px solid #d8dce6;border-radius:8px}.dcp-login-visual{display:none!important}.dcp-login-wrap{min-height:100vh!important;justify-content:center!important}.dcp-login-card{max-width:580px}.dcp-work-pad a:focus-visible{outline:3px solid var(--dcp-accent);outline-offset:4px}@media(max-width:650px){.dcp-work-row{align-items:flex-start;flex-direction:column;gap:8px}.dcp-work-pad{padding:18px}}

#dcp-portal.dcp-login-wrap{display:flex;min-height:100vh;background:#f5f6fa}#dcp-portal .dcp-login-art{display:none}#dcp-portal .dcp-login-panel{width:100%;max-width:660px;margin:auto;padding:32px 20px}#dcp-portal .dcp-login-card{width:100%;margin:auto}

.dcp-month-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.dcp-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.dcp-calendar-grid>b{padding:8px;font-size:12px}.dcp-calendar-day{min-height:100px;padding:8px;border:1px solid #e4e7ee;border-radius:6px}.dcp-calendar-day.today{border:2px solid var(--dcp-accent)}.dcp-calendar-day a{display:block;font-size:11px;background:#fff1ed;padding:5px;margin-top:6px;overflow-wrap:anywhere}.dcp-calendar-day.empty{background:#fafafa}@media(max-width:600px){.dcp-calendar-day{padding:3px;min-height:70px}.dcp-calendar-day a{font-size:9px;padding:2px}.dcp-month-head h2{font-size:17px}}
/* Branded split-screen login + booking, v2.1 */
#dcp-portal.dcp-login-wrap{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:start!important;gap:0!important;background:#fff!important;padding:0!important;min-height:100vh!important;--dcp-accent:#f2775c!important}
#dcp-portal.dcp-login-wrap .dcp-login-panel{width:100%!important;max-width:none!important;min-height:100vh;box-sizing:border-box;display:flex;align-items:center;padding:48px clamp(24px,5vw,90px)!important;margin:0!important;background:#fff}
#dcp-portal.dcp-login-wrap .dcp-login-card{max-width:620px!important;width:100%!important;margin:auto!important;padding:0!important;border:0!important;box-shadow:none!important}
.dcp-auth-logo{display:block;margin-bottom:16px}.dcp-auth-logo img{display:block;width:320px;max-width:100%;height:auto}.dcp-sidebar-logo{width:190px!important;max-width:100%;height:auto!important;background:white;border-radius:6px;padding:7px}.dcp-brand>span{display:none}
#dcp-portal .dcp-auth-visual{display:block!important;position:sticky;top:0;height:100vh;min-height:620px;background:#092A47;overflow:hidden}
.dcp-auth-visual>img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.dcp-auth-visual-copy{position:absolute;top:9%;left:10%;right:8%;color:white}.dcp-auth-visual-copy span{font-size:11px;letter-spacing:2px;font-weight:700;color:#ffb69d}.dcp-auth-visual-copy h2{font-size:clamp(28px,3.4vw,58px)!important;line-height:1.12!important;letter-spacing:-1.7px;color:white!important;margin:20px 0!important}.dcp-auth-visual-copy p{font-size:16px!important;max-width:310px;color:#e6edf1!important;line-height:1.7}
#dcp-portal.dcp-booking-public{display:block!important;min-height:100vh;background:#f6f7f9;color:#092A47;--dcp-accent:#f2775c;padding:0 5vw 60px;box-sizing:border-box}.dcp-booking-header{max-width:1250px;margin:auto;padding:28px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.dcp-booking-header img{width:260px;max-width:60vw;height:auto}.dcp-booking-header>a{font-size:14px;font-weight:600}.dcp-booking-layout{max-width:1250px;margin:30px auto;display:grid;grid-template-columns:0.85fr 1.15fr;gap:50px;align-items:start}.dcp-booking-intro{padding:42px 34px;background:#092A47;color:white;border-radius:18px}.dcp-booking-intro>span{font-size:11px;letter-spacing:2px;color:#ffb69d}.dcp-booking-intro h1{font-size:42px;line-height:1.12;color:white;letter-spacing:-1px;margin:24px 0}.dcp-booking-intro p,.dcp-booking-intro li{line-height:1.7;color:#d2dfe8}.dcp-booking-intro a{color:#ffb69d;overflow-wrap:anywhere}.dcp-booking-small{font-size:13px}.dcp-booking-form{background:#fff;padding:36px;border-radius:18px;border:1px solid #e4e8ed}.dcp-booking-form h2{font-size:26px;margin:0 0 24px}.dcp-booking-date{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:0 0 25px}.dcp-booking-date label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600}.dcp-booking-date input,.dcp-booking-form select,.dcp-booking-form textarea{border:1px solid #dce1e9;border-radius:8px;padding:13px;font:inherit;width:100%;box-sizing:border-box;background:#fff;color:#092A47}.dcp-booking-form .dcp-auth-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dcp-booking-form .dcp-auth-wide{grid-column:1/-1}.dcp-booking-form button{cursor:pointer}.dcp-booking-form .dcp-honeypot{position:absolute;left:-9999px}
@media(max-width:900px){#dcp-portal.dcp-login-wrap{grid-template-columns:1fr!important}#dcp-portal .dcp-auth-visual{display:none!important}#dcp-portal.dcp-login-wrap .dcp-login-panel{padding:32px 24px!important;min-height:100vh}.dcp-booking-layout{grid-template-columns:1fr;gap:24px}.dcp-booking-intro{padding:28px}.dcp-booking-intro h1{font-size:32px}.dcp-booking-form{padding:24px}.dcp-booking-form .dcp-auth-form{grid-template-columns:1fr}.dcp-booking-header img{width:220px}}
#dcp-portal .dcp-login-card form label.dcp-authority{display:flex;align-items:flex-start;gap:9px;font-weight:500;line-height:1.5}#dcp-portal .dcp-authority input{flex:0 0 auto;margin-top:3px}

/* Light portal surfaces retained; branding is limited to text and accents. */
#dcp-portal{--dcp-accent:#F2775C!important;--dcp-accent-dark:#092A47;--dcp-ink:#092A47;--dcp-muted:#697386;--dcp-line:#e8eaf2;--dcp-bg:#f3f5fa;--dcp-white:#fff;font-family:Outfit,sans-serif!important;color:#000000}
#dcp-portal :is(h1,h2,h3,h4,h5,h6){color:#092A47}
#dcp-portal :is(button,input,select,textarea){font-family:Outfit,sans-serif}
#dcp-portal :is(.dcp-btn,.dcp-auth-submit,.button-primary){color:#000000!important}
#dcp-portal :is(.dcp-btn,.dcp-auth-submit,.button-primary):hover{background:#092A47;color:#fff!important}
#dcp-portal :is(.dcp-btn-light,.dcp-btn-danger-outline){color:#092A47!important}
#dcp-portal .dcp-nav a.is-active{color:#092A47;background:#fff1ed;box-shadow:none}
#dcp-portal .dcp-auth-tabs a.is-active{color:#092A47;background:#fff}
#dcp-portal .dcp-auth-visual-copy h2,#dcp-portal .dcp-booking-intro h1,#dcp-portal .dcp-project-hero h2{color:#fff}
#dcp-portal .dcp-progress>span{background:#F2775C}

.dcp-availability summary{font-size:18px;font-weight:650;color:#092A47;cursor:pointer}.dcp-availability[open] summary{margin-bottom:18px}.dcp-availability form{margin-top:20px}.dcp-availability fieldset{border:1px solid #e8eaf2;padding:16px;border-radius:8px;margin:20px 0}.dcp-availability legend{padding:0 6px;font-weight:600}.dcp-availability-choices,.dcp-availability-hours{display:flex;flex-wrap:wrap;gap:14px 20px}.dcp-availability-choices label{display:flex;align-items:center;gap:6px}.dcp-availability input[type=number]{width:85px;padding:8px;border:1px solid #d8dce6;border-radius:6px;font:inherit}.dcp-availability input[type=checkbox]{accent-color:#092A47}.dcp-booking-date select{max-width:100%;min-height:48px}.dcp-availability form>p{font-size:13px;line-height:1.7}
