:root { --navy:#182038; --navy-2:#222d4b; --teal:#007788; --ink:#202630; --muted:#687080; --line:#dfe3e9; --paper:#fbfbfa; --surface:#fff; --serif:"Cormorant Garamond",Georgia,serif; --sans:"Montserrat",Arial,sans-serif; --crm-control-height:44px; --crm-weight-copy:400; --crm-weight-value:400; --crm-weight-heading:600; --crm-weight-label:700; }
* { box-sizing:border-box; } html { min-height:100%; background:var(--navy); } body { min-width:320px; min-height:100vh; margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); } button,input { font:inherit; } button { cursor:pointer; } a { color:inherit; text-decoration:none; }
.section-label { margin:0 0 9px; color:var(--teal); font-size:10px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }.button { min-height:42px; padding:0 17px; border:1px solid transparent; border-radius:4px; font-size:12px; font-weight:700; transition:background .2s,color .2s,border-color .2s,transform .2s; }.button:hover { transform:translateY(-1px); }.button-primary { color:#fff; background:var(--navy); }.button-primary:hover { background:var(--teal); }.button-outline { color:var(--navy); border-color:var(--navy); background:transparent; }.button-outline:hover { color:#fff; background:var(--navy); }.button-small { min-height:36px; padding:0 13px; font-size:11px; }.text-button { padding:0; color:var(--teal); border:0; background:transparent; font-size:11px; font-weight:700; }.text-button span { margin-left:5px; font-size:15px; }

.access-shell { display:grid; grid-template-columns:minmax(340px,1.08fr) minmax(420px,.92fr); min-height:100vh; }.access-intro { position:relative; display:flex; flex-direction:column; justify-content:space-between; min-height:100vh; padding:48px clamp(42px,7vw,120px); overflow:hidden; color:#fff; background:linear-gradient(110deg,rgba(24,32,56,.96),rgba(24,32,56,.79)),url('../assets/about.jpg') center/cover; }.access-intro::after { position:absolute; right:8%; bottom:-23%; width:min(460px,45vw); aspect-ratio:1; border:1px solid rgba(255,255,255,.16); border-radius:50%; content:""; }.access-brand { position:relative; z-index:1; display:inline-flex; align-items:center; gap:14px; width:max-content; }.access-brand img { width:44px; height:44px; padding:6px; object-fit:contain; border:1px solid rgba(255,255,255,.24); }.access-brand span { display:grid; gap:3px; }.access-brand strong { font-family:var(--serif); font-size:25px; font-weight:600; line-height:.8; }.access-brand small { font-size:8px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }.access-intro-copy { position:relative; z-index:1; max-width:510px; margin:auto 0; }.access-intro-copy .section-label { color:rgba(255,255,255,.72); }.access-intro h1 { max-width:480px; margin:0; font-family:var(--serif); font-size:clamp(56px,6vw,86px); font-weight:500; line-height:.86; }.access-intro-copy>p:last-child { max-width:365px; margin:28px 0 0; color:rgba(255,255,255,.8); font-size:13px; line-height:1.8; }.access-support { position:relative; z-index:1; margin:0; color:rgba(255,255,255,.62); font-size:11px; }.access-support a { color:#fff; }.access-panel { display:grid; place-items:center; padding:48px; background:var(--paper); }.access-panel-inner { width:min(100%,400px); }.access-panel h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:48px; font-weight:500; line-height:.95; }.access-lead { margin:18px 0 36px; color:var(--muted); font-size:12px; line-height:1.7; }.access-form { display:grid; gap:20px; }.access-form label { display:grid; gap:8px; color:var(--ink); font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.access-form input { width:100%; height:48px; padding:0 13px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; outline:0; background:#fff; font-size:13px; letter-spacing:0; text-transform:none; }.access-form input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }.access-form .button { margin-top:8px; }.access-note { min-height:20px; margin:19px 0 0; color:var(--muted); font-size:10px; line-height:1.6; }
.access-intro.is-customer-portal { background:linear-gradient(110deg,rgba(24,32,56,.94),rgba(0,81,92,.76)),url('../assets/about.jpg') center/cover; }.access-actions { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:21px; }.access-link { color:var(--teal); font-size:10px; font-weight:700; line-height:1.5; }.access-link:hover { text-decoration:underline; }
.partner-registration-fields { display:grid; gap:20px; padding:19px; border:1px solid #cfe2e4; border-radius:4px; background:#f3f9f9; }
.partner-registration-fields[hidden],.access-form label[hidden] { display:none; }
.partner-registration-fields>p { margin:0 0 -2px; color:var(--teal); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.user-request-summary { display:grid; gap:12px; min-width:0; }
.user-request-partner-data { display:grid; gap:6px; margin:0 0 0 48px; }
.user-request-partner-data>div { display:grid; grid-template-columns:72px minmax(0,1fr); gap:8px; }
.user-request-partner-data dt,.user-request-partner-data dd { min-width:0; margin:0; font-size:9px; line-height:1.5; }
.user-request-partner-data dt { color:var(--muted); font-weight:700; }
.user-request-partner-data dd { overflow-wrap:anywhere; color:var(--ink); }
.user-request-partner-data a { color:var(--teal); }
@media (max-width:520px) { .user-request-partner-data { margin-left:0; }.user-request-partner-data>div { grid-template-columns:1fr; gap:2px; } }

.preview-notice { position:sticky; top:0; z-index:20; padding:9px 20px; color:#fff; background:var(--teal); text-align:center; font-size:10px; font-weight:700; letter-spacing:.03em; }.app-shell { display:grid; grid-template-columns:222px minmax(0,1fr); min-height:calc(100vh - 34px); }.app-sidebar { position:sticky; top:34px; display:flex; flex-direction:column; height:calc(100vh - 34px); padding:24px 12px 18px; color:#fff; background:var(--navy); }.app-brand { display:grid; justify-items:center; gap:8px; padding:6px 0 34px; }.app-brand img { width:48px; height:48px; padding:6px; object-fit:contain; border:1px solid rgba(255,255,255,.22); }.app-brand span { color:rgba(255,255,255,.7); font-size:9px; font-weight:800; letter-spacing:.25em; }.app-nav { display:grid; gap:3px; }.app-nav a,.app-sidebar-bottom a { display:flex; align-items:center; gap:12px; min-height:42px; padding:0 14px; color:rgba(255,255,255,.73); border-left:2px solid transparent; font-size:11px; font-weight:600; transition:color .2s,background .2s,border-color .2s; }.app-nav a:hover,.app-nav a.is-active,.app-sidebar-bottom a:hover { color:#fff; border-left-color:var(--teal); background:rgba(255,255,255,.07); }.nav-icon { display:inline-grid; width:16px; place-items:center; font-size:16px; font-weight:400; }.app-sidebar-bottom { display:grid; gap:8px; margin-top:auto; }.app-sidebar-bottom small { padding:8px 14px 0; color:rgba(255,255,255,.4); font-size:9px; }.app-main { min-width:0; background:var(--paper); }.app-header { display:flex; align-items:center; min-height:72px; padding:0 42px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.87); }.app-header>p { margin:0; color:var(--muted); font-size:11px; }.sidebar-toggle { display:none; margin-right:14px; padding:8px; color:var(--navy); border:0; background:transparent; font-size:20px; }.profile { display:flex; align-items:center; gap:10px; margin-left:auto; }.profile-mark { display:inline-grid; width:34px; height:34px; place-items:center; color:#fff; border-radius:50%; background:var(--navy); font-size:10px; font-weight:700; }.profile>span:last-child { display:grid; gap:2px; }.profile strong { font-size:11px; }.profile small { color:var(--muted); font-size:9px; }.app-content { max-width:1460px; margin:0 auto; padding:44px clamp(22px,4vw,64px) 64px; }.page-heading { display:flex; align-items:end; justify-content:space-between; gap:22px; margin-bottom:31px; }.page-heading h1 { margin:0; color:var(--navy); font-family:var(--serif); font-size:clamp(42px,4vw,60px); font-weight:500; line-height:.9; }.project-focus { display:grid; grid-template-columns:minmax(300px,1.25fr) minmax(290px,.75fr); overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.project-image { min-height:340px; background:var(--navy); }.project-image img { width:100%; height:100%; object-fit:cover; }.project-summary { padding:38px; }.project-summary h2,.data-panel h2,.project-table h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:29px; font-weight:500; line-height:1; }.project-summary>p:not(.section-label) { margin:8px 0 27px; color:var(--muted); font-size:11px; }.project-summary dl { display:grid; gap:12px; margin:0 0 25px; }.project-summary dl div { display:grid; grid-template-columns:1.05fr .95fr; gap:12px; }.project-summary dt,.project-summary dd { margin:0; font-size:11px; }.project-summary dt { color:var(--muted); }.project-summary dd { color:var(--teal); font-weight:700; }.progress-row { display:flex; align-items:center; gap:12px; margin-bottom:25px; }.progress-row>span { display:block; flex:1; height:8px; overflow:hidden; background:#e5e9ed; }.progress-row i { display:block; height:100%; background:var(--teal); }.progress-row strong { color:var(--navy); font-size:11px; }
.dashboard-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px; }.data-panel,.project-table { border:1px solid var(--line); border-radius:6px; background:var(--surface); }.data-panel>header,.project-table>header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px 25px; border-bottom:1px solid var(--line); }.data-panel h2 { font-size:25px; }.task-list,.update-list { display:grid; margin:0; padding:0 25px; list-style:none; }.task-list li,.update-list li { display:grid; align-items:center; min-height:68px; border-bottom:1px solid var(--line); }.task-list li { grid-template-columns:18px minmax(0,1fr) auto; gap:12px; }.task-list button { width:15px; height:15px; padding:0; border:1px solid #919aa8; border-radius:2px; background:#fff; }.task-list strong,.update-list strong { display:block; overflow:hidden; font-size:11px; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }.task-list small,.update-list small,td small { display:block; margin-top:3px; color:var(--muted); font-size:9px; }.task-list time { color:var(--muted); font-size:10px; }.data-panel>.button { margin:19px 25px 24px; }.update-list li { grid-template-columns:34px minmax(0,1fr) auto; gap:12px; }.update-date { display:grid; place-items:center; width:34px; height:38px; color:var(--teal); border:1px solid var(--line); font-family:var(--serif); font-size:18px; line-height:.8; }.update-date small { margin:3px 0 0; font-family:var(--sans); font-size:7px; font-weight:800; }.update-status { color:var(--teal); font-size:9px; font-weight:700; }.project-table { margin-top:18px; }.project-table>header { padding:25px; }.project-table .section-label { margin-bottom:5px; }.table-scroll { overflow-x:auto; }table { width:100%; min-width:720px; border-collapse:collapse; }th,td { padding:15px 25px; border-bottom:1px solid var(--line); text-align:left; }th { color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }td { color:var(--ink); font-size:11px; }td strong { font-size:11px; }.phase { color:var(--teal); font-weight:700; }.visibility { display:inline-block; color:var(--muted); font-size:9px; font-weight:700; }.visibility-live { color:var(--teal); }.demo-toast { position:fixed; right:25px; bottom:25px; z-index:25; max-width:310px; padding:14px 17px; color:#fff; background:var(--navy); box-shadow:0 16px 35px rgba(24,32,56,.24); font-size:11px; line-height:1.5; opacity:0; pointer-events:none; transform:translateY(10px); transition:opacity .2s,transform .2s; }.demo-toast.is-visible { opacity:1; transform:translateY(0); }
.customer-heading { margin-bottom:24px; }.customer-heading>div>p:last-child { max-width:455px; margin:14px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }.customer-project-card { display:grid; grid-template-columns:1fr 1fr; overflow:hidden; border:1px solid var(--line); border-radius:6px; background:#fff; }.customer-project-copy { min-width:0; padding:38px; }.customer-project-copy h2,.customer-contact h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:35px; font-weight:500; }.customer-project-copy>p:not(.section-label) { margin:12px 0 28px; color:var(--muted); font-size:12px; line-height:1.7; }.customer-project-copy dl { display:grid; gap:12px; margin:0; }.customer-project-copy dl div { display:grid; grid-template-columns:1fr 1fr; gap:15px; min-width:0; }.customer-project-copy dt,.customer-project-copy dd { min-width:0; margin:0; font-size:11px; }.customer-project-copy dt { color:var(--muted); }.customer-project-copy dd { color:var(--navy); font-weight:700; }.customer-contract-finance { min-width:0; margin-top:25px; padding-top:22px; border-top:1px solid var(--line); }.customer-contract-finance .section-label { margin-bottom:13px; }.customer-contract-finance dd { overflow-wrap:anywhere; line-height:1.5; }.customer-contract-finance .customer-contract-schedule { align-items:start; }.customer-grid { display:grid; grid-template-columns:1.12fr .88fr; gap:18px; margin-top:18px; }.customer-timeline,.document-list { display:grid; margin:0; padding:0 25px; list-style:none; }.customer-timeline li { display:grid; grid-template-columns:53px minmax(0,1fr); gap:14px; padding:21px 0; border-bottom:1px solid var(--line); }.customer-timeline li>span { color:var(--teal); font-size:9px; font-weight:800; line-height:1.45; }.customer-timeline strong,.document-list strong { display:block; font-size:12px; }.customer-timeline p { margin:7px 0 10px; color:var(--muted); font-size:11px; line-height:1.6; }.document-list li { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:80px; border-bottom:1px solid var(--line); }.document-list li>span { display:grid; width:36px; height:36px; place-items:center; color:var(--teal); border:1px solid var(--line); font-size:9px; font-weight:800; }.customer-contact { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:18px; padding:31px 32px; color:#fff; background:var(--navy); }.customer-contact .section-label { color:rgba(255,255,255,.58); }.customer-contact h2 { color:#fff; font-size:31px; }.customer-contact p:last-child { max-width:520px; margin:9px 0 0; color:rgba(255,255,255,.72); font-size:11px; line-height:1.7; }.customer-contact .button-primary { color:var(--navy); background:#fff; }.customer-contact .button-primary:hover { color:#fff; background:var(--teal); }
@media (max-width:980px) { .access-shell { grid-template-columns:1fr; }.access-intro { min-height:410px; padding:34px 42px; }.access-intro-copy { margin:72px 0 0; }.access-support { display:none; }.access-panel { min-height:520px; }.app-shell { grid-template-columns:72px minmax(0,1fr); }.app-sidebar { align-items:center; padding:21px 8px; }.app-brand { padding-bottom:28px; }.app-brand span,.app-nav a span:last-child,.app-sidebar-bottom a span:last-child,.app-sidebar-bottom small { display:none; }.app-nav a,.app-sidebar-bottom a { justify-content:center; padding:0; border-left:0; border-bottom:2px solid transparent; }.app-nav a:hover,.app-nav a.is-active,.app-sidebar-bottom a:hover { border-bottom-color:var(--teal); }.dashboard-grid,.customer-grid { grid-template-columns:1fr; }.customer-project-card { grid-template-columns:minmax(260px,.9fr) 1.1fr; } }
@media (max-width:660px) { .access-panel { padding:46px 26px; }.access-intro { min-height:350px; padding:28px 26px; }.access-intro h1 { font-size:54px; }.access-intro-copy { margin-top:58px; }.access-intro-copy>p:last-child { margin-top:17px; }.app-shell { display:block; }.app-sidebar { position:fixed; top:34px; left:0; z-index:15; width:220px; height:calc(100vh - 34px); align-items:stretch; padding:22px 12px; transform:translateX(-100%); transition:transform .25s ease; }.app-sidebar.is-open { transform:translateX(0); }.app-brand { justify-items:start; grid-template-columns:48px auto; align-items:center; padding:0 14px 28px; }.app-brand span,.app-nav a span:last-child,.app-sidebar-bottom a span:last-child,.app-sidebar-bottom small { display:inline; }.app-nav a,.app-sidebar-bottom a { justify-content:flex-start; padding:0 14px; border-left:2px solid transparent; border-bottom:0; }.app-nav a:hover,.app-nav a.is-active,.app-sidebar-bottom a:hover { border-left-color:var(--teal); }.app-header { min-height:62px; padding:0 18px; }.sidebar-toggle { display:block; }.app-header>p { display:none; }.app-content { padding:31px 18px 45px; }.page-heading { align-items:start; flex-direction:column; margin-bottom:24px; }.page-heading h1 { font-size:45px; }.project-focus,.customer-project-card { grid-template-columns:minmax(0,1fr); }.project-image { min-height:205px; }.project-summary,.customer-project-copy { padding:25px; }.project-summary h2,.customer-project-copy h2 { font-size:26px; }.data-panel>header,.project-table>header { align-items:flex-start; flex-direction:column; padding:21px 18px; }.task-list,.update-list,.customer-timeline,.document-list { padding:0 18px; }.task-list strong,.update-list strong { white-space:normal; }.task-list li { grid-template-columns:18px minmax(0,1fr); padding:10px 0; }.task-list time { display:none; }.update-list li { grid-template-columns:34px minmax(0,1fr); padding:10px 0; }.update-status { display:none; }.data-panel>.button { margin-left:18px; }th,td { padding:13px 18px; }.customer-project-copy dl div { grid-template-columns:minmax(0,1fr); gap:4px; }.customer-contact { align-items:flex-start; flex-direction:column; padding:27px 24px; }.document-list li { grid-template-columns:36px minmax(0,1fr); padding:12px 0; }.document-list .text-button { grid-column:2; justify-self:start; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; } }

.access-link { color:var(--teal); font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.access-message { margin:18px 0 0; padding:11px 13px; border-left:3px solid; font-size:10px; font-weight:600; line-height:1.6; }
.access-message.is-error { color:#922c37; border-color:#bd3c49; background:#fff1f2; }
.access-message.is-notice { color:#075f6c; border-color:var(--teal); background:#edf8f9; }
.logout-form button { padding:6px 8px; color:var(--muted); border:0; background:transparent; font-size:9px; font-weight:700; }
.logout-form button:hover { color:var(--teal); }
.access-form select,.user-approval-form select { width:100%; min-height:48px; padding:0 13px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; outline:0; background:#fff; font:inherit; font-size:12px; }.access-form select:focus,.user-approval-form select:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.user-approval-form { grid-template-columns:repeat(2,minmax(150px,1fr)) auto auto; }
.admin-message { margin:0 0 18px; padding:12px 14px; border-left:3px solid; font-size:11px; font-weight:600; line-height:1.6; }.admin-message.is-error { color:#922c37; border-color:#bd3c49; background:#fff1f2; }.admin-message.is-notice { color:#075f6c; border-color:var(--teal); background:#edf8f9; }
.user-panel { margin-bottom:18px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.user-panel>header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:25px; border-bottom:1px solid var(--line); }.user-panel h2,.module-empty h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:29px; font-weight:500; line-height:1; }.panel-count { display:grid; width:34px; height:34px; place-items:center; color:#fff; border-radius:50%; background:var(--teal); font-size:11px; font-weight:800; }.empty-state { margin:0; padding:28px 25px; color:var(--muted); font-size:11px; }.user-request-list { display:grid; }.user-request { display:grid; grid-template-columns:minmax(210px,.8fr) minmax(420px,1.2fr); align-items:center; gap:24px; padding:22px 25px; border-bottom:1px solid var(--line); }.user-request:last-child { border-bottom:0; }.user-request-person { display:flex; align-items:center; gap:12px; min-width:0; }.user-request-person>span { display:grid; flex:0 0 auto; width:36px; height:36px; place-items:center; color:#fff; border-radius:50%; background:var(--navy); font-size:11px; font-weight:800; }.user-request-person strong { display:block; overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.user-request-person small { display:block; margin-top:4px; color:var(--muted); font-size:9px; line-height:1.5; }.user-approval-form { display:grid; grid-template-columns:minmax(150px,1fr) auto auto; align-items:end; gap:9px; }.user-approval-form label { display:grid; gap:6px; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.user-approval-form select { min-height:36px; }.button-danger { color:#9b2933; border-color:#d9a1a6; background:#fff; }.button-danger:hover { color:#fff; border-color:#a3343e; background:#a3343e; }.user-status { display:inline-block; font-size:9px; font-weight:800; }.user-status-approved { color:var(--teal); }.user-status-pending { color:#987126; }.user-status-rejected { color:#a3343e; }
.module-hero { max-width:780px; padding:8px 0 38px; }.module-hero h1 { margin:0; color:var(--navy); font-family:var(--serif); font-size:clamp(48px,5vw,68px); font-weight:500; line-height:.9; }.module-hero>p:not(.section-label) { max-width:620px; margin:20px 0 14px; color:var(--muted); font-size:13px; line-height:1.75; }.module-hero>span { color:var(--teal); font-size:10px; font-weight:800; }.module-empty { padding:30px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.module-empty p { max-width:580px; margin:12px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }
@media (max-width:820px) { .user-request { grid-template-columns:1fr; gap:17px; }.user-approval-form { grid-template-columns:minmax(150px,1fr) auto auto; } }
@media (max-width:520px) { .user-panel>header,.user-request { padding-right:18px; padding-left:18px; }.user-approval-form { grid-template-columns:1fr 1fr; }.user-approval-form label { grid-column:1/-1; }.user-approval-form .button { width:100%; }.module-empty { padding:24px; } }
@media (max-width:660px) { .sidebar-backdrop { position:fixed; inset:0; z-index:14; width:100%; height:100%; padding:0; border:0; background:rgba(11,16,29,.45); opacity:0; pointer-events:none; transition:opacity .25s ease; }.crm-nav-open .sidebar-backdrop { opacity:1; pointer-events:auto; } }
.finance-summary a { display:block; min-height:150px; padding:21px; border:1px solid var(--line); border-radius:6px; background:var(--surface); transition:border-color .2s,transform .2s,box-shadow .2s; }.finance-summary a:hover { border-color:var(--teal); box-shadow:0 12px 24px rgba(24,32,56,.09); transform:translateY(-2px); }.finance-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }.finance-detail-grid article { min-height:205px; padding:27px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.finance-detail-grid h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:28px; font-weight:500; line-height:1; }.finance-detail-grid article>p:not(.section-label) { max-width:410px; margin:13px 0 22px; color:var(--muted); font-size:11px; line-height:1.7; }
@media (max-width:660px) { .finance-detail-grid { grid-template-columns:1fr; } }
@media (max-width:660px) { html,body { width:100%; max-width:100%; overflow-x:hidden; }.app-main { width:100%; max-width:100%; overflow-x:hidden; }.app-header { width:100%; min-width:0; }.profile { min-width:0; max-width:calc(100% - 46px); gap:7px; }.profile>span:last-child { min-width:0; }.profile strong,.profile small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.profile .logout-form { flex:0 0 auto; }.finance-tabs { width:calc(100% + 36px); } }
@media (max-width:660px) { .crm-login-page { min-width:0; overflow-x:hidden; }.crm-login-page .access-shell { display:grid; grid-template-columns:minmax(0,1fr); width:100%; min-width:0; max-width:100%; overflow-x:hidden; }.crm-login-page .access-intro,.crm-login-page .access-panel { width:100%; min-width:0; max-width:100%; }.crm-login-page .access-panel { padding-right:26px; padding-left:26px; }.crm-login-page .access-panel-inner,.crm-login-page .access-form { width:100%; min-width:0; max-width:100%; }.crm-login-page .access-form input,.crm-login-page .access-form select { min-width:0; max-width:100%; }.crm-login-page .access-brand { max-width:100%; }.crm-login-page .access-brand strong { overflow-wrap:anywhere; }.crm-login-page .access-intro-copy { min-width:0; max-width:100%; } }
@media (max-width:660px) { .crm-login-page .access-form input,.crm-login-page .access-form select { font-size:16px; } }
.calendar-heading { align-items:start; }.calendar-heading>div>p:last-child { max-width:510px; margin:15px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }.calendar-create { display:grid; grid-template-columns:1.3fr .8fr .65fr 1fr auto; align-items:end; gap:8px; width:min(100%,790px); padding:14px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.calendar-create label { display:grid; gap:6px; min-width:0; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.calendar-create input,.calendar-create select { width:100%; min-width:0; height:36px; padding:0 9px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; background:#fff; font:inherit; font-size:11px; letter-spacing:0; text-transform:none; }.calendar-create .button { min-height:36px; padding:0 12px; white-space:nowrap; }.calendar-panel { overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.calendar-panel>header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:24px 25px; border-bottom:1px solid var(--line); }.calendar-month-nav { display:flex; align-items:center; gap:14px; }.calendar-month-nav a { display:grid; width:30px; height:30px; place-items:center; color:var(--navy); border:1px solid var(--line); font-size:16px; }.calendar-month-nav h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:31px; font-weight:500; }.calendar-legend { display:flex; flex-wrap:wrap; gap:14px; color:var(--muted); font-size:9px; font-weight:700; }.calendar-legend span { display:flex; align-items:center; gap:6px; }.calendar-dot { display:block; width:8px; height:8px; border-radius:50%; }.calendar-dot.deadline { background:#c79531; }.calendar-dot.event { background:var(--teal); }.calendar-dot.leave { background:#79569f; }.calendar-grid-wrap { overflow-x:auto; }.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(128px,1fr)); min-width:896px; }.calendar-weekday { padding:12px 14px; color:var(--muted); border-right:1px solid var(--line); border-bottom:1px solid var(--line); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.calendar-day { min-height:150px; padding:11px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }.calendar-day:nth-child(7n) { border-right:0; }.calendar-day.is-outside { background:#f7f8f8; }.calendar-day time { display:grid; width:25px; height:25px; place-items:center; margin-bottom:8px; color:var(--navy); border-radius:50%; font-size:10px; font-weight:800; }.calendar-day.is-outside time { color:#a6adb6; }.calendar-day.is-today time { color:#fff; background:var(--teal); }.calendar-item { display:grid; gap:2px; margin:0 0 5px; padding:6px 7px; border-left:3px solid; background:#f1f6f7; }.calendar-item.deadline { border-color:#c79531; background:#fff8e9; }.calendar-item.event { border-color:var(--teal); }.calendar-item.leave { border-color:#79569f; background:#f4eef9; }.calendar-item.leave strong { color:#51386f; }.calendar-item span,.calendar-item small { color:var(--muted); font-size:8px; line-height:1.3; }.calendar-item strong { display:block; overflow:hidden; color:var(--ink); font-size:9px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:980px) { .calendar-heading { flex-direction:column; }.calendar-create { width:100%; grid-template-columns:repeat(4,minmax(0,1fr)); }.calendar-create .button { grid-column:span 1; } }
@media (max-width:660px) { .calendar-create { grid-template-columns:1fr 1fr; padding:13px; }.calendar-create label:first-child,.calendar-create label:last-of-type { grid-column:1/-1; }.calendar-create .button { grid-column:1/-1; width:100%; }.calendar-panel>header { align-items:flex-start; flex-direction:column; padding:21px 18px; }.calendar-month-nav h2 { font-size:28px; }.calendar-grid { grid-template-columns:repeat(7,minmax(104px,1fr)); min-width:728px; }.calendar-day { min-height:126px; padding:8px; }.calendar-weekday { padding:10px 8px; } }
.calendar-cancel { display:grid; place-items:center; }.calendar-item-actions { display:flex; align-items:center; gap:7px; margin-top:3px; }.calendar-item-actions a,.calendar-item-actions button { padding:0; color:var(--teal); border:0; background:transparent; font:inherit; font-size:8px; font-weight:800; }.calendar-item-actions form { margin:0; }.calendar-item-actions button { color:#9b2933; }
.calendar-create .calendar-description { grid-column:1/-1; }.calendar-create textarea { width:100%; min-height:64px; padding:9px; resize:vertical; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; background:#fff; font:inherit; font-size:11px; line-height:1.45; letter-spacing:0; text-transform:none; }.calendar-item-description { overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; white-space:normal; }
.calendar-day { cursor:pointer; transition:background .18s ease; }.calendar-day:hover,.calendar-day:focus { outline:0; background:#f0f8f9; }.calendar-item { cursor:default; }.calendar-item.is-editable { cursor:pointer; }.calendar-item.is-editable:hover,.calendar-item.is-editable:focus { outline:0; box-shadow:0 0 0 1px var(--teal); }.calendar-modal-open { overflow:hidden; }.calendar-modal[hidden] { display:none; }.calendar-modal { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:24px; }.calendar-modal-backdrop { position:absolute; inset:0; background:rgba(11,16,29,.54); }.calendar-modal-card { position:relative; width:min(100%,520px); max-height:calc(100vh - 48px); overflow:auto; border:1px solid var(--line); border-radius:6px; background:var(--surface); box-shadow:0 24px 70px rgba(11,16,29,.28); }.calendar-modal-card>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:25px 27px 21px; border-bottom:1px solid var(--line); }.calendar-modal-card h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:32px; font-weight:500; line-height:1; }.calendar-modal-close { display:grid; flex:0 0 auto; width:32px; height:32px; place-items:center; padding:0; color:var(--navy); border:1px solid var(--line); border-radius:3px; background:#fff; font-size:24px; font-weight:300; line-height:1; }.calendar-event-form { display:grid; gap:16px; padding:24px 27px 19px; }.calendar-event-form label { display:grid; gap:7px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.calendar-event-form input,.calendar-event-form select,.calendar-event-form textarea { width:100%; min-height:42px; padding:0 11px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; outline:0; background:#fff; font:inherit; font-size:12px; letter-spacing:0; text-transform:none; }.calendar-event-form textarea { min-height:98px; padding:11px; resize:vertical; line-height:1.5; }.calendar-event-form input:focus,.calendar-event-form select:focus,.calendar-event-form textarea:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }.calendar-event-form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.calendar-event-form footer { display:flex; justify-content:flex-end; gap:9px; padding-top:4px; }.calendar-delete-form { padding:0 27px 24px; }.calendar-delete-form button { padding:0; color:#9b2933; border:0; background:transparent; font:inherit; font-size:11px; font-weight:800; }
@media (max-width:660px) { .calendar-modal { padding:0; place-items:end stretch; }.calendar-modal-card { width:100%; max-height:92vh; border-right:0; border-bottom:0; border-left:0; border-radius:6px 6px 0 0; }.calendar-modal-card>header { padding:22px 20px 18px; }.calendar-event-form { padding:21px 20px 16px; }.calendar-delete-form { padding:0 20px 22px; }.calendar-event-form footer { flex-direction:column-reverse; }.calendar-event-form footer .button { width:100%; }.calendar-event-form-row { grid-template-columns:1fr; } }

.project-detail-back { margin:0 0 24px; }.project-detail-back a { color:var(--teal); font-size:10px; font-weight:800; letter-spacing:.04em; }.project-detail-heading { align-items:center; margin-bottom:22px; padding:30px 32px; color:#fff; background:var(--navy); }.project-detail-heading .section-label { color:#9ed8dd; }.project-detail-heading h1 { color:#fff; font-size:clamp(38px,4vw,56px); }.project-detail-heading>div>p:last-child { margin:11px 0 0; color:rgba(255,255,255,.65); font-size:11px; }.project-progress-summary { display:grid; flex:0 0 220px; gap:7px; }.project-progress-summary>strong { font-family:var(--serif); font-size:34px; font-weight:500; line-height:1; }.project-progress-summary>span { display:block; height:7px; overflow:hidden; background:rgba(255,255,255,.16); }.project-progress-summary i { display:block; height:100%; background:#70c6ce; }.project-progress-summary small { color:rgba(255,255,255,.64); font-size:9px; font-weight:700; }.project-management-panel,.project-update-composer,.project-activity-feed { margin-top:18px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.project-management-panel>summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:23px 25px; cursor:pointer; list-style:none; }.project-management-panel>summary::-webkit-details-marker { display:none; }.project-management-panel>summary span { display:grid; gap:4px; color:var(--navy); font-family:var(--serif); font-size:28px; }.project-management-panel>summary small { color:var(--teal); font-family:var(--sans); font-size:8px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.project-management-panel>summary b { color:var(--teal); font-size:9px; }.project-edit-form { border-top:1px solid var(--line); }.project-edit-form fieldset { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0; padding:25px; border:0; border-bottom:1px solid var(--line); }.project-edit-form legend { grid-column:1/-1; margin-bottom:2px; color:var(--navy); font-family:var(--serif); font-size:22px; }.project-edit-form label,.project-update-composer label,.customer-edit-form label { display:grid; gap:7px; min-width:0; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.project-edit-form input,.project-edit-form select,.project-update-composer input,.project-update-composer textarea,.customer-edit-form input { width:100%; min-width:0; min-height:43px; padding:0 11px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; outline:0; background:#fff; font:inherit; font-size:12px; letter-spacing:0; text-transform:none; }.project-update-composer textarea { min-height:132px; padding:11px; resize:vertical; line-height:1.6; }.project-edit-form input:focus,.project-edit-form select:focus,.project-update-composer input:focus,.project-update-composer textarea:focus,.customer-edit-form input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }.project-edit-form .project-form-wide { grid-column:1/-1; }.project-edit-form>footer,.project-update-composer form>footer { display:flex; justify-content:flex-end; padding:20px 25px 25px; }.project-checkbox { display:flex!important; align-items:flex-start; gap:11px; padding:14px; border:1px solid var(--line); background:#f8fafb; cursor:pointer; text-transform:none!important; }.project-checkbox input { flex:0 0 auto; width:17px!important; min-height:17px!important; height:17px; margin:1px 0 0; accent-color:var(--teal); }.project-checkbox span { display:grid; gap:4px; }.project-checkbox strong { color:var(--navy); font-size:10px; }.project-checkbox small { color:var(--muted); font-size:9px; font-weight:500; line-height:1.5; letter-spacing:0; }.project-delete-form,.customer-delete-form { padding:0 25px 24px; }.project-delete-form button,.customer-delete-form button { padding:0; color:#9b2933; border:0; background:transparent; font:inherit; font-size:10px; font-weight:800; }.project-update-composer>header,.project-activity-feed>header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:25px; border-bottom:1px solid var(--line); }.project-update-composer h2,.project-activity-feed h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:29px; font-weight:500; line-height:1; }.project-update-composer>header p:not(.section-label) { margin:9px 0 0; color:var(--muted); font-size:10px; }.project-update-composer form { display:grid; gap:17px; padding:25px; }.project-update-composer form>footer { margin:0 -25px -25px; }.project-upload-field input { padding:9px 11px; }.project-upload-field>small { color:var(--muted); font-size:9px; font-weight:500; letter-spacing:0; text-transform:none; }.project-sharing-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.project-notify-option { border-color:rgba(0,119,136,.35); background:#f1f9fa; }.project-activity-list { display:grid; }.project-update-entry { padding:25px; border-bottom:1px solid var(--line); }.project-update-entry:last-child { border-bottom:0; }.project-update-entry>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }.project-update-entry>header>div { display:grid; gap:4px; }.project-update-entry>header span,.project-update-entry>header small { color:var(--muted); font-size:9px; }.project-update-entry h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:500; }.project-update-entry em { flex:0 0 auto; padding:6px 8px; color:var(--muted); border:1px solid var(--line); font-size:8px; font-style:normal; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }.project-update-entry em.is-customer-visible { color:var(--teal); border-color:rgba(0,119,136,.28); background:#f1f9fa; }.project-update-entry>p { max-width:900px; margin:16px 0 0; color:var(--ink); font-size:11px; line-height:1.75; }.project-update-entry>footer { margin-top:17px; color:var(--muted); font-size:9px; }.project-attachment-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; margin-top:18px; }.project-attachment { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:11px; min-width:0; padding:10px; color:var(--ink); border:1px solid var(--line); background:#fff; }.project-attachment>span { display:grid; width:48px; height:48px; place-items:center; color:var(--teal); background:#eef6f7; font-size:9px; font-weight:800; }.project-attachment.is-image { grid-template-columns:72px minmax(0,1fr); }.project-attachment img { width:72px; height:58px; object-fit:cover; }.project-attachment div { min-width:0; }.project-attachment strong { display:block; overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.project-attachment small { display:block; margin-top:4px; color:var(--muted); font-size:8px; }.project-record>footer { display:flex; align-items:center; justify-content:space-between; gap:14px; }.project-record>footer a { flex:0 0 auto; color:var(--teal); font-size:9px; font-weight:800; }.customer-actions { display:grid; gap:8px; justify-items:start; }.customer-edit-row>td { padding:0; background:#f5f7f8; }.customer-edit-row>td>section { margin:12px; border:1px solid var(--line); background:#fff; }.customer-edit-row section>header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:20px 22px; border-bottom:1px solid var(--line); }.customer-edit-row h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:500; }.customer-edit-row section>header>button { display:grid; width:30px; height:30px; place-items:center; padding:0; color:var(--navy); border:1px solid var(--line); background:#fff; font-size:22px; }.customer-edit-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; padding:22px; }.customer-edit-form footer { grid-column:1/-1; display:flex; justify-content:flex-end; }.customer-update-attachments { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:8px; margin:12px 0 2px; }.customer-update-attachment { display:grid; gap:7px; min-width:0; padding:7px; color:var(--ink); border:1px solid var(--line); background:#fff; }.customer-update-attachment img { width:100%; height:90px; object-fit:cover; }.customer-update-attachment>span { display:grid; height:60px; place-items:center; color:var(--teal); background:#eef6f7; font-size:9px; font-weight:800; }.customer-update-attachment b { overflow:hidden; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }

@media (max-width:760px) { .project-detail-heading { align-items:flex-start; flex-direction:column; padding:25px 22px; }.project-progress-summary { width:100%; flex-basis:auto; }.project-edit-form fieldset,.project-sharing-options,.customer-edit-form { grid-template-columns:1fr; }.project-edit-form .project-form-wide,.customer-edit-form footer { grid-column:auto; }.project-record>footer { align-items:flex-start; flex-direction:column; }.project-update-entry>header { flex-direction:column; }.project-update-entry em { align-self:flex-start; } }
@media (max-width:660px) { .project-management-panel>summary,.project-update-composer>header,.project-activity-feed>header { padding:20px 18px; }.project-edit-form fieldset { padding:20px 18px; }.project-edit-form>footer { padding:18px; }.project-delete-form { padding:0 18px 21px; }.project-update-composer form { padding:20px 18px; }.project-update-composer form>footer { margin:0 -18px -20px; padding:18px; }.project-edit-form input,.project-edit-form select,.project-update-composer input,.project-update-composer textarea,.customer-edit-form input { font-size:16px; }.project-activity-feed>header { flex-direction:row; }.project-update-entry { padding:21px 18px; }.project-attachment-grid { grid-template-columns:1fr; }.customer-edit-row>td>section { margin:8px; }.customer-edit-row section>header { padding:18px; }.customer-edit-form { padding:18px; }.customer-delete-form { padding:0 18px 20px; } }
@media (max-width:660px) { .calendar-grid-wrap { overflow-x:hidden; }.calendar-grid { grid-template-columns:repeat(7,minmax(0,1fr)); min-width:0; }.calendar-weekday { min-width:0; padding:9px 2px; overflow:hidden; font-size:7px; letter-spacing:0; text-align:center; }.calendar-day { min-width:0; min-height:104px; padding:6px 4px; overflow:hidden; }.calendar-day time { width:20px; height:20px; margin-bottom:5px; font-size:8px; }.calendar-item { min-width:0; gap:1px; margin-bottom:3px; padding:4px 3px; border-left-width:2px; }.calendar-item span,.calendar-item small { overflow:hidden; font-size:6px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }.calendar-item strong { overflow:hidden; font-size:7px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }.calendar-item-description { -webkit-line-clamp:1; }.calendar-panel>header { gap:12px; }.calendar-legend { gap:9px; font-size:8px; }.calendar-dot { width:6px; height:6px; } }
.nav-icon { display:inline-grid; flex:0 0 16px; width:16px; height:16px; place-items:center; }.nav-icon svg { display:block; width:16px; height:16px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.calendar-item-audit { color:#77818c!important; font-size:6px!important; font-style:italic; }

/* Magyar munkarend: hétvégék, munkaszüneti napok és hivatalos áthelyezések. */
.calendar-weekday.is-weekend { color:#69727d; background:#eef0f2; }
.calendar-day.is-weekend { background:#f1f2f3; }
.calendar-day.is-weekend.is-outside { background:#eceeef; }
.calendar-day.is-holiday:not(.is-weekend) { background:#fff7f6; }
.calendar-day.is-rest-day:not(.is-weekend) { background:#f7f4ed; }
.calendar-day.is-work-day { box-shadow:inset 0 3px 0 #167989; }
.calendar-day.is-weekend:hover,.calendar-day.is-weekend:focus { background:#e8edef; }
.calendar-day-note { display:grid; gap:2px; min-width:0; margin:0 0 7px; padding:5px 6px; border-left:2px solid; border-radius:2px; background:rgba(255,255,255,.82); }
.calendar-day-note strong,.calendar-day-note small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.calendar-day-note strong { font-size:8px; line-height:1.3; }
.calendar-day-note small { color:#6d7680; font-size:6px; font-weight:800; line-height:1.3; letter-spacing:.05em; text-transform:uppercase; }
.calendar-day-note.is-holiday { color:#993840; border-color:#b14a54; background:#fff0f1; }
.calendar-day-note.is-work-day { color:#126a77; border-color:#167989; background:#e8f6f7; }
.calendar-day-note.is-rest-day { color:#77612f; border-color:#ae914f; background:#faf5e9; }
.calendar-day-legend-mark { display:block; flex:0 0 auto; width:10px; height:10px; border:1px solid transparent; border-radius:2px; }
.calendar-day-legend-mark.is-weekend { border-color:#d5d9dd; background:#eef0f2; }
.calendar-day-legend-mark.is-holiday { border-color:#b14a54; background:#fff0f1; }
.calendar-day-legend-mark.is-work-day { border-color:#167989; background:#e8f6f7; }
.calendar-day-legend-mark.is-rest-day { border-color:#ae914f; background:#faf5e9; }

@media (max-width:660px) {
  .calendar-day-note { gap:0; margin-bottom:4px; padding:3px 2px; border-left-width:2px; }
  .calendar-day-note strong { font-size:6px; line-height:1.2; }
  .calendar-day-note small { display:none; }
  .calendar-day-legend-mark { width:8px; height:8px; }
}

/* Projekt Pénzügy – közös admin, partner és alvállalkozói nyilvántartás */
.project-finance-admin,.personal-project-finance { display:grid; gap:18px; min-width:0; }
.project-finance-intro { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:28px 30px; border-left:4px solid var(--teal); }
.project-finance-intro h2,.project-finance-ledger>header h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:32px; font-weight:600; line-height:1; }
.project-finance-intro p:not(.section-label),.project-finance-ledger>header p:not(.section-label) { max-width:800px; margin:11px 0 0; color:var(--muted); font-size:10px; line-height:1.7; }
.project-finance-intro>strong { flex:0 0 auto; color:var(--teal); font-family:var(--serif); font-size:38px; line-height:.8; text-align:right; }
.project-finance-intro>strong small { display:block; margin-top:10px; color:var(--muted); font-family:var(--sans); font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.project-finance-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.project-finance-summary article { position:relative; overflow:hidden; min-width:0; padding:20px 21px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }
.project-finance-summary article::before { position:absolute; top:0; bottom:0; left:0; width:4px; background:#9aa4ad; content:""; }
.project-finance-summary article.is-incoming::before { background:#c58d32; }
.project-finance-summary article.is-outgoing::before { background:var(--teal); }
.project-finance-summary article.is-open::before { background:#936044; }
.project-finance-summary span,.project-finance-summary small { display:block; color:var(--muted); font-size:8px; line-height:1.45; }
.project-finance-summary span { font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.project-finance-summary strong { display:block; overflow-wrap:anywhere; margin:18px 0 8px; color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:600; line-height:1; }
.project-finance-create { overflow:hidden; }
.project-finance-create>summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 24px; cursor:pointer; list-style:none; }
.project-finance-create>summary::-webkit-details-marker { display:none; }
.project-finance-create>summary>span { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:2px 12px; min-width:0; }
.project-finance-create>summary b { display:grid; grid-row:1/3; width:34px; height:34px; place-items:center; color:#fff; border-radius:50%; background:var(--teal); font-size:20px; font-weight:500; }
.project-finance-create>summary strong { color:var(--navy); font-size:12px; }
.project-finance-create>summary small { color:var(--muted); font-size:8px; }
.project-finance-create>summary em { flex:0 0 auto; color:var(--teal); font-size:9px; font-style:normal; font-weight:800; text-transform:uppercase; }
.project-finance-create[open]>summary { border-bottom:1px solid var(--line); background:#f4f8f8; }
.project-finance-create>form { display:grid; gap:18px; padding:24px; }
.project-finance-form-section { min-width:0; margin:0; padding:0; border:0; }
.project-finance-form-section>legend { width:100%; margin:0 0 13px; padding:0 0 9px; color:var(--navy); border-bottom:1px solid var(--line); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.project-finance-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.project-finance-form-grid label,.project-finance-file-field,.project-finance-more label,.project-finance-status-form label { display:grid; gap:7px; min-width:0; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.project-finance-form-grid label.is-wide,.project-finance-form-grid .is-wide { grid-column:1/-1; }
.project-finance-form-grid input,.project-finance-form-grid select,.project-finance-form-grid textarea,.project-finance-file-field input,.project-finance-status-form select,.project-finance-more input { width:100%; min-width:0; padding:11px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; outline:0; background:#fff; font:inherit; font-size:11px; letter-spacing:0; text-transform:none; }
.project-finance-form-grid select,.project-finance-status-form select { min-height:41px; padding-top:0; padding-bottom:0; }
.project-finance-form-grid textarea { line-height:1.6; resize:vertical; }
.project-finance-form-grid label>small,.project-finance-file-field>small { color:var(--muted); font-size:8px; font-weight:500; letter-spacing:0; line-height:1.5; text-transform:none; }
.project-finance-create>form>footer { display:flex; justify-content:flex-end; padding-top:4px; }
.project-finance-ledger { overflow:hidden; }
.project-finance-ledger>header { padding:24px 26px; border-bottom:1px solid var(--line); }
.project-finance-entry-list { display:grid; gap:13px; padding:16px; background:#f3f6f7; }
.project-finance-entry { overflow:hidden; min-width:0; border:1px solid var(--line); border-left:4px solid #a8afb6; border-radius:5px; background:#fff; }
.project-finance-entry.is-awaiting { border-left-color:#b98a39; }
.project-finance-entry.is-pending { border-left-color:#9a6949; }
.project-finance-entry.is-completed { border-left-color:var(--teal); }
.project-finance-entry.is-paid { border-left-color:#3d7755; }
.project-finance-entry>header { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:21px 22px; border-bottom:1px solid var(--line); }
.project-finance-entry>header>div { min-width:0; }
.project-finance-entry>header h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:600; line-height:1; }
.project-finance-entry>header p:not(.section-label) { margin:9px 0 0; color:var(--muted); font-size:9px; line-height:1.6; }
.project-finance-entry-header-actions { display:flex; flex:0 0 auto; align-items:center; gap:8px; }
.project-finance-entry-header-actions form { margin:0; }
.project-finance-entry-delete { display:grid; width:30px; height:30px; place-items:center; padding:0; color:#9b2933; border:1px solid #edc9cc; border-radius:4px; background:#fff0f1; cursor:pointer; transition:color .18s ease,background-color .18s ease,transform .18s ease; }
.project-finance-entry-delete svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.project-finance-entry-delete:hover,.project-finance-entry-delete:focus-visible { color:#fff; outline:0; background:#9b2933; transform:translateY(-1px); }
.project-finance-entry-delete:focus-visible { box-shadow:0 0 0 3px rgba(155,41,51,.18); }
.project-finance-entry-delete:disabled { color:#9f9899; border-color:#ded9da; background:#f4f2f2; cursor:not-allowed; opacity:.65; transform:none; }
.project-finance-status { flex:0 0 auto; padding:7px 9px; color:#7d5a20; border:1px solid #dcc485; border-radius:3px; background:#fff9e8; font-size:8px; font-weight:800; line-height:1.2; text-transform:uppercase; }
.project-finance-status.is-pending { color:#805139; border-color:#d7ae98; background:#fff5f0; }
.project-finance-status.is-completed { color:#116b73; border-color:#9bc9cd; background:#eef9fa; }
.project-finance-status.is-paid { color:#316847; border-color:#a8ceb5; background:#f0f9f3; }
.project-finance-entry-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:1px solid var(--line); }
.project-finance-entry-grid dl { display:grid; align-content:start; gap:10px; min-width:0; margin:0; padding:19px 21px; border-right:1px solid var(--line); }
.project-finance-entry-grid dl:last-child { border-right:0; }
.project-finance-entry-grid dl div { min-width:0; }
.project-finance-entry-grid dt { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.project-finance-entry-grid dd { overflow-wrap:anywhere; margin:5px 0 0; color:var(--ink); font-size:10px; font-weight:600; line-height:1.45; }
.project-finance-entry-grid .is-total { padding-top:10px; border-top:1px solid var(--line); }
.project-finance-entry-grid .is-total dd { color:var(--teal); font-family:var(--serif); font-size:20px; line-height:1; }
.project-finance-documents { padding:18px 21px; border-bottom:1px solid var(--line); background:#fafcfc; }
.project-finance-documents>header { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.project-finance-documents>header strong { color:var(--navy); font-size:9px; }
.project-finance-documents>header span,.project-finance-documents>p { color:var(--muted); font-size:8px; }
.project-finance-documents>p { margin:11px 0 0; }
.project-finance-documents>div { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:8px; margin-top:12px; }
.project-finance-documents>div>article { display:flex; align-items:center; gap:7px; min-width:0; padding:7px; border:1px solid var(--line); background:#fff; }
.project-finance-documents a { display:grid; flex:1; grid-template-columns:36px minmax(0,1fr); align-items:center; gap:9px; min-width:0; color:var(--ink); }
.project-finance-documents a>span { display:grid; width:36px; height:36px; place-items:center; color:var(--teal); background:#edf7f8; font-size:8px; font-weight:800; }
.project-finance-documents a strong,.project-finance-documents a small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.project-finance-documents a strong { font-size:9px; }
.project-finance-documents a small { margin-top:3px; color:var(--muted); font-size:7px; }
.project-finance-documents form button { padding:6px; color:#9a343a; border:0; background:transparent; font-size:7px; font-weight:800; text-transform:uppercase; }
.project-finance-entry>footer { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; padding:17px 21px; }
.project-finance-entry>footer>small { max-width:360px; color:var(--muted); font-size:8px; line-height:1.5; }
.project-finance-status-form { display:flex; align-items:flex-end; gap:9px; }
.project-finance-status-form label { min-width:190px; }
.project-finance-more { position:relative; }
.project-finance-more>summary { padding:10px 12px; color:var(--teal); border:1px solid var(--line); border-radius:3px; cursor:pointer; font-size:8px; font-weight:800; list-style:none; text-transform:uppercase; }
.project-finance-more>summary::-webkit-details-marker { display:none; }
.project-finance-more>div { position:absolute; z-index:6; right:0; bottom:calc(100% + 7px); display:grid; gap:10px; width:min(360px,80vw); padding:13px; border:1px solid var(--line); border-radius:4px; box-shadow:0 16px 40px rgba(13,32,52,.18); background:#fff; }
.project-finance-more form { display:grid; gap:9px; }
.project-finance-more button { justify-self:start; padding:9px 11px; color:var(--teal); border:1px solid var(--line); background:#fff; font-size:8px; font-weight:800; }
.project-finance-more button.is-danger { color:#9a343a; border-color:#dcb7ba; }
.project-finance-audit { display:block; padding:0 21px 16px; color:var(--muted); font-size:7px; }

@media (max-width:980px) {
  .project-finance-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .project-finance-entry-grid { grid-template-columns:1fr 1fr; }
  .project-finance-entry-grid dl:nth-child(2) { border-right:0; }
  .project-finance-entry-grid dl:last-child { grid-column:1/-1; border-top:1px solid var(--line); }
}
@media (max-width:760px) {
  .project-finance-intro { align-items:flex-start; flex-direction:column; padding:23px 20px; }
  .project-finance-intro>strong { text-align:left; }
  .project-finance-summary { grid-template-columns:1fr; }
  .project-finance-create>summary { align-items:flex-start; padding:18px; }
  .project-finance-create>summary em { display:none; }
  .project-finance-create>form { padding:18px; }
  .project-finance-form-grid { grid-template-columns:1fr; }
  .project-finance-form-grid label.is-wide,.project-finance-form-grid .is-wide { grid-column:auto; }
  .project-finance-form-grid input,.project-finance-form-grid select,.project-finance-form-grid textarea,.project-finance-file-field input,.project-finance-status-form select,.project-finance-more input { font-size:16px; }
  .project-finance-create>form>footer .button { width:100%; }
  .project-finance-ledger>header { padding:21px 18px; }
  .project-finance-entry-list { padding:9px; }
  .project-finance-entry>header { align-items:flex-start; flex-direction:column; padding:19px 17px; }
  .project-finance-entry-header-actions { width:100%; justify-content:space-between; }
  .project-finance-entry-grid { grid-template-columns:1fr; }
  .project-finance-entry-grid dl,.project-finance-entry-grid dl:nth-child(2),.project-finance-entry-grid dl:last-child { grid-column:auto; border-top:0; border-right:0; border-bottom:1px solid var(--line); }
  .project-finance-entry-grid dl:last-child { border-bottom:0; }
  .project-finance-documents { padding:17px; }
  .project-finance-documents>div { grid-template-columns:1fr; }
  .project-finance-entry>footer { align-items:stretch; flex-direction:column; padding:17px; }
  .project-finance-status-form { align-items:stretch; flex-direction:column; }
  .project-finance-status-form label,.project-finance-status-form .button { width:100%; min-width:0; }
  .project-finance-more>summary { text-align:center; }
  .project-finance-more>div { position:static; width:100%; margin-top:8px; box-shadow:none; }
  .project-finance-audit { padding:0 17px 15px; }
}

/* Unified admin and role-specific document library. */
.document-manager-content { display:grid; gap:18px; max-width:1540px; }
.document-area-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:7px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.document-area-tabs a { display:grid; gap:5px; min-height:72px; align-content:center; padding:13px 17px; color:#5f6c77; border:1px solid transparent; border-radius:5px; }
.document-area-tabs a:hover { border-color:#bed7da; background:#f4f9f9; }
.document-area-tabs a.is-active { color:#fff; border-color:var(--navy); background:var(--navy); }
.document-area-tabs a.is-customer-tab.is-active { border-color:var(--teal); background:var(--teal); }
.document-area-tabs span { font-size:11px; font-weight:850; }
.document-area-tabs small { color:inherit; font-size:8px; opacity:.74; }
.document-recipient-browser { overflow:hidden; }
.document-recipient-browser>header,.customer-project-document-index>header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:26px 28px; border-bottom:1px solid var(--line); }
.document-recipient-browser h1,.document-recipient-heading h1 { margin:4px 0 0; color:var(--navy); font-family:var(--serif); font-size:36px; font-weight:600; line-height:1; }
.document-recipient-browser>header p:not(.section-label),.customer-project-document-index>header p:not(.section-label) { max-width:710px; margin:9px 0 0; color:#68757f; font-size:10px; line-height:1.6; }
.document-recipient-browser>header>strong,.customer-project-document-index>header>strong { display:grid; min-width:90px; justify-items:center; color:var(--teal); font-family:var(--serif); font-size:34px; line-height:1; }
.document-recipient-browser>header>strong small,.customer-project-document-index>header>strong small { margin-top:6px; color:#72808a; font:800 8px/1.2 var(--sans); text-transform:uppercase; }
.document-recipient-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:12px; padding:14px; background:#f5f7f8; }
.document-recipient-groups>section { overflow:hidden; border:1px solid #dce2e6; border-radius:6px; background:#fff; }
.document-recipient-groups>section>header { display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid #e5eaed; }
.document-recipient-groups h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:24px; font-weight:600; }
.document-recipient-groups>section>header span { display:grid; width:29px; height:29px; place-items:center; color:#fff; border-radius:50%; background:var(--teal); font-size:9px; font-weight:850; }
.document-recipient-groups>section>div { display:grid; }
.document-recipient-groups a { display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:11px; min-width:0; padding:14px 17px; border-top:1px solid #edf0f2; }
.document-recipient-groups a:first-child { border-top:0; }
.document-recipient-groups a:hover { background:#f1f8f8; }
.document-recipient-mark { display:grid; width:38px; height:38px; place-items:center; flex:0 0 auto; color:#fff; border-radius:50%; background:var(--navy); font-size:10px; font-weight:850; }
.is-customer-area .document-recipient-mark { background:var(--teal); }
.document-recipient-groups a>div { display:grid; gap:4px; min-width:0; }
.document-recipient-groups strong { overflow-wrap:anywhere; color:var(--navy); font-size:10px; }
.document-recipient-groups small { overflow-wrap:anywhere; color:#6b7882; font-size:8px; line-height:1.45; }
.document-recipient-groups dl,.document-recipient-heading dl { display:flex; gap:8px; margin:0; }
.document-recipient-groups dl div { display:grid; min-width:40px; justify-items:center; padding:7px; border:1px solid #e0e5e8; border-radius:4px; background:#fafbfb; }
.document-recipient-groups dt,.document-recipient-heading dt { color:#7a8790; font-size:7px; font-weight:850; text-transform:uppercase; }
.document-recipient-groups dd,.document-recipient-heading dd { margin:3px 0 0; color:var(--navy); font-size:11px; font-weight:850; }
.document-manager-back { margin-bottom:-5px; }
.document-manager-back a { color:var(--teal); font-size:9px; font-weight:850; }
.document-recipient-heading { display:grid; grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:16px; padding:24px 27px; color:#fff; border-radius:8px; background:var(--navy); }
.is-customer-area .document-recipient-heading { background:linear-gradient(105deg,var(--navy),#075f6b); }
.document-recipient-heading>.document-recipient-mark { width:52px; height:52px; color:var(--navy); background:#fff; font-size:14px; }
.document-recipient-heading .section-label { color:#9dd9dd; }
.document-recipient-heading h1 { color:#fff; }
.document-recipient-heading p:last-child { margin:7px 0 0; color:rgba(255,255,255,.68); font-size:9px; }
.document-recipient-heading dl div { min-width:91px; padding:10px 13px; border:1px solid rgba(255,255,255,.18); }
.document-recipient-heading dt { color:rgba(255,255,255,.62); }
.document-recipient-heading dd { color:#fff; font-family:var(--serif); font-size:23px; }
.document-folder-create { overflow:hidden; }
.document-folder-create>header { padding:21px 24px 0; }
.document-folder-create h2,.customer-project-document-index h2 { margin:4px 0 0; color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:600; }
.document-folder-create header p:not(.section-label) { margin:7px 0 0; color:#68757f; font-size:9px; }
.document-folder-create>form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:13px; padding:19px 24px 23px; }
.document-folder-create label,.document-folder-actions label,.managed-document-actions label,.document-upload-form label { display:grid; gap:6px; min-width:0; color:#65727c; font-size:8px; font-weight:850; }
.document-folder-create input,.document-folder-actions input,.managed-document-actions input,.document-upload-form input { width:100%; min-width:0; min-height:41px; padding:9px 11px; color:var(--ink); border:1px solid #cbd4d9; border-radius:4px; background:#fff; font:500 11px/1.4 var(--sans); }
.document-folder-create input:focus,.document-folder-actions input:focus,.managed-document-actions input:focus,.document-upload-form input:focus { outline:0; border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.document-folder-grid { display:grid; gap:14px; }
.document-folder-card { overflow:visible; border:1px solid #d8e0e4; border-radius:8px; background:#fff; }
.document-folder-card>header { position:relative; display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:22px 24px; border-bottom:1px solid #e4e9ec; background:#fbfcfc; }
.document-folder-card>header h2 { margin:4px 0 0; color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:600; }
.document-folder-card>header small { display:block; margin-top:6px; color:#78848d; font-size:8px; }
.customer-fixed-document-folders { gap:16px; }
.document-folder-card.is-synced-project-folder { border-left:3px solid var(--teal); }
.document-folder-card.is-customer-misc-folder { border-left:3px solid var(--navy); }
.document-folder-card.is-synced-project-folder>header { background:#f3f9fa; }
.document-folder-card.is-customer-misc-folder>header { background:#f7f8fa; }
.document-folder-card>header small { max-width:850px; line-height:1.55; }
.document-folder-lock { flex:0 0 auto; padding:7px 9px; color:var(--teal); border:1px solid #b8d9dc; border-radius:4px; background:#fff; font-size:8px; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.document-folder-card details { position:relative; }
.document-folder-card details>summary { padding:5px 9px; color:var(--navy); border:1px solid #d6dde1; border-radius:4px; background:#fff; font-size:13px; font-weight:850; list-style:none; cursor:pointer; }
.document-folder-card details>summary::-webkit-details-marker { display:none; }
.document-folder-actions,.managed-document-actions details>div { position:absolute; z-index:6; top:calc(100% + 7px); right:0; display:grid; gap:10px; width:min(330px,calc(100vw - 40px)); padding:13px; border:1px solid #cfd8dd; border-radius:6px; background:#fff; box-shadow:0 16px 38px rgba(24,32,56,.16); }
.document-folder-actions form,.managed-document-actions form { display:grid; gap:8px; }
.document-folder-actions form+form,.managed-document-actions form+form { padding-top:10px; border-top:1px solid #e8ecef; }
.document-folder-actions button,.managed-document-actions button { min-height:36px; padding:0 11px; color:#fff; border:0; border-radius:4px; background:var(--navy); font-size:9px; font-weight:850; }
.managed-document-actions details>div>a { display:grid; min-height:36px; place-items:center; padding:0 11px; color:var(--navy); border:1px solid #cbd5da; border-radius:4px; background:#fff; font-size:9px; font-weight:850; text-align:center; }
.document-folder-actions button.is-danger,.managed-document-actions button.is-danger { background:#9c3540; }
.document-folder-actions button:disabled,.managed-document-actions button:disabled { opacity:.45; cursor:not-allowed; }
.document-folder-files { display:grid; }
.managed-document-row { display:grid; grid-template-columns:48px minmax(0,1fr) auto; align-items:center; gap:14px; padding:16px 21px; border-top:1px solid #edf0f2; }
.managed-document-row:first-child { border-top:0; }
.managed-document-type { display:grid; width:46px; height:46px; place-items:center; color:var(--teal); border:1px solid #b8d9dc; border-radius:5px; background:#f0f9fa; font-size:8px; font-weight:900; }
.managed-document-copy { display:grid; gap:4px; min-width:0; }
.managed-document-copy strong { overflow-wrap:anywhere; color:var(--navy); font-size:11px; }
.managed-document-copy small,.managed-document-copy em { overflow-wrap:anywhere; color:#6b7781; font-size:8px; font-style:normal; line-height:1.45; }
.managed-document-copy em { color:#87929a; }
.managed-document-actions { display:flex; align-items:center; gap:8px; }
.managed-document-actions>a,.managed-document-actions>button,.managed-document-actions details>summary { min-height:34px; padding:0 10px; color:var(--navy); border:1px solid #cbd5da; border-radius:4px; background:#fff; font-size:8px; font-weight:850; line-height:32px; list-style:none; }
.managed-document-actions details>summary::-webkit-details-marker { display:none; }
.managed-document-actions details>div { width:min(360px,calc(100vw - 40px)); }
.document-upload-form { display:grid; grid-template-columns:minmax(200px,.75fr) minmax(220px,1fr) auto; align-items:end; gap:13px; padding:17px 21px; border-top:1px dashed #cdd8dd; background:#f5f9f9; }
.customer-project-document-index { overflow:hidden; }
.customer-project-document-index>div { display:grid; }
.customer-project-document-index>div>article { display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:14px; padding:16px 22px; border-top:1px solid #e7ebee; }
.customer-project-document-index article>div { display:grid; gap:4px; min-width:0; }
.customer-project-document-index article strong { overflow-wrap:anywhere; color:var(--navy); font-size:10px; }
.customer-project-document-index article small { overflow-wrap:anywhere; color:#697681; font-size:8px; line-height:1.5; }
.customer-project-document-index nav { display:flex; align-items:center; gap:8px; }
.customer-project-document-index nav a,.customer-project-document-index nav button { min-height:35px; padding:0 10px; color:var(--navy); border:1px solid #cad4da; border-radius:4px; background:#fff; font-size:8px; font-weight:850; line-height:33px; }
.personal-document-library { display:grid; gap:18px; }
.personal-library-section { overflow:hidden; border:1px solid #d8e0e5; border-radius:8px; background:#fff; }
.document-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:23px 25px; border-bottom:1px solid #e4e9ec; }
.document-section-heading h2 { margin:4px 0 0; color:var(--navy); font-family:var(--serif); font-size:29px; font-weight:600; }
.document-section-heading p:not(.section-label) { margin:8px 0 0; color:#697681; font-size:9px; line-height:1.55; }
.document-section-heading>span { flex:0 0 auto; padding:7px 10px; color:var(--teal); border:1px solid #bfdbde; border-radius:999px; background:#f1f9fa; font-size:8px; font-weight:850; }
.personal-folder-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(390px,1fr)); gap:12px; padding:14px; background:#f5f7f8; }
.personal-folder-card { overflow:hidden; border:1px solid #dce3e7; border-radius:6px; background:#fff; }
.personal-folder-card>header,.customer-managed-folder>header { display:flex; align-items:center; gap:12px; padding:17px 19px; border-bottom:1px solid #e6eaed; }
.personal-folder-card>header>span,.customer-managed-folder>header>span { display:grid; width:35px; height:35px; place-items:center; color:#fff; border-radius:5px; background:var(--teal); font-size:14px; }
.personal-folder-card h3,.customer-managed-folder h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:22px; font-weight:600; }
.personal-folder-card header small,.customer-managed-folder header small { display:block; margin-top:3px; color:#75818a; font-size:8px; }
.personal-folder-files { display:grid; }
.personal-managed-document { display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:12px; padding:14px 17px; border-top:1px solid #edf0f2; }
.personal-managed-document:first-child { border-top:0; }
.personal-managed-document-copy { display:grid; gap:3px; min-width:0; }
.personal-managed-document h4 { margin:0; overflow-wrap:anywhere; color:var(--navy); font-size:10px; }
.personal-managed-document p,.personal-managed-document small { margin:0; overflow-wrap:anywhere; color:#697681; font-size:8px; line-height:1.45; }
.personal-managed-document .button { display:grid; min-height:36px; place-items:center; padding:0 11px; font-size:8px; }
.customer-managed-documents { margin-top:18px; overflow:hidden; border:1px solid #cfe0e3; border-radius:8px; background:#fff; }
.customer-contract-documents,.customer-managed-documents,.customer-contact { scroll-margin-top:calc(var(--app-header-height) + 18px); }
.crm-has-preview-notice .customer-contract-documents,.crm-has-preview-notice .customer-managed-documents,.crm-has-preview-notice .customer-contact { scroll-margin-top:calc(var(--app-header-height) + 52px); }
.customer-managed-documents>header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:25px 27px; color:#fff; background:linear-gradient(110deg,var(--navy),#075f6b); }
.customer-managed-documents>header .section-label { color:#9ed8dd; }
.customer-managed-documents>header h2 { margin:4px 0 0; font-family:var(--serif); font-size:31px; font-weight:600; }
.customer-managed-documents>header p:not(.section-label) { max-width:720px; margin:8px 0 0; color:rgba(255,255,255,.68); font-size:9px; line-height:1.6; }
.customer-managed-documents>header>strong { display:grid; min-width:96px; justify-items:center; font-family:var(--serif); font-size:32px; }
.customer-managed-documents>header>strong small { color:rgba(255,255,255,.62); font:800 8px/1.2 var(--sans); text-transform:uppercase; }
.customer-managed-folder-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(410px,1fr)); gap:12px; padding:14px; background:#f5f8f8; }
.customer-managed-folder { overflow:hidden; border:1px solid #d8e1e5; border-radius:6px; background:#fff; }
.customer-managed-folder ul { margin:0; padding:0; list-style:none; }
.customer-managed-folder li { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:16px; padding:14px 17px; border-top:1px solid #edf0f2; }
.customer-managed-folder li:first-child { border-top:0; }
.customer-managed-folder li>.document-type-mark { width:44px; height:44px; border-radius:5px; }
.customer-managed-folder li>div { display:grid; gap:3px; min-width:0; }
.customer-managed-folder li strong { overflow-wrap:anywhere; color:var(--navy); font-size:10px; }
.customer-managed-folder li small { overflow-wrap:anywhere; color:#68757f; font-size:8px; line-height:1.45; }
.customer-managed-folder li .button { display:grid; min-height:35px; place-items:center; padding:0 10px; font-size:8px; }
.customer-document-open-button { display:inline-grid; min-width:92px; min-height:36px; place-items:center; padding:0 13px; color:var(--navy); border-color:var(--navy); border-radius:4px; background:#fff; font-size:9px; font-weight:800; line-height:1.2; text-align:center; }
.customer-managed-folder li.is-empty { display:block; color:#75818a; font-size:9px; }

@media (max-width:980px) {
  .document-recipient-heading { grid-template-columns:52px minmax(0,1fr); }
  .document-recipient-heading dl { grid-column:1/-1; }
  .document-upload-form { grid-template-columns:1fr 1fr; }
  .document-upload-form .button { grid-column:1/-1; }
  .personal-folder-grid,.customer-managed-folder-grid { grid-template-columns:1fr; }
}
@media (max-width:660px) {
  .document-area-tabs { grid-template-columns:1fr; }
  .document-recipient-browser>header,.customer-project-document-index>header,.document-section-heading,.customer-managed-documents>header { align-items:flex-start; flex-direction:column; padding:21px 18px; }
  .document-recipient-browser>header>strong,.customer-project-document-index>header>strong,.customer-managed-documents>header>strong { justify-items:start; }
  .document-recipient-groups { grid-template-columns:1fr; padding:9px; }
  .document-recipient-groups a { grid-template-columns:38px minmax(0,1fr); }
  .document-recipient-groups dl { grid-column:2; }
  .document-recipient-heading { grid-template-columns:45px minmax(0,1fr); padding:21px 18px; }
  .document-recipient-heading>.document-recipient-mark { width:45px; height:45px; }
  .document-recipient-heading h1 { font-size:30px; }
  .document-recipient-heading dl { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .document-folder-create>header { padding:20px 18px 0; }
  .document-folder-create>form,.document-upload-form { grid-template-columns:1fr; padding:17px 18px; }
  .document-upload-form .button { grid-column:auto; }
  .document-folder-create .button,.document-upload-form .button { width:100%; }
  .document-folder-card>header { padding:19px 18px; }
  .document-folder-card>header { flex-direction:column; }
  .document-folder-lock { align-self:flex-start; }
  .managed-document-row,.personal-managed-document,.customer-managed-folder li,.customer-project-document-index>div>article { grid-template-columns:46px minmax(0,1fr); align-items:start; padding:15px 17px; }
  .managed-document-actions,.personal-managed-document .button,.customer-managed-folder li .button,.customer-project-document-index nav { grid-column:1/-1; width:100%; }
  .managed-document-actions>a,.managed-document-actions>button,.managed-document-actions details,.managed-document-actions details>summary,.personal-managed-document .button,.customer-managed-folder li .button,.customer-project-document-index nav a,.customer-project-document-index nav button { width:100%; text-align:center; }
  .document-folder-actions,.managed-document-actions details>div { position:fixed; top:auto; right:12px; bottom:12px; left:12px; width:auto; max-height:80vh; overflow:auto; }
  .personal-folder-grid,.customer-managed-folder-grid { padding:9px; }
  .customer-managed-documents { margin-top:14px; }
}
.access-full-button { display:grid; width:100%; place-items:center; }.customer-admin-heading>div>p:last-child { max-width:560px; margin:14px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }.customer-create-panel[hidden] { display:none; }.customer-create-panel { margin:0 0 20px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.customer-create-panel>header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:24px 25px; border-bottom:1px solid var(--line); }.customer-create-panel h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:30px; font-weight:500; line-height:1; }.customer-create-panel>header>button { display:grid; width:32px; height:32px; place-items:center; padding:0; color:var(--navy); border:1px solid var(--line); border-radius:3px; background:#fff; font-size:24px; line-height:1; }.customer-create-panel form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:25px; }.customer-create-panel label { display:grid; gap:7px; min-width:0; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.customer-create-panel input,.customer-create-panel select { width:100%; min-width:0; min-height:43px; padding:0 11px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; outline:0; background:#fff; font:inherit; font-size:12px; letter-spacing:0; text-transform:none; }.customer-create-panel input:focus,.customer-create-panel select:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }.customer-create-panel .customer-project-field,.customer-create-panel footer { grid-column:1/-1; }.customer-create-panel footer { display:flex; justify-content:flex-end; gap:9px; padding-top:3px; }.customer-table table { min-width:1020px; }.customer-table td { vertical-align:top; }.customer-table td>small { color:var(--muted); font-size:9px; line-height:1.65; }.customer-project-list { display:grid; gap:18px; }.customer-project-secure { grid-template-columns:minmax(260px,.88fr) minmax(320px,1.12fr); }.customer-project-identity { display:flex; flex-direction:column; justify-content:center; min-height:310px; padding:38px; color:#fff; background:var(--navy); }.customer-project-identity h2 { max-width:430px; margin:0; font-family:var(--serif); font-size:37px; font-weight:500; line-height:1; }.customer-project-identity>p:not(.section-label) { margin:13px 0 25px; color:rgba(255,255,255,.7); font-size:11px; }.customer-project-identity>span { color:#9ed8dd; font-size:9px; font-weight:700; }.customer-project-identity .section-label { color:#9ed8dd; }.customer-empty { margin-bottom:18px; }
@media (max-width:660px) { .customer-create-panel>header { padding:21px 18px; }.customer-create-panel form { grid-template-columns:1fr; padding:21px 18px; }.customer-create-panel .customer-project-field,.customer-create-panel footer { grid-column:auto; }.customer-create-panel footer { flex-direction:column-reverse; }.customer-create-panel footer .button { width:100%; }.customer-create-panel input,.customer-create-panel select { font-size:16px; }.customer-project-secure { grid-template-columns:1fr; }.customer-project-identity { min-height:220px; padding:26px 24px; }.customer-project-identity h2 { font-size:30px; } }
.finance-heading { align-items:start; }.finance-heading>div>p:last-child { max-width:590px; margin:15px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }.finance-tabs { display:flex; gap:6px; margin-bottom:18px; padding:6px; overflow-x:auto; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.finance-tabs a { flex:0 0 auto; min-height:35px; padding:10px 12px; color:var(--muted); border-radius:3px; font-size:10px; font-weight:700; }.finance-tabs a:hover,.finance-tabs a.is-active { color:#fff; background:var(--navy); }.finance-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }.finance-summary article { min-height:150px; padding:21px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.finance-summary span,.finance-summary small { display:block; color:var(--muted); font-size:9px; line-height:1.55; }.finance-summary strong { display:block; margin:25px 0 9px; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:600; line-height:1; }.finance-area-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-bottom:18px; }.finance-area { min-height:192px; padding:27px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.finance-area h2,.finance-workspace h2,.finance-charts h2,.finance-privacy h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:28px; font-weight:500; line-height:1; }.finance-area>p:not(.section-label) { max-width:410px; margin:13px 0 19px; color:var(--muted); font-size:11px; line-height:1.7; }.finance-area>span { color:var(--teal); font-size:9px; font-weight:800; }.finance-workspace { margin-bottom:18px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.finance-workspace>header,.finance-charts article>header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 25px; border-bottom:1px solid var(--line); }.finance-workspace .section-label,.finance-charts .section-label { margin-bottom:5px; }.finance-empty { padding:38px 25px; }.finance-empty strong { color:var(--navy); font-size:12px; }.finance-empty p { max-width:530px; margin:8px 0 0; color:var(--muted); font-size:11px; line-height:1.7; }.finance-charts { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.finance-charts article { overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.empty-chart { display:grid; min-height:185px; place-items:center; margin:0 25px 25px; border-bottom:1px solid #d7e6e8; background:repeating-linear-gradient(to top,transparent 0,transparent 36px,#eef2f3 37px); }.empty-chart span { padding:8px 10px; color:var(--muted); background:rgba(255,255,255,.9); font-size:9px; font-weight:700; }.finance-privacy { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:18px; padding:30px; color:#fff; background:var(--navy); }.finance-privacy .section-label { color:rgba(255,255,255,.58); }.finance-privacy h2 { color:#fff; }.finance-privacy p { max-width:590px; margin:11px 0 0; color:rgba(255,255,255,.7); font-size:11px; line-height:1.7; }.finance-privacy>span { flex:0 0 auto; padding:8px 10px; color:#bce9ee; border:1px solid rgba(188,233,238,.32); font-size:9px; font-weight:800; }
@media (max-width:980px) { .finance-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:660px) { .finance-summary,.finance-area-grid,.finance-charts { grid-template-columns:1fr; }.finance-tabs { margin-right:-18px; margin-left:-18px; padding-right:18px; padding-left:18px; border-right:0; border-left:0; border-radius:0; }.finance-workspace>header,.finance-charts article>header { align-items:flex-start; flex-direction:column; padding:21px 18px; }.finance-empty { padding:28px 18px; }.finance-charts article>header { border-bottom:0; }.empty-chart { margin:0 18px 18px; }.finance-privacy { align-items:flex-start; flex-direction:column; padding:26px 24px; } }
.project-admin-heading>div>p:last-child { max-width:620px; margin:14px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }.project-create-panel[hidden] { display:none; }.project-create-panel { margin:0 0 20px; overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.project-create-panel>header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:24px 25px; color:#fff; background:var(--navy); }.project-create-panel>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:32px; font-weight:500; line-height:1; }.project-create-panel>header p:not(.section-label) { max-width:580px; margin:10px 0 0; color:rgba(255,255,255,.68); font-size:10px; line-height:1.6; }.project-create-panel>header .section-label { color:#a9dfe3; }.project-create-panel>header>button { display:grid; flex:0 0 auto; width:32px; height:32px; place-items:center; padding:0; color:#fff; border:1px solid rgba(255,255,255,.24); border-radius:3px; background:transparent; font-size:24px; line-height:1; }.project-create-panel form { display:grid; gap:0; }.project-form-section { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0; padding:25px; border:0; border-bottom:1px solid var(--line); }.project-form-section legend { grid-column:1/-1; width:100%; margin:0 0 2px; padding:0; color:var(--navy); font-family:var(--serif); font-size:24px; font-weight:600; }.project-form-section label { display:grid; gap:7px; min-width:0; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.project-form-section input,.project-form-section select { width:100%; min-width:0; min-height:43px; padding:0 11px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; outline:0; background:#fff; font:inherit; font-size:12px; letter-spacing:0; text-transform:none; }.project-form-section input[readonly] { color:#59636d; background:#f4f6f6; }.project-form-section input:focus,.project-form-section select:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }.project-form-wide { grid-column:1/-1; }.project-money-input { position:relative; }.project-money-input input { padding-right:42px; }.project-money-input b { position:absolute; top:50%; right:12px; color:var(--muted); font-size:10px; transform:translateY(-50%); }.project-create-panel form>footer { display:flex; justify-content:flex-end; gap:9px; padding:20px 25px; }.project-form-empty { margin:0; padding:34px 25px; color:var(--muted); font-size:11px; line-height:1.7; }.project-register { overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.project-register>header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 25px; border-bottom:1px solid var(--line); }.project-register>header h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:30px; font-weight:500; line-height:1; }.project-records { display:grid; gap:14px; padding:18px; background:#f5f7f7; }.project-record { overflow:hidden; border:1px solid var(--line); border-radius:5px; background:#fff; }.project-record>header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:21px 23px; border-bottom:1px solid var(--line); }.project-record>header span { display:block; margin-bottom:6px; color:var(--teal); font-size:9px; font-weight:800; letter-spacing:.08em; }.project-record>header h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:600; line-height:1.05; }.project-record>header>strong { flex:0 0 auto; padding:7px 9px; color:var(--teal); border:1px solid #c8dfe1; border-radius:3px; background:#f2f9f9; font-size:9px; font-weight:800; }.project-record-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }.project-record-grid>section { min-width:0; padding:21px 23px; border-right:1px solid var(--line); }.project-record-grid>section:last-child { border-right:0; }.project-record-grid .section-label { margin-bottom:13px; }.project-record dl { display:grid; gap:11px; margin:0; }.project-record dl>div { display:grid; gap:3px; }.project-record dt { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.project-record dd { margin:0; overflow-wrap:anywhere; color:var(--ink); font-size:11px; font-weight:600; line-height:1.45; }.project-financial-block { background:#f7fbfb; }.project-record>footer { padding:11px 23px; color:#7a838d; border-top:1px solid var(--line); background:#fbfcfc; font-size:8px; font-style:italic; line-height:1.5; }
@media (max-width:760px) { .project-create-panel>header { padding:22px 18px; }.project-form-section { grid-template-columns:1fr; padding:22px 18px; }.project-form-wide { grid-column:auto; }.project-create-panel form>footer { flex-direction:column-reverse; padding:18px; }.project-create-panel form>footer .button { width:100%; }.project-form-section input,.project-form-section select { font-size:16px; }.project-register>header { padding:21px 18px; }.project-records { padding:10px; }.project-record>header { align-items:flex-start; flex-direction:column; padding:19px 18px; }.project-record>header h3 { font-size:25px; }.project-record-grid { grid-template-columns:1fr; }.project-record-grid>section { padding:19px 18px; border-right:0; border-bottom:1px solid var(--line); }.project-record-grid>section:last-child { border-bottom:0; }.project-record>footer { padding:11px 18px; } }
@media (max-width:660px) { .project-admin-heading { width:100%; min-width:0; max-width:calc(100vw - 36px); overflow:hidden; }.project-admin-heading>div { width:100%; min-width:0; max-width:calc(100vw - 36px); }.project-admin-heading>div>p:last-child { width:100%; max-width:100%; overflow-wrap:anywhere; white-space:normal; }.project-register,.project-record { width:100%; min-width:0; max-width:calc(100vw - 36px); }.project-record>header h3 { max-width:100%; overflow-wrap:anywhere; }.profile small { display:none; }.profile strong { max-width:112px; } }
@media (max-width:420px) { .profile>span:nth-child(2) { display:none; } }
.customer-contract-total { margin-top:2px; padding:10px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.customer-contract-total dt,.customer-contract-total dd { color:var(--teal); font-weight:800; }.change-request-heading { align-items:start; }.change-request-heading>div>p:last-child { max-width:690px; margin:14px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }.change-request-composer,.change-request-list-panel { overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.change-request-list-panel { margin-top:18px; }.change-request-composer>header,.change-request-list-panel>header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:25px; border-bottom:1px solid var(--line); }.change-request-composer h2,.change-request-list-panel h2,.admin-change-summary h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:30px; font-weight:500; line-height:1; }.change-request-composer>header p:not(.section-label),.admin-change-summary p:not(.section-label) { max-width:680px; margin:10px 0 0; color:var(--muted); font-size:10px; line-height:1.65; }.change-request-composer>form { display:grid; gap:17px; padding:25px; }.change-request-composer label,.change-refinement-form label,.admin-change-response label { display:grid; gap:7px; min-width:0; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.change-request-composer select,.change-request-composer textarea,.change-refinement-form textarea,.admin-change-response textarea,.admin-change-response input { width:100%; min-width:0; padding:11px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; outline:0; background:#fff; font:inherit; font-size:12px; letter-spacing:0; text-transform:none; }.change-request-composer select { min-height:43px; padding-top:0; padding-bottom:0; }.change-request-composer textarea,.change-refinement-form textarea,.admin-change-response textarea { line-height:1.65; resize:vertical; }.change-request-composer select:focus,.change-request-composer textarea:focus,.change-refinement-form textarea:focus,.admin-change-response textarea:focus,.admin-change-response input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }.change-request-composer>form>footer { display:flex; justify-content:flex-end; }.change-request-list { display:grid; gap:14px; padding:18px; background:#f5f7f7; }.change-request-card { overflow:hidden; border:1px solid var(--line); border-radius:5px; background:#fff; }.change-request-card>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:21px 23px; border-bottom:1px solid var(--line); }.change-request-card>header span { display:block; margin-bottom:6px; color:var(--teal); font-size:9px; font-weight:800; letter-spacing:.05em; }.change-request-card>header h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:26px; font-weight:600; line-height:1.05; }.change-request-card>header small { display:block; margin-top:7px; color:var(--muted); font-size:8px; }.change-status { flex:0 0 auto; max-width:235px; padding:7px 9px; color:#75591e; border:1px solid #dec98d; border-radius:3px; background:#fff9e9; font-size:8px; font-style:normal; font-weight:800; line-height:1.35; text-align:center; text-transform:uppercase; }.change-status-quoted { color:var(--teal); border-color:#acd4d8; background:#eff9fa; }.change-status-accepted { color:#2e6b45; border-color:#a8ceb6; background:#f1faf4; }.change-status-rejected { color:#94323b; border-color:#d9a1a6; background:#fff3f4; }.change-quote { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 23px; color:#fff; background:var(--navy); }.change-quote span { font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.change-quote strong { font-family:var(--serif); font-size:25px; font-weight:600; }.change-conversation { display:grid; gap:10px; padding:22px 23px; }.change-message { max-width:min(82%,780px); padding:14px 16px; border:1px solid var(--line); border-radius:4px; background:#f7f8f9; }.change-message.is-admin { justify-self:end; border-color:#bcdcdf; background:#f0f9fa; }.change-message>header { display:flex; align-items:center; justify-content:space-between; gap:18px; }.change-message strong { color:var(--navy); font-size:9px; }.change-message time { color:var(--muted); font-size:8px; }.change-message p { margin:8px 0 0; color:var(--ink); font-size:11px; line-height:1.7; }.change-attachments { padding:0 23px 22px; }.change-attachments .section-label { margin-bottom:10px; }.change-customer-actions,.admin-change-response { display:grid; gap:16px; padding:22px 23px; border-top:1px solid var(--line); background:#fbfcfc; }.change-refinement-form { display:grid; gap:12px; }.change-refinement-form .button { justify-self:start; }.change-decision-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; padding-top:16px; border-top:1px solid var(--line); }.admin-change-response { grid-template-columns:minmax(0,1fr) minmax(220px,.36fr); align-items:end; }.admin-change-response>label:first-of-type { grid-row:span 2; }.admin-change-response footer { display:flex; justify-content:flex-end; }.project-detail-tabs { display:flex; gap:6px; margin:-4px 0 18px; padding:6px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.project-detail-tabs a { display:flex; align-items:center; gap:8px; min-height:38px; padding:0 14px; color:var(--muted); border-radius:3px; font-size:10px; font-weight:800; }.project-detail-tabs a:hover,.project-detail-tabs a.is-active { color:#fff; background:var(--navy); }.project-detail-tabs span { display:grid; min-width:20px; height:20px; place-items:center; border-radius:50%; background:var(--teal); font-size:8px; }.admin-change-summary { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:27px 30px; color:#fff; background:var(--navy); }.admin-change-summary h2 { color:#fff; }.admin-change-summary .section-label { color:#9ed8dd; }.admin-change-summary p:not(.section-label) { color:rgba(255,255,255,.68); }.admin-change-summary dl { display:grid; flex:0 0 min(440px,48%); grid-template-columns:1fr 1fr; gap:12px; margin:0; }.admin-change-summary dl div { padding:14px; border:1px solid rgba(255,255,255,.16); }.admin-change-summary dt { color:rgba(255,255,255,.62); font-size:8px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }.admin-change-summary dd { margin:7px 0 0; color:#fff; font-family:var(--serif); font-size:22px; font-weight:600; }.admin-change-panel { margin-top:18px; }
@media (max-width:760px) { .change-request-composer>header,.change-request-list-panel>header { padding:21px 18px; }.change-request-composer>form { padding:21px 18px; }.change-request-composer select,.change-request-composer textarea,.change-refinement-form textarea,.admin-change-response textarea,.admin-change-response input { font-size:16px; }.change-request-composer>form>footer .button { width:100%; }.change-request-list { padding:10px; }.change-request-card>header { align-items:flex-start; flex-direction:column; padding:19px 18px; }.change-status { max-width:100%; text-align:left; }.change-quote { padding:16px 18px; }.change-conversation { padding:18px; }.change-message { max-width:92%; }.change-message>header { align-items:flex-start; flex-direction:column; gap:4px; }.change-attachments,.change-customer-actions,.admin-change-response { padding:18px; }.change-decision-actions { flex-direction:column; }.change-decision-actions form,.change-decision-actions .button,.change-refinement-form .button { width:100%; }.admin-change-response { grid-template-columns:1fr; }.admin-change-response>label:first-of-type { grid-row:auto; }.admin-change-response .button { width:100%; }.project-detail-tabs { overflow-x:auto; }.project-detail-tabs a { flex:0 0 auto; }.admin-change-summary { align-items:flex-start; flex-direction:column; padding:24px 21px; }.admin-change-summary dl { flex:auto; grid-template-columns:1fr; width:100%; }.customer-contract-total { padding:9px 0; } }
.dashboard-live-heading { align-items:flex-start; }.dashboard-live-heading>div>p:last-child { max-width:610px; margin:14px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }.dashboard-live-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }.dashboard-live-summary article { min-height:145px; padding:21px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.dashboard-live-summary span,.dashboard-live-summary small { display:block; color:var(--muted); font-size:9px; line-height:1.5; }.dashboard-live-summary span { font-weight:800; letter-spacing:.06em; text-transform:uppercase; }.dashboard-live-summary strong { display:block; margin:23px 0 9px; color:var(--navy); font-family:var(--serif); font-size:36px; font-weight:600; line-height:.8; }.dashboard-focus-card { display:grid; grid-template-columns:minmax(300px,.9fr) minmax(360px,1.1fr); overflow:hidden; color:#fff; border-radius:6px; background:var(--navy); }.dashboard-focus-card>div { min-width:0; padding:34px; }.dashboard-focus-card>div:first-child { display:flex; flex-direction:column; justify-content:center; border-right:1px solid rgba(255,255,255,.12); }.dashboard-focus-card .section-label { color:#9ed8dd; }.dashboard-focus-card h2 { max-width:620px; margin:0; font-family:var(--serif); font-size:38px; font-weight:500; line-height:1; }.dashboard-focus-card p:not(.section-label) { margin:13px 0 21px; color:rgba(255,255,255,.68); font-size:11px; }.dashboard-focus-card small { color:rgba(255,255,255,.5); font-size:8px; }.dashboard-focus-card>div:last-child>span { display:block; color:#9ed8dd; font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.dashboard-focus-card>div:last-child>strong { display:block; margin:12px 0 9px; font-family:var(--serif); font-size:35px; font-weight:500; }.dashboard-focus-card .progress-row { margin-bottom:20px; }.dashboard-focus-card dl { display:grid; gap:9px; margin:0 0 20px; }.dashboard-focus-card dl div { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.dashboard-focus-card dt,.dashboard-focus-card dd { margin:0; font-size:9px; }.dashboard-focus-card dt { color:rgba(255,255,255,.58); }.dashboard-focus-card dd { color:#fff; font-weight:700; }.dashboard-focus-card .text-button { color:#9ed8dd; }.dashboard-live-grid { margin-top:18px; }.dashboard-live-grid .data-panel>header>div .section-label { margin-bottom:5px; }.dashboard-task-list,.dashboard-update-list { display:grid; margin:0; padding:0 25px; list-style:none; }.dashboard-task-list li,.dashboard-update-list li { display:grid; align-items:center; gap:12px; min-height:76px; padding:10px 0; border-bottom:1px solid var(--line); }.dashboard-task-list li { grid-template-columns:43px minmax(0,1fr) auto; }.dashboard-update-list li { grid-template-columns:58px minmax(0,1fr) auto; }.dashboard-task-list time,.dashboard-update-list time { color:var(--teal); font-size:9px; font-weight:800; line-height:1.45; }.dashboard-task-list strong,.dashboard-update-list strong { display:block; color:var(--ink); font-size:11px; line-height:1.45; }.dashboard-task-list small,.dashboard-update-list small { display:block; margin-top:4px; color:var(--muted); font-size:8px; line-height:1.45; }.dashboard-task-list em,.dashboard-update-list em { color:var(--muted); font-size:8px; font-style:normal; font-weight:800; text-transform:uppercase; }.dashboard-update-list em.is-customer { color:var(--teal); }.dashboard-project-table { margin-top:18px; }.dashboard-project-table table { min-width:860px; }.dashboard-project-table td a { display:block; }.dashboard-deadlines { margin-top:18px; overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--surface); }.dashboard-deadlines>header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 25px; border-bottom:1px solid var(--line); }.dashboard-deadlines h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:500; line-height:1; }.dashboard-deadlines>div { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }.dashboard-deadlines article { min-width:0; padding:20px 23px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.dashboard-deadlines time { display:block; margin-bottom:8px; color:var(--teal); font-size:9px; font-weight:800; }.dashboard-deadlines strong { display:block; overflow-wrap:anywhere; color:var(--navy); font-size:11px; }.dashboard-deadlines small { display:block; margin-top:5px; color:var(--muted); font-size:8px; line-height:1.45; }.dashboard-live-empty { margin-top:18px; }
@media (max-width:980px) { .dashboard-live-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.dashboard-focus-card { grid-template-columns:1fr; }.dashboard-focus-card>div:first-child { border-right:0; border-bottom:1px solid rgba(255,255,255,.12); } }
@media (max-width:660px) { .dashboard-live-heading .button { width:100%; }.dashboard-live-summary { grid-template-columns:1fr 1fr; gap:9px; }.dashboard-live-summary article { min-height:125px; padding:17px; }.dashboard-live-summary strong { margin-top:18px; font-size:31px; }.dashboard-focus-card>div { padding:25px 24px; }.dashboard-focus-card h2 { font-size:31px; }.dashboard-focus-card dl div { grid-template-columns:1fr; gap:3px; }.dashboard-task-list,.dashboard-update-list { padding:0 18px; }.dashboard-task-list li,.dashboard-update-list li { grid-template-columns:48px minmax(0,1fr); align-items:start; padding:15px 0; }.dashboard-task-list em,.dashboard-update-list em { grid-column:2; }.dashboard-deadlines>header { padding:21px 18px; }.dashboard-deadlines>div { grid-template-columns:1fr; }.dashboard-deadlines article { padding:18px; border-right:0; } }

/* Admin-only customer portal preview */
.customer-view-preview-notice { display:flex; align-items:center; justify-content:space-between; gap:18px; text-align:left; }
.customer-view-preview-notice a { flex:0 0 auto; padding:6px 10px; color:#fff; border:1px solid rgba(255,255,255,.55); border-radius:3px; font-size:9px; font-weight:800; }
.customer-view-preview-notice a:hover { background:rgba(255,255,255,.12); }
.role-account-preview-notice { display:flex; align-items:center; justify-content:space-between; gap:18px; text-align:left; }
.role-account-preview-notice span { min-width:0; }
.role-account-preview-notice a { flex:0 0 auto; padding:6px 10px; color:#fff; border:1px solid rgba(255,255,255,.55); border-radius:3px; font-size:9px; font-weight:800; }
.role-account-preview-notice a:hover { background:rgba(255,255,255,.12); }
.project-detail-heading { margin-bottom:14px; }
.project-customer-preview-toolbar { display:flex; align-items:center; gap:14px; margin:0 0 22px; padding:11px 14px; border:1px solid rgba(0,119,136,.22); border-radius:4px; background:#f2f9f9; }
.project-customer-preview-toolbar span { color:var(--muted); font-size:9px; line-height:1.5; }
.button-customer-preview { flex:0 0 auto; min-height:38px; color:#fff; border-color:var(--teal); background:var(--teal); }
.button-customer-preview:hover { color:#fff; background:#005f6d; }
.project-record-actions { display:flex; align-items:center; justify-content:flex-end; gap:14px; }
.project-record>footer .project-customer-preview-link { padding:6px 8px; color:#fff; border-radius:3px; background:var(--teal); }
@media (max-width:760px) {
  .project-customer-preview-toolbar,.customer-view-preview-notice,.role-account-preview-notice { align-items:flex-start; flex-direction:column; }
  .project-customer-preview-toolbar .button { width:100%; }
  .project-record-actions { align-items:flex-start; flex-direction:column; }
}

/* Kolléga and Partner roles: focused personal overview with operational modules only. */
.colleague-overview { display:grid; gap:22px; }
.colleague-welcome {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:40px;
  min-height:280px;
  overflow:hidden;
  padding:48px clamp(28px,5vw,68px);
  color:#fff;
  border-radius:8px;
  background:linear-gradient(125deg,#182038 0%,#1f2a47 66%,#007788 145%);
  box-shadow:0 16px 40px rgba(24,32,56,.12);
}
.colleague-welcome::after {
  position:absolute;
  right:-80px;
  bottom:-140px;
  width:330px;
  height:330px;
  content:"";
  border:1px solid rgba(158,216,221,.2);
  border-radius:50%;
}
.colleague-welcome-copy { position:relative; z-index:1; max-width:720px; }
.colleague-welcome .section-label { margin:0 0 13px; color:#9ed8dd; }
.colleague-welcome h1 {
  margin:0;
  color:#fff;
  font-family:var(--serif);
  font-size:clamp(43px,5vw,68px);
  font-weight:500;
  line-height:1.02;
}
.crm-app .app-content .colleague-welcome-copy>p:last-child { max-width:640px; margin:18px 0 0; color:rgba(255,255,255,.72); font-size:14px; }
.colleague-welcome-mark { position:relative; z-index:1; display:grid; justify-items:center; gap:12px; }
.colleague-welcome-mark>span { display:grid; width:118px; height:118px; place-items:center; color:#fff; border:1px solid rgba(158,216,221,.45); border-radius:50%; background:rgba(255,255,255,.06); font-family:var(--serif); font-size:43px; font-weight:600; }
.colleague-welcome-mark>small { color:rgba(255,255,255,.48); font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.colleague-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.colleague-shortcut { position:relative; display:grid; grid-template-rows:auto 1fr auto; gap:24px; min-width:0; min-height:270px; padding:28px; overflow:hidden; color:var(--ink); border:1px solid #d8e0e6; border-radius:7px; background:#fff; box-shadow:0 8px 24px rgba(24,32,56,.045); transition:transform .2s,border-color .2s,box-shadow .2s; }
.colleague-shortcut:hover { transform:translateY(-2px); border-color:#aacbd0; box-shadow:0 14px 32px rgba(24,32,56,.09); }
.colleague-shortcut-number { color:#9aa5ad; font-family:var(--serif); font-size:25px; line-height:1; }
.colleague-shortcut .section-label { margin:0 0 8px; color:var(--teal); }
.colleague-shortcut h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:31px; font-weight:600; }
.crm-app .app-content .colleague-shortcut p:not(.section-label) { margin:11px 0 0; color:#6f7b85; font-size:12px; }
.crm-app .app-content .colleague-shortcut>strong { display:flex; align-items:center; justify-content:space-between; gap:16px; color:var(--teal); font-size:11px; font-weight:800; line-height:1.4; }
.colleague-shortcut>strong span { font-size:18px; font-weight:500; }

@media (max-width:980px) {
  .colleague-shortcuts { grid-template-columns:1fr; }
  .colleague-shortcut { grid-template-columns:48px minmax(0,1fr) auto; grid-template-rows:auto; align-items:center; min-height:0; }
  .colleague-shortcut>strong { justify-content:flex-end!important; }
}

@media (max-width:660px) {
  .colleague-overview { gap:13px; }
  .colleague-welcome { grid-template-columns:1fr; min-height:0; padding:32px 25px 35px; }
  .colleague-welcome h1 { font-size:43px; }
  .colleague-welcome-mark { display:none; }
  .colleague-shortcuts { gap:10px; }
  .colleague-shortcut { grid-template-columns:42px minmax(0,1fr); gap:17px; padding:22px 20px; }
  .colleague-shortcut>strong { grid-column:2; justify-content:space-between!important; }
  .colleague-shortcut h2 { font-size:27px; }
}

/* Partner and colleague settings, personal-data approval workflow. */
.settings-section-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.settings-section-nav a { display:grid; grid-template-columns:38px minmax(0,1fr); grid-template-rows:auto auto; align-items:center; column-gap:12px; min-height:72px; padding:13px 16px; color:var(--muted); border:1px solid var(--line); border-radius:6px; background:#fff; }
.settings-section-nav a>span { grid-row:1/3; display:grid; width:34px; height:34px; place-items:center; color:var(--teal); border-radius:50%; background:#eaf6f6; font-size:14px; }
.settings-section-nav a strong { color:var(--navy); font-size:14px; line-height:1.35; }
.settings-section-nav a small { font-size:11px; line-height:1.4; }
.settings-section-nav a.is-active { color:#fff; border-color:var(--navy); background:var(--navy); box-shadow:0 9px 24px rgba(24,32,56,.12); }
.settings-section-nav a.is-active>span { color:#fff; background:var(--teal); }
.settings-section-nav a.is-active strong { color:#fff; }
.settings-section-nav a.is-active small { color:#c5ccd7; }

.personal-settings-intro { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:27px 30px; color:#fff; border-radius:6px; background:linear-gradient(125deg,var(--navy),#253456); }
.personal-settings-intro>div { max-width:780px; }
.personal-settings-intro h2 { margin:0; font-family:var(--serif); font-size:32px; font-weight:600; line-height:1.08; }
.personal-settings-intro p:not(.section-label) { margin:10px 0 0; color:#c4cad5; font-size:12px; line-height:1.65; }
.personal-settings-intro .role-badge { flex:0 0 auto; padding:9px 13px; color:#fff; border-radius:999px; font-size:11px; font-weight:800; }
.role-badge-staff { background:#167989; }
.role-badge-partner { background:#a86721; }
.role-badge-subcontractor { background:#3266a8; }

.personal-data-request-form,.profile-request-history,.profile-request-pending { overflow:hidden; border:1px solid var(--line); border-radius:6px; background:#fff; }
.personal-data-request-form>header,.profile-request-history>header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:23px 25px; border-bottom:1px solid var(--line); }
.personal-data-request-form h2,.profile-request-history h2,.profile-request-pending h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:29px; font-weight:600; line-height:1.08; }
.personal-data-request-form header p:not(.section-label) { max-width:690px; margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.6; }
.personal-data-request-form>header>span { padding:7px 10px; color:#8a5b1f; border:1px solid #e6c898; border-radius:999px; background:#fff7e9; font-size:10px; font-weight:800; white-space:nowrap; }
.personal-data-request-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px; padding:24px 25px; }
.personal-data-request-fields label { display:grid; gap:8px; color:#53616e; font-size:11px; font-weight:800; }
.personal-data-request-fields input { width:100%; min-width:0; height:46px; padding:0 13px; color:var(--ink); border:1px solid #c6d0d7; border-radius:4px; outline:0; background:#fff; font:500 14px/1.3 var(--sans); }
.personal-data-request-fields input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.personal-data-request-form>footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:17px 25px; border-top:1px solid var(--line); background:#f8fafa; }
.personal-data-request-form>footer p { margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
.profile-request-pending { display:grid; grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:18px; padding:24px 26px; border-color:#dfbf94; background:#fffaf2; }
.profile-request-pending>span { display:grid; width:48px; height:48px; place-items:center; color:#a86721; border-radius:50%; background:#ffefd5; font-size:20px; }
.profile-request-pending p:not(.section-label) { margin:8px 0 0; color:#6f665b; font-size:12px; line-height:1.55; }
.profile-request-pending time { color:#8d704c; font-size:11px; font-weight:800; }
.profile-request-history>header { align-items:center; }
.profile-request-history>div { display:grid; }
.profile-request-history article { display:grid; grid-template-columns:108px minmax(0,1fr) auto; align-items:center; gap:18px; min-height:82px; padding:15px 25px; border-top:1px solid #e8ebed; }
.profile-request-history article:first-child { border-top:0; }
.profile-request-status { display:inline-flex; justify-content:center; padding:7px 9px; border-radius:999px; font-size:10px; font-weight:800; }
.profile-request-status.is-approved { color:#17684f; background:#eaf8f1; }
.profile-request-status.is-rejected { color:#922c37; background:#fff0f2; }
.profile-request-status.is-pending { color:#8a5b1f; background:#fff4df; }
.profile-request-history article>div { display:grid; gap:4px; min-width:0; }
.profile-request-history article strong { color:var(--navy); font-size:13px; overflow-wrap:anywhere; }
.profile-request-history article small,.profile-request-history article p { margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
.profile-request-history article time { color:#7e8791; font-size:11px; font-weight:700; white-space:nowrap; }

.profile-change-dropdown>summary svg { width:17px; height:17px; }
.profile-change-popover { width:min(820px,calc(100vw - 36px)); }
.profile-change-review-list { display:grid; }
.profile-change-review-list>article { padding:20px; border-top:1px solid var(--line); }
.profile-change-review-list>article:first-child { border-top:0; }
.profile-change-review-list>article>header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:15px; }
.profile-change-review-list h3 { margin:7px 0 0; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:600; line-height:1.08; }
.profile-change-review-list time { color:var(--muted); font-size:10px; font-weight:700; }
.profile-change-comparison { display:grid; grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr); align-items:stretch; gap:10px; }
.profile-change-comparison section { display:grid; align-content:start; gap:5px; min-width:0; padding:13px 14px; border:1px solid #dce2e6; border-radius:5px; background:#f8fafa; }
.profile-change-comparison section:last-child { border-color:#a9d1d5; background:#eff9f9; }
.profile-change-comparison span { color:#43515d; font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.profile-change-comparison>b { align-self:center; color:var(--teal); font-size:19px; text-align:center; }
.profile-change-review-list form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px; margin-top:14px; }
.profile-change-review-list form label { display:grid; gap:6px; color:#5d6975; font-size:10px; font-weight:800; }
.profile-change-review-list textarea { width:100%; min-height:64px; resize:vertical; padding:10px 11px; color:var(--ink); border:1px solid #c6d0d7; border-radius:4px; outline:0; font:500 12px/1.5 var(--sans); }
.profile-change-review-list form>div { display:flex; gap:8px; }
.admin-notification-modal-list article[hidden] { display:none !important; }

@media (max-width:760px) {
  .settings-section-nav { grid-template-columns:1fr; }
  .personal-settings-intro,.personal-data-request-form>header,.personal-data-request-form>footer { align-items:flex-start; flex-direction:column; padding:21px 19px; }
  .personal-settings-intro h2 { font-size:28px; }
  .personal-data-request-fields { grid-template-columns:1fr; padding:20px 19px; }
  .personal-data-request-fields input { font-size:16px; }
  .personal-data-request-form>footer .button { width:100%; }
  .profile-request-pending { grid-template-columns:48px minmax(0,1fr); padding:20px 18px; }
  .profile-request-pending time { grid-column:2; }
  .profile-request-history article { grid-template-columns:1fr; gap:8px; padding:16px 19px; }
  .profile-request-status { justify-self:start; }
  .profile-change-popover { position:fixed; top:calc(var(--app-header-height) + 10px); right:12px; left:12px; width:auto; max-height:calc(100vh - var(--app-header-height) - 24px); }
  .profile-change-comparison { grid-template-columns:1fr; }
  .profile-change-comparison>b { transform:rotate(90deg); }
  .profile-change-review-list form { grid-template-columns:1fr; }
  .profile-change-review-list form>div,.profile-change-review-list form .button { width:100%; }
}

/* Ügyfélportál: szerződés, elfogadott pótmunkák, PDF-ek és kapcsolat. */
.customer-contract-portal .customer-heading { max-width:780px; margin-bottom:27px; }
.customer-contract-portal .customer-heading h1 { font-size:clamp(42px,4.2vw,58px); }
.customer-contract-list { display:grid; gap:22px; }
.customer-contract-record {
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:6px;
  background:#fff;
  box-shadow:0 13px 34px rgba(24,32,56,.05);
}
.customer-contract-record::before { position:absolute; inset:0 auto 0 0; width:4px; content:""; background:var(--teal); }
.customer-contract-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:24px 28px 23px 31px;
  border-bottom:1px solid var(--line);
}
.customer-contract-header>div { display:grid; gap:5px; }
.customer-contract-header span { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.customer-contract-header strong { color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:600; line-height:1; }
.customer-contract-header p { margin:0; color:var(--muted); font-size:10px; font-weight:700; }
.customer-contract-primary { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); }
.customer-party-panel,.customer-contract-price { min-width:0; padding:30px 31px; }
.customer-party-panel { border-right:1px solid var(--line); }
.customer-party-panel h2,.customer-contract-price h2,.customer-contract-documents h2,.customer-payment-schedule h2 {
  margin:0;
  color:var(--navy);
  font-family:var(--serif);
  font-size:30px;
  font-weight:500;
  line-height:1;
}
.customer-party-panel dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 26px; margin:27px 0 0; }
.customer-party-panel dl>div { display:grid; gap:6px; min-width:0; padding-top:12px; border-top:1px solid #dce3e8; }
.customer-party-panel dt { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.customer-party-panel dd { margin:0; overflow-wrap:anywhere; color:var(--ink); font-size:11px; font-weight:700; line-height:1.55; }
.customer-contract-price { display:flex; flex-direction:column; justify-content:space-between; gap:28px; background:#eef8f8; }
.customer-contract-price-list { display:grid; gap:0; margin:0; padding-top:18px; border-top:1px solid #c7dde0; }
.customer-contract-price-list>div,.customer-contract-grand-total dl>div { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:18px; min-width:0; padding:5px 0; }
.crm-app .customer-shell .customer-contract-price-list dt,.crm-app .customer-shell .customer-contract-grand-total dt { color:#59636d; font-size:12px; font-weight:700; line-height:1.4; }
.customer-contract-price-list dd,.customer-contract-grand-total dd { margin:0; color:var(--navy); font-family:var(--sans); font-size:13px; font-weight:650; line-height:1.4; letter-spacing:-.01em; font-variant-numeric:lining-nums tabular-nums; font-feature-settings:"lnum" 1,"tnum" 1; white-space:nowrap; }
.customer-money-currency { display:inline-block; margin-left:.12em; font-size:.72em; font-weight:inherit; line-height:1; letter-spacing:0; vertical-align:.08em; }
.customer-contract-price-list>.is-gross { margin-top:8px; padding-top:14px; border-top:1px solid #c7dde0; }
.crm-app .customer-shell .customer-contract-price-list>.is-gross dt,.crm-app .customer-shell .customer-contract-grand-total dt { color:var(--navy); font-size:14px; font-weight:750; }
.customer-contract-price-list>.is-gross dd,.customer-contract-grand-total dd { font-size:23px; font-weight:700; line-height:1.15; }
.customer-contract-grand-total { display:grid; gap:6px; padding:18px 0 0; border-top:1px solid #c7dde0; background:transparent; }
.customer-contract-grand-total>span { color:#17684f; font-size:11px; font-weight:800; line-height:1.35; letter-spacing:.07em; text-transform:uppercase; }
.customer-contract-grand-total small { color:#68777d; font-size:8px; line-height:1.45; }
.customer-contract-grand-total dl { margin:5px 0 0; padding-top:11px; border-top:1px solid rgba(199,221,224,.85); }
.customer-payment-schedule { --customer-payment-status-width:120px; padding:27px 28px 28px 31px; border-top:1px solid var(--line); background:#fff; }
.customer-payment-schedule>header { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:18px; }
.customer-payment-schedule>header .section-label { margin-bottom:7px; }
.customer-payment-schedule>header>p { max-width:520px; margin:0; color:var(--muted); font-size:9px; line-height:1.6; text-align:right; }
.customer-payment-schedule ol { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.customer-payment-schedule li { display:grid; grid-template-columns:minmax(230px,1fr) minmax(245px,.72fr) var(--customer-payment-status-width); align-items:center; gap:22px; min-width:0; padding:12px 14px; border:1px solid #dbe3e7; border-radius:4px; background:#f9fbfb; }
.customer-payment-schedule li.is-extra { border-color:#bed8d2; background:#eff8f5; }
.customer-payment-schedule li.is-paid { border-color:#a9cfbc; background:#f1faf5; }
.customer-payment-schedule li.is-awaiting-value { border-color:#dfcf9b; background:#fffdf5; }
.customer-payment-stage-name { display:flex; align-items:center; gap:11px; min-width:0; }
.customer-payment-stage-name>span { display:grid; flex:0 0 31px; width:31px; height:31px; place-items:center; color:#fff; border-radius:50%; background:var(--teal); font-size:11px; font-weight:900; }
.customer-payment-schedule li.is-extra .customer-payment-stage-name>span { background:#17684f; }
.customer-payment-stage-name>div { display:grid; gap:3px; min-width:0; }
.customer-payment-stage-name strong { color:var(--navy); font-size:10px; }
.customer-payment-stage-name small { color:var(--muted); font-size:8px; line-height:1.4; }
.customer-payment-schedule dl { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0; }
.customer-payment-schedule dl>div { display:grid; gap:3px; min-width:0; }
.customer-payment-schedule dt { color:var(--muted); font-size:7px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.customer-payment-schedule dd { margin:0; color:var(--navy); font-size:9px; font-weight:800; white-space:nowrap; }
.customer-payment-schedule li>em { width:var(--customer-payment-status-width); min-width:0; padding:7px 9px; color:#82651e; border:1px solid #dcc98d; border-radius:3px; background:#fff9e9; font-size:7px; font-style:normal; font-weight:900; letter-spacing:.06em; text-align:center; text-transform:uppercase; white-space:nowrap; }
.customer-payment-schedule li.is-paid>em { color:#17684f; border-color:#9fc9b2; background:#f0faf4; }
.customer-payment-schedule li.is-awaiting-value dd { color:#8a6a21; font-weight:700; white-space:normal; }
.customer-payment-schedule li.is-awaiting-value>em { color:#795b18; border-color:#dfcf9b; background:#fff8df; }
.customer-payment-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:16px; padding-top:16px; border-top:1px solid var(--line); }
.customer-payment-summary article { display:flex; align-items:center; justify-content:space-between; gap:20px; min-width:0; padding:16px 18px; border:1px solid #d6e2e3; border-radius:4px; }
.customer-payment-summary article.is-paid-total { border-color:#a9cfbc; background:#f1faf5; }
.customer-payment-summary article.is-remaining-total { color:#fff; border-color:var(--navy); background:var(--navy); }
.customer-payment-summary article>div { min-width:0; }
.customer-payment-summary article>div>strong { display:block; color:inherit; font-size:9px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.customer-payment-summary article>div>small { display:block; margin-top:5px; color:#68777d; font-size:7px; line-height:1.45; }
.customer-payment-summary article.is-remaining-total>div>small { color:#c7ceda; }
.customer-payment-summary dl { display:grid; grid-template-columns:repeat(2,auto); gap:16px; margin:0; }
.customer-payment-summary dl>div { display:grid; gap:4px; min-width:0; text-align:right; }
.customer-payment-summary dt { color:#68777d; font-size:7px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.customer-payment-summary dd { margin:0; color:var(--navy); font-size:10px; font-weight:900; white-space:nowrap; }
.customer-payment-summary article.is-remaining-total dt { color:#9ed8dd; }
.customer-payment-summary article.is-remaining-total dd { color:#fff; }
.customer-extra-work-disclosure,.customer-extra-work-empty { border-top:1px solid var(--line); background:#f8fafb; }
.customer-extra-work-disclosure summary {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 150px;
  align-items:center;
  gap:24px;
  min-height:83px;
  padding:19px 28px 19px 31px;
  cursor:pointer;
  list-style:none;
}
.customer-extra-work-disclosure summary::-webkit-details-marker { display:none; }
.customer-extra-work-disclosure summary:focus { outline:0; }
.customer-extra-work-disclosure summary:focus-visible { box-shadow:inset 0 0 0 2px var(--teal); }
.customer-extra-work-disclosure summary>span,.customer-extra-work-empty>span { color:var(--navy); font-size:11px; font-weight:800; }
.customer-extra-work-disclosure summary strong,.customer-extra-work-empty strong { color:var(--teal); font-family:var(--serif); font-size:25px; font-weight:600; }
.customer-extra-work-disclosure summary small { position:relative; padding-right:24px; color:var(--teal); font-size:8px; font-weight:800; text-align:right; text-transform:uppercase; }
.customer-extra-work-disclosure summary small::after { position:absolute; top:50%; right:0; content:"+"; font-size:20px; font-weight:400; transform:translateY(-52%); }
.customer-extra-work-disclosure[open] summary small::after { content:"−"; }
.customer-extra-work-list { display:grid; gap:0; padding:0 28px 20px 31px; }
.customer-extra-work-list article { display:grid; grid-template-columns:minmax(0,1fr) minmax(190px,.34fr); gap:28px; padding:20px 0; border-top:1px solid var(--line); }
.customer-extra-work-list article>div>span { color:var(--teal); font-size:8px; font-weight:800; letter-spacing:.05em; }
.customer-extra-work-list article p { max-width:690px; margin:8px 0 0; color:var(--ink); font-size:11px; line-height:1.7; }
.customer-extra-work-list .vat-price-breakdown { align-content:start; justify-items:end; text-align:right; }
.customer-extra-work-list .vat-price-breakdown strong { color:var(--navy); font-family:var(--serif); font-size:19px; }
.customer-extra-work-empty { display:grid; grid-template-columns:minmax(0,1fr) auto 150px; align-items:center; gap:24px; min-height:83px; padding:19px 28px 19px 31px; }
.customer-extra-work-empty small { color:var(--muted); font-size:8px; line-height:1.5; text-align:right; }
.customer-contract-documents { padding:30px 28px 31px 31px; border-top:1px solid var(--line); }
.customer-contract-documents>header { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:22px; }
.customer-contract-documents>header p { max-width:450px; margin:0; color:var(--muted); font-size:9px; line-height:1.6; text-align:right; }
.customer-contract-documents>div { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.customer-pdf-group { min-width:0; padding:20px; border:1px solid var(--line); border-radius:4px; background:#fbfcfc; }
.customer-pdf-heading { display:flex; align-items:center; gap:12px; }
.customer-pdf-heading>span { display:grid; flex:0 0 38px; width:38px; height:38px; place-items:center; color:var(--teal); border:1px solid #bddadd; background:#f0f9fa; font-size:8px; font-weight:900; }
.customer-pdf-heading h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:22px; font-weight:600; }
.customer-pdf-group ul { display:grid; gap:0; margin:15px 0 0; padding:0; list-style:none; }
.customer-pdf-group li { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; min-height:59px; border-top:1px solid var(--line); }
.customer-pdf-group li div { min-width:0; }
.customer-pdf-group li strong { display:block; overflow:hidden; color:var(--ink); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.customer-pdf-group li small { display:block; margin-top:4px; color:var(--muted); font-size:8px; }
.customer-pdf-group li .customer-document-open-button { color:var(--navy); }
.customer-pdf-group li .customer-document-open-button:hover { color:#fff; text-decoration:none; }
.customer-pdf-empty { margin:18px 0 0; padding-top:15px; color:var(--muted); border-top:1px solid var(--line); font-size:9px; line-height:1.55; }
.customer-contact-simple { border-left:4px solid var(--teal); }
.customer-contact-simple>div>span { color:#9ed8dd; font-size:8px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.customer-contact-simple>div>a { display:inline-block; margin-top:12px; color:#9ed8dd; font-size:11px; font-weight:800; }

@media (max-width:1300px) {
  .customer-payment-summary { grid-template-columns:1fr; }
}

@media (max-width:1100px) {
  .customer-payment-schedule>header { align-items:flex-start; flex-direction:column; gap:9px; }
  .customer-payment-schedule>header>p { text-align:left; }
  .customer-payment-schedule li { grid-template-columns:minmax(0,1fr) var(--customer-payment-status-width); gap:11px; }
  .customer-payment-stage-name { grid-column:1/-1; }
  .customer-payment-schedule dl { min-width:0; }
  .customer-payment-schedule dd { white-space:normal; }
}

@media (max-width:920px) {
  .customer-contract-primary { grid-template-columns:1fr; }
  .customer-party-panel { border-right:0; border-bottom:1px solid var(--line); }
  .customer-contract-documents>div { grid-template-columns:1fr; }
}

@media (max-width:760px) {
  .customer-payment-summary article { align-items:flex-start; flex-direction:column; gap:13px; }
  .customer-payment-summary dl { grid-template-columns:1fr 1fr; width:100%; }
  .customer-payment-summary dl>div { text-align:left; }
}

@media (max-width:660px) {
  .customer-contract-portal,.customer-contract-list,.customer-contract-record { width:100%; min-width:0; max-width:100%; }
  .customer-contract-record { display:grid; gap:14px; overflow:visible; border:0; border-radius:0; background:transparent; box-shadow:none; }
  .customer-contract-record::before { display:none; }
  .customer-contract-primary { gap:14px; }
  .customer-contract-header,
  .customer-party-panel,
  .customer-contract-price,
  .customer-payment-schedule,
  .customer-extra-work-disclosure,
  .customer-extra-work-empty,
  .customer-contract-documents {
    overflow:hidden;
    border:1px solid #d7e0e4;
    border-left:4px solid var(--teal);
    border-radius:6px;
    box-shadow:0 8px 22px rgba(24,32,56,.055);
  }
  .customer-party-panel,.customer-contract-documents { background:#fff; }
  .customer-contract-price { border-color:#c7dde0; border-left-color:var(--teal); }
  .customer-contract-header { align-items:flex-start; flex-direction:column; padding:21px 18px 20px 22px; }
  .customer-contract-header strong { font-size:24px; }
  .customer-party-panel,.customer-contract-price { padding:25px 18px 25px 22px; }
  .customer-party-panel dl { grid-template-columns:1fr; gap:15px; }
  .customer-payment-schedule { padding:24px 18px 25px 22px; }
  .customer-payment-schedule li { padding:12px; }
  .customer-payment-summary dd { white-space:nowrap; }
  .customer-extra-work-disclosure summary,.customer-extra-work-empty { grid-template-columns:minmax(0,1fr); gap:8px; padding:18px 18px 18px 22px; }
  .customer-extra-work-disclosure summary strong,.customer-extra-work-empty strong { justify-self:start; font-size:23px; }
  .customer-extra-work-disclosure summary small,.customer-extra-work-empty small { grid-column:auto; text-align:left; }
  .customer-extra-work-disclosure summary small { padding-right:0; padding-left:24px; }
  .customer-extra-work-disclosure summary small::after { right:auto; left:0; }
  .customer-extra-work-list { padding:0 18px 17px 22px; }
  .customer-extra-work-list article { grid-template-columns:1fr; gap:14px; }
  .customer-extra-work-list .vat-price-breakdown { justify-items:start; text-align:left; }
  .customer-contract-documents { padding:25px 18px 25px 22px; }
  .customer-contract-documents>header { align-items:flex-start; flex-direction:column; gap:10px; }
  .customer-contract-documents>header p { text-align:left; }
  .customer-pdf-group { padding:17px; }
  .customer-pdf-group li { grid-template-columns:1fr; gap:7px; padding:13px 0; }
  .customer-pdf-group li .customer-document-open-button { width:100%; justify-self:stretch; }
}

/* Projects and customers clarity refresh */
.project-admin-heading,.customer-admin-heading { align-items:flex-end; margin-bottom:22px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.project-admin-heading h1,.customer-admin-heading h1 { letter-spacing:-.025em; }
.project-admin-heading .button,.customer-admin-heading .button { min-width:200px; }
.registry-panel { overflow:hidden; border:1px solid #d8e0e6; border-radius:6px; background:#fff; box-shadow:0 10px 32px rgba(24,32,56,.045); }
.registry-panel-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:25px 27px; border-bottom:1px solid #d8e0e6; background:#fff; }
.registry-panel-header h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:31px; font-weight:600; line-height:1; }
.registry-panel-header p:not(.section-label) { max-width:610px; margin:9px 0 0; color:var(--muted); font-size:10px; line-height:1.6; }
.registry-count { display:grid; flex:0 0 auto; min-width:74px; padding:11px 13px; border-left:3px solid var(--teal); background:#eef7f8; text-align:center; }
.registry-count strong { color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:700; line-height:.9; }
.registry-count small { margin-top:5px; color:var(--teal); font-size:7px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.registry-search { display:grid; grid-template-columns:minmax(260px,1fr) minmax(170px,.34fr) auto auto; align-items:end; gap:11px; padding:17px 27px; border-bottom:1px solid #d8e0e6; background:#f5f8f9; }
.registry-search.registry-search-with-facet { grid-template-columns:minmax(220px,1fr) minmax(150px,.48fr) minmax(145px,.42fr) auto auto; }
.registry-search label { display:grid; gap:6px; min-width:0; color:#687582; font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.registry-search input,.registry-search select { width:100%; min-width:0; min-height:41px; padding:0 12px; color:var(--ink); border:1px solid #c6d0d7; border-radius:3px; outline:0; background:#fff; font:inherit; font-size:12px; letter-spacing:0; text-transform:none; }
.registry-search input:focus,.registry-search select:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.registry-search .button { min-height:41px; white-space:nowrap; }
.registry-records { display:grid; gap:18px; padding:20px; background:#f2f5f7; }
.registry-record { position:relative; overflow:hidden; border:1px solid #d6dee4; border-radius:6px; background:#fff; box-shadow:0 5px 18px rgba(24,32,56,.04); }
.registry-record::before { position:absolute; z-index:2; top:0; bottom:0; left:0; width:4px; content:""; background:#7c8793; }
.registry-record.is-active::before { background:var(--teal); }
.registry-record.is-pending::before { background:#bd8615; }
.registry-record.is-expired::before { background:#9f3b45; }
.registry-record-header { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:22px 24px 21px 27px; border-bottom:1px solid #dce3e8; background:#fff; }
.registry-record-code { margin:0 0 5px; color:var(--teal); font-size:8px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.registry-record-header h3 { margin:0; overflow-wrap:anywhere; color:var(--navy); font-family:var(--serif); font-size:29px; font-weight:600; line-height:1.05; }
.registry-record-header h3+p,.project-record-identity>p:last-child { margin:7px 0 0; color:var(--muted); font-size:9px; line-height:1.55; }
.registry-status { display:inline-flex; flex:0 0 auto; align-items:center; gap:6px; min-height:28px; padding:0 10px; color:#4b5663; border:1px solid #ccd4db; border-radius:3px; background:#f4f6f7; font-size:7px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.registry-status::before { width:6px; height:6px; border-radius:50%; content:""; background:currentColor; }
.registry-status.is-active { color:#1c6b47; border-color:#a9ccb8; background:#f0f8f3; }
.registry-status.is-pending { color:#8b651a; border-color:#dfca94; background:#fff9ea; }
.registry-status.is-expired { color:#92313a; border-color:#dca9ae; background:#fff3f4; }
.registry-status.is-internal { color:#596574; border-color:#cbd3da; background:#f3f5f7; }
.registry-status.is-adhoc { color:#8a5a13; border-color:#dfc28e; background:#fff7e8; }
.registry-record-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); background:#fff; }
.registry-data-section { min-width:0; padding:22px 23px; border-right:1px solid #dce3e8; }
.registry-data-section:last-child { border-right:0; }
.registry-data-section .section-label { margin:0 0 15px; color:#576776; }
.registry-data-section dl { display:grid; gap:13px; margin:0; }
.registry-data-section dl>div { display:grid; gap:4px; }
.registry-data-section dt { color:#7b8590; font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.registry-data-section dd { margin:0; overflow-wrap:anywhere; color:var(--ink); font-size:10px; font-weight:650; line-height:1.5; }
.registry-tone-customer { background:#f8fafb; }
.registry-tone-contract { background:#f2f7fa; }
.registry-tone-finance { background:#edf8f8; }
.registry-tone-status { background:#f8faf7; }
.registry-tone-audit { background:#f7f7f9; }
.registry-total { margin-top:1px; padding:11px 0; border-top:1px solid #bcd7da; border-bottom:1px solid #bcd7da; }
.registry-total dt,.registry-total dd { color:var(--teal); }
.registry-action-section { display:flex; flex-direction:column; background:#fff; }
.registry-action-button { display:flex; width:100%; min-height:40px; justify-content:center; padding-right:13px; padding-left:13px; text-align:center; }
.registry-audit { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:11px 24px 11px 27px; color:#77818d; border-top:1px solid #dce3e8; background:#fafbfc; font-size:8px; font-style:normal; line-height:1.5; }
.registry-audit strong { color:#525c68; font-weight:700; }

.project-record>header.registry-record-header { padding:22px 24px 21px 27px; }
.project-record>header.registry-record-header span { display:inline-flex; margin:0; }
.project-record>header.registry-record-header h3 { font-size:29px; }
.project-record>summary.registry-record-header { align-items:center; min-height:82px; padding:17px 22px 17px 27px; border-bottom:0; outline:0; cursor:pointer; list-style:none; }
.project-record { overflow:clip; }
.project-records.registry-records { gap:21px; }
.project-record>summary.registry-record-header::-webkit-details-marker { display:none; }
.project-record>summary.registry-record-header:focus-visible { box-shadow:inset 0 0 0 3px rgba(0,119,136,.22); }
.project-record[open]>summary.registry-record-header { border-bottom:1px solid #dce3e8; background:#fbfcfc; }
.project-record-summary-customer { display:flex; align-items:center; gap:13px; min-width:0; }
.project-record-summary-customer .project-record-identity { min-width:0; }
.project-customer-avatar { flex:0 0 auto; border:1px solid #c9dadd; background-color:#e9f2ef; box-shadow:0 0 0 4px rgba(0,119,136,.08); }
.project-customer-avatar.is-compact { width:38px; height:38px; }
.project-customer-details { min-width:0; }
.project-customer-details dl { min-width:0; }
.project-record-summary-meta { display:flex; flex:0 0 auto; align-items:center; justify-content:flex-end; gap:12px; }
.project-record-summary-action { display:flex; flex:0 0 auto; align-items:center; gap:8px; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.project-record-summary-action b { display:grid; width:27px; height:27px; place-items:center; color:var(--navy); border:1px solid #ccd4da; border-radius:50%; background:#fff; font-size:16px; font-weight:500; line-height:1; transition:transform .2s; }
.project-record[open] .project-record-summary-action b { transform:rotate(180deg); }
.project-record-address a { display:inline-flex; align-items:center; gap:5px; color:var(--teal); border-bottom:1px solid rgba(0,119,136,.28); font-weight:700; }
.project-record-address a:hover { color:#005f6d; border-bottom-color:#005f6d; }
.project-record-address a:focus-visible { outline:3px solid rgba(0,119,136,.2); outline-offset:3px; }
.project-record-address a span { flex:0 0 auto; font-size:11px; line-height:1; }
.project-record-statuses { display:flex; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; gap:7px; max-width:330px; }
.project-completion-badge { display:inline-flex; align-items:center; min-height:28px; padding:0 10px; color:var(--teal)!important; border:1px solid #bcd7da; border-radius:3px; background:#f0f8f8; font-size:7px!important; font-weight:800; letter-spacing:.06em!important; text-transform:uppercase; }
.project-record-progress { display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,.42fr); align-items:center; gap:24px; padding:14px 24px 14px 27px; color:#fff; background:var(--navy); }
.project-record-progress>div:first-child { display:grid; gap:3px; }
.project-record-progress>div:first-child span { color:#9ed8dd; font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.project-record-progress>div:first-child strong { font-size:10px; font-weight:650; }
.project-progress-compact { display:grid; grid-template-columns:auto minmax(110px,1fr); align-items:center; gap:11px; }
.project-progress-compact>strong { color:#fff; font-family:var(--serif); font-size:22px; font-weight:600; }
.project-progress-compact>span { display:block; height:6px; overflow:hidden; background:rgba(255,255,255,.18); }
.project-progress-compact i { display:block; height:100%; background:#70c6ce; }
.project-record-grid.registry-record-grid { grid-template-columns:1fr 1fr 1.18fr .72fr; }
.project-record-grid.registry-record-grid>section { padding:22px 23px; }
.project-record-actions { display:grid; gap:9px; width:100%; }
.project-record-actions .project-customer-preview-link { color:var(--teal); border-color:#a9ced2; background:#fff; }
.project-record-actions .project-customer-preview-link:hover { color:#fff; background:var(--teal); }
.project-record>footer.registry-audit { padding:11px 24px 11px 27px; font-style:normal; }
.project-record>footer.registry-audit span { color:#77818d; }

.customer-record-identity { display:flex; align-items:center; gap:14px; min-width:0; }
.customer-record-identity>div { min-width:0; }
.customer-avatar { display:grid; flex:0 0 auto; width:44px; height:44px; place-items:center; color:#fff; border-radius:50%; background:var(--navy); font-family:var(--serif); font-size:20px; font-weight:700; letter-spacing:.02em; }
.customer-records.registry-records { gap:11px; padding:12px; }
.customer-record.registry-record { box-shadow:0 3px 12px rgba(24,32,56,.035); }
.customer-record>.registry-record-header { align-items:center; padding:13px 17px 12px 20px; }
.customer-record .customer-record-identity { gap:11px; }
.customer-record .customer-avatar { width:36px; height:36px; font-size:16px; }
.customer-record .registry-record-code { margin-bottom:2px; font-size:7px; }
.customer-record>.registry-record-header h3 { font-size:23px; }
.customer-record>.registry-record-header .registry-status { min-height:25px; padding:0 8px; }
.customer-record-grid.registry-record-grid { grid-template-columns:minmax(210px,.74fr) minmax(360px,1.35fr) minmax(245px,.86fr); }
.customer-record-grid.registry-record-grid>.registry-data-section { padding:13px 16px 14px 20px; }
.customer-record-grid .registry-data-section .section-label { margin-bottom:9px; }
.customer-record-grid .registry-data-section dl { gap:8px; }
.customer-record-grid .registry-data-section dl>div { gap:2px; }
.customer-record-grid .registry-data-section dd { line-height:1.4; }
.customer-contact-summary { background:#f8fafb; }
.customer-contact-summary a { color:var(--navy); text-decoration:none; }
.customer-contact-summary a:hover { color:var(--teal); }
.customer-project-summary dl { grid-template-columns:minmax(0,1fr) minmax(0,.72fr); }
.customer-project-title,.customer-project-location { grid-column:1/-1; }
.customer-project-count dd { color:var(--teal); font-family:var(--serif); font-size:19px; font-weight:700; line-height:1; }
.customer-project-contracts { padding-left:11px; border-left:1px solid #d6e0e5; }
.customer-project-contract-links { display:flex; flex-wrap:wrap; gap:7px; }
.customer-project-contract-links a {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:30px;
  padding:5px 8px;
  color:var(--teal);
  border:1px solid #a9ced2;
  border-radius:3px;
  background:#fff;
  font-weight:750;
  text-decoration:none;
}
.customer-project-contract-links a span { font-size:13px; line-height:1; transition:transform .16s; }
.customer-project-contract-links a:hover,
.customer-project-contract-links a:focus-visible { color:#fff; outline:0; background:var(--teal); }
.customer-project-contract-links a:hover span,
.customer-project-contract-links a:focus-visible span { transform:translateX(2px); }
.customer-project-addresses { display:grid; gap:1px; }
.customer-project-addresses span { display:block; }
.customer-gross-total { margin-bottom:1px; padding-bottom:8px; border-bottom:1px solid #bad7d9; }
.customer-gross-total dd { margin-top:2px; color:var(--navy); font-family:var(--serif); font-size:21px; font-weight:700; line-height:1.05!important; }
.customer-record-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:8px 13px 8px 20px; border-top:1px solid #dce3e8; background:#fafbfc; }
.customer-record-audit { margin:0; color:#77818d; font-size:7.5px; line-height:1.45; }
.customer-record-audit strong { color:#525c68; font-weight:700; }
.customer-actions { align-content:start; gap:9px; width:100%; }
.customer-actions form { width:100%; }
.customer-actions .button { width:100%; }
.customer-actions.customer-actions-compact { display:flex; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; gap:6px; width:auto; }
.customer-actions.customer-actions-compact form { display:flex; width:auto; }
.customer-actions.customer-actions-compact .button { width:auto; min-height:31px; padding:5px 10px; font-size:8px; white-space:nowrap; }
.customer-create-panel { overflow:hidden; border-color:#d6dee4; box-shadow:0 10px 30px rgba(24,32,56,.05); }
.customer-create-panel>header,.customer-edit-panel>header { color:#fff; border-bottom:0; background:var(--navy); }
.customer-create-panel>header p:not(.section-label),.customer-edit-panel>header p:not(.section-label) { max-width:580px; margin:9px 0 0; color:rgba(255,255,255,.68); font-size:9px; line-height:1.6; }
.customer-create-panel>header .section-label,.customer-edit-panel>header .section-label { color:#9ed8dd; }
.customer-create-panel>header h2,.customer-edit-panel>header h3 { color:#fff; }
.customer-create-panel>header>button,.customer-edit-panel>header>button { color:#fff; border-color:rgba(255,255,255,.25); background:transparent; }
.customer-create-panel form,.customer-edit-form { display:grid; grid-template-columns:1fr; gap:0; padding:0; }
.customer-form-section { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0; padding:24px 25px 26px; border:0; border-bottom:1px solid #dce3e8; }
.customer-form-section legend { grid-column:1/-1; width:100%; margin:0 0 3px; padding:0; color:var(--navy); font-family:var(--serif); font-size:23px; font-weight:600; }
.customer-form-contact { background:#f8fafb; }
.customer-form-contract { background:#f1f7f9; }
.customer-create-panel .customer-project-field { grid-column:auto; }
.customer-create-panel form>footer,.customer-edit-form>footer { display:flex; grid-column:auto; justify-content:flex-end; gap:9px; padding:19px 25px 22px; background:#fff; }
.customer-edit-panel[hidden] { display:none; }
.customer-edit-panel { overflow:hidden; margin:0; border:1px solid #b9cbd1; border-radius:6px; background:#fff; box-shadow:0 12px 28px rgba(24,32,56,.08); }
.customer-edit-panel>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:22px 24px; }
.customer-edit-panel>header>button { display:grid; flex:0 0 auto; width:32px; height:32px; place-items:center; padding:0; border-radius:3px; font-size:23px; }
.customer-edit-panel h3 { font-size:29px; }
.customer-edit-panel .customer-delete-form { padding:0 25px 23px; background:#fff; }

@media (max-width:1100px) {
  .project-record-grid.registry-record-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .customer-record-grid.registry-record-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .customer-record-grid.registry-record-grid>.customer-finance-summary { grid-column:1/-1; }
  .registry-data-section:nth-child(2n) { border-right:0; }
  .registry-data-section { border-bottom:1px solid #dce3e8; }
  .registry-data-section:nth-last-child(-n+2) { border-bottom:0; }
}
@media (max-width:760px) {
  .project-admin-heading,.customer-admin-heading { align-items:flex-start; padding-bottom:20px; }
  .project-admin-heading .button,.customer-admin-heading .button { width:100%; min-width:0; }
  .registry-panel-header { align-items:flex-start; padding:21px 18px; }
  .registry-panel-header p:not(.section-label) { font-size:9px; }
  .registry-search { grid-template-columns:1fr; padding:16px 18px 18px; }
  .registry-search input { font-size:16px; }
  .registry-search .button { width:100%; }
  .registry-count { min-width:62px; padding:9px 10px; }
  .registry-records { gap:12px; padding:10px; }
  .project-records.registry-records { gap:18px; }
  .registry-record-header,.project-record>header.registry-record-header { align-items:flex-start; flex-direction:column; padding:19px 18px 18px 21px; }
  .registry-record-header h3,.project-record>header.registry-record-header h3 { font-size:25px; }
  .project-record>summary.registry-record-header { align-items:flex-start; min-height:0; padding:17px 16px 16px 21px; }
  .project-record-summary-customer { align-items:flex-start; width:100%; gap:11px; }
  .project-customer-avatar.is-compact { width:34px; height:34px; margin-top:1px; }
  .project-record-summary-meta { display:grid; width:100%; grid-template-columns:minmax(0,1fr) auto; justify-content:stretch; gap:8px; }
  .project-record-summary-meta .project-record-statuses { width:auto; min-width:0; }
  .registry-status { align-self:flex-start; }
  .project-record-statuses { width:100%; max-width:none; justify-content:flex-start; }
  .project-record-progress { grid-template-columns:1fr; gap:11px; padding:14px 18px 14px 21px; }
  .project-record-grid.registry-record-grid,.customer-record-grid.registry-record-grid { grid-template-columns:1fr; }
  .customer-record-grid.registry-record-grid>.customer-finance-summary { grid-column:auto; }
  .project-record-grid.registry-record-grid>section,.registry-data-section { padding:19px 18px 20px 21px; border-right:0; border-bottom:1px solid #dce3e8; }
  .project-record-grid.registry-record-grid>section:last-child,.registry-data-section:last-child { border-bottom:0; }
  .registry-audit,.project-record>footer.registry-audit { align-items:flex-start; flex-direction:column; gap:4px; padding:11px 18px 11px 21px; }
  .project-record-actions { align-items:stretch; }
  .customer-record-identity { align-items:flex-start; }
  .customer-record-identity>div>p:last-child { overflow-wrap:anywhere; }
  .customer-record>.registry-record-header { align-items:flex-start; padding:16px 16px 15px 20px; }
  .customer-record-footer { align-items:flex-start; flex-direction:column; padding:11px 16px 12px 20px; }
  .customer-actions.customer-actions-compact { justify-content:flex-start; width:100%; }
  .customer-create-panel>header,.customer-edit-panel>header { padding:21px 18px; }
  .customer-form-section { grid-template-columns:1fr; padding:21px 18px 22px; }
  .customer-create-panel form>footer,.customer-edit-form>footer { flex-direction:column-reverse; padding:18px; }
  .customer-create-panel form>footer .button,.customer-edit-form>footer .button { width:100%; }
  .customer-edit-panel .customer-delete-form { padding:0 18px 21px; }
  .customer-create-panel input,.customer-create-panel select,.customer-edit-form input { font-size:16px; }
}
@media (max-width:420px) {
  .registry-panel-header { gap:12px; }
  .registry-panel-header h2 { font-size:27px; }
  .registry-panel-header p:not(.section-label) { display:none; }
  .customer-avatar { width:40px; height:40px; font-size:18px; }
  .customer-record .customer-avatar { width:34px; height:34px; font-size:15px; }
  .customer-actions.customer-actions-compact .button,.customer-actions.customer-actions-compact form { width:100%; }
  .project-progress-compact { grid-template-columns:auto 1fr; }
}

/* Compact, integrated original Modern Otthonok brand lockup */
.app-brand {
  position:relative;
  display:flex;
  flex:0 0 auto;
  min-height:104px;
  align-items:center;
  justify-content:center;
  margin:-24px -12px 22px;
  padding:13px 18px 15px;
  gap:0;
  background:#fff;
  box-shadow:inset 0 -1px rgba(24,32,56,.08);
}
.app-brand::after {
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:3px;
  content:"";
  background:#6ebd2c;
}
.app-brand img {
  display:block;
  width:92px;
  height:auto;
  max-height:none;
  padding:0;
  border:0;
  object-fit:contain;
}
.app-brand span {
  display:none;
}
@media (min-width:661px) and (max-width:980px) {
  .app-brand {
    width:calc(100% + 16px);
    min-height:76px;
    margin:-21px -8px 18px;
    padding:9px 7px 11px;
  }
  .app-brand img { width:48px; }
}
@media (max-width:660px) {
  .app-brand {
    width:calc(100% + 24px);
    min-height:104px;
    margin:-22px -12px 20px;
    padding:13px 16px 15px;
  }
  .app-brand img { width:92px; }
}

/* The public access screens use the same unframed logo treatment. */
.access-brand {
  gap:12px;
  padding:11px 14px 12px;
  color:var(--navy);
  background:#fff;
  box-shadow:inset 0 -3px #6ebd2c;
}
.access-brand img {
  width:58px;
  height:auto;
  padding:0;
  border:0;
}
.access-brand strong { color:var(--navy); }
.access-brand small { color:var(--teal); }

/* Structured interface standard: overview, customer portal and future CRM surfaces */
.structured-page-heading {
  align-items:flex-end;
  margin-bottom:22px;
  padding-bottom:24px;
  border-bottom:1px solid var(--line);
}
.structured-page-heading h1 { letter-spacing:-.025em; }
.structured-panel {
  overflow:hidden;
  border-color:#d8e0e6;
  background:#fff;
  box-shadow:0 10px 32px rgba(24,32,56,.045);
}
.structured-panel>header {
  padding:24px 25px;
  border-bottom-color:#d8e0e6;
  background:#fff;
}
.structured-panel>header .section-label { margin-bottom:6px; }
.structured-summary {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:0 0 18px;
}
.structured-summary article {
  position:relative;
  min-width:0;
  min-height:138px;
  padding:21px 21px 20px 24px;
  overflow:hidden;
  border:1px solid #d8e0e6;
  border-radius:6px;
  background:#fff;
  box-shadow:0 5px 18px rgba(24,32,56,.035);
}
.structured-summary article::before {
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:4px;
  content:"";
  background:var(--teal);
}
.structured-summary article:nth-child(2) { background:#f2f7fa; }
.structured-summary article:nth-child(3) { background:#edf8f8; }
.structured-summary article:nth-child(4) { background:#f7f7f9; }
.structured-summary span,.structured-summary small {
  display:block;
  color:var(--muted);
  font-size:8px;
  line-height:1.55;
}
.structured-summary span {
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.structured-summary strong {
  display:block;
  margin:22px 0 9px;
  color:var(--navy);
  font-family:var(--serif);
  font-size:34px;
  font-weight:650;
  line-height:.8;
}
.structured-empty {
  position:relative;
  overflow:hidden;
  border-color:#d8e0e6;
  box-shadow:0 8px 24px rgba(24,32,56,.04);
}
.structured-empty::before {
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:4px;
  content:"";
  background:var(--teal);
}

/* Structured internal overview */
.structured-ui .dashboard-live-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.structured-ui .dashboard-live-summary article { min-height:138px; padding:21px 21px 20px 24px; border-color:#d8e0e6; }
.structured-ui .dashboard-live-summary strong { margin:22px 0 9px; font-size:34px; }
.structured-ui .dashboard-focus-card.structured-focus {
  position:relative;
  overflow:hidden;
  color:var(--ink);
  border:1px solid #d6dee4;
  border-radius:6px;
  background:#fff;
  box-shadow:0 8px 26px rgba(24,32,56,.05);
}
.structured-ui .dashboard-focus-card.structured-focus::before {
  position:absolute;
  z-index:2;
  top:0;
  bottom:0;
  left:0;
  width:4px;
  content:"";
  background:var(--teal);
}
.structured-ui .structured-focus>div { padding:30px 31px 30px 34px; }
.structured-ui .structured-focus>div:first-child { border-right:1px solid #dce3e8; background:#fff; }
.structured-ui .structured-focus>div:last-child { color:#fff; background:var(--navy); }
.structured-ui .structured-focus>div:first-child .section-label { color:var(--teal); }
.structured-ui .structured-focus>div:first-child h2 { color:var(--navy); }
.structured-ui .structured-focus>div:first-child p:not(.section-label) { color:var(--muted); }
.structured-ui .structured-focus>div:first-child small { color:#77818d; }
.structured-ui .structured-panel.data-panel,
.structured-ui .structured-panel.project-table,
.structured-ui .structured-panel.dashboard-deadlines { border-color:#d8e0e6; }
.structured-ui .dashboard-live-grid .structured-panel:first-child { background:#f8fafb; }
.structured-ui .dashboard-live-grid .structured-panel:last-child { background:#f2f7fa; }
.structured-ui .dashboard-project-table tbody tr:hover { background:#f2f9f9; }
.structured-ui .dashboard-deadlines article:nth-child(odd) { background:#f8fafb; }

/* Structured customer overview */
.customer-overview-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
.portal-project-record {
  position:relative;
  overflow:hidden;
  border:1px solid #d6dee4;
  border-radius:6px;
  background:#fff;
  box-shadow:0 7px 24px rgba(24,32,56,.045);
}
.portal-project-record::before {
  position:absolute;
  z-index:2;
  top:0;
  bottom:0;
  left:0;
  width:4px;
  content:"";
  background:var(--teal);
}
.portal-project-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:22px;
  padding:23px 24px 22px 28px;
  border-bottom:1px solid #dce3e8;
}
.portal-project-header h2 {
  margin:0;
  overflow-wrap:anywhere;
  color:var(--navy);
  font-family:var(--serif);
  font-size:31px;
  font-weight:600;
  line-height:1.05;
}
.portal-project-header h2+p { margin:8px 0 0; color:var(--muted); font-size:9px; line-height:1.55; }
.portal-project-progress {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(230px,.42fr);
  align-items:center;
  gap:24px;
  padding:15px 24px 15px 28px;
  color:#fff;
  background:var(--navy);
}
.portal-project-progress>div:first-child { display:grid; gap:4px; }
.portal-project-progress>div:first-child span { color:#9ed8dd; font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.portal-project-progress>div:first-child strong { font-size:10px; font-weight:650; }
.portal-project-grid { display:grid; grid-template-columns:.8fr 1fr 1.12fr; }
.portal-data-section { min-width:0; padding:23px 24px; border-right:1px solid #dce3e8; }
.portal-data-section:last-child { border-right:0; }
.portal-data-section .section-label { margin-bottom:15px; color:#576776; }
.portal-data-section dl { display:grid; gap:14px; margin:0; }
.portal-data-section dl>div { display:grid; gap:4px; }
.portal-data-section dt { color:#7b8590; font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.portal-data-section dd { margin:0; overflow-wrap:anywhere; color:var(--ink); font-size:10px; font-weight:650; line-height:1.5; }
.portal-tone-schedule { background:#f8fafb; }
.portal-tone-finance { background:#edf8f8; }
.portal-tone-total { background:#f2f7fa; }
.portal-contract-total { padding:11px 0; border-top:1px solid #bcd7da; border-bottom:1px solid #bcd7da; }
.portal-contract-total dt,.portal-contract-total dd { color:var(--teal); }
.portal-contract-total dd { font-family:var(--serif); font-size:22px; font-weight:700; }
.portal-project-security { padding:11px 24px 11px 28px; color:#77818d; border-top:1px solid #dce3e8; background:#fafbfc; font-size:8px; line-height:1.5; }
.customer-portal-page .customer-grid { gap:18px; }
.customer-portal-page .structured-panel>header { align-items:center; flex-direction:row; }
.customer-portal-page .structured-panel>header h2 { font-size:27px; }
.customer-portal-page .customer-timeline li,.customer-portal-page .document-list li { border-bottom-color:#dce3e8; }
.customer-portal-page .customer-timeline li:last-child,.customer-portal-page .document-list li:last-child { border-bottom:0; }
.structured-contact { position:relative; overflow:hidden; border-radius:6px; box-shadow:0 10px 28px rgba(24,32,56,.1); }
.structured-contact::before { position:absolute; top:0; bottom:0; left:0; width:4px; content:""; background:#70c6ce; }

/* Structured customer change-request workflow */
.portal-composer>header { color:#fff; border-bottom:0; background:var(--navy); }
.portal-composer>header .section-label { color:#9ed8dd; }
.portal-composer>header h2 { color:#fff; }
.portal-composer>header p:not(.section-label) { color:rgba(255,255,255,.68); }
.portal-composer>form { display:grid; gap:0; padding:0; }
.portal-form-section {
  display:grid;
  gap:16px;
  min-width:0;
  margin:0;
  padding:24px 25px 26px;
  border:0;
  border-bottom:1px solid #dce3e8;
}
.portal-form-section legend {
  width:100%;
  margin:0 0 3px;
  padding:0;
  color:var(--navy);
  font-family:var(--serif);
  font-size:23px;
  font-weight:600;
}
.portal-tone-contract { background:#f2f7fa; }
.portal-tone-upload { background:#f8fafb; }
.portal-composer>form>footer { padding:19px 25px 22px; background:#fff; }
.portal-composer .project-upload-field input[type="file"] { border-color:#b9cbd1; background:#fff; }
.change-request-list-panel.structured-panel>header { align-items:center; }
.change-request-list-panel .change-request-list { gap:18px; padding:20px; background:#f2f5f7; }
.change-request-card.structured-record { position:relative; border-color:#d6dee4; box-shadow:0 5px 18px rgba(24,32,56,.04); }
.change-request-card.structured-record::before {
  position:absolute;
  z-index:3;
  top:0;
  bottom:0;
  left:0;
  width:4px;
  content:"";
  background:#bd8615;
}
.change-request-card.status-accepted::before { background:#2e8a59; }
.change-request-card.status-rejected::before { background:#9f3b45; }
.change-request-card.status-quoted::before { background:var(--teal); }
.change-request-card.structured-record>header { padding-left:27px; }
.change-request-card .change-quote { padding-left:27px; }
.change-request-card .change-conversation { background:#fff; }
.change-request-card .change-message { border-radius:3px; background:#f8fafb; }
.change-request-card .change-message.is-admin { border-left:3px solid var(--teal); background:#edf8f8; }
.change-request-card .change-customer-actions { background:#f2f7fa; }

/* Customer-facing access pages use the same framing while retaining the simple login flow. */
.customer-access-page .access-panel-inner {
  position:relative;
  width:min(100%,440px);
  padding:34px 34px 36px 38px;
  border:1px solid #d6dee4;
  border-radius:6px;
  background:#fff;
  box-shadow:0 14px 36px rgba(24,32,56,.07);
}
.customer-access-page .access-panel-inner::before {
  position:absolute;
  top:-1px;
  bottom:-1px;
  left:-1px;
  width:4px;
  border-radius:6px 0 0 6px;
  content:"";
  background:var(--teal);
}
.customer-access-page .access-form input { border-color:#bfc9d1; background:#fbfcfc; }
.customer-access-page .access-form input:focus { background:#fff; }

@media (max-width:1100px) {
  .portal-project-grid { grid-template-columns:1fr 1fr; }
  .portal-data-section { border-bottom:1px solid #dce3e8; }
  .portal-data-section:nth-child(2) { border-right:0; }
  .portal-data-section:last-child { grid-column:1/-1; border-bottom:0; }
}
@media (max-width:980px) {
  .structured-summary,.structured-ui .dashboard-live-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .customer-overview-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .structured-ui .structured-focus>div:first-child { border-right:0; border-bottom:1px solid #dce3e8; }
}
@media (max-width:760px) {
  .structured-page-heading { align-items:flex-start; padding-bottom:20px; }
  .portal-project-header { flex-direction:column; padding:20px 18px 19px 22px; }
  .portal-project-header h2 { font-size:27px; }
  .portal-project-progress { grid-template-columns:1fr; gap:12px; padding:15px 18px 15px 22px; }
  .portal-project-grid { grid-template-columns:1fr; }
  .portal-data-section,.portal-data-section:last-child { grid-column:auto; padding:20px 18px 21px 22px; border-right:0; border-bottom:1px solid #dce3e8; }
  .portal-data-section:last-child { border-bottom:0; }
  .portal-project-security { padding:11px 18px 11px 22px; }
  .portal-form-section { padding:21px 18px 22px; }
  .portal-composer>form>footer { padding:18px; }
  .change-request-list-panel .change-request-list { gap:12px; padding:10px; }
}
@media (max-width:660px) {
  .structured-summary,.structured-ui .dashboard-live-summary,.customer-overview-summary { grid-template-columns:1fr 1fr; gap:9px; }
  .structured-summary article,.structured-ui .dashboard-live-summary article { min-height:124px; padding:17px 16px 17px 20px; }
  .structured-summary strong,.structured-ui .dashboard-live-summary strong { margin-top:18px; font-size:31px; }
  .structured-ui .structured-focus>div { padding:25px 24px 25px 28px; }
  .customer-portal-page .structured-panel>header { align-items:flex-start; }
  .customer-access-page .access-panel-inner { padding:28px 23px 30px 27px; }
}
@media (max-width:350px) {
  .structured-summary,.structured-ui .dashboard-live-summary,.customer-overview-summary { grid-template-columns:1fr; }
  .structured-summary article,.structured-ui .dashboard-live-summary article { min-height:112px; }
}

/* Two-column project and change-request workspaces */
.project-edit-form {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.project-edit-form fieldset {
  align-content:start;
  border-bottom:1px solid #dce3e8;
}
.project-edit-form fieldset:nth-of-type(odd) { border-right:1px solid #dce3e8; }
.project-edit-form fieldset:nth-of-type(1) { background:#fff; }
.project-edit-form fieldset:nth-of-type(2) { background:#f8fafb; }
.project-edit-form fieldset:nth-of-type(3) { background:#f2f7fa; }
.project-edit-form fieldset:nth-of-type(4) { background:#edf8f8; }
.project-edit-form>footer { grid-column:1/-1; background:#fff; }

.project-update-composer form {
  grid-template-columns:minmax(0,1.28fr) minmax(285px,.72fr);
  grid-template-areas:
    "update-title update-upload"
    "update-body update-sharing";
  gap:0;
  padding:0;
}
.project-update-composer form>label { padding:22px 24px; }
.project-update-composer form>label:nth-of-type(1) {
  grid-area:update-title;
  border-bottom:1px solid #dce3e8;
  background:#fff;
}
.project-update-composer form>label:nth-of-type(2) {
  grid-area:update-body;
  background:#f8fafb;
}
.project-update-composer form>label:nth-of-type(3) {
  grid-area:update-upload;
  border-bottom:1px solid #dce3e8;
  border-left:1px solid #dce3e8;
  background:#f2f7fa;
}
.project-update-composer .project-sharing-options {
  grid-area:update-sharing;
  grid-template-columns:1fr;
  align-content:start;
  padding:22px 24px;
  border-left:1px solid #dce3e8;
  background:#edf8f8;
}
.project-update-composer form>footer {
  grid-column:1/-1;
  margin:0;
  border-top:1px solid #dce3e8;
  background:#fff;
}

.portal-composer>form {
  grid-template-columns:minmax(0,1.3fr) minmax(285px,.7fr);
  grid-template-areas:
    "change-details change-project"
    "change-details change-upload"
    "change-submit change-submit";
  gap:0;
  padding:0;
}
.portal-composer>form>.portal-form-section:nth-of-type(1) {
  grid-area:change-project;
  border-left:1px solid #dce3e8;
}
.portal-composer>form>.portal-form-section:nth-of-type(2) {
  grid-area:change-details;
  border-bottom:0;
  background:#fff;
}
.portal-composer>form>.portal-form-section:nth-of-type(2) textarea { min-height:272px; }
.portal-composer>form>.portal-form-section:nth-of-type(3) {
  grid-area:change-upload;
  border-bottom:0;
  border-left:1px solid #dce3e8;
}
.portal-composer>form>footer {
  grid-area:change-submit;
  border-top:1px solid #dce3e8;
}

.change-customer-actions {
  grid-template-columns:minmax(0,1fr) minmax(230px,.38fr);
  align-items:start;
  gap:0;
  padding:0;
}
.change-customer-actions .change-refinement-form { padding:22px 23px; }
.change-customer-actions .change-decision-actions {
  align-self:stretch;
  align-content:center;
  justify-content:center;
  padding:22px 23px;
  border-top:0;
  border-left:1px solid #dce3e8;
  background:#edf8f8;
}

.admin-change-response {
  grid-template-columns:minmax(0,1.25fr) minmax(250px,.5fr);
  grid-template-areas:
    "admin-message admin-price"
    "admin-message admin-submit";
  gap:0;
  padding:0;
  align-items:stretch;
}
.admin-change-response>label:first-of-type {
  grid-area:admin-message;
  grid-row:auto;
  padding:22px 23px;
  background:#f8fafb;
}
.admin-change-response>label:nth-of-type(2) {
  grid-area:admin-price;
  padding:22px 23px 14px;
  border-left:1px solid #dce3e8;
  background:#edf8f8;
}
.admin-change-response>footer {
  grid-area:admin-submit;
  align-items:flex-start;
  padding:0 23px 22px;
  border-left:1px solid #dce3e8;
  background:#edf8f8;
}
.admin-change-response>label:first-of-type textarea { min-height:154px; }
.admin-change-reapproval-note {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  margin:0;
  padding:15px 23px;
  color:#75591e;
  border-top:1px solid #dfcb98;
  background:#fff9e9;
}
.admin-change-reapproval-note strong { flex:0 0 auto; font-size:9px; font-weight:900; text-transform:uppercase; }
.admin-change-reapproval-note span { max-width:690px; font-size:9px; line-height:1.55; text-align:right; }
.admin-change-delete {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:17px 23px;
  border-top:1px solid #e3c8ca;
  background:#fff7f7;
}
.admin-change-delete strong { display:block; color:#7e2730; font-size:10px; }
.admin-change-delete small { display:block; max-width:720px; margin-top:5px; color:#8b686b; font-size:8px; line-height:1.5; }
.admin-change-delete .button { flex:0 0 auto; }
.project-document-manager { overflow:hidden; margin-top:18px; border:1px solid #d8e0e6; border-radius:6px; background:#fff; box-shadow:0 8px 26px rgba(24,32,56,.04); }
.project-document-manager>header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:24px 25px; color:#fff; background:var(--navy); }
.project-document-manager>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:30px; font-weight:600; line-height:1; }
.project-document-manager>header p:not(.section-label) { max-width:680px; margin:9px 0 0; color:rgba(255,255,255,.68); font-size:10px; line-height:1.6; }
.project-document-manager>header .section-label { color:#9ed8dd; }
.project-document-manager>header>span { flex:0 0 auto; padding:8px 10px; color:#bce4e7; border:1px solid rgba(255,255,255,.2); font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.project-document-manager-grid { display:grid; grid-template-columns:1fr 1fr; }
.project-document-slot { min-width:0; padding:23px 24px 24px; background:#f8fafb; }
.project-document-slot+ .project-document-slot { border-left:1px solid #dce3e8; background:#f2f7fa; }
.project-document-slot>header { display:flex; align-items:flex-start; gap:13px; }
.project-document-slot>header>span { display:grid; flex:0 0 auto; width:42px; height:42px; place-items:center; color:#fff; background:var(--teal); font-size:8px; font-weight:900; }
.project-document-slot h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:23px; font-weight:600; line-height:1.05; }
.project-document-slot>header p { margin:7px 0 0; color:var(--muted); font-size:9px; line-height:1.55; }
.project-document-current { display:grid; gap:8px; margin-top:18px; }
.project-document-current>div { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 14px; border:1px solid #cdd8de; background:#fff; }
.project-document-current>div>span { min-width:0; }
.project-document-current strong { display:block; overflow:hidden; color:var(--ink); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.project-document-current small { display:block; margin-top:5px; color:var(--muted); font-size:8px; }
.project-document-current nav { display:flex; flex:0 0 auto; align-items:center; gap:9px; }
.project-document-current nav a,.project-document-current nav button { padding:0; color:var(--teal); border:0; background:transparent; font:inherit; font-size:8px; font-weight:800; }
.project-document-current nav button { color:#9b2933; cursor:pointer; }
.project-document-current nav button:disabled { opacity:.45; cursor:default; }
.project-document-current nav form { margin:0; }
.project-document-empty { margin:18px 0 0; padding:14px; color:#7b8590; border:1px dashed #c6d0d7; background:rgba(255,255,255,.6); font-size:9px; }
.project-document-upload { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px; margin-top:16px; padding-top:16px; border-top:1px solid #d5dee4; }
.project-document-upload label { display:grid; gap:7px; min-width:0; color:#687582; font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.project-document-upload input[type="file"] { width:100%; min-width:0; min-height:41px; padding:8px 10px; color:var(--ink); border:1px solid #c6d0d7; background:#fff; font-size:9px; }
.project-document-upload .button { min-height:41px; white-space:nowrap; }

@media (max-width:1060px) {
  .project-edit-form { grid-template-columns:1fr; }
  .project-edit-form fieldset:nth-of-type(odd) { border-right:0; }
  .project-update-composer form {
    grid-template-columns:1fr;
    grid-template-areas:
      "update-title"
      "update-body"
      "update-upload"
      "update-sharing";
  }
  .project-update-composer form>label:nth-of-type(3),
  .project-update-composer .project-sharing-options { border-left:0; }
  .portal-composer>form {
    grid-template-columns:1fr;
    grid-template-areas:
      "change-project"
      "change-details"
      "change-upload"
      "change-submit";
  }
  .portal-composer>form>.portal-form-section:nth-of-type(1),
  .portal-composer>form>.portal-form-section:nth-of-type(3) { border-left:0; }
  .portal-composer>form>.portal-form-section:nth-of-type(2) { border-bottom:1px solid #dce3e8; }
  .portal-composer>form>.portal-form-section:nth-of-type(2) textarea { min-height:190px; }
}

@media (max-width:760px) {
  .project-update-composer form>label,
  .project-update-composer .project-sharing-options { padding:20px 18px; }
  .change-customer-actions { grid-template-columns:1fr; }
  .change-customer-actions .change-refinement-form,
  .change-customer-actions .change-decision-actions { padding:18px; }
  .change-customer-actions .change-decision-actions { border-top:1px solid #dce3e8; border-left:0; }
  .admin-change-response {
    grid-template-columns:1fr;
    grid-template-areas:
      "admin-message"
      "admin-price"
      "admin-submit";
  }
  .admin-change-response>label:first-of-type,
  .admin-change-response>label:nth-of-type(2),
  .admin-change-response>footer { padding:18px; border-left:0; }
  .admin-change-response>label:nth-of-type(2) { border-top:1px solid #dce3e8; padding-bottom:10px; }
  .admin-change-response>footer { padding-top:8px; }
  .admin-change-reapproval-note,.admin-change-delete { align-items:flex-start; flex-direction:column; padding:16px 18px; }
  .admin-change-reapproval-note span { text-align:left; }
  .admin-change-delete,.admin-change-delete .button { width:100%; }
  .project-document-manager-grid { grid-template-columns:1fr; }
  .project-document-slot+ .project-document-slot { border-top:1px solid #dce3e8; border-left:0; }
}

@media (max-width:760px) {
  .project-document-manager>header { align-items:flex-start; flex-direction:column; padding:21px 18px; }
  .project-document-slot { padding:20px 18px; }
  .project-document-current>div { align-items:flex-start; flex-direction:column; }
  .project-document-upload { grid-template-columns:1fr; }
  .project-document-upload input[type="file"] { font-size:16px; }
  .project-document-upload .button { width:100%; }
}

/* Stable shared sidebar: reserve preview space only when a notice is present. */
.preview-notice { min-height:34px; }
.app-shell { min-height:100vh; }
.app-sidebar {
  top:0;
  height:100vh;
}
.crm-has-preview-notice .app-shell { min-height:calc(100vh - 34px); }
.crm-has-preview-notice .app-sidebar {
  top:34px;
  height:calc(100vh - 34px);
}

/* The shared app header stays aligned with the logo block while page content scrolls beneath it. */
.app-shell { --app-header-height:104px; }
.app-brand {
  height:var(--app-header-height);
  min-height:var(--app-header-height);
}
.app-header {
  position:sticky;
  top:0;
  z-index:12;
  height:var(--app-header-height);
  min-height:var(--app-header-height);
  border-bottom:3px solid #6ebd2c;
  background:#fff;
  box-shadow:0 5px 16px rgba(24,32,56,.055);
}
.app-header-page {
  display:grid;
  flex:1 1 auto;
  gap:2px;
  min-width:0;
  max-width:760px;
}
.app-header-page .section-label { margin:0; font-size:7px; line-height:1.2; }
.app-header-page h1 {
  margin:0;
  overflow:hidden;
  padding-bottom:.1em;
  color:var(--navy);
  font-family:var(--serif);
  font-size:28px;
  font-weight:600;
  line-height:1.06;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app-header-page>p:last-child {
  margin:0;
  overflow:hidden;
  color:var(--muted);
  font-size:8px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app-header .profile { flex:0 0 auto; margin-left:auto; }
.app-header .profile>span:nth-child(2) {
  display:grid;
  align-content:center;
  gap:2px;
  min-width:0;
}
.app-header .profile>span:nth-child(2) strong,
.app-header .profile>span:nth-child(2) small {
  display:block;
  line-height:1.15;
}
.app-content>.page-heading>div:first-child { display:none; }
.app-content>.page-heading:has(>div:only-child) { display:none; }
.app-content>.page-heading:not(:has(>div:only-child)) { justify-content:flex-end; margin-bottom:22px; }
.app-content>.module-hero { max-width:none; padding:0 0 18px; text-align:right; }
.app-content>.module-hero>p,
.app-content>.module-hero>h1 { display:none; }
.crm-has-preview-notice .app-header { top:34px; }
@media (min-width:661px) {
  .app-header {
    padding-right:calc(max(0px,(100% - 1460px)/2) + clamp(22px,4vw,64px));
    padding-left:calc(max(0px,(100% - 1460px)/2) + clamp(22px,4vw,64px));
  }
  .app-sidebar {
    position:fixed;
    left:0;
    z-index:13;
    width:222px;
  }
  .app-main { grid-column:2; }
}
@media (min-width:661px) and (max-width:980px) {
  .app-shell { --app-header-height:76px; }
  .app-sidebar { width:72px; }
  .app-header-page h1 { font-size:24px; }
  .app-header-page>p:last-child { font-size:7px; }
}
@media (max-width:660px) {
  .app-shell { --app-header-height:104px; }
  .app-header-page { flex:1 1 auto; max-width:none; }
  .app-header-page .section-label,
  .app-header-page>p:last-child { display:none; }
  .app-header-page h1 { font-size:22px; }
  .app-header .profile { margin-left:10px; }
  .app-header .profile>span:nth-child(2) { display:none; }
  .app-sidebar {
    top:0;
    height:100vh;
  }
  .crm-has-preview-notice .app-sidebar {
    top:34px;
    height:calc(100vh - 34px);
  }
}

/* Admin-only extra-work workflow. */
.admin-change-composer { margin-top:18px; }
.admin-change-composer>form {
  grid-template-columns:minmax(0,1.25fr) minmax(260px,.45fr);
  grid-template-areas:
    "extra-description extra-price"
    "extra-description extra-submit";
  gap:0;
  padding:0;
}
.admin-change-composer>form>label:first-of-type {
  grid-area:extra-description;
  padding:24px 25px;
  background:#fff;
}
.admin-change-composer>form>label:first-of-type textarea { min-height:210px; }
.admin-change-composer>form>label:nth-of-type(2) {
  grid-area:extra-price;
  padding:24px 25px 14px;
  border-left:1px solid #dce3e8;
  background:#edf8f8;
}
.admin-change-composer>form>footer {
  grid-area:extra-submit;
  align-self:stretch;
  justify-content:flex-start;
  padding:8px 25px 24px;
  border-left:1px solid #dce3e8;
  background:#edf8f8;
}
.customer-change-offers { margin-top:0; }
.customer-change-offers .change-customer-actions { display:block; }
.customer-change-offers .change-decision-actions {
  justify-content:flex-end;
  border-left:0;
}
.customer-documents-panel { margin-top:22px; }

@media (max-width:760px) {
  .admin-change-composer>form {
    grid-template-columns:1fr;
    grid-template-areas:
      "extra-description"
      "extra-price"
      "extra-submit";
  }
  .admin-change-composer>form>label:first-of-type,
  .admin-change-composer>form>label:nth-of-type,
  .admin-change-composer>form>footer { padding:18px; border-left:0; }
  .admin-change-composer>form>label:first-of-type textarea { min-height:180px; }
  .admin-change-composer>form>label:nth-of-type { border-top:1px solid #dce3e8; padding-bottom:10px; }
  .admin-change-composer>form>footer { padding-top:8px; }
  .admin-change-composer>form>footer .button { width:100%; }
}

/* Explicit project and user administration controls. */
.project-detail-actions-toolbar { justify-content:space-between; }
.project-detail-actions-toolbar>div { display:flex; flex-wrap:wrap; gap:9px; }
.project-record-delete,
.project-record-delete .button { width:100%; }

.user-management-summary { margin-bottom:14px; gap:10px; }
.user-management-summary article { min-height:96px; padding:15px 17px 14px 20px; }
.user-management-summary strong { margin:13px 0 6px; font-size:29px; }
.user-page-actions { position:relative; display:flex; align-items:center; gap:9px; }
.user-pending-dropdown { position:relative; flex:0 0 auto; }
.user-pending-dropdown[open] { z-index:36; }
.user-pending-dropdown>summary { position:relative; display:grid; width:40px; height:40px; padding:0; place-items:center; color:var(--navy); border:1px solid #c8d1d8; border-radius:50%; outline:0; background:#fff; cursor:pointer; list-style:none; }
.user-pending-dropdown>summary::-webkit-details-marker { display:none; }
.user-pending-dropdown>summary:hover,.user-pending-dropdown>summary:focus-visible,.user-pending-dropdown[open]>summary { color:#fff; border-color:var(--teal); background:var(--teal); }
.user-pending-dropdown>summary svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s; }
.user-pending-dropdown[open]>summary svg { transform:rotate(180deg); }
.user-pending-notification-badge { top:-6px; right:-6px; }
.user-pending-backdrop { position:fixed; inset:0; z-index:35; width:100%; height:100%; margin:0; padding:0; border:0; border-radius:0; background:rgba(18,26,46,.1); -webkit-backdrop-filter:blur(1px); backdrop-filter:blur(1px); cursor:default; touch-action:manipulation; }
.user-pending-backdrop[hidden] { display:none; }
html.crm-user-pending-open,body.crm-user-pending-open { overflow:hidden; overscroll-behavior:none; }
.user-pending-popover { position:absolute; top:calc(100% + 10px); right:0; z-index:37; width:min(720px,calc(100vw - 36px)); max-height:min(620px,calc(100vh - 150px)); overflow:auto; overscroll-behavior:contain; border:1px solid #d8e0e6; border-radius:7px; background:#fff; box-shadow:0 24px 70px rgba(24,32,56,.22); }
.user-pending-popover>header { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; color:#fff; background:var(--navy); }
.user-pending-popover>header .section-label { margin-bottom:4px; color:#9ed8dd; }
.user-pending-popover>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:25px; font-weight:600; line-height:1; }
.user-pending-popover .empty-state { padding:18px 20px; }
.user-pending-popover .user-request { padding:18px 20px; }
.user-approval-panel>header { padding:18px 20px; }
.user-approval-panel>header h2 { font-size:25px; }
.user-approval-panel .empty-state { padding:15px 20px; }
.user-registry { overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--surface); }
.user-registry>header { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:20px; border-bottom:1px solid var(--line); }
.user-registry>header h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:500; line-height:1; }
.user-registry>header p:not(.section-label) { max-width:720px; margin:8px 0 0; color:var(--muted); font-size:9px; line-height:1.55; }
.user-registry-filter { display:grid; grid-template-columns:minmax(190px,330px) minmax(165px,210px) auto auto; align-items:end; gap:10px; padding:12px 14px; border-bottom:1px solid var(--line); background:#f7f9fa; }
.user-registry-filter label { display:grid; gap:5px; min-width:0; color:#687582; font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.user-registry-filter input,.user-registry-filter select { width:100%; min-width:0; height:38px; padding:0 10px; color:var(--ink); border:1px solid #c6d0d7; border-radius:4px; outline:0; background:#fff; font:inherit; font-size:11px; letter-spacing:0; text-transform:none; }
.user-registry-filter input:focus,.user-registry-filter select:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.user-registry-filter-count { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:0 11px; color:var(--teal); border:1px solid #c4dcde; border-radius:999px; background:#eef8f8; font-size:9px; font-weight:800; white-space:nowrap; }
.user-registry-filter-clear { min-height:38px; padding:0 4px; color:#687582; border:0; background:transparent; font:inherit; font-size:9px; font-weight:800; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }
.user-registry-filter-clear:hover { color:var(--teal); }
.user-registry-filter-clear[hidden],.user-registry-filter-empty[hidden] { display:none; }
.user-registry-filter-empty { margin:0; padding:23px 20px; color:var(--muted); border-bottom:1px solid var(--line); background:#fff; font-size:11px; line-height:1.55; text-align:center; }
.user-management-list.registry-records { display:grid; gap:11px; padding:12px; background:#f3f6f7; }
.user-role-groups { display:grid; gap:14px; padding:14px; background:#f3f6f7; }
.user-role-group,
.user-request[data-user-role] { --role-color:#28314f; --role-soft:#f1f3f7; --role-border:#c7ccd8; }
.user-role-group[data-user-role-group="admin"],
.user-request[data-user-role="admin"] { --role-color:#28314f; --role-soft:#f1f3f7; --role-border:#c7ccd8; }
.user-role-group[data-user-role-group="staff"],
.user-request[data-user-role="staff"] { --role-color:#167989; --role-soft:#edf8f9; --role-border:#a7d0d6; }
.user-role-group[data-user-role-group="administrative"],
.user-request[data-user-role="administrative"] { --role-color:#75558f; --role-soft:#f6f1f9; --role-border:#cfbddb; }
.user-role-group[data-user-role-group="partner"],
.user-request[data-user-role="partner"] { --role-color:#a86721; --role-soft:#fff6e9; --role-border:#dfbf94; }
.user-role-group[data-user-role-group="subcontractor"],
.user-request[data-user-role="subcontractor"] { --role-color:#3266a8; --role-soft:#eef4fb; --role-border:#aec4df; }
.user-role-group[data-user-role-group="customer"],
.user-request[data-user-role="customer"] { --role-color:#4d7e45; --role-soft:#f1f8ef; --role-border:#b7d0b2; }
.user-request[data-user-role] .user-request-person>span { background:var(--role-color); box-shadow:0 0 0 4px color-mix(in srgb,var(--role-color) 12%,transparent); }
.user-role-group { overflow:hidden; border:1px solid var(--role-border); border-radius:6px; background:#fff; box-shadow:0 4px 14px rgba(24,32,56,.035); }
.user-role-group>summary { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:70px; padding:15px 18px; color:#fff; outline:0; background:var(--role-color); cursor:pointer; list-style:none; }
.user-role-group>summary::-webkit-details-marker { display:none; }
.user-role-group>summary:focus-visible { box-shadow:inset 0 0 0 3px rgba(255,255,255,.72); }
.user-role-group[open]>summary { border-bottom:1px solid var(--role-border); }
.user-role-group>summary .section-label { margin-bottom:4px; color:rgba(255,255,255,.76); font-size:8px; }
.user-role-group>summary h3 { margin:0; color:#fff; font-family:var(--serif); font-size:25px; font-weight:600; line-height:1; }
.user-role-group-toggle { display:flex; flex:0 0 auto; align-items:center; gap:10px; }
.user-role-count { display:grid; flex:0 0 auto; width:31px; height:31px; place-items:center; color:var(--role-color); border-radius:50%; background:#fff; font-size:10px; font-weight:800; box-shadow:0 0 0 4px rgba(255,255,255,.16); }
.user-role-group-toggle b { display:grid; width:29px; height:29px; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.44); border-radius:50%; background:rgba(255,255,255,.1); font-size:17px; font-weight:500; line-height:1; transition:transform .2s; }
.user-role-group[open] .user-role-group-toggle b { transform:rotate(180deg); }
.user-role-empty { margin:0; padding:18px; color:var(--muted); font-size:10px; line-height:1.55; }
.user-role-members { display:grid; gap:8px; padding:10px; background:#eef2f3; }
.user-role-entry { overflow:hidden; border:1px solid #d8dee3; border-radius:5px; background:#fff; }
.user-role-entry>summary { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:72px; padding:11px 15px; border-left:4px solid var(--role-color); outline:0; background:#fff; cursor:pointer; list-style:none; }
.user-role-entry.is-inactive>summary { border-left-color:var(--role-color); }
.user-role-entry.is-pending>summary { border-left-color:#bd8615; background:#fffdf7; }
.user-role-entry>summary::-webkit-details-marker { display:none; }
.user-role-entry>summary:focus-visible { box-shadow:inset 0 0 0 2px var(--role-color); }
.user-role-entry[open]>summary { border-bottom:1px solid var(--role-border); background:var(--role-soft); }
.user-role-summary-person { display:flex; align-items:center; gap:13px; min-width:0; }
.user-role-avatar { display:grid; flex:0 0 auto; width:42px; height:42px; place-items:center; color:#fff; border-radius:50%; background:var(--role-color); box-shadow:0 0 0 4px color-mix(in srgb,var(--role-color) 12%,transparent); font-family:var(--serif); font-size:19px; font-weight:600; line-height:1; }
.user-role-summary-identity { display:grid; gap:4px; min-width:0; }
.user-role-summary-identity>span { width:max-content; max-width:100%; padding:3px 7px; color:#fff; border-radius:999px; background:var(--role-color); box-shadow:0 0 0 3px color-mix(in srgb,var(--role-color) 12%,transparent); font-size:8px; font-weight:800; letter-spacing:.09em; line-height:1.25; text-transform:uppercase; }
.user-role-summary-identity>strong { overflow:hidden; color:var(--navy); font-family:var(--serif); font-size:22px; font-weight:600; line-height:1.05; text-overflow:ellipsis; white-space:nowrap; }
.user-role-detail-badge { display:inline-flex; align-items:center; width:max-content; max-width:100%; min-height:28px; padding:5px 10px; color:#fff; border-radius:999px; background:var(--role-color); box-shadow:0 0 0 3px color-mix(in srgb,var(--role-color) 12%,transparent); font-size:11px; font-weight:700; line-height:1.25; }
.user-role-summary-action { display:flex; flex:0 0 auto; align-items:center; gap:9px; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.user-role-summary-action b { display:grid; width:25px; height:25px; place-items:center; color:var(--navy); border:1px solid #ccd4da; border-radius:50%; background:#fff; font-size:15px; font-weight:500; line-height:1; transition:transform .2s; }
.user-role-entry[open] .user-role-summary-action b { transform:rotate(180deg); }
.user-role-entry-body { background:#fff; }
.user-role-entry .user-management-card { border:0; border-radius:0; box-shadow:none; }
.user-management-card { overflow:hidden; border:1px solid var(--line); border-left:4px solid var(--teal); border-radius:5px; background:#fff; box-shadow:0 3px 12px rgba(24,32,56,.035); }
.user-management-card.is-inactive { border-left-color:#a3343e; }
.user-management-card>header.registry-record-header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 17px 12px 16px; border-bottom:1px solid var(--line); }
.user-management-identity { display:flex; align-items:center; gap:11px; min-width:0; }
.user-management-identity>div { min-width:0; }
.user-management-identity>span { display:grid; flex:0 0 auto; width:36px; height:36px; place-items:center; color:#fff; border-radius:50%; background:var(--navy); font-family:var(--serif); font-size:16px; font-weight:700; }
.user-management-identity h3 { margin:2px 0 0; overflow:hidden; color:var(--navy); font-family:var(--serif); font-size:23px; font-weight:600; line-height:1; text-overflow:ellipsis; white-space:nowrap; }
.user-management-card .registry-status { min-height:25px; padding:0 8px; }
.user-record-grid.registry-record-grid { grid-template-columns:minmax(220px,1fr) minmax(220px,.82fr) minmax(220px,.82fr); }
.user-record-grid.registry-record-grid>.registry-data-section { padding:13px 16px 14px 16px; }
.user-record-grid .registry-data-section .section-label { margin-bottom:9px; }
.user-record-grid .registry-data-section dl { gap:8px; }
.user-record-grid .registry-data-section dl>div { gap:2px; }
.user-contact-summary { background:#f8fafb; }
.user-contact-summary a { color:var(--navy); text-decoration:none; }
.user-contact-summary a:hover { color:var(--teal); }
.user-record-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:8px 12px 8px 16px; border-top:1px solid #dce3e8; background:#fafbfc; }
.user-record-footer p { margin:0; color:#77818d; font-size:7.5px; line-height:1.45; }
.user-record-footer .button { flex:0 0 auto; width:auto; min-height:31px; padding:5px 10px; font-size:8px; white-space:nowrap; }
.user-edit-row[hidden] { display:none; }
.user-edit-row { margin:0; }
.user-edit-form { display:grid; grid-template-columns:1.15fr .85fr; }
.user-edit-form fieldset { display:grid; align-content:start; grid-template-columns:1fr 1fr; gap:12px; min-width:0; margin:0; padding:18px 20px; border:0; }
.user-edit-form fieldset+fieldset { border-left:1px solid #dce3e8; background:#edf8f8; }
.user-edit-form fieldset+fieldset { grid-template-columns:minmax(0,1fr); }
.user-edit-form legend { grid-column:1/-1; margin-bottom:1px; color:var(--navy); font-family:var(--serif); font-size:19px; font-weight:600; }
.user-edit-form label { display:grid; align-content:start; gap:5px; min-width:0; color:var(--muted); font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.user-edit-form fieldset:first-of-type label:first-of-type { grid-column:1/-1; }
.user-edit-form input,
.user-edit-form select { width:100%; min-width:0; height:var(--crm-control-height); min-height:var(--crm-control-height)!important; padding:0 10px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; outline:0; background:#fff; font:inherit; font-size:11px; letter-spacing:0; text-transform:none; }
.user-edit-form input:focus,
.user-edit-form select:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.user-edit-form select:disabled { color:#6c747c; background:#e8ecef; cursor:not-allowed; }
.user-edit-form label small { color:#79838a; font-size:8px; font-weight:500; letter-spacing:0; line-height:1.5; text-transform:none; }
.user-edit-form>footer { display:flex; justify-content:flex-end; grid-column:1/-1; padding:13px 20px; border-top:1px solid #dce3e8; background:#fafbfb; }
.user-danger-zone { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 20px; border-top:1px solid #e3c8ca; background:#fff7f7; }
.user-danger-zone strong { display:block; color:#7e2730; font-size:10px; }
.user-danger-zone small { display:block; max-width:700px; margin-top:5px; color:#8b686b; font-size:8px; line-height:1.5; }
.user-self-protection { padding:8px 10px; color:#75591e; border:1px solid #dec98d; border-radius:3px; background:#fff9e9; font-size:8px; font-weight:800; text-transform:uppercase; }
.user-request-actions { display:flex; align-items:flex-end; gap:9px; min-width:0; }
.user-request-actions .user-approval-form { flex:1 1 auto; }
.user-delete-compact { flex:0 0 auto; }

@media (max-width:980px) {
  .user-registry-filter { grid-template-columns:minmax(0,1fr) minmax(170px,.62fr) auto; }
  .user-registry-filter-clear { grid-column:1/-1; justify-self:start; min-height:24px; }
  .user-edit-form { grid-template-columns:1fr; }
  .user-edit-form fieldset+fieldset { border-top:1px solid #dce3e8; border-left:0; }
  .user-record-grid.registry-record-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .user-record-grid.registry-record-grid>.registry-data-section:last-child { grid-column:1/-1; }
  .user-request { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .project-detail-actions-toolbar>div,
  .project-detail-actions-toolbar .button { width:100%; }
  .user-registry>header,
  .user-management-card>header.registry-record-header,
  .user-record-footer,
  .user-danger-zone { align-items:flex-start; flex-direction:column; padding:19px 18px; }
  .user-management-list { padding:10px; }
  .user-record-grid.registry-record-grid { grid-template-columns:1fr; }
  .user-record-grid.registry-record-grid>.registry-data-section:last-child { grid-column:auto; }
  .user-record-grid.registry-record-grid>.registry-data-section { padding:16px 18px; border-right:0; border-bottom:1px solid #dce3e8; }
  .user-record-grid.registry-record-grid>.registry-data-section:last-child { border-bottom:0; }
  .user-record-footer .button { width:100%; }
  .user-edit-form fieldset { grid-template-columns:1fr; padding:19px 18px; }
  .user-edit-form fieldset:first-of-type label:first-of-type { grid-column:auto; }
  .user-edit-form input,
  .user-edit-form select { font-size:16px; }
  .user-edit-form>footer { padding:16px 18px; }
  .user-edit-form>footer .button,
  .user-danger-zone form,
  .user-danger-zone .button { width:100%; }
  .user-request-actions { align-items:stretch; flex-direction:column; }
  .user-request-actions .user-approval-form { width:100%; }
  .user-delete-compact,
  .user-delete-compact .button { width:100%; }
  .user-role-groups { padding:9px; }
  .user-page-actions { width:100%; justify-content:flex-end; }
  .user-pending-popover { position:fixed; top:calc(var(--app-header-height) + 10px); right:18px; left:18px; width:auto; max-height:calc(100vh - var(--app-header-height) - 28px); }
  .user-registry-filter { grid-template-columns:minmax(0,1fr) minmax(145px,.7fr); padding:12px; }
  .user-registry-filter-count { justify-self:start; }
  .user-registry-filter-clear { grid-column:auto; justify-self:end; }
  .user-role-group>summary { min-height:64px; padding:14px 15px; }
  .user-role-members { padding:8px; }
  .user-role-entry>summary { min-height:60px; padding:10px 12px; }
  .user-role-summary-identity>strong { font-size:20px; }
  .user-role-summary-action>span { display:none; }
}
@media (max-width:480px) {
  .user-registry-filter { grid-template-columns:minmax(0,1fr); }
  .user-registry-filter input,.user-registry-filter select { height:42px; font-size:16px; }
  .user-registry-filter-count,.user-registry-filter-clear { justify-self:start; }
}

/* Nettó + kézi ÁFA + automatikus bruttó árazás. */
.vat-price-editor {
  display:grid;
  align-content:start;
  gap:12px;
  min-width:0;
  padding:16px;
  border:1px solid #c9dde0;
  border-radius:5px;
  background:#f5fbfb;
}
.vat-price-title {
  margin:0;
  color:var(--navy);
  font-family:var(--serif);
  font-size:20px;
  font-weight:600;
  line-height:1.1;
}
.vat-price-fields { display:grid; grid-template-columns:minmax(0,1fr) 105px; gap:10px; }
.vat-price-editor label {
  display:grid;
  align-content:start;
  gap:7px;
  min-width:0;
  color:var(--muted);
  font-size:8px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.vat-price-editor input {
  width:100%;
  min-width:0;
  min-height:43px;
  padding:0 11px;
  color:var(--ink);
  border:1px solid #bfcbd1;
  border-radius:3px;
  outline:0;
  background:#fff;
  font:inherit;
  font-size:12px;
  letter-spacing:0;
  text-transform:none;
}
.vat-price-editor input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.vat-percent-input { position:relative; }
.vat-percent-input input { padding-right:29px; }
.vat-percent-input b { position:absolute; top:50%; right:11px; color:var(--muted); font-size:10px; transform:translateY(-50%); }
.vat-gross-output {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  min-height:49px;
  padding:10px 12px;
  color:#fff;
  border-radius:3px;
  background:var(--navy);
}
.vat-gross-output span { font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.vat-gross-output strong { font-family:var(--serif); font-size:20px; font-weight:600; text-align:right; }
.vat-price-breakdown { display:grid; gap:3px; }
.vat-price-breakdown small { color:inherit; font-size:8px; font-weight:600; line-height:1.45; opacity:.72; }
.vat-price-breakdown strong { color:inherit; font-family:var(--sans); font-size:11px; font-weight:800; line-height:1.45; }
.change-quote .vat-price-breakdown { justify-items:end; text-align:right; }
.change-quote .vat-price-breakdown small { color:rgba(255,255,255,.76); }
.change-quote .vat-price-breakdown strong { color:#fff; font-family:var(--serif); font-size:22px; }
.project-finance-fieldset .vat-price-editor { align-self:start; }
.project-edit-form .project-finance-fieldset { grid-template-columns:1fr; }
.project-edit-form .project-finance-fieldset legend,
.project-edit-form .project-finance-fieldset .project-form-wide { grid-column:1; }
.admin-change-composer>form>.vat-price-editor {
  grid-area:extra-price;
  margin:0;
  padding:24px 25px 14px;
  border:0;
  border-left:1px solid #dce3e8;
  border-radius:0;
  background:#edf8f8;
}
.admin-change-composer>form>.vat-price-editor,
.admin-change-response>.vat-price-editor {
  container-name:extra-work-price;
  container-type:inline-size;
}
.admin-change-response>.vat-price-editor { align-self:stretch; }
.admin-change-composer .project-money-input input,
.admin-change-response .project-money-input input { padding-right:52px; }

@media (max-width:760px) {
  .vat-price-fields { grid-template-columns:minmax(0,1fr) 94px; }
  .vat-price-editor input { font-size:16px; }
  .change-quote { align-items:flex-start; flex-direction:column; }
  .change-quote .vat-price-breakdown { justify-items:start; text-align:left; }
  .admin-change-composer>form>.vat-price-editor {
    padding:18px;
    border-top:1px solid #dce3e8;
    border-left:0;
  }
}

@container extra-work-price (max-width:360px) {
  .vat-price-fields { grid-template-columns:minmax(0,1fr); }
  .vat-gross-output { align-items:flex-start; flex-direction:column; gap:5px; }
  .vat-gross-output strong { max-width:100%; text-align:left; overflow-wrap:anywhere; }
}

/* Unified control polish: centered actions, balanced form fields and predictable wrapping. */
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:0;
  min-height:42px;
  padding:9px 17px;
  line-height:1.25;
  text-align:center;
  vertical-align:middle;
  white-space:normal;
}
.button-small {
  min-height:38px;
  padding:7px 13px;
}
.button:focus-visible,
.text-button:focus-visible,
.project-create-panel>header>button:focus-visible,
.customer-edit-panel>header>button:focus-visible,
.calendar-modal-close:focus-visible {
  outline:3px solid rgba(0,119,136,.22);
  outline-offset:2px;
}
.registry-action-button {
  align-items:center;
  min-height:44px;
  padding:8px 12px;
  line-height:1.3;
}
.project-record-grid.registry-record-grid {
  grid-template-columns:1fr .94fr 1.16fr minmax(190px,.78fr);
}
.project-record-actions form,
.customer-actions form,
.project-record-delete,
.user-delete-compact {
  display:grid;
  margin:0;
}
.project-record-actions {
  align-items:stretch;
  justify-content:stretch;
}
.project-record-actions .button,
.customer-actions .button,
.user-request-actions .button {
  max-width:100%;
}

.project-form-section input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.project-form-section select,
.project-edit-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.project-edit-form select,
.customer-form-section input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.customer-form-section select,
.user-edit-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.user-edit-form select,
.registry-search input,
.registry-search select,
.change-request-composer select,
.admin-change-response input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.vat-price-editor input,
.project-update-composer input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.access-form input,
.access-form select {
  min-height:44px;
  padding-top:0;
  padding-bottom:0;
  line-height:1.35;
}
.access-form input,
.access-form select { min-height:48px; }
.crm-app .app-content :is(
  .project-form-section,
  .project-edit-form,
  .customer-form-section,
  .customer-edit-form,
  .colleague-create-panel,
  .colleague-edit-form,
  .company-create-panel,
  .company-edit-form,
  .vehicle-edit-form,
  .user-create-form,
  .user-edit-form,
  .worktime-entry-modal,
  .calendar-event-form
) label {
  min-width:0;
}
.crm-app .app-content :is(
  .project-form-section,
  .project-edit-form,
  .customer-form-section,
  .customer-edit-form,
  .colleague-create-panel,
  .colleague-edit-form,
  .company-create-panel,
  .company-edit-form,
  .vehicle-edit-form,
  .user-create-form,
  .user-edit-form,
  .worktime-entry-modal,
  .calendar-event-form
) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),select) {
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:var(--crm-control-height);
}
.crm-app .app-content :is(
  .project-form-section,
  .project-edit-form,
  .customer-form-section,
  .customer-edit-form,
  .colleague-create-panel,
  .colleague-edit-form,
  .company-create-panel,
  .company-edit-form,
  .vehicle-edit-form,
  .user-create-form,
  .user-edit-form,
  .worktime-entry-modal,
  .calendar-event-form
) textarea {
  width:100%;
  min-width:0;
  max-width:100%;
}
.user-approval-form select {
  min-height:42px;
  line-height:1.35;
}
.project-update-composer textarea,
.change-request-composer textarea,
.change-refinement-form textarea,
.admin-change-response textarea,
.admin-change-composer textarea,
.portal-composer textarea {
  padding:12px 13px;
  line-height:1.65;
}
.project-upload-field input[type="file"],
.project-document-upload input[type="file"],
.portal-composer input[type="file"],
.change-request-composer input[type="file"] {
  min-height:46px;
  padding:6px 8px;
  line-height:1.35;
}
.project-upload-field input[type="file"]::file-selector-button,
.project-document-upload input[type="file"]::file-selector-button,
.portal-composer input[type="file"]::file-selector-button,
.change-request-composer input[type="file"]::file-selector-button {
  min-height:32px;
  margin-right:10px;
  padding:0 12px;
  color:var(--navy);
  border:1px solid #b9c5ce;
  border-radius:3px;
  background:#f3f6f7;
  font:inherit;
  font-size:9px;
  font-weight:800;
  cursor:pointer;
}

/* The four project sections keep a two-column rhythm without tall empty blocks. */
.project-edit-form {
  grid-template-areas:
    "project contract"
    "project portal"
    "finance finance";
}
.project-edit-form fieldset { border-right:0; }
.project-edit-form fieldset:nth-of-type(1) {
  grid-area:project;
  border-right:1px solid #dce3e8;
}
.project-edit-form fieldset:nth-of-type(2) { grid-area:contract; }
.project-edit-form fieldset:nth-of-type(3) { grid-area:portal; }
.project-edit-form fieldset:nth-of-type(4) { grid-area:finance; }
.project-edit-form .project-finance-fieldset {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.project-edit-form .project-finance-fieldset legend,
.project-edit-form .project-finance-fieldset .project-form-wide { grid-column:1/-1; }
.project-edit-form>footer,
.project-create-panel form>footer,
.customer-create-panel form>footer,
.customer-edit-form>footer,
.user-edit-form>footer,
.project-update-composer form>footer,
.change-request-composer>form>footer,
.admin-change-response>footer {
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
}

@media (max-width:1060px) {
  .project-edit-form { grid-template-areas:none; }
  .project-edit-form fieldset:nth-of-type(1),
  .project-edit-form fieldset:nth-of-type(2),
  .project-edit-form fieldset:nth-of-type(3),
  .project-edit-form fieldset:nth-of-type(4) {
    grid-area:auto;
    border-right:0;
  }
  .project-edit-form .project-finance-fieldset { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:1100px) {
  .project-record-grid.registry-record-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .project-record-grid.registry-record-grid { grid-template-columns:1fr; }
  .project-edit-form .project-finance-fieldset { grid-template-columns:1fr; }
  .project-edit-form .project-finance-fieldset legend,
  .project-edit-form .project-finance-fieldset .project-form-wide { grid-column:auto; }
  .project-record-actions .button,
  .customer-actions .button { width:100%; }
}

/* Project workspace: protected data sheet and one unified document centre. */
.project-overview-workspace {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(350px,.65fr);
  align-items:start;
  gap:18px;
}
.project-data-panel,
.project-overview-workspace .project-document-manager {
  overflow:hidden;
  border:1px solid #d8e0e6;
  border-radius:6px;
  background:#fff;
  box-shadow:0 10px 30px rgba(24,32,56,.05);
}
.project-data-panel>header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:25px 27px;
  border-bottom:1px solid #dce3e8;
  background:#fff;
}
.project-data-panel>header h2 {
  margin:0;
  color:var(--navy);
  font-family:var(--serif);
  font-size:31px;
  font-weight:600;
  line-height:1;
}
.project-data-panel>header p:not(.section-label) {
  max-width:660px;
  margin:9px 0 0;
  color:var(--muted);
  font-size:10px;
  line-height:1.65;
}
.project-lock-status {
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  color:#55616d;
  border:1px solid #c9d2da;
  border-radius:3px;
  background:#f3f5f7;
  font-size:8px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.project-locked-form {
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-areas:
    "identity contract"
    "finance finance"
    "footer footer";
  border:0;
}
.project-locked-form .project-data-group {
  display:grid;
  grid-template-columns:1fr;
  align-content:start;
  gap:17px;
  margin:0;
  padding:25px 27px 27px;
  border:0;
  border-bottom:1px solid #dce3e8;
}
.project-locked-form .project-data-identity {
  grid-area:identity;
  border-right:1px solid #dce3e8;
  background:#fff;
}
.project-locked-form .project-data-contract {
  grid-area:contract;
  background:#f5f8fa;
}
.project-locked-form .project-finance-fieldset {
  grid-area:finance;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  background:#edf8f8;
}
.project-locked-form .project-data-group-title {
  grid-column:1/-1;
  width:100%;
  margin:0 0 2px;
  padding:0;
  color:var(--navy);
  font-family:var(--serif);
  font-size:23px;
  font-weight:600;
  line-height:1.15;
}
.project-edit-field {
  position:relative;
  display:grid;
  align-content:start;
  gap:7px;
  min-width:0;
}
.project-edit-field-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:18px;
  padding-right:24px;
}
.project-edit-field-heading>label,
.project-edit-field-heading>span {
  color:#64717d;
  font-size:8px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.project-field-edit-button {
  display:inline-grid;
  flex:0 0 auto;
  width:20px;
  height:20px;
  place-items:center;
  padding:0;
  color:var(--teal);
  border:0;
  border-radius:0;
  background:transparent;
  opacity:.72;
  transition:color .2s,opacity .2s;
}
.project-field-edit-button:hover,
.project-field-edit-button[aria-pressed="true"] {
  color:var(--teal);
  background:transparent;
  opacity:1;
}
.project-field-edit-button.is-save-action { color:#167052; }
.project-field-edit-button.is-save-action:hover { color:#0d5d42; }
.project-field-edit-button.is-saving { cursor:wait; opacity:.55; }
.project-field-edit-button svg {
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.project-field-edit-button img { display:block; width:14px; height:14px; }
.project-input-edit-button {
  position:absolute;
  top:0;
  right:0;
  bottom:auto;
  z-index:2;
}
.project-field-edit-button:focus-visible {
  outline:2px solid rgba(0,119,136,.24);
  outline-offset:2px;
}
.project-locked-form input,
.project-locked-form select {
  width:100%;
  min-width:0;
  min-height:44px;
  padding:0 12px;
  color:var(--ink);
  border:1px solid #c6d0d7;
  border-radius:3px;
  outline:0;
  background:#fff;
  font:inherit;
  font-size:12px;
}
.project-locked-form .project-edit-field>input { padding-right:12px; }
.project-locked-form .project-edit-field>select { display:block; height:44px; min-height:44px; padding-right:34px; box-sizing:border-box; }
.project-locked-form input:disabled,
.project-locked-form select:disabled {
  color:#34404c;
  border-color:#d7dde2;
  background:#f2f4f5;
  -webkit-text-fill-color:#34404c;
  cursor:default;
  opacity:1;
}
.project-edit-field.is-editing>input,
.project-edit-field.is-editing>select,
.project-editable-price.is-editing input {
  border-color:var(--teal);
  background:#fff;
  box-shadow:0 0 0 3px rgba(0,119,136,.09);
}
.project-edit-checkbox .project-checkbox {
  margin:0;
  border-color:#d2dce2;
  background:#fff;
}
.project-edit-checkbox:not(.is-editing) .project-checkbox { background:#eef2f4; }
.project-edit-checkbox:not(.is-editing) .project-checkbox input { cursor:default; }
.project-edit-checkbox .project-checkbox { padding-right:15px; }
.project-editable-price {
  position:relative;
  gap:12px;
  padding:17px;
}
.project-editable-price.is-locked { border-color:#a9cfd2; border-left:4px solid var(--teal); background:#f8fcfc; box-shadow:0 8px 24px rgba(0,119,136,.055); }
.project-editable-price .project-edit-field-heading { min-height:31px; }
.project-editable-price .vat-price-title { margin:0; }
.project-price-lock-label { flex:0 0 auto; padding:6px 8px; color:#356d73!important; border:1px solid #bfdadd; border-radius:3px; background:#eaf6f7; font-family:var(--sans); font-size:7px!important; font-weight:800; letter-spacing:.07em; line-height:1.2; text-transform:uppercase; }
.project-editable-price.is-editing { border-color:var(--teal); background:#fff; box-shadow:0 0 0 3px rgba(0,119,136,.09),0 8px 24px rgba(0,119,136,.07); }
.project-editable-price.is-editing .project-price-lock-label { color:#167052!important; border-color:#acd2c1; background:#edf8f2; }
.project-editable-price.is-editing .project-price-lock-label::after { content:" · szerkesztés"; }
.project-finance-fieldset>.vat-price-editor { grid-column:1/-1; width:100%; }
.project-finance-fieldset>.vat-price-editor .vat-price-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
.project-finance-fieldset>.vat-price-editor input { height:44px; min-height:44px; }
.project-editable-price .vat-percent-input .project-input-edit-button {
  top:50%;
  right:6px;
  bottom:auto;
  transform:translateY(-50%);
}
.project-editable-price .vat-percent-input input { padding-right:64px; }
.project-editable-price .vat-percent-input b { right:40px; }
.project-editable-price .vat-gross-output { min-height:58px; }
.project-editable-price .vat-gross-output span { flex:0 0 auto; }
.project-editable-price .vat-gross-output strong { font-size:clamp(16px,1.45vw,20px); line-height:1.05; white-space:nowrap; }
.project-locked-form .project-form-wide { grid-column:1/-1; }
.project-locked-form>footer.project-edit-footer {
  display:flex;
  grid-area:footer;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 27px 20px;
  background:#fff;
}
.project-edit-footer p {
  max-width:580px;
  margin:0;
  color:#697581;
  font-size:9px;
  line-height:1.55;
}
.project-edit-footer .button:disabled {
  color:#89929c;
  border-color:#d7dde2;
  background:#e9edef;
  cursor:not-allowed;
  transform:none;
}
.project-data-panel .project-delete-form {
  padding:14px 27px 20px;
  border-top:1px solid #ecd9da;
  background:#fff8f8;
}

.project-overview-workspace .project-document-manager {
  position:sticky;
  top:18px;
  margin:0;
}
.project-overview-workspace .project-document-manager>header {
  flex-wrap:wrap;
  gap:14px;
  padding:24px 25px;
}
.project-overview-workspace .project-document-manager>header>div { flex:1 1 190px; min-width:0; }
.project-overview-workspace .project-document-manager>header>span { max-width:100%; line-height:1.45; white-space:normal; }
.project-overview-workspace .project-document-manager>header h2 { font-size:29px; }
.project-document-upload-unified {
  display:grid;
  grid-template-columns:1fr;
  align-items:stretch;
  gap:14px;
  margin:0;
  padding:22px 24px 24px;
  border:0;
  border-bottom:1px solid #dce3e8;
  background:#f5f8fa;
}
.project-document-upload-unified label {
  display:grid;
  gap:7px;
  min-width:0;
  color:#65727e;
  font-size:8px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.project-document-upload-unified label>small { color:#74808a; font-size:8px; font-weight:600; letter-spacing:0; line-height:1.5; text-transform:none; }
.project-document-upload-unified select,
.project-document-upload-unified input[type="file"] {
  width:100%;
  min-width:0;
  min-height:44px;
  padding:0 11px;
  color:var(--ink);
  border:1px solid #c4cfd6;
  border-radius:3px;
  outline:0;
  background:#fff;
  font:inherit;
  font-size:11px;
  letter-spacing:0;
  text-transform:none;
}
.project-document-upload-unified input[type="file"] { min-height:46px; padding:6px 8px; font-size:9px; }
.project-document-upload-unified select:focus,
.project-document-upload-unified input[type="file"]:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.project-document-rename-preview {
  display:grid;
  gap:5px;
  margin:0;
  padding:13px 14px;
  border-left:3px solid #a9bcc2;
  background:#fff;
}
.project-document-rename-preview span {
  color:#6d7985;
  font-size:7px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.project-document-rename-preview strong {
  overflow-wrap:anywhere;
  color:#58636e;
  font-size:9px;
  line-height:1.45;
}
.project-document-rename-preview small { color:#7b8590; font-size:8px; line-height:1.45; }
.project-document-upload-unified.has-document-kind .project-document-rename-preview { border-left-color:var(--teal); background:#eef8f8; }
.project-document-upload-unified.has-document-kind .project-document-rename-preview strong { color:var(--teal); }
.project-document-upload-unified .button { width:100%; }
.project-document-library>header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:19px 24px 14px;
}
.project-document-library h3 {
  margin:0;
  color:var(--navy);
  font-family:var(--serif);
  font-size:22px;
  font-weight:600;
}
.project-document-library>header>span { color:var(--muted); font-size:8px; font-weight:800; text-transform:uppercase; }
.project-document-list { display:grid; padding:0 24px 23px; }
.project-document-list-item {
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  min-width:0;
  padding:13px 0;
  border-top:1px solid #dce3e8;
}
.project-document-type {
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  color:#fff;
  background:var(--teal);
  font-size:7px;
  font-weight:900;
}
.project-document-list-item a.project-document-type { text-decoration:none; transition:background .2s,transform .2s; }
.project-document-list-item a.project-document-type:hover { background:#006c7b; transform:translateY(-1px); }
.project-document-list-item a.project-document-type[aria-disabled="true"] { pointer-events:none; }
.project-document-list-item>div { min-width:0; }
.project-document-list-item strong {
  display:block;
  overflow:hidden;
  color:var(--ink);
  font-size:9px;
  line-height:1.4;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.project-document-list-item small { display:block; margin-top:5px; color:var(--muted); font-size:7px; line-height:1.45; }
.project-document-list-item nav { display:flex; align-items:center; gap:4px; }
.project-document-icon-action { display:grid; width:27px; height:27px; place-items:center; padding:0; color:var(--teal); border:0; border-radius:3px; background:#eef6f7; cursor:pointer; transition:color .2s,background .2s,transform .2s; }
.project-document-icon-action svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.project-document-icon-action:hover { color:#fff; background:var(--teal); transform:translateY(-1px); }
.project-document-icon-action.is-delete { color:#9b2933; background:#fff0f1; }
.project-document-icon-action.is-delete:hover { color:#fff; background:#9b2933; }
.project-document-icon-action:disabled { cursor:default; opacity:.45; transform:none; }
.project-document-list-item nav form { margin:0; }
.project-document-upload-unified.is-replacing { background:#eef8f8; box-shadow:inset 3px 0 0 var(--teal); }
.project-document-list-item.is-empty .project-document-type { color:#65727e; background:#e5eaed; }
.project-document-list-item.is-empty strong { color:#65727e; }

@media (min-width:1181px) and (max-width:1540px) {
  .project-overview-workspace { grid-template-columns:minmax(0,1fr) minmax(350px,.54fr); }
  .project-overview-workspace .project-document-manager { position:sticky; }
  .project-overview-workspace .payment-stage-grid { grid-template-columns:1fr; }
  .project-overview-workspace .payment-stage-card.is-extra-work { grid-column:auto; width:100%; }
  .project-overview-workspace .payment-schedule-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .project-overview-workspace .payment-schedule-summary>div:nth-child(2) { border-right:0; }
  .project-overview-workspace .payment-schedule-summary>div:nth-child(-n+2) { border-bottom:1px solid #dfe5e8; }
  .project-overview-workspace .project-document-list-item { grid-template-columns:38px minmax(0,1fr) auto; }
}
@media (max-width:1180px) {
  .project-overview-workspace { grid-template-columns:1fr; }
  .project-overview-workspace .project-document-manager { position:static; }
  .project-document-upload-unified { grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr); }
  .project-document-upload-unified .project-document-rename-preview,
  .project-document-upload-unified .button { grid-column:1/-1; }
}
@media (max-width:760px) {
  .project-data-panel>header { align-items:flex-start; flex-direction:column; padding:22px 19px; }
  .project-locked-form { grid-template-columns:1fr; grid-template-areas:"identity" "contract" "finance" "footer"; }
  .project-locked-form .project-data-group,
  .project-locked-form .project-finance-fieldset { grid-template-columns:1fr; padding:21px 19px 23px; }
  .project-locked-form .project-data-identity { border-right:0; }
  .project-locked-form .project-finance-fieldset .project-data-group-title,
  .project-locked-form .project-finance-fieldset .project-form-wide { grid-column:auto; }
  .project-edit-footer { align-items:stretch; flex-direction:column; padding:17px 19px 20px; }
  .project-edit-footer .button { width:100%; }
  .project-data-panel .project-delete-form { padding:14px 19px 20px; }
  .project-overview-workspace .project-document-manager>header { padding:22px 19px; }
  .project-document-upload-unified { grid-template-columns:1fr; padding:19px; }
  .project-document-upload-unified .project-document-rename-preview,
  .project-document-upload-unified .button { grid-column:auto; }
  .project-document-upload-unified select,
  .project-document-upload-unified input[type="file"],
  .project-locked-form input,
  .project-locked-form select { font-size:16px; }
  .project-document-library>header { padding:18px 19px 13px; }
  .project-document-list { padding:0 19px 20px; }
  .project-document-list-item { grid-template-columns:38px minmax(0,1fr) auto; }
}

/* Dynamic contract payment stages and accepted extra-work payment rows. */
.payment-schedule-editor {
  overflow:hidden;
  border:1px solid #c7dadd;
  border-radius:5px;
  background:#fff;
}
.payment-schedule-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:18px 19px;
  border-bottom:1px solid #d9e4e6;
  background:#f5fbfb;
}
.payment-schedule-heading p { margin:0; color:var(--navy); font-family:var(--serif); font-size:23px; font-weight:600; }
.payment-schedule-heading small { display:block; max-width:590px; margin-top:7px; color:#65737d; font-size:9px; line-height:1.55; }
.payment-schedule-heading-actions { display:flex; flex:0 0 auto; align-items:center; gap:8px; }
.payment-schedule-heading-actions>span { padding:6px 9px; color:var(--teal); border:1px solid #bad5d8; border-radius:3px; background:#fff; font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.payment-stage-add-button { min-height:30px; padding:6px 10px; font-size:8px; }
.payment-stage-grid { display:grid; grid-template-columns:1fr; gap:8px; padding:11px 12px; }
.payment-stage-card { display:grid; grid-template-columns:minmax(120px,.72fr) minmax(0,1.28fr); grid-template-areas:"title controls" "note result"; align-items:end; gap:6px 14px; min-width:0; min-height:0; padding:11px 13px; border:1px solid #dbe2e6; border-radius:4px; background:#fff; }
.payment-stage-card.is-extra-work { grid-column:auto; justify-self:stretch; width:100%; border-color:#b8d5d0; background:#eff8f5; }
.payment-stage-title { display:flex; grid-area:title; align-items:center; justify-content:space-between; gap:12px; min-height:0; }
.payment-stage-title>div { display:grid; grid-template-columns:32px minmax(0,1fr); align-items:center; gap:10px; }
.payment-stage-remove-button { display:grid; flex:0 0 auto; width:28px; height:28px; padding:0; place-items:center; color:#9d3841; border:1px solid #e0bcc0; border-radius:50%; background:#fff; font-size:18px; font-weight:700; line-height:1; }
.payment-stage-remove-button:hover,.payment-stage-remove-button:focus-visible { color:#fff; border-color:#9d3841; outline:0; background:#9d3841; }
.payment-stage-remove-button[hidden] { display:none; }
.payment-stage-heading-copy { display:grid; align-content:center; gap:5px; min-width:0; }
.payment-stage-number { display:grid; width:32px; height:32px; place-items:center; color:#fff; border-radius:50%; background:var(--teal); font-family:var(--sans); font-size:14px; font-weight:900; line-height:1; }
.payment-stage-card.is-extra-work .payment-stage-number { background:#17684f; }
.payment-stage-title strong { color:var(--navy); font-family:var(--serif); font-size:16px; font-weight:600; }
.payment-stage-heading-copy>.payment-stage-paid { display:inline-flex; align-items:center; justify-self:start; gap:6px; min-height:16px; margin:0; padding:0; color:#737e86; border:0; background:transparent; cursor:pointer; font-size:7px; font-weight:900; letter-spacing:.07em; line-height:1; text-transform:uppercase; }
.payment-stage-paid input { order:2; width:13px; height:13px; min-width:13px; min-height:13px!important; margin:0; padding:0; accent-color:#17684f; }
.payment-stage-paid>span { order:1; }
.payment-stage-paid-state { order:3; min-width:0; color:#6f7a83; font-size:6px; font-weight:700; letter-spacing:0; text-transform:none; }
.payment-stage-paid:has(input:checked) { color:#17684f; }
.payment-stage-paid.is-saving input { opacity:.5; }
.payment-stage-paid.is-saved .payment-stage-paid-state { color:#17684f; }
.payment-stage-paid.has-error .payment-stage-paid-state { color:#a44228; }
.payment-stage-card.is-paid,.payment-stage-card:has(.payment-stage-paid input:checked) { border-color:#a9cfbc; box-shadow:inset 3px 0 0 #2c8a60; }
.payment-stage-card.is-awaiting-value { border-color:#dfcf9b; background:#fffdf5; box-shadow:inset 3px 0 0 #d5ad43; }
.payment-stage-note { grid-area:note; min-height:0; margin:0; color:#526d66; font-size:8px; line-height:1.45; }
.payment-stage-controls { display:grid; grid-area:controls; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.payment-stage-controls.is-amount-only { grid-template-columns:1fr; }
.payment-stage-controls label { display:grid; align-content:start; gap:4px; min-width:0; margin:0; color:#67747e; font-family:var(--sans); font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.payment-stage-controls select,
.payment-stage-controls input { width:100%; min-width:0; height:34px; min-height:34px!important; padding:0 10px; color:var(--ink); border:1px solid #c8d2d9; border-radius:3px; outline:0; background:#fff; font:inherit; font-size:11px; font-variant-numeric:tabular-nums; letter-spacing:0; text-align:right; text-transform:none; }
.payment-stage-card.is-paid .payment-stage-controls input:disabled { color:#748078; border-color:#d4dfda; background:#edf3f0; cursor:not-allowed; opacity:.82; }
.payment-stage-card.is-paid .payment-stage-value-control b { color:#8a958f; }
.payment-stage-controls select:focus,
.payment-stage-controls input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.payment-stage-value-control { position:relative; }
.payment-stage-value-control input { padding-right:34px; }
.payment-stage-value-control input::placeholder { color:#8b7440; font-size:9px; opacity:1; }
.payment-stage-value-control b { position:absolute; top:50%; right:12px; color:#64727c; font-size:9px; transform:translateY(-50%); }
.payment-stage-value-control .project-input-edit-button { top:50%; right:6px; bottom:auto; transform:translateY(-50%); }
.payment-stage-result { display:grid; grid-area:result; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:10px; margin:0; padding:6px 9px; border:0; background:#f6f8f9; }
.payment-stage-result>span { color:#6f7a83; font-size:7px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.payment-stage-result>strong { justify-self:end; color:var(--navy); font-size:11px; font-weight:800; white-space:nowrap; }
.payment-stage-card.is-extra-work .payment-stage-result>strong { color:#17684f; }
.payment-stage-card.is-awaiting-value .payment-stage-result>strong { color:#85651b; font-size:10px; }
.payment-stage-card.has-invalid-value { border-color:#c87178; }
.payment-schedule-editor.has-over-allocation { border-color:#c87178; box-shadow:0 0 0 2px rgba(157,56,65,.08); }
.payment-schedule-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid #d9e4e6; background:#f8fafb; }
.payment-schedule-summary>div { display:grid; align-content:start; gap:8px; min-width:0; padding:13px 15px; border-right:1px solid #dfe5e8; }
.payment-schedule-summary>div:last-child { border-right:0; }
.payment-schedule-summary span { color:#707b84; font-size:7px; font-weight:800; letter-spacing:.06em; line-height:1.35; text-transform:uppercase; }
.payment-schedule-summary dl { display:grid; gap:5px; margin:0; }
.payment-schedule-summary dl div { display:flex; align-items:baseline; justify-content:space-between; gap:9px; }
.payment-schedule-summary dl div[hidden] { display:none; }
.payment-schedule-summary dt { color:#7a858e; font-size:7px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.payment-schedule-summary dd { margin:0; color:var(--navy); font-size:10px; font-weight:800; text-align:right; white-space:nowrap; }
.payment-schedule-summary .is-balanced dd { color:#167052; }
.payment-schedule-summary .is-over dd { color:#a44228; }
.payment-schedule-summary .is-under dd { color:#9b6b1c; }
.payment-schedule-summary .is-extra { background:#eaf6f2; }
.payment-schedule-summary .is-extra dd { color:#17684f; }
.project-locked-form .payment-stage-card.is-editing select,
.project-locked-form .payment-stage-card.is-editing input { border-color:var(--teal); background:#fff; box-shadow:0 0 0 3px rgba(0,119,136,.09); }
.project-payment-stage-list { display:grid; gap:5px; margin:5px 0 0; padding:0; list-style:none; }
.project-payment-stage-list li { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"stage amount" "stage status"; align-items:center; column-gap:10px; row-gap:2px; padding:7px 0; border-top:1px solid rgba(0,119,136,.11); }
.project-payment-stage-list span { grid-area:stage; min-width:0; color:#5c6e74; font-size:8px; font-weight:700; line-height:1.4; }
.project-payment-stage-list em { display:inline-flex; grid-area:status; align-items:center; justify-self:end; gap:4px; padding:0; color:#87671f; border:0; background:transparent; font-size:6px; font-style:normal; font-weight:900; letter-spacing:.04em; line-height:1.2; text-transform:uppercase; white-space:nowrap; }
.project-payment-stage-list em::before { width:5px; height:5px; content:""; border-radius:50%; background:#c99a38; }
.project-payment-stage-list li.is-paid em { color:#17684f; }
.project-payment-stage-list li.is-paid em::before { background:#2c8a60; }
.project-payment-stage-list li.is-awaiting-value em,
.project-payment-stage-list li.is-awaiting-value .project-payment-stage-amount,
.crm-app .app-content .project-payment-stage-list li.is-awaiting-value small { color:#85651b; }
.project-payment-stage-list li.is-awaiting-value em::before { background:#d5ad43; }
.project-payment-stage-list strong { grid-area:amount; justify-self:end; color:var(--navy); font-size:9px; white-space:nowrap; }
.project-payment-stage-list li.is-extra { position:relative; margin-top:3px; padding:8px 0; border:0; background:transparent; }
.project-payment-stage-list li.is-extra::before { position:absolute; inset:0 -8px; z-index:0; content:""; border:1px solid #bcd8d1; border-radius:3px; background:#e8f5f1; pointer-events:none; }
.project-payment-stage-list li.is-extra>* { position:relative; z-index:1; }
.project-payment-stage-list li.is-extra span,
.project-payment-stage-list li.is-extra strong { color:#17684f; }

@media (max-width:900px) {
  .payment-stage-grid { grid-template-columns:1fr; }
  .payment-stage-card.is-extra-work { grid-column:auto; width:100%; }
  .payment-schedule-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .payment-schedule-summary>div:nth-child(2) { border-right:0; }
  .payment-schedule-summary>div:nth-child(-n+2) { border-bottom:1px solid #dfe5e8; }
}
@media (max-width:560px) {
  .project-finance-fieldset>.vat-price-editor .vat-price-fields { grid-template-columns:1fr; }
  .project-editable-price .project-edit-field-heading { align-items:flex-start; flex-direction:column; padding-right:0; }
  .payment-schedule-heading { flex-direction:column; padding:17px 15px; }
  .payment-schedule-heading-actions { width:100%; justify-content:space-between; }
  .payment-stage-grid { padding:10px; }
  .payment-stage-card { grid-template-columns:1fr; grid-template-areas:"title" "note" "controls" "result"; padding:12px; }
  .payment-stage-title { align-items:flex-start; }
  .payment-stage-controls select,
  .payment-stage-controls input { font-size:16px; }
  .payment-stage-result { grid-template-columns:1fr; gap:5px; }
  .payment-stage-result>strong { justify-self:start; }
  .payment-schedule-summary { grid-template-columns:1fr; }
  .payment-schedule-summary>div { border-right:0; border-bottom:1px solid #dfe5e8; }
  .payment-schedule-summary>div:last-child { border-bottom:0; }
}
@media (max-width:380px) {
  .payment-stage-controls { grid-template-columns:1fr; }
}

/* Expandable admin extra-work editors with titles and managed attachments. */
.admin-change-create-action { display:flex; justify-content:flex-end; margin:18px 0; }
.change-editor-close { display:grid; flex:0 0 auto; width:34px; height:34px; padding:0; place-items:center; color:#6c7780; border:1px solid #ccd6dc; border-radius:50%; background:#fff; font-size:21px; line-height:1; }
.change-card-header-actions { display:flex; flex:0 0 auto; align-items:center; gap:9px; }
.change-edit-toggle { display:inline-flex; min-height:34px; padding:7px 10px; align-items:center; gap:7px; color:var(--teal); border:1px solid #b9d4d7; border-radius:3px; background:#fff; font:inherit; font-size:8px; font-weight:900; text-transform:uppercase; }
.change-edit-toggle img { width:14px; height:14px; }
.change-edit-toggle[aria-expanded="true"] { color:#fff; border-color:var(--teal); background:var(--teal); }
.admin-change-editor[hidden],.admin-change-composer[hidden] { display:none!important; }
.change-request-card.is-editing { border-color:#9ec8cc; box-shadow:0 0 0 3px rgba(0,119,136,.08); }
.admin-change-composer>form {
  grid-template-columns:minmax(0,1.25fr) minmax(260px,.48fr);
  grid-template-areas:
    "extra-title extra-title"
    "extra-description extra-price"
    "extra-files extra-price"
    "extra-files extra-submit";
}
.admin-change-composer>form>label.admin-change-title-field:first-of-type { grid-area:extra-title; padding:20px 25px; border-bottom:1px solid #dce3e8; background:#f8fafb; }
.admin-change-composer>form>label:nth-of-type(2) { grid-area:extra-description; padding:24px 25px; border:0; background:#fff; }
.admin-change-composer>form>label:nth-of-type(2) textarea { min-height:190px; }
.admin-change-composer>form>.admin-change-files { grid-area:extra-files; padding:0 25px 24px; background:#fff; }
.admin-change-title-field,.admin-change-files { display:grid; gap:7px; min-width:0; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.admin-change-title-field input { width:100%; min-width:0; min-height:44px; padding:0 13px; color:var(--ink); border:1px solid #cbd0d7; border-radius:3px; background:#fff; font:inherit; font-size:12px; letter-spacing:0; text-transform:none; }
.admin-change-files input[type="file"] { width:100%; min-width:0; min-height:46px; padding:6px 8px; color:var(--ink); border:1px solid #c6d0d7; background:#fff; font:inherit; font-size:9px; letter-spacing:0; text-transform:none; }
.admin-change-files small,.admin-change-file-editor>div>small { color:#78838c; font-size:8px; font-weight:600; letter-spacing:0; line-height:1.5; text-transform:none; }
.change-file-feedback { min-height:12px; color:#26765a; font-size:8px; font-weight:800; letter-spacing:0; text-transform:none; }
.change-file-feedback.has-error { color:#a13a43; }
.vat-price-help { color:#657681!important; font-size:8px!important; font-weight:650!important; letter-spacing:0!important; line-height:1.5!important; text-transform:none!important; }
.admin-change-response {
  grid-template-columns:minmax(0,1.25fr) minmax(250px,.5fr);
  grid-template-areas:
    "admin-title admin-title"
    "admin-message admin-price"
    "admin-files admin-files"
    "admin-submit admin-submit";
}
.admin-change-response>label.admin-change-title-field:first-of-type { grid-area:admin-title; padding:20px 23px; border-bottom:1px solid #dce3e8; background:#f8fafb; }
.admin-change-response>label:nth-of-type(2) { grid-area:admin-message; padding:22px 23px; border:0; background:#fff; }
.admin-change-response>label:nth-of-type(2) textarea { min-height:154px; }
.admin-change-response>.vat-price-editor { grid-area:admin-price; border-left:1px solid #dce3e8; background:#edf8f8; }
.admin-change-response>.admin-change-file-editor { grid-area:admin-files; }
.admin-change-response>footer { grid-area:admin-submit; justify-content:flex-end; padding:16px 23px 22px; border-top:1px solid #dce3e8; border-left:0; background:#edf8f8; }
.admin-change-file-editor { display:grid; gap:14px; padding:20px 23px; border-top:1px solid #dce3e8; background:#f8fafb; }
.admin-change-existing-files { display:grid; gap:7px; }
.admin-change-existing-files label { display:flex; align-items:center; gap:9px; margin:0; padding:9px 11px; color:#53616c; border:1px solid #d8e0e5; background:#fff; font-size:9px; font-weight:700; letter-spacing:0; text-transform:none; }
.admin-change-existing-files input { flex:0 0 auto; width:15px; height:15px; accent-color:#9b2933; }
.admin-change-existing-files span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-change-existing-files em { margin-left:auto; color:#9b2933; font-size:7px; font-style:normal; font-weight:900; text-transform:uppercase; white-space:nowrap; }
.customer-extra-work-list article>div>strong { display:block; margin:6px 0; color:var(--navy); font-family:var(--serif); font-size:17px; }

@media (max-width:760px) {
  .admin-change-create-action .button { width:100%; }
  .change-card-header-actions { width:100%; justify-content:space-between; }
  .admin-change-composer>form,.admin-change-response { grid-template-columns:1fr; grid-template-areas:none; }
  .admin-change-composer>form>label.admin-change-title-field:first-of-type,
  .admin-change-composer>form>label:nth-of-type(2),
  .admin-change-composer>form>.vat-price-editor,
  .admin-change-composer>form>.admin-change-files,
  .admin-change-composer>form>footer,
  .admin-change-response>label.admin-change-title-field:first-of-type,
  .admin-change-response>label:nth-of-type(2),
  .admin-change-response>.vat-price-editor,
  .admin-change-response>.admin-change-file-editor,
  .admin-change-response>footer { grid-area:auto; padding:18px; border-right:0; border-left:0; }
  .admin-change-composer>form>.vat-price-editor,.admin-change-response>.vat-price-editor { border-top:1px solid #dce3e8; }
  .admin-change-existing-files label { align-items:flex-start; flex-wrap:wrap; }
  .admin-change-existing-files em { width:100%; margin-left:24px; }
  .admin-change-response>footer .button { width:100%; }
}

/* Numbered, collapsed admin extra-work register. */
.admin-change-card { position:relative; overflow:hidden; border-color:#d2dde2; box-shadow:0 6px 20px rgba(24,32,56,.045); }
.admin-change-card::before { position:absolute; z-index:2; top:0; bottom:0; left:0; width:4px; content:""; background:#bd8615; }
.admin-change-card.status-quoted::before { background:var(--teal); }
.admin-change-card.status-accepted::before { background:#2e8a59; }
.admin-change-card.status-rejected::before { background:#9f3b45; }
.admin-change-card-summary {
  display:grid;
  grid-template-columns:46px minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  min-height:98px;
  padding:17px 19px 17px 23px;
  cursor:pointer;
  list-style:none;
  background:#fff;
}
.admin-change-card-summary::-webkit-details-marker { display:none; }
.admin-change-card-summary:focus-visible { outline:3px solid rgba(0,119,136,.22); outline-offset:-3px; }
.admin-change-card[open]>.admin-change-card-summary { background:#f8fbfb; }
.admin-change-number { display:grid; width:42px; height:42px; place-items:center; color:#fff; border-radius:50%; background:var(--teal); font-family:var(--serif); font-size:21px; font-weight:700; }
.status-accepted .admin-change-number { background:#2e8a59; }
.status-rejected .admin-change-number { background:#9f3b45; }
.admin-change-card-copy { display:grid; min-width:0; gap:4px; }
.admin-change-card-copy .admin-change-card-kicker { margin:0; color:var(--teal); font-size:8px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.admin-change-card-copy>strong { overflow-wrap:anywhere; color:var(--navy); font-family:var(--serif); font-size:22px; font-weight:650; line-height:1.08; }
.admin-change-card-copy>small { color:#6e7c86; font-size:9px; font-weight:650; line-height:1.45; }
.admin-change-card-meta { display:grid; grid-template-columns:auto auto 22px; align-items:center; gap:10px; }
.admin-change-card-meta>b { color:var(--navy); font-size:11px; font-weight:800; white-space:nowrap; }
.admin-change-card-meta>b.is-reducing { color:#9f3b45; }
.admin-change-chevron { display:grid; width:22px; height:22px; place-items:center; color:#62727d; font-size:17px; transition:transform .18s ease; }
.admin-change-card[open] .admin-change-chevron { transform:rotate(180deg); }
.admin-change-card-body { border-top:1px solid var(--line); }
.admin-change-card-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 23px; background:#f5f7f8; }
.admin-change-card-toolbar>span { color:#72808a; font-size:8px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }

@media (max-width:760px) {
  .admin-change-card-summary { grid-template-columns:40px minmax(0,1fr) 22px; gap:11px; min-height:88px; padding:14px 14px 14px 18px; }
  .admin-change-number { width:36px; height:36px; font-size:18px; }
  .admin-change-card-copy>strong { font-size:19px; }
  .admin-change-card-meta { display:contents; }
  .admin-change-card-meta>b { grid-column:2; margin-top:3px; }
  .admin-change-card-meta>.change-status { grid-column:2; justify-self:start; margin-top:2px; }
  .admin-change-card-meta>.admin-change-chevron { grid-column:3; grid-row:1; }
  .admin-change-card-toolbar { padding:11px 14px 11px 18px; }
}

/* Admin notification center and notification settings. */
.notification-center { position:relative; flex:0 0 auto; margin-left:auto; }
.app-header .notification-center+.profile { margin-left:10px; }
.notification-center-toggle { position:relative; display:grid; width:40px; height:40px; padding:0; place-items:center; color:var(--navy); border:1px solid #d8dee5; border-radius:50%; background:#fff; }
.notification-center-toggle:hover,.notification-center-toggle[aria-expanded="true"] { color:#fff; border-color:var(--teal); background:var(--teal); }
.notification-center-toggle svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.notification-badge { position:absolute; top:-5px; right:-5px; display:grid; min-width:20px; height:20px; padding:0 5px; place-items:center; color:#fff; border:2px solid #fff; border-radius:999px; background:#d63649; font-size:8px; font-weight:900; line-height:1; }
.notification-center-panel { position:absolute; top:calc(100% + 14px); right:-148px; z-index:30; width:min(420px,calc(100vw - 30px)); overflow:hidden; border:1px solid #d9dfe5; border-radius:7px; background:#fff; box-shadow:0 22px 65px rgba(24,32,56,.22); }
.notification-center-panel[hidden] { display:none; }
.notification-center-panel>header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px; color:#fff; background:var(--navy); }
.notification-center-panel>header>div { display:grid; gap:4px; }
.notification-center-panel>header span { color:#9ed8dd; font-size:8px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.notification-center-panel>header strong { font-size:12px; }
.notification-center-panel form { margin:0; }
.notification-center-panel>header button,.notification-center-panel>footer button { padding:0; color:inherit; border:0; background:transparent; font-size:8px; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.notification-center-list { max-height:min(520px,calc(100vh - 210px)); overflow:auto; }
.notification-item { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; border-bottom:1px solid #e6e9ed; background:#fff; }
.notification-item.is-unread { background:#f0f8f7; }
.notification-open-form button { display:grid; grid-template-columns:9px minmax(0,1fr); gap:11px; width:100%; padding:15px 14px 15px 20px; color:var(--ink); border:0; background:transparent; text-align:left; }
.notification-open-form button:hover { background:rgba(0,119,136,.055); }
.notification-event-dot { width:8px; height:8px; margin-top:4px; border:2px solid #b8c2ca; border-radius:50%; background:#fff; }
.notification-item.is-unread .notification-event-dot { border-color:var(--teal); background:var(--teal); }
.notification-open-form button>span:last-child { display:grid; gap:6px; min-width:0; }
.notification-open-form strong { color:var(--navy); font-size:14px; line-height:1.4; }
.notification-open-form small { color:#5f6875; font-size:12px; line-height:1.55; }
.notification-open-form time { color:#9299a3; font-size:10px; line-height:1.4; }
.notification-read-form { display:grid; align-items:start; padding:13px 12px 0 0; }
.notification-read-form button { display:grid; width:27px; height:27px; padding:0; place-items:center; color:var(--teal); border:1px solid #bcd8d5; border-radius:50%; background:#fff; font-size:11px; font-weight:900; }
.notification-center-empty { padding:34px 24px; text-align:center; }
.notification-center-empty strong { color:var(--navy); font-family:var(--serif); font-size:24px; }
.notification-center-empty p { margin:8px 0 0; color:var(--muted); font-size:9px; }
.notification-center-panel>footer { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 20px; color:#5f6875; background:#f6f8f8; }
.notification-center-panel>footer a { color:var(--teal); font-size:8px; font-weight:900; }
.notification-center-context { color:var(--teal); font-size:8px; font-weight:900; }
.notification-center-panel>footer button { color:#a32d3b; }

/* Customer portal navigation uses the full sidebar width and a clear row state. */
.customer-shell .app-nav {
  width:calc(100% + 24px);
  margin-right:-12px;
  margin-left:-12px;
  gap:2px;
}
.customer-shell .app-nav a {
  width:100%;
  min-height:48px;
  padding-right:24px;
  padding-left:24px;
  border-left-width:3px;
  transition:color .12s ease,background-color .12s ease,border-color .12s ease;
}
.customer-shell .app-nav a.is-active {
  color:#fff;
  border-left-color:var(--teal);
  background:rgba(255,255,255,.09);
}
.customer-shell .app-nav a:hover,
.customer-shell .app-nav a:focus-visible {
  color:#fff;
  border-left-color:var(--teal);
  outline:0;
  background:rgba(255,255,255,.13);
}
.customer-shell .app-nav a:focus-visible { box-shadow:inset 0 0 0 2px rgba(158,216,221,.72); }

@media (min-width:661px) and (max-width:980px) {
  .customer-shell .app-nav {
    width:calc(100% + 16px);
    margin-right:-8px;
    margin-left:-8px;
  }
  .customer-shell .app-nav a {
    justify-content:center;
    padding-right:0;
    padding-left:0;
    border-bottom:3px solid transparent;
    border-left:0;
  }
  .customer-shell .app-nav a.is-active,
  .customer-shell .app-nav a:hover,
  .customer-shell .app-nav a:focus-visible { border-bottom-color:var(--teal); }
}

@media (max-width:660px) {
  .customer-shell .app-nav {
    width:calc(100% + 24px);
    margin-right:-12px;
    margin-left:-12px;
  }
  .customer-shell .app-nav a {
    justify-content:flex-start;
    padding-right:24px;
    padding-left:24px;
    border-bottom:0;
    border-left:3px solid transparent;
  }
  .customer-shell .app-nav a.is-active,
  .customer-shell .app-nav a:hover,
  .customer-shell .app-nav a:focus-visible { border-left-color:var(--teal); }
}

.notification-settings-page { display:grid; gap:18px; }
.notification-settings-intro { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:27px 30px; color:#fff; border-radius:6px; background:linear-gradient(125deg,var(--navy),#253456); }
.notification-settings-intro>div { max-width:760px; }
.notification-settings-intro h2,.push-device-panel h2 { margin:0; font-family:var(--serif); font-size:32px; font-weight:600; line-height:1; }
.notification-settings-intro p:not(.section-label),.push-device-panel header p:not(.section-label) { margin:10px 0 0; color:#c4cad5; font-size:10px; line-height:1.65; }
.notification-settings-intro>span { display:grid; flex:0 0 92px; height:78px; place-items:center; align-content:center; border-left:3px solid var(--teal); background:rgba(255,255,255,.08); }
.notification-settings-intro>span strong { font-family:var(--serif); font-size:30px; font-weight:600; }
.notification-settings-intro>span small { color:#9ed8dd; font-size:7px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.notification-preferences-form,.push-device-panel,.notification-settings-error { overflow:hidden; border:1px solid var(--line); border-radius:6px; background:#fff; }
.notification-preferences-form>header { display:grid; grid-template-columns:minmax(0,1fr) 94px 94px; align-items:center; gap:10px; padding:15px 22px; color:#687080; background:#f3f6f6; font-size:8px; font-weight:900; letter-spacing:.08em; text-align:center; text-transform:uppercase; }
.notification-preferences-form>header>div { display:grid; gap:3px; text-align:left; }
.notification-preferences-form>header small { color:#9299a3; font-size:7px; font-weight:600; letter-spacing:0; text-transform:none; }
.notification-preference-list article { display:grid; grid-template-columns:minmax(0,1fr) 94px 94px; align-items:center; gap:10px; min-height:76px; padding:14px 22px; border-top:1px solid #e7eaee; }
.notification-preference-list article>div { display:grid; gap:6px; min-width:0; }
.notification-preference-list article>div strong { color:var(--navy); font-size:11px; }
.notification-preference-list article>div small { color:var(--muted); font-size:8px; line-height:1.5; }
.channel-switch { display:grid; justify-items:center; gap:6px; cursor:pointer; }
.channel-switch input { position:absolute; width:1px; height:1px; opacity:0; }
.channel-switch span { position:relative; display:block; width:40px; height:22px; border:1px solid #c4cbd2; border-radius:999px; background:#e9edf0; transition:.2s; }
.channel-switch span::after { position:absolute; top:3px; left:3px; width:14px; height:14px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(24,32,56,.22); content:""; transition:.2s; }
.channel-switch input:checked+span { border-color:var(--teal); background:var(--teal); }
.channel-switch input:checked+span::after { transform:translateX(18px); }
.channel-switch input:focus-visible+span { outline:3px solid rgba(0,119,136,.18); outline-offset:2px; }
.channel-switch em { color:#6d7480; font-size:7px; font-style:normal; font-weight:800; text-transform:uppercase; }
.notification-preferences-form>footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:17px 22px; border-top:1px solid #e4e8eb; background:#f8fafa; }
.notification-preferences-form>footer p { margin:0; color:var(--muted); font-size:8px; }
.push-device-panel>header { display:flex; align-items:center; justify-content:space-between; gap:26px; padding:25px 28px 20px; }
.push-device-panel h2 { color:var(--navy); }
.push-device-panel header p:not(.section-label) { color:var(--muted); }
.push-device-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.push-device-actions .button { min-height:42px; white-space:nowrap; }
.push-device-status { margin:0 28px 18px; padding:11px 13px; color:#5e6772; border-left:3px solid #9ca7b0; background:#f3f5f6; font-size:8px; font-weight:700; }
.push-device-status[data-state="success"] { color:#17684f; border-color:#33946e; background:#eff9f4; }
.push-device-status[data-state="error"] { color:#922c37; border-color:#bd3c49; background:#fff1f2; }
.push-device-list { display:grid; margin:0 28px; border-top:1px solid #e5e9ec; }
.push-device-list article { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:12px; padding:15px 0; border-bottom:1px solid #e5e9ec; }
.push-device-list article.is-current { margin:0 -10px; padding-right:10px; padding-left:10px; border-radius:6px; background:#eef8f6; }
.push-device-list article.is-current strong::after { margin-left:8px; padding:3px 6px; color:#17684f; border-radius:999px; background:#d8efe7; content:'Ez az eszköz'; font-size:6px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
.push-device-list article.needs-attention { border-left:3px solid #bd3c49; padding-left:9px; }
.push-device-list article.needs-attention>span { color:#a32d3b; background:#fff1f2; }
.push-device-list article>span { display:grid; width:31px; height:31px; place-items:center; color:var(--teal); border-radius:50%; background:#e8f4f4; font-size:10px; }
.push-device-list article>div { display:grid; gap:4px; min-width:0; }
.push-device-list strong { color:var(--navy); overflow:hidden; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.push-device-list small { color:var(--muted); font-size:7px; line-height:1.45; }
.notification-device-empty { margin:0; padding:18px 0; color:var(--muted); font-size:9px; }
.push-device-panel>footer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:17px 28px 20px; }
.push-device-panel>footer p { max-width:760px; margin:0; color:#737b86; font-size:7px; line-height:1.55; }
.push-device-panel>footer button { padding:0; color:#a32d3b; border:0; background:transparent; font-size:8px; font-weight:800; }
.notification-settings-error { padding:24px; color:#922c37; border-color:#efc8ce; background:#fff4f5; }
.notification-settings-error p { margin:8px 0 0; font-size:9px; }

.activity-log-panel { overflow:hidden; border:1px solid var(--line); background:#fff; }
.activity-log-panel>header { display:flex; min-height:42px; align-items:center; justify-content:space-between; gap:16px; padding:7px 12px; border-bottom:1px solid var(--line); background:#f7f9fa; }
.activity-log-panel>header h2 { margin:0; color:var(--navy); font-family:var(--sans); font-size:13px; font-weight:800; line-height:1.35; }
.activity-log-panel>header>div { display:flex; flex:0 0 auto; align-items:center; gap:10px; }
.activity-log-panel>header span { color:#687680; font-size:10px; font-weight:700; }
.activity-log-panel>header button { padding:0; color:var(--teal); border:0; background:transparent; font-size:9px; font-weight:800; }
.activity-log-filter-bar { position:relative; z-index:5; display:grid; grid-template-columns:154px minmax(0,1fr) minmax(170px,.32fr); gap:14px; padding:0 12px; border-bottom:1px solid #dce3e8; background:#fbfcfc; }
.activity-log-filter { position:relative; min-width:0; }
.activity-log-filter-toggle { display:flex; width:100%; min-width:0; min-height:39px; align-items:center; justify-content:space-between; gap:7px; padding:0 3px; color:#65747e; border:0; border-bottom:2px solid transparent; outline:0; background:transparent; font:850 8px/1.2 var(--sans); letter-spacing:.045em; text-align:left; text-transform:uppercase; }
.activity-log-filter-toggle>span:first-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.activity-log-filter-toggle>span:last-child { display:grid; flex:0 0 20px; width:20px; height:20px; place-items:center; color:#596a75; border:1px solid #c8d2d8; border-radius:3px; background:#fff; font-size:13px; font-weight:700; line-height:1; transition:transform .14s ease,background-color .14s ease,color .14s ease,border-color .14s ease; }
.activity-log-filter-toggle:hover,.activity-log-filter-toggle:focus-visible { color:var(--navy); border-bottom-color:#9bcbd0; }
.activity-log-filter-toggle:focus-visible { box-shadow:0 0 0 2px rgba(0,119,136,.12); }
.activity-log-filter.is-open .activity-log-filter-toggle { color:var(--navy); border-bottom-color:var(--teal); }
.activity-log-filter.is-open .activity-log-filter-toggle>span:last-child { transform:rotate(180deg); }
.activity-log-filter.is-active .activity-log-filter-toggle { color:#116b75; }
.activity-log-filter.is-active .activity-log-filter-toggle>span:last-child { color:#fff; border-color:var(--teal); background:var(--teal); }
.activity-log-filter-menu { position:absolute; top:calc(100% + 5px); left:0; z-index:20; display:grid; width:320px; max-width:calc(100vw - 40px); box-sizing:border-box; gap:9px; padding:12px; color:#34444f; border:1px solid #bfcbd1; border-radius:5px; background:#fff; box-shadow:0 14px 34px rgba(24,32,56,.19); text-transform:none; }
.activity-log-filter-menu[hidden] { display:none; }
.activity-log-filter[data-activity-log-filter="event"] .activity-log-filter-menu { width:390px; }
.activity-log-filter[data-activity-log-filter="actor"] .activity-log-filter-menu { right:0; left:auto; }
.activity-log-filter-search { display:grid; min-width:0; gap:4px; }
.activity-log-filter-search>span { color:#687781; font-size:7px; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.activity-log-filter-search input { width:100%; min-width:0; height:36px; box-sizing:border-box; padding:0 10px; color:#263643; border:1px solid #c7d1d7; border-radius:3px; outline:0; background:#fff; font:600 10px/1 var(--sans); }
.activity-log-filter-search input:focus { border-color:var(--teal); box-shadow:0 0 0 2px rgba(0,119,136,.1); }
.activity-log-filter-select-all,.activity-log-filter-option { display:grid; grid-template-columns:17px minmax(0,1fr) auto; align-items:start; gap:8px; margin:0; cursor:pointer; }
.activity-log-filter-select-all { align-items:center; padding:8px 7px; border-top:1px solid #e3e8eb; border-bottom:1px solid #e3e8eb; background:#f7f9fa; }
.activity-log-filter-select-all span { color:var(--navy); font-size:9px; font-weight:800; }
.activity-log-filter-select-all input,.activity-log-filter-option input { width:15px; height:15px; margin:0; accent-color:var(--teal); }
.activity-log-filter-options { display:grid; max-height:230px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.activity-log-filter-option { padding:7px; border-bottom:1px solid #edf0f2; }
.activity-log-filter-option:hover { background:#f2f8f8; }
.activity-log-filter-option span { min-width:0; color:#34444f; font-size:9px; line-height:1.4; overflow-wrap:anywhere; }
.activity-log-filter-option em { color:#849099; font-size:8px; font-style:normal; font-variant-numeric:tabular-nums; }
.activity-log-filter-option-empty { margin:0; padding:15px 8px; color:#7c8790; font-size:9px; text-align:center; }
.activity-log-filter-menu footer { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-top:2px; }
.activity-log-filter-menu footer button { min-height:32px; padding:0 12px; border:1px solid #c4cfd5; border-radius:3px; background:#fff; color:#52636e; font:800 8px/1 var(--sans); }
.activity-log-filter-menu footer button:last-child { color:#fff; border-color:var(--navy); background:var(--navy); }
.activity-log-scroll { position:relative; z-index:1; height:clamp(420px,62vh,720px); overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; background:#fff; }
.activity-log-scroll:focus-visible { outline:3px solid rgba(0,119,136,.18); outline-offset:-3px; }
.activity-log-entry { display:grid; min-height:44px; grid-template-columns:154px minmax(0,1fr) minmax(170px,.32fr); align-items:center; gap:14px; margin:0; padding:7px 12px; color:#52606b; border-top:1px solid #e6eaed; font-size:10px; line-height:1.35; }
.activity-log-entry:first-child { border-top:0; }
.activity-log-entry:hover { background:#f8fbfb; }
.activity-log-entry time { color:#6d7881; font-variant-numeric:tabular-nums; white-space:nowrap; }
.activity-log-action { display:grid; min-width:0; grid-template-columns:74px minmax(0,1fr); align-items:center; gap:9px; overflow-wrap:anywhere; }
.activity-log-kind { display:inline-flex; width:74px; min-height:21px; box-sizing:border-box; align-items:center; justify-content:center; padding:3px 7px; color:#526572; border:1px solid #cad5da; border-left-width:3px; border-radius:3px; background:#f1f5f6; font-size:7px; font-weight:850; letter-spacing:.045em; line-height:1.1; text-transform:uppercase; white-space:nowrap; }
.activity-log-entry.is-authentication .activity-log-kind { color:#3f567b; border-color:#b8c6db; border-left-color:#617ba3; background:#f0f3f8; }
.activity-log-entry.is-page_view .activity-log-kind { color:#26656d; border-color:#b6d5d7; border-left-color:#3e8c94; background:#eef7f7; }
.activity-log-entry.is-creation .activity-log-kind { color:#31674d; border-color:#bdd8c9; border-left-color:#4e926d; background:#f0f8f3; }
.activity-log-entry.is-modification .activity-log-kind { color:#795b29; border-color:#dfcca9; border-left-color:#b58a42; background:#fbf6ed; }
.activity-log-entry.is-deletion .activity-log-kind { color:#883946; border-color:#e0bdc2; border-left-color:#b75866; background:#fbf1f3; }
.activity-log-entry.is-interaction .activity-log-kind { color:#5d5477; border-color:#d2cce0; border-left-color:#81749f; background:#f5f3f8; }
.activity-log-action-copy { display:flex; min-width:0; align-items:baseline; gap:6px; flex-wrap:wrap; }
.activity-log-action-copy strong { color:var(--navy); font-size:inherit; font-weight:750; }
.activity-log-action-copy small { color:#7a858d; font-size:inherit; }
.activity-log-action-copy small::before { padding-right:6px; color:#a1a9af; content:"—"; }
.activity-log-actor { display:grid; min-width:0; justify-items:end; text-align:right; }
.activity-log-actor strong { max-width:100%; color:var(--navy); font-size:10px; font-weight:800; line-height:1.3; overflow-wrap:anywhere; }
.activity-log-actor small { margin-top:2px; color:#7b858e; font-size:8px; line-height:1.3; }
.activity-log-empty { margin:0; padding:18px 12px; color:var(--muted); font-size:10px; }

@media (max-width:660px) {
  html.crm-notification-open,body.crm-notification-open { overflow:hidden; overscroll-behavior:none; }
  .notification-center { margin-left:auto; }
  .notification-center-toggle { width:36px; height:36px; }
  .notification-center-panel { position:fixed; top:calc(var(--app-header-height) - 8px); right:10px; left:10px; width:auto; max-height:calc(100vh - var(--app-header-height) - 12px); }
  .crm-has-preview-notice .notification-center-panel { top:calc(var(--app-header-height) + 26px); }
  .notification-center-list { max-height:calc(100vh - var(--app-header-height) - 158px); }
  .notification-settings-page,.notification-settings-intro>div,.notification-preferences-form,.push-device-panel { min-width:0; }
  .notification-settings-intro { align-items:stretch; flex-direction:column; padding:22px 20px; }
  .notification-settings-intro h2,.push-device-panel h2 { font-size:27px; }
  .notification-settings-intro>span { flex-basis:auto; width:100%; height:auto; min-height:62px; justify-items:start; padding-left:16px; }
  .notification-preferences-form>header { grid-template-columns:minmax(0,1fr) 54px 54px; gap:4px; padding:13px 12px; }
  .notification-preferences-form>header>div { min-width:0; }
  .crm-app .notification-preferences-form>header small { font-size:7px; line-height:1.3; }
  .notification-preferences-form>header strong small { overflow-wrap:anywhere; }
  .notification-preference-list article { grid-template-columns:minmax(0,1fr) 54px 54px; gap:4px; padding:14px 12px; }
  .notification-preference-list article>div strong { font-size:10px; }
  .notification-preference-list article>div small { font-size:7px; }
  .channel-switch span { width:36px; height:21px; }
  .channel-switch span::after { width:13px; height:13px; }
  .channel-switch input:checked+span::after { transform:translateX(15px); }
  .notification-preferences-form>footer,.push-device-panel>header,.push-device-panel>footer { align-items:stretch; flex-direction:column; }
  .notification-preferences-form>footer .button,.push-device-panel>header .button { width:100%; }
  .push-device-actions { display:grid; width:100%; }
  .push-device-panel>header { padding:22px 20px 17px; }
  .push-device-status,.push-device-list { margin-right:20px; margin-left:20px; }
  .push-device-list strong { white-space:normal; }
  .push-device-panel>footer { padding:17px 20px 20px; }
  .app-header .notification-center+.profile { margin-left:6px; }
  .app-header .profile .profile-mark { width:31px; height:31px; }
  .activity-log-panel>header { padding:7px 10px; }
  .activity-log-panel>header>div { gap:7px; }
  .activity-log-filter-bar { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:0 10px; }
  .activity-log-filter-toggle { min-height:40px; padding:0 2px; font-size:7px; }
  .activity-log-filter-toggle>span:last-child { flex-basis:18px; width:18px; height:18px; font-size:12px; }
  .activity-log-filter-menu,.activity-log-filter[data-activity-log-filter="event"] .activity-log-filter-menu { width:calc(100vw - 58px); max-width:332px; }
  .activity-log-filter[data-activity-log-filter="event"] .activity-log-filter-menu { left:50%; transform:translateX(-50%); }
  .activity-log-filter[data-activity-log-filter="actor"] .activity-log-filter-menu { right:0; left:auto; transform:none; }
  .activity-log-scroll { height:60vh; min-height:420px; }
  .activity-log-entry { grid-template-columns:minmax(0,1fr) minmax(126px,.8fr); align-items:start; gap:4px 10px; padding:8px 10px; font-size:10px; }
  .activity-log-action { grid-column:1/-1; grid-row:2; grid-template-columns:74px minmax(0,1fr); gap:7px; padding-top:3px; }
  .activity-log-actor { grid-column:2; grid-row:1; }
}

/* Keep the change-request counter legible in inactive project tabs. */
.project-detail-tabs span { color:#fff; }

/* Mobile-only resilience: readable controls, fully visible labels and no clipped navigation. */
@media (max-width:660px) {
  /* Do not turn the main column into a non-scrolling overflow container: it
     prevents the sticky header from following the viewport in mobile Safari. */
  html,body { overflow-x:clip; overflow-y:visible; }
  .app-main { overflow:visible; }
  .app-header { position:sticky; top:0; }
  .crm-has-preview-notice .app-header { top:34px; }

  /* Keep the registry filters compact and contain iOS' intrinsically wide
     native date control inside the panel. */
  .registry-search {
    grid-template-columns:minmax(0,1fr) minmax(148px,.8fr);
    gap:9px;
    padding:14px 18px 16px;
  }
  .registry-search label { width:100%; min-width:0; }
  .registry-search input { min-height:40px; }
  .registry-search input[type="date"] {
    display:block;
    width:100%;
    min-width:0;
    max-width:100%;
    overflow:hidden;
    -webkit-appearance:none;
    appearance:none;
  }
  .registry-search input[type="date"]::-webkit-date-and-time-value {
    min-width:0;
    text-align:left;
  }
  .registry-search .button {
    grid-column:1/-1;
    width:100%;
    min-width:0;
    min-height:40px;
  }

  .app-header-page h1 {
    overflow:visible;
    font-size:18px;
    line-height:1.08;
    overflow-wrap:anywhere;
    text-overflow:clip;
    white-space:normal;
  }

  .crm-app .app-content input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  .crm-app .app-content select,
  .crm-app .app-content textarea {
    min-width:0;
    max-width:100%;
    font-size:16px;
    font-weight:500;
    letter-spacing:0;
    text-transform:none;
  }
  .crm-app .app-content input::placeholder,
  .crm-app .app-content textarea::placeholder {
    font-weight:500;
    opacity:.72;
  }
  .crm-app .app-content input[type="file"] {
    min-width:0;
    max-width:100%;
    font-size:12px;
    font-weight:500;
    letter-spacing:0;
    text-transform:none;
  }

  .project-detail-tabs {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:4px;
    overflow:visible;
  }
  .project-detail-tabs a {
    flex:initial;
    min-width:0;
    min-height:54px;
    justify-content:center;
    gap:4px;
    padding:6px 4px;
    font-size:clamp(9px,2.35vw,10px);
    overflow-wrap:anywhere;
    line-height:1.2;
    text-align:center;
  }
  .project-detail-tabs span {
    flex:0 0 auto;
    min-width:18px;
    height:18px;
  }

  .crm-app .app-content .project-locked-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):disabled,
  .crm-app .app-content .project-locked-form select:disabled {
    font-size:14px;
  }

  .project-document-list-item strong,
  .project-document-current strong,
  .customer-pdf-group li strong,
  .project-attachment strong,
  .customer-update-attachment b,
  .user-management-identity h3 {
    overflow:visible;
    overflow-wrap:anywhere;
    text-overflow:clip;
    white-space:normal;
  }

  .dashboard-project-table .table-scroll { overflow:visible; }
  .dashboard-project-table table {
    display:block;
    min-width:0;
  }
  .dashboard-project-table thead {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
  }
  .dashboard-project-table tbody,
  .dashboard-project-table tr { display:grid; }
  .dashboard-project-table tr+tr { border-top:1px solid var(--line); }
  .dashboard-project-table td {
    display:grid;
    grid-template-columns:minmax(82px,.72fr) minmax(0,1.28fr);
    align-items:start;
    gap:10px;
    min-width:0;
    padding:10px 18px;
    border-bottom:0;
    overflow-wrap:anywhere;
  }
  .dashboard-project-table td:first-child { padding-top:15px; }
  .dashboard-project-table td:last-child { padding-bottom:15px; }
  .dashboard-project-table td::before {
    color:var(--muted);
    font-size:7px;
    font-weight:800;
    letter-spacing:.07em;
    line-height:1.45;
    text-transform:uppercase;
  }
  .dashboard-project-table td:nth-child(1)::before { content:"Projekt"; }
  .dashboard-project-table td:nth-child(2)::before { content:"Azonosító"; }
  .dashboard-project-table td:nth-child(3)::before { content:"Státusz"; }
  .dashboard-project-table td:nth-child(4)::before { content:"Utolsó módosítás"; }
  .dashboard-project-table td a { min-width:0; }
}

@media (max-width:350px) {
  .registry-search { grid-template-columns:1fr; }
  .registry-search .button { grid-column:auto; }
}

/* Decision-focused CRM overview */
.dashboard-command-heading { margin-bottom:24px; }
.dashboard-command-heading .section-label { color:var(--teal); }
.dashboard-attention { overflow:hidden; margin-bottom:18px; border:1px solid #d6dee4; border-radius:6px; background:#fff; box-shadow:0 8px 24px rgba(24,32,56,.05); }
.dashboard-attention>header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:21px 24px 20px 28px; color:#fff; background:var(--navy); }
.dashboard-attention>header .section-label { margin-bottom:5px; color:#9ed8dd; }
.dashboard-attention>header h2 { margin:0; font-family:var(--serif); font-size:29px; font-weight:500; line-height:1; }
.dashboard-attention-meta { display:flex; align-items:center; gap:13px; }
.dashboard-attention-meta small { color:rgba(255,255,255,.55); font-size:8px; font-weight:700; }
.dashboard-attention-meta a { padding:7px 9px; color:#9ed8dd; border:1px solid rgba(158,216,221,.35); font-size:8px; font-weight:800; }
.dashboard-attention-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.dashboard-attention-card { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; align-content:start; gap:5px 14px; min-width:0; min-height:138px; padding:21px 21px 18px 25px; color:var(--ink); border-right:1px solid #dce3e8; background:#fff; }
.dashboard-attention-card:last-child { border-right:0; }
.dashboard-attention-card::before { position:absolute; top:0; bottom:0; left:0; width:4px; content:""; background:#82909b; }
.dashboard-attention-card.is-urgent::before { background:#a53e48; }
.dashboard-attention-card.is-warning::before { background:#bd8615; }
.dashboard-attention-card.is-info::before { background:var(--teal); }
.dashboard-attention-card.is-clear::before { background:#2e8a59; }
.dashboard-attention-card>span { color:#65717c; font-size:8px; font-weight:800; letter-spacing:.075em; line-height:1.45; text-transform:uppercase; }
.dashboard-attention-card>strong { grid-row:1/3; grid-column:2; color:var(--navy); font-family:var(--serif); font-size:34px; font-weight:600; line-height:.85; }
.dashboard-attention-card>small { max-width:180px; color:#77818d; font-size:8px; line-height:1.55; }
.dashboard-attention-card>em { align-self:end; grid-column:1/-1; margin-top:12px; color:var(--teal); font-size:8px; font-style:normal; font-weight:800; letter-spacing:.04em; }
.dashboard-attention-card:hover { background:#f8fafb; }

.dashboard-site-analytics { overflow:hidden; margin-bottom:18px; border:1px solid #d6dee4; border-radius:6px; background:#fff; box-shadow:0 8px 24px rgba(24,32,56,.045); }
.dashboard-site-analytics>header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:25px 27px 23px; border-bottom:1px solid #dce3e8; background:linear-gradient(135deg,#f9fbfc 0%,#edf6f7 100%); }
.dashboard-site-analytics>header .section-label { margin-bottom:6px; }
.dashboard-site-analytics>header h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:31px; font-weight:500; line-height:1; }
.dashboard-site-analytics>header p:not(.section-label) { max-width:590px; margin:9px 0 0; color:#73808a; font-size:9px; line-height:1.6; }
.dashboard-site-analytics-status { display:grid; justify-items:end; flex:0 0 auto; gap:7px; padding-top:2px; }
.dashboard-site-analytics-status>span { display:flex; align-items:center; gap:7px; padding:7px 9px; color:#236c50; border:1px solid #b9d7c8; border-radius:999px; background:#f2f9f5; font-size:7px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.dashboard-site-analytics-status>span i { width:7px; height:7px; border-radius:50%; background:#2b8a60; box-shadow:0 0 0 3px rgba(43,138,96,.11); }
.dashboard-site-analytics-status small { color:#7b8790; font-size:7px; font-weight:650; }
.dashboard-analytics-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid #dce3e8; }
.dashboard-analytics-kpis article { position:relative; min-width:0; min-height:132px; padding:22px 23px 19px 27px; border-right:1px solid #dce3e8; background:#fff; }
.dashboard-analytics-kpis article:last-child { border-right:0; }
.dashboard-analytics-kpis article::before { position:absolute; top:23px; bottom:23px; left:0; width:3px; content:""; background:var(--teal); opacity:.75; }
.dashboard-analytics-kpis span { display:block; color:#75818a; font-size:7px; font-weight:800; letter-spacing:.06em; line-height:1.45; text-transform:uppercase; }
.dashboard-analytics-kpis strong { display:block; margin:17px 0 9px; color:var(--navy); font-family:var(--serif); font-size:36px; font-weight:600; line-height:.8; }
.dashboard-analytics-kpis small { display:block; color:#7b8790; font-size:7px; line-height:1.5; }
.dashboard-analytics-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(310px,.55fr); align-items:stretch; min-width:0; height:min(460px,calc(100vh - 180px)); min-height:390px; }
.dashboard-analytics-chart-card { min-width:0; min-height:0; padding:23px 25px 17px; overflow-y:auto; overscroll-behavior:contain; border-right:1px solid #dce3e8; background:#fff; }
.dashboard-analytics-chart-card>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.dashboard-analytics-chart-card h3,.dashboard-analytics-rankings h3 { margin:0; color:var(--navy); font-size:10px; font-weight:800; line-height:1.45; }
.dashboard-analytics-chart-card>header p,.dashboard-analytics-rankings header p { margin:4px 0 0; color:#83909a; font-size:7px; }
.dashboard-analytics-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; }
.dashboard-analytics-legend span { display:flex; align-items:center; gap:6px; color:#71808a; font-size:7px; font-weight:700; }
.dashboard-analytics-legend i { width:15px; height:3px; border-radius:2px; background:var(--teal); }
.dashboard-analytics-legend .is-clicks i { background:#65a84b; }
.dashboard-analytics-chart-wrap { min-width:0; margin-top:12px; }
.dashboard-analytics-chart { display:block; width:100%; height:auto; min-height:225px; overflow:visible; }
.dashboard-analytics-chart .chart-grid-line { stroke:#e4eaed; stroke-width:1; vector-effect:non-scaling-stroke; }
.dashboard-analytics-chart .chart-axis-value,.dashboard-analytics-chart .chart-axis-label { fill:#849099; font-family:var(--sans); font-size:9px; font-weight:650; }
.dashboard-analytics-chart .chart-views-area { fill:url(#analytics-views-fill); }
.dashboard-analytics-chart .chart-series { fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-width:3; vector-effect:non-scaling-stroke; }
.dashboard-analytics-chart .chart-series.is-views { stroke:var(--teal); }
.dashboard-analytics-chart .chart-series.is-clicks { stroke:#65a84b; }
.dashboard-analytics-data-table { margin-top:5px; color:#687781; font-size:8px; }
.dashboard-analytics-data-table summary { width:max-content; cursor:pointer; color:var(--teal); font-weight:800; }
.dashboard-analytics-data-table>div { max-height:220px; margin-top:10px; overflow:auto; border:1px solid #e0e6ea; }
.dashboard-analytics-data-table table { min-width:440px; }
.dashboard-analytics-data-table th,.dashboard-analytics-data-table td { padding:9px 12px; font-size:8px; }
.dashboard-analytics-rankings { display:grid; grid-template-rows:1fr 1fr; min-width:0; min-height:0; background:#f7f9fa; }
.dashboard-analytics-rankings>article { min-width:0; min-height:0; padding:21px 22px; overflow-y:auto; overscroll-behavior:contain; }
.dashboard-analytics-rankings>article+article { border-top:1px solid #dce3e8; }
.dashboard-analytics-rankings ol { display:grid; gap:13px; margin:16px 0 0; padding:0; list-style:none; }
.dashboard-analytics-rankings li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 12px; min-width:0; }
.dashboard-analytics-rankings li>div { min-width:0; }
.dashboard-analytics-rankings li strong { display:block; overflow:hidden; color:#303944; font-size:8px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-analytics-rankings li div span { display:block; overflow:hidden; margin-top:2px; color:#8a969e; font-size:6px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-analytics-rankings li em { align-self:start; color:#66747e; font-size:7px; font-style:normal; font-weight:750; white-space:nowrap; }
.dashboard-analytics-rankings li>i { display:block; grid-column:1/-1; height:4px; overflow:hidden; border-radius:2px; background:#e2e8eb; }
.dashboard-analytics-rankings li>i span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--teal),#65a84b); }
.dashboard-ranking-empty { margin:16px 0 0; color:#7b8790; font-size:8px; }
.dashboard-analytics-empty,.dashboard-analytics-chart-empty { display:grid; place-items:center; align-content:center; min-height:210px; padding:35px; text-align:center; }
.dashboard-analytics-empty strong,.dashboard-analytics-chart-empty strong { color:var(--navy); font-family:var(--serif); font-size:24px; font-weight:550; }
.dashboard-analytics-empty span,.dashboard-analytics-chart-empty span { max-width:460px; margin-top:7px; color:#7b8790; font-size:8px; line-height:1.55; }
.dashboard-analytics-chart-empty { min-height:300px; }

.dashboard-command-grid { display:grid; grid-template-columns:minmax(0,1.34fr) minmax(330px,.66fr); align-items:start; gap:18px; margin-bottom:18px; }
.dashboard-command-grid.is-single { grid-template-columns:1fr; }
.dashboard-day-panel,.dashboard-portfolio-panel,.dashboard-project-pulse,.dashboard-deadline-strip { border:1px solid #d6dee4; border-radius:6px; background:#fff; }
.dashboard-day-panel>header,.dashboard-portfolio-panel>header,.dashboard-project-pulse>header,.dashboard-deadline-strip>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:23px 24px; border-bottom:1px solid #dce3e8; }
.dashboard-day-panel>header .section-label,.dashboard-portfolio-panel>header .section-label,.dashboard-project-pulse>header .section-label,.dashboard-deadline-strip>header .section-label { margin-bottom:5px; }
.dashboard-day-panel h2,.dashboard-portfolio-panel h2,.dashboard-project-pulse h2,.dashboard-deadline-strip h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:28px; font-weight:500; line-height:1; }
.dashboard-day-sections { display:grid; grid-template-columns:1fr 1fr; }
.dashboard-day-sections>section { min-width:0; padding:0 23px 10px; }
.dashboard-day-sections>section:first-child { border-right:1px solid #dce3e8; background:#f8fafb; }
.dashboard-day-sections>section:last-child { background:#f2f7fa; }
.dashboard-day-sections h3 { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0; padding:18px 0 11px; color:#68747e; border-bottom:1px solid #dce3e8; font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.dashboard-day-sections h3 span { display:grid; min-width:22px; height:22px; place-items:center; color:var(--navy); border:1px solid #cdd7de; border-radius:50%; background:#fff; font-size:8px; }
.dashboard-day-sections ol { margin:0; padding:0; list-style:none; }
.dashboard-day-sections li { display:grid; grid-template-columns:48px minmax(0,1fr) auto; align-items:center; gap:11px; min-height:70px; padding:11px 0; border-bottom:1px solid #dce3e8; }
.dashboard-day-sections li:last-child { border-bottom:0; }
.dashboard-day-sections time { color:var(--teal); font-size:9px; font-weight:800; line-height:1.35; }
.dashboard-day-sections time small { display:block; margin-top:2px; color:#77818d; font-size:7px; }
.dashboard-day-sections li strong { display:block; color:var(--ink); font-size:10px; line-height:1.45; }
.dashboard-day-sections li div small { display:block; margin-top:4px; color:#77818d; font-size:8px; line-height:1.4; }
.dashboard-day-sections li em { color:#68747e; font-size:7px; font-style:normal; font-weight:800; text-transform:uppercase; }
.dashboard-quiet-state { margin:0; padding:24px 0; color:#77818d; font-size:9px; line-height:1.55; }

.dashboard-portfolio-panel { overflow:hidden; color:#fff; border-color:var(--navy); background:var(--navy); }
.dashboard-portfolio-panel>header { border-bottom-color:rgba(255,255,255,.12); }
.dashboard-portfolio-panel>header .section-label { color:#9ed8dd; }
.dashboard-portfolio-panel h2 { color:#fff; }
.dashboard-portfolio-panel .text-button { color:#9ed8dd; }
.dashboard-portfolio-hero { padding:25px 25px 20px; }
.dashboard-portfolio-hero>span { display:block; color:#9ed8dd; font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.dashboard-portfolio-hero>strong { display:block; margin:12px 0 8px; overflow-wrap:anywhere; font-family:var(--serif); font-size:clamp(30px,3vw,42px); font-weight:500; line-height:.95; }
.dashboard-portfolio-hero>small { color:rgba(255,255,255,.54); font-size:8px; line-height:1.5; }
.dashboard-portfolio-panel>dl { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin:0; background:rgba(255,255,255,.12); }
.dashboard-portfolio-panel>dl>div { padding:16px 20px; background:#202a47; }
.dashboard-portfolio-panel dt { color:rgba(255,255,255,.52); font-size:7px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.dashboard-portfolio-panel dd { margin:7px 0 0; color:#fff; font-size:10px; font-weight:800; }
.dashboard-meter { padding:18px 25px 0; }
.dashboard-meter:last-child { padding-bottom:24px; }
.dashboard-meter>div,.dashboard-project-meter>div { display:flex; justify-content:space-between; gap:14px; margin-bottom:8px; }
.dashboard-meter>div span,.dashboard-project-meter>div span { color:rgba(255,255,255,.62); font-size:8px; font-weight:700; }
.dashboard-meter>div strong,.dashboard-project-meter>div strong { color:#fff; font-size:9px; }
.dashboard-meter>span,.dashboard-project-meter>span { display:block; height:6px; overflow:hidden; background:rgba(255,255,255,.14); }
.dashboard-meter i,.dashboard-project-meter i { display:block; height:100%; background:#70c6ce; }
.dashboard-meter.is-project-progress i { background:#a9d86e; }

.dashboard-project-pulse { overflow:hidden; margin-bottom:18px; }
.dashboard-project-pulse>header { align-items:center; }
.dashboard-project-pulse>header p:not(.section-label) { margin:8px 0 0; color:#77818d; font-size:9px; }
.dashboard-project-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:14px; background:#f2f5f7; }
.dashboard-project-card { min-width:0; padding:20px; border:1px solid #d6dee4; border-radius:4px; background:#fff; box-shadow:0 4px 13px rgba(24,32,56,.035); }
.dashboard-project-card>header { display:flex; align-items:center; justify-content:space-between; gap:14px; padding-bottom:14px; border-bottom:1px solid #e0e6ea; }
.dashboard-project-card>header>span { color:var(--teal); font-size:8px; font-weight:800; letter-spacing:.06em; }
.dashboard-project-card>header em { padding:5px 7px; color:#84621c; border:1px solid #e0c889; background:#fff9e9; font-size:7px; font-style:normal; font-weight:800; text-transform:uppercase; }
.dashboard-project-card>header em.is-live { color:#23704f; border-color:#b6d9c7; background:#f0f8f4; }
.dashboard-project-card>div:nth-of-type(1) { padding:17px 0 15px; }
.dashboard-project-card h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:550; line-height:1.05; }
.dashboard-project-card p { margin:7px 0 0; color:#77818d; font-size:8px; }
.dashboard-project-card>dl { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0 0 17px; padding:13px 0; border-top:1px solid #e0e6ea; border-bottom:1px solid #e0e6ea; }
.dashboard-project-card dt { color:#7b8590; font-size:7px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.dashboard-project-card dd { margin:5px 0 0; color:var(--ink); font-size:9px; font-weight:750; }
.dashboard-project-meter>div span { color:#66727d; }
.dashboard-project-meter>div strong { color:var(--navy); }
.dashboard-project-meter>span { background:#e5eaed; }
.dashboard-project-payment { display:flex; justify-content:space-between; gap:12px; margin-top:10px; color:#66727d; font-size:8px; }
.dashboard-project-payment strong { color:var(--teal); }
.dashboard-project-card>footer { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:18px; padding-top:14px; border-top:1px solid #e0e6ea; }
.dashboard-project-card>footer small { color:#84909a; font-size:7px; }
.dashboard-project-card>footer a { color:var(--teal); font-size:8px; font-weight:800; }

.dashboard-deadline-strip { overflow:hidden; }
.dashboard-deadline-strip>header { padding-bottom:18px; }
.dashboard-deadline-strip>div { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.dashboard-deadline-strip>div>a { min-width:0; padding:19px 22px; color:var(--ink); border-right:1px solid #dce3e8; background:#f8fafb; }
.dashboard-deadline-strip>div>a:last-child { border-right:0; }
.dashboard-deadline-strip time { display:block; margin-bottom:8px; color:var(--teal); font-size:8px; font-weight:800; }
.dashboard-deadline-strip strong { display:block; overflow-wrap:anywhere; color:var(--navy); font-size:10px; }
.dashboard-deadline-strip small { display:block; margin-top:6px; color:#77818d; font-size:8px; line-height:1.45; }
.dashboard-deadline-strip>.dashboard-quiet-state { padding:22px 24px; }

@media (max-width:1100px) {
  .dashboard-command-grid { grid-template-columns:1fr; }
  .dashboard-attention-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-attention-card:nth-child(2n) { border-right:0; }
  .dashboard-attention-card:nth-child(-n+2) { border-bottom:1px solid #dce3e8; }
  .dashboard-analytics-layout { grid-template-columns:1fr; height:auto; min-height:0; }
  .dashboard-analytics-chart-card { border-right:0; border-bottom:1px solid #dce3e8; }
  .dashboard-analytics-rankings { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .dashboard-analytics-rankings>article { max-height:330px; }
  .dashboard-analytics-rankings>article+article { border-top:0; border-left:1px solid #dce3e8; }
}
@media (max-width:760px) {
  .dashboard-project-card-grid { grid-template-columns:1fr; }
  .dashboard-project-pulse>header { align-items:flex-start; flex-direction:column; }
  .dashboard-project-pulse>header .button { width:100%; }
}
@media (max-width:660px) {
  .dashboard-command-heading { gap:18px; }
  .dashboard-command-heading .button { width:100%; }
  .dashboard-attention>header { align-items:flex-start; padding:20px 18px 19px 22px; }
  .dashboard-attention-meta { align-items:flex-end; flex-direction:column; gap:6px; }
  .dashboard-attention-grid { grid-template-columns:1fr; }
  .dashboard-attention-card,.dashboard-attention-card:nth-child(2n),.dashboard-attention-card:nth-child(-n+2) { min-height:122px; border-right:0; border-bottom:1px solid #dce3e8; }
  .dashboard-attention-card:last-child { border-bottom:0; }
  .dashboard-site-analytics>header { align-items:flex-start; flex-direction:column; gap:15px; padding:21px 18px; }
  .dashboard-site-analytics>header h2 { font-size:28px; }
  .dashboard-site-analytics-status { justify-items:start; }
  .dashboard-analytics-kpis { grid-template-columns:1fr 1fr; }
  .dashboard-analytics-kpis article { min-height:122px; padding:19px 16px 17px 20px; }
  .dashboard-analytics-kpis article:nth-child(2n) { border-right:0; }
  .dashboard-analytics-kpis article:nth-child(-n+2) { border-bottom:1px solid #dce3e8; }
  .dashboard-analytics-kpis article::before { top:20px; bottom:20px; }
  .dashboard-analytics-kpis strong { margin-top:15px; font-size:31px; }
  .dashboard-analytics-chart-card { padding:20px 12px 16px; }
  .dashboard-analytics-chart-card>header { padding:0 6px; }
  .dashboard-analytics-chart { min-height:190px; }
  .dashboard-analytics-rankings { grid-template-columns:1fr; }
  .dashboard-analytics-rankings>article+article { border-top:1px solid #dce3e8; border-left:0; }
  .dashboard-day-panel>header,.dashboard-portfolio-panel>header,.dashboard-project-pulse>header,.dashboard-deadline-strip>header { padding:20px 18px; }
  .dashboard-day-sections { grid-template-columns:1fr; }
  .dashboard-day-sections>section:first-child { border-right:0; border-bottom:1px solid #dce3e8; }
  .dashboard-day-sections>section { padding:0 18px 8px; }
  .dashboard-day-sections li { grid-template-columns:46px minmax(0,1fr); align-items:start; }
  .dashboard-day-sections li em { grid-column:2; }
  .dashboard-portfolio-hero { padding:23px 20px 19px; }
  .dashboard-portfolio-panel>dl { grid-template-columns:1fr; }
  .dashboard-meter { padding-right:20px; padding-left:20px; }
  .dashboard-project-card-grid { gap:9px; padding:9px; }
  .dashboard-project-card { padding:18px; }
  .dashboard-project-card>dl { grid-template-columns:1fr; }
  .dashboard-project-card>footer { align-items:flex-start; flex-direction:column; }
  .dashboard-deadline-strip>div { grid-template-columns:1fr; }
  .dashboard-deadline-strip>div>a { border-right:0; border-bottom:1px solid #dce3e8; }
  .dashboard-deadline-strip>div>a:last-child { border-bottom:0; }
}

/* Mobile-only app-header context: keep the compact title, date/module cue and description visible. */
@media (max-width:660px) {
  .app-shell { --app-header-height:112px; }
  .app-header { padding-right:18px; padding-left:18px; }
  .sidebar-toggle { flex:0 0 auto; margin-right:10px; }
  .app-header-page {
    display:grid;
    align-content:center;
    gap:3px;
    min-width:0;
    padding:3px 0 3px 11px;
    border-left:2px solid var(--teal);
  }
  .app-header-page .section-label {
    display:block;
    overflow:hidden;
    color:var(--teal);
    font-size:6px;
    font-weight:900;
    letter-spacing:.085em;
    line-height:1.25;
    text-overflow:ellipsis;
    text-transform:uppercase;
    white-space:nowrap;
  }
  .app-header-page h1 {
    overflow:hidden;
    font-size:18px;
    line-height:1.02;
    overflow-wrap:normal;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .app-header-page>p:last-child {
    display:-webkit-box;
    margin-top:1px;
    overflow:hidden;
    color:#727d87;
    font-size:7px;
    line-height:1.35;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
  .app-header .profile { margin-left:8px; }
}

/* CRM readability scale: preserve display headings, enlarge operational copy and controls. */
.crm-app {
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

.crm-app .section-label { font-size:10px; line-height:1.45; }
.crm-app .button { font-size:12px; line-height:1.3; }
.crm-app .customer-shell .customer-pdf-group li .customer-document-open-button {
  display:grid;
  min-height:35px;
  place-items:center;
  padding:0 10px;
}
@media (min-width:661px) {
  .crm-app .customer-shell .customer-pdf-group li .customer-document-open-button {
    font-size:8px;
    line-height:1.2;
  }
}
.crm-app .button-small,.crm-app .text-button { font-size:11px; line-height:1.35; }
.crm-app .app-nav a,.crm-app .app-sidebar-bottom a { font-size:12px; line-height:1.35; }
.crm-app .app-brand span { font-size:10px; }
.crm-app .app-sidebar-bottom small { font-size:10px; line-height:1.45; }
.app-sidebar-meta { display:grid; gap:3px; padding:8px 14px 0; }
.app-sidebar-meta small { padding:0; }
.crm-app .app-sidebar-bottom .app-sidebar-developer { width:max-content; min-height:0; padding:0; color:rgba(255,255,255,.38); border:0; font-size:9px; font-weight:500; line-height:1.45; }
.crm-app .app-sidebar-bottom .app-sidebar-developer:hover { color:rgba(255,255,255,.72); border:0; background:transparent; }
.crm-app .profile strong { font-size:12px; line-height:1.35; }
.crm-app .profile small,.crm-app .logout-form button { font-size:10px; line-height:1.4; }
.crm-app .preview-notice { font-size:11px; line-height:1.45; }
.crm-app .app-header-page .section-label { font-size:9px; line-height:1.35; }
.crm-app .app-header-page>p:last-child { font-size:10px; line-height:1.5; }

.crm-app .app-content :is(h1,h2,h3,h4,h5,h6) { line-height:1.14; padding-bottom:.08em; }
.crm-app .app-content p:not(.section-label) { font-size:13px; line-height:1.65; }
.crm-app .app-content dt { font-size:10px; line-height:1.4; }
.crm-app .app-content :is(dd,td) { font-size:13px; line-height:1.5; }
.crm-app .app-content :is(label,th) { font-size:10px; line-height:1.4; }
.crm-app .app-content :is(small,time,em) { font-size:10px; line-height:1.45; }
.crm-app .app-content :is(td,li) strong { font-size:13px; line-height:1.45; }
.crm-app .app-content p strong { font-size:inherit; }
.crm-app .app-content a:not(.button) { font-size:13px; line-height:1.45; }
.crm-app .app-content input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.crm-app .app-content select,
.crm-app .app-content textarea { font-size:14px; line-height:1.45; }
.crm-app .app-content input[type="file"] { font-size:11px; line-height:1.45; }

.dashboard-attention-meta small,.dashboard-attention-meta a { font-size:11px; }
.dashboard-attention-card { min-height:154px; }
.dashboard-attention-card>span { font-size:12px; }
.dashboard-attention-card>small { font-size:12px; line-height:1.55; }
.dashboard-attention-card>em { font-size:12px; }

.dashboard-site-analytics>header p:not(.section-label) { font-size:13px; }
.dashboard-site-analytics-status>span,.dashboard-site-analytics-status small { font-size:10px; }
.dashboard-analytics-kpis span { font-size:10px; }
.dashboard-analytics-kpis small { font-size:11px; }
.dashboard-analytics-chart-card h3,.dashboard-analytics-rankings h3 { font-size:13px; }
.dashboard-analytics-chart-card>header p,.dashboard-analytics-rankings header p { font-size:11px; }
.dashboard-analytics-legend span { font-size:11px; }
.dashboard-analytics-chart .chart-axis-value,.dashboard-analytics-chart .chart-axis-label { font-size:11px; }
.dashboard-analytics-data-table,.dashboard-analytics-data-table th,.dashboard-analytics-data-table td { font-size:11px; }
.dashboard-analytics-rankings li strong { font-size:12px; }
.dashboard-analytics-rankings li div span { font-size:10px; }
.dashboard-analytics-rankings li em { font-size:10px; }
.dashboard-ranking-empty { font-size:12px; }
.dashboard-analytics-empty span,.dashboard-analytics-chart-empty span { font-size:12px; }

.dashboard-day-sections h3 { font-size:12px; }
.dashboard-day-sections h3 span { font-size:11px; }
.dashboard-day-sections li { min-height:78px; }
.dashboard-day-sections time { font-size:12px; }
.dashboard-day-sections time small { font-size:10px; }
.dashboard-day-sections li strong { font-size:13px; }
.dashboard-day-sections li div small { font-size:11px; }
.dashboard-day-sections li em { font-size:10px; }
.dashboard-quiet-state { font-size:13px; }

.dashboard-portfolio-hero>span { font-size:11px; }
.dashboard-portfolio-hero>small { font-size:11px; }
.dashboard-portfolio-panel dt { font-size:10px; }
.dashboard-portfolio-panel dd { font-size:13px; }
.dashboard-meter>div span,.dashboard-project-meter>div span { font-size:11px; }
.dashboard-meter>div strong,.dashboard-project-meter>div strong { font-size:12px; }

.dashboard-project-pulse>header p:not(.section-label) { font-size:13px; }
.dashboard-project-card>header>span { font-size:11px; }
.dashboard-project-card>header em { font-size:10px; }
.dashboard-project-card p { font-size:13px; }
.dashboard-project-card dt { font-size:11px; }
.dashboard-project-card dd { font-size:13px; }
.dashboard-project-payment { font-size:12px; }
.dashboard-project-card>footer small { font-size:11px; }
.dashboard-project-card>footer a { font-size:12px; }

.dashboard-deadline-strip time { font-size:12px; }
.dashboard-deadline-strip strong { font-size:13px; }
.dashboard-deadline-strip small { font-size:11px; }

.crm-login-page .section-label { font-size:12px; }
.crm-login-page .access-brand small { font-size:10px; }
.crm-login-page .access-intro-copy>p:last-child { font-size:15px; }
.crm-login-page .access-support { font-size:13px; }
.crm-login-page .access-lead { font-size:14px; }
.crm-login-page .access-form label { font-size:12px; }
.crm-login-page .access-form input,.crm-login-page .access-form select { font-size:14px; }
.crm-login-page .access-note,.crm-login-page .access-link,.crm-login-page .access-message { font-size:12px; }

@media (max-width:660px) {
  .crm-app .app-nav a,.crm-app .app-sidebar-bottom a { font-size:14px; }
  .crm-app .app-header-page .section-label { font-size:9px; }
  .crm-app .app-header-page>p:last-child { font-size:10px; }
  .crm-app .app-content input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  .crm-app .app-content select,
  .crm-app .app-content textarea { font-size:16px; }
  .crm-app .project-detail-tabs a { font-size:11px; }
  .dashboard-attention-card,.dashboard-attention-card:nth-child(2n),.dashboard-attention-card:nth-child(-n+2) { min-height:142px; }
}

@media (min-width:661px) and (max-width:980px) {
  .app-sidebar-meta { display:none; }
}

/* Project registry cards: calmer variable values and compact payment disclosure. */
.project-record .registry-data-section dd,
.project-record .vat-price-breakdown small,
.project-record .vat-price-breakdown strong,
.project-record-address a,
.project-record .registry-audit strong { font-weight:500; }

.project-record .registry-total dd {
  color:var(--teal);
  font-size:16px;
  font-weight:500;
}

.project-payment-disclosure {
  margin-top:13px;
  border-top:1px solid #bad4d7;
}

.project-payment-disclosure summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:44px;
  padding:10px 0;
  color:#596874;
  cursor:pointer;
  list-style:none;
  user-select:none;
}

.project-payment-disclosure summary::-webkit-details-marker { display:none; }
.project-payment-disclosure summary>span {
  font-size:13px;
  font-weight:700;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.project-payment-disclosure summary>small {
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--teal);
  font-size:11px;
  font-weight:600;
}
.project-payment-disclosure summary>small::after {
  display:grid;
  width:22px;
  height:22px;
  place-items:center;
  border:1px solid #b8d2d5;
  border-radius:50%;
  content:"+";
  font-size:15px;
  line-height:1;
}
.project-payment-disclosure[open] summary>small::after { content:"−"; }
.project-payment-disclosure[open] summary { border-bottom:1px solid rgba(0,119,136,.14); }
.project-payment-disclosure-body { padding:4px 0 7px; animation:projectPaymentDisclosureIn .22s ease both; }

.project-payment-stage-list { gap:0; margin:0; }
.project-payment-stage-list li { min-height:64px; padding:10px 0; }
.project-payment-stage-name {
  display:grid;
  grid-area:stage;
  align-content:center;
  gap:3px;
  min-width:0;
  color:#53646f;
  line-height:1.35;
}
.project-payment-stage-name b { font-size:13px; font-weight:700; }
.crm-app .app-content .project-payment-stage-name small { color:#74818a; font-size:12px; font-weight:500; }
.project-payment-stage-list .project-payment-stage-amount {
  grid-area:amount;
  justify-self:end;
  color:var(--navy);
  font-size:13px;
  font-weight:500;
  white-space:nowrap;
}
.crm-app .app-content .project-payment-stage-list em {
  font-size:11px;
  font-weight:600;
}
.project-payment-stage-list li.is-extra .project-payment-stage-name,
.project-payment-stage-list li.is-extra .project-payment-stage-amount { color:#17684f; }

@keyframes projectPaymentDisclosureIn {
  from { opacity:0; transform:translateY(-4px); }
  to { opacity:1; transform:translateY(0); }
}

@media (max-width:760px) {
  .project-payment-disclosure summary { min-height:48px; }
  .project-payment-disclosure summary>span { font-size:12px; }
  .project-payment-stage-list li { min-height:68px; }
}

/*
 * CRM typography contract
 * Copy = 400, changing/data values = 500, headings = 600, labels/actions = 700.
 * Semantic elements and the utility classes below make this the default for new modules too.
 */
.crm-app,
.crm-login-page { font-weight:var(--crm-weight-copy); }

.crm-app :is(p,small),
.crm-login-page :is(p,small) { font-weight:var(--crm-weight-copy); }

.crm-app :is(h2,h3,h4,h5,h6),
.crm-login-page :is(h2,h3,h4,h5,h6),
.crm-type-heading { font-weight:var(--crm-weight-heading); }

.crm-app :is(.section-label,dt,th,legend),
.crm-app label>span,
.crm-login-page :is(.section-label,legend),
.crm-login-page label>span,
.crm-type-label { font-weight:var(--crm-weight-label); }

.crm-app :is(dd,td,output),
.crm-app :is(input,select,textarea),
.crm-login-page :is(input,select,textarea,output),
.crm-type-value { font-weight:var(--crm-weight-value); }

.crm-app :is(dd,td) :is(strong,b),
.crm-login-page :is(input,select,textarea,output) :is(strong,b) { font-weight:var(--crm-weight-value); }

.crm-type-copy { font-weight:var(--crm-weight-copy); }

/* Existing components whose changing values are not represented by dd/td/form controls. */
.crm-app :is(
  .registry-record-code,
  .registry-count strong,
  .registry-audit strong,
  .customer-record-audit strong,
  .panel-count,
  .project-record-address a,
  .project-record-progress>div:first-child strong,
  .portal-project-progress>div:first-child strong,
  .vat-gross-output strong,
  .vat-price-breakdown strong,
  .payment-stage-result>strong,
  .project-payment-stage-amount,
  .dashboard-attention-card>strong,
  .dashboard-analytics-kpis strong,
  .dashboard-portfolio-hero>strong,
  .dashboard-meter>div strong,
  .dashboard-project-meter>div strong,
  .dashboard-project-payment strong,
  .dashboard-live-summary strong,
  .dashboard-focus-card>div:last-child>strong,
  .notification-settings-intro>span strong
) { font-weight:var(--crm-weight-value); }

/* Reusable labels, states and controls retain clear emphasis without heavy data values. */
.crm-app :is(
  .registry-status,
  .user-status,
  .change-status,
  .phase,
  .visibility,
  .project-completion-badge,
  .dashboard-attention-card>span,
  .dashboard-site-analytics-status>span,
  .dashboard-analytics-kpis span,
  .dashboard-day-sections h3,
  .dashboard-day-sections li em,
  .dashboard-portfolio-hero>span,
  .dashboard-project-card>header>span,
  .dashboard-project-card>header em,
  .dashboard-deadline-strip time,
  .dashboard-live-summary span,
  .dashboard-task-list em,
  .dashboard-update-list em,
  .channel-switch em,
  .payment-stage-result>span,
  .payment-schedule-summary span
) { font-weight:var(--crm-weight-label); }

/* Project lifecycle status */
.project-status-badge { display:inline-flex!important; align-items:center; justify-content:center; min-height:28px; margin:0!important; padding:5px 10px; color:#6f5712!important; border:1px solid #e3c84c; border-radius:999px; background:#fff2a8; font-size:8px!important; font-weight:850!important; letter-spacing:.04em!important; line-height:1.2; text-transform:uppercase; white-space:nowrap; }
.project-status-badge.is-completed { color:#17633f!important; border-color:#75b992; background:#dff4e7; }
.project-status-control { flex:0 0 min(260px,100%); padding:11px 13px; border:1px solid rgba(255,255,255,.24); border-radius:7px; background:rgba(255,255,255,.08); }
.project-status-control.is-in-progress { border-color:rgba(255,226,91,.68); background:rgba(255,226,91,.12); }
.project-status-control.is-completed { border-color:rgba(118,210,156,.68); background:rgba(118,210,156,.12); }
.project-status-control label { display:grid; gap:6px; color:rgba(255,255,255,.72); font-size:8px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.project-status-control select { width:100%; min-height:42px; padding:0 34px 0 11px; color:var(--navy); border:0; border-radius:4px; outline:0; background:#fff; font:inherit; font-size:12px; font-weight:800; letter-spacing:0; text-transform:none; }
.project-status-control select:focus { box-shadow:0 0 0 3px rgba(112,198,206,.35); }
.project-status-confirmation[hidden] { display:none; }
.project-status-confirmation { position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:22px; background:rgba(14,25,47,.76); backdrop-filter:blur(4px); }
.project-status-confirmation-card { width:min(480px,100%); padding:28px; border:1px solid #cdd8df; border-radius:9px; background:#fff; box-shadow:0 24px 70px rgba(10,22,42,.3); }
.project-status-confirmation-card .section-label { margin-bottom:9px; color:var(--teal); }
.project-status-confirmation-card h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:31px; font-weight:600; line-height:1.08; }
.project-status-confirmation-card>p:not(.section-label) { margin:15px 0 24px; color:var(--muted); font-size:11px; line-height:1.7; }
.project-status-confirmation-card>div { display:flex; justify-content:flex-end; gap:9px; }
html.project-status-dialog-open,body.project-status-dialog-open { overflow:hidden; }
.dashboard-project-card-statuses { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.dashboard-project-card-statuses .project-status-badge { min-height:24px; padding:4px 8px; font-size:7px!important; }
@media (max-width:760px) {
  .project-detail-heading .project-status-control { width:100%; flex-basis:auto; }
  .project-status-control select { font-size:16px; }
  .project-status-confirmation { padding:15px; }
  .project-status-confirmation-card { padding:23px 20px; }
  .project-status-confirmation-card h2 { font-size:27px; }
  .project-status-confirmation-card>div { flex-direction:column-reverse; }
  .project-status-confirmation-card .button { width:100%; }
  .dashboard-project-card>header { align-items:flex-start; }
  .dashboard-project-card-statuses { justify-content:flex-start; }
}

/* List and activity titles are content headings, not raw field values. */
.crm-app :is(
  .task-list,
  .update-list,
  .dashboard-task-list,
  .dashboard-update-list,
  .document-list,
  .customer-timeline,
  .dashboard-deadline-strip
) strong { font-weight:var(--crm-weight-heading); }

/* Admin-managed notification preferences on user and customer records. */
.user-record-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.notification-settings-link {
  padding:4px 0;
  color:var(--teal);
  border:0;
  border-bottom:1px solid rgba(0,119,136,.38);
  background:transparent;
  font-size:12px;
  font-weight:var(--crm-weight-label);
  line-height:1.3;
}
.notification-settings-link:hover,.notification-settings-link:focus-visible { color:var(--navy); border-bottom-color:var(--navy); }
.admin-notification-modal {
  width:min(780px,calc(100vw - 34px));
  max-width:780px;
  max-height:min(820px,calc(100vh - 34px));
  padding:0;
  overflow:hidden;
  color:var(--ink);
  border:0;
  border-radius:8px;
  background:transparent;
  box-shadow:0 30px 90px rgba(10,16,34,.34);
}
.admin-notification-modal::backdrop { background:rgba(18,26,46,.52); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); }
.admin-notification-modal[open] { animation:adminNotificationModalIn .2s ease both; }
.admin-notification-modal-shell { display:flex; max-height:min(820px,calc(100vh - 34px)); flex-direction:column; overflow:hidden; background:#fff; }
.admin-notification-modal-shell>header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:25px 27px 22px; color:#fff; background:linear-gradient(125deg,var(--navy),#263556); }
.admin-notification-modal-shell>header .section-label { margin-bottom:7px; color:#9ed8dd; }
.admin-notification-modal-shell>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:34px; font-weight:var(--crm-weight-heading); line-height:1; }
.admin-notification-modal-shell>header p:last-child { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:12px 0 0; color:rgba(255,255,255,.76); font-size:12px; }
.admin-notification-modal-shell>header p:last-child strong { color:#fff; font-weight:var(--crm-weight-value); }
.admin-notification-modal-shell>header p:last-child span::before { margin-right:8px; content:"·"; }
.admin-notification-modal-shell>header>button { display:grid; flex:0 0 auto; width:36px; height:36px; padding:0; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.28); border-radius:50%; background:rgba(255,255,255,.08); font-size:24px; font-weight:400; line-height:1; }
.admin-notification-modal-shell>header>button:hover { background:rgba(255,255,255,.16); }
.admin-notification-modal-columns,.admin-notification-modal-list article { display:grid; grid-template-columns:minmax(0,1fr) 88px 88px; align-items:center; gap:12px; }
.admin-notification-modal-columns { padding:13px 24px; color:#687080; border-bottom:1px solid #e3e7eb; background:#f3f6f6; font-size:10px; font-weight:var(--crm-weight-label); letter-spacing:.075em; text-align:center; text-transform:uppercase; }
.admin-notification-modal-columns span { text-align:left; }
.admin-notification-modal-list { min-height:0; overflow:auto; overscroll-behavior:contain; }
.admin-notification-modal-list article { min-height:82px; padding:14px 24px; border-bottom:1px solid #e7eaee; }
.admin-notification-modal-list article:last-child { border-bottom:0; }
.admin-notification-modal-list article>div { display:grid; gap:6px; min-width:0; }
.admin-notification-modal-list article>div strong { color:var(--navy); font-size:13px; font-weight:var(--crm-weight-heading); line-height:1.35; }
.admin-notification-modal-list article>div small { color:var(--muted); font-size:11px; font-weight:var(--crm-weight-copy); line-height:1.5; }
.admin-notification-switch { position:relative; align-content:center; min-height:55px; }
.admin-notification-switch small { min-height:12px; color:#64717b; font-size:9px; font-weight:var(--crm-weight-value); line-height:1; text-transform:none; }
.admin-notification-switch.is-saving small { color:var(--teal); }
.admin-notification-switch.is-saved small { color:#237650; }
.admin-notification-switch.has-error small { color:#a32d3b; }
.admin-notification-switch input:disabled+span { opacity:.62; }
.admin-notification-modal-shell>footer { display:flex; align-items:center; gap:18px; padding:16px 24px; border-top:1px solid #dfe4e8; background:#f8fafa; }
.admin-notification-modal-shell>footer>span { display:flex; align-items:center; gap:8px; color:#267452; font-size:10px; font-weight:var(--crm-weight-label); white-space:nowrap; }
.admin-notification-modal-shell>footer>span i { width:8px; height:8px; border-radius:50%; background:#33a172; box-shadow:0 0 0 4px rgba(51,161,114,.13); }
.admin-notification-modal-shell>footer p { flex:1; margin:0; color:var(--muted); font-size:10px; line-height:1.45; }
.admin-notification-modal-shell>footer .button { flex:0 0 auto; }
html.crm-admin-notification-open,body.crm-admin-notification-open { overflow:hidden; overscroll-behavior:none; }

@keyframes adminNotificationModalIn {
  from { opacity:0; transform:translateY(12px) scale(.985); }
  to { opacity:1; transform:translateY(0) scale(1); }
}

@media (max-width:660px) {
  .user-record-footer,.customer-record-footer { align-items:flex-start; }
  .user-record-actions,.customer-actions-compact { align-items:stretch; flex-direction:column; width:100%; }
  .notification-settings-link { align-self:flex-start; min-height:34px; text-align:left; }
  .admin-notification-modal { width:calc(100vw - 20px); max-height:calc(100vh - 20px); }
  .admin-notification-modal-shell { max-height:calc(100vh - 20px); }
  .admin-notification-modal-shell>header { padding:21px 19px 18px; }
  .admin-notification-modal-shell>header h2 { font-size:29px; }
  .admin-notification-modal-shell>header p:last-child { align-items:flex-start; flex-direction:column; gap:3px; }
  .admin-notification-modal-shell>header p:last-child span::before { display:none; }
  .admin-notification-modal-columns,.admin-notification-modal-list article { grid-template-columns:minmax(0,1fr) 58px 58px; gap:7px; }
  .admin-notification-modal-columns { padding:12px 13px; font-size:9px; }
  .admin-notification-modal-list article { min-height:88px; padding:13px; }
  .admin-notification-modal-list article>div strong { font-size:12px; }
  .admin-notification-modal-list article>div small { font-size:10px; }
  .admin-notification-switch em { font-size:9px; }
  .admin-notification-switch small { font-size:8px; }
  .admin-notification-modal-shell>footer { align-items:stretch; flex-direction:column; gap:10px; padding:14px 17px 17px; }
  .admin-notification-modal-shell>footer .button { width:100%; }
}

/* Keep customer payment amounts readable while preserving one status width. */
@media (max-width:480px) {
  .customer-payment-schedule li { grid-template-columns:minmax(0,1fr); }
  .customer-payment-stage-name { grid-column:1; }
  .customer-payment-schedule dl { width:100%; }
  .customer-payment-schedule li>em { justify-self:start; }
}

/* CRM typography hierarchy: clear roles, safe line boxes and calm registry density. */
.crm-app .app-content :is(
  .registry-count strong,
  .user-management-summary strong,
  .customer-gross-total dd,
  .project-progress-compact>strong,
  .vat-gross-output strong,
  .dashboard-attention-card>strong,
  .dashboard-analytics-kpis strong,
  .dashboard-portfolio-hero>strong,
  .dashboard-focus-card>div:last-child>strong
) { line-height:1.15; padding-block:.06em; }

.customer-records.registry-records { gap:16px; padding:16px; }
.customer-record>.registry-record-header {
  min-height:98px;
  padding:19px 24px 18px 27px;
}
.customer-record .customer-record-identity { gap:15px; }
.customer-record .customer-avatar {
  width:50px;
  height:50px;
  font-size:22px;
  font-weight:600;
  line-height:1;
}
.customer-record .registry-record-code {
  margin-bottom:5px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.075em;
  line-height:1.35;
}
.customer-record>.registry-record-header h3 {
  overflow:visible;
  font-size:29px;
  font-weight:600;
  line-height:1.16;
  padding-bottom:.08em;
}
.customer-record>.registry-record-header .registry-status {
  min-height:34px;
  padding:0 12px;
  font-size:10px;
  line-height:1.3;
}
.customer-record-grid.registry-record-grid {
  grid-template-columns:minmax(235px,.78fr) minmax(460px,1.45fr) minmax(300px,.95fr);
}
.customer-record-grid.registry-record-grid>.registry-data-section { padding:22px 24px 24px 27px; }
.customer-record-grid .registry-data-section .section-label {
  margin-bottom:16px;
  font-size:11px;
  letter-spacing:.11em;
  line-height:1.4;
}
.customer-record-grid .registry-data-section dl { gap:16px; }
.customer-record-grid .registry-data-section dl>div { gap:5px; }
.customer-record-grid .registry-data-section dt {
  font-size:10px;
  letter-spacing:.075em;
  line-height:1.4;
}
.customer-record-grid .registry-data-section dd {
  font-size:14px;
  font-weight:var(--crm-weight-value);
  line-height:1.5;
}
.customer-project-summary dl { grid-template-columns:minmax(0,1fr) minmax(180px,.68fr); }
.customer-project-count dd {
  font-family:var(--sans);
  font-size:14px;
  font-weight:var(--crm-weight-value);
  line-height:1.5;
}
.customer-project-addresses { gap:3px; }
.customer-gross-total { margin-bottom:4px; padding-bottom:12px; }
.crm-app .app-content .customer-record-grid .customer-gross-total dd {
  display:block;
  margin-top:5px;
  overflow:visible;
  font-size:23px;
  font-weight:600;
  line-height:1.25!important;
}
.customer-record-footer { gap:20px; padding:14px 18px 14px 27px; }
.crm-app .app-content .customer-record-footer .customer-record-audit { font-size:11px; line-height:1.55; }
.customer-record-audit strong { font-weight:var(--crm-weight-value); }
.crm-app .app-content .registry-count strong {
  font-family:var(--sans);
  font-size:20px;
  line-height:1.2;
}
.notification-settings-link { font-size:12px; line-height:1.4; }
.customer-actions.customer-actions-compact { gap:9px; }
.customer-actions.customer-actions-compact .button {
  min-height:40px;
  padding:7px 13px;
  font-size:12px;
  line-height:1.3;
}

/* Az ügyféllista alaphelyzetben csak a döntéshez szükséges főadatokat mutatja. */
.customer-record { overflow:clip; }
.customer-record>summary.registry-record-header {
  min-height:98px;
  border-bottom:0;
  outline:0;
  cursor:pointer;
  list-style:none;
}
.customer-record>summary.registry-record-header::-webkit-details-marker { display:none; }
.customer-record>summary.registry-record-header:focus-visible { box-shadow:inset 0 0 0 3px rgba(0,119,136,.22); }
.customer-record[open]>summary.registry-record-header { border-bottom:1px solid #dce3e8; background:#fbfcfc; }
.customer-record-summary-meta { display:flex; flex:0 0 auto; align-items:center; justify-content:flex-end; gap:12px; }
.customer-record-gross {
  display:grid;
  gap:3px;
  min-width:188px;
  padding:6px 12px;
  border-left:1px solid #c9d7dc;
}
.customer-record-gross small { color:#77818d; font-size:9px; font-weight:800; letter-spacing:.055em; line-height:1.35; text-transform:uppercase; }
.customer-record-gross strong { color:var(--navy); font-family:var(--serif); font-size:20px; font-weight:600; line-height:1.15; white-space:nowrap; }
.customer-record-summary-action { display:flex; flex:0 0 auto; align-items:center; gap:8px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.customer-record-summary-action b { display:grid; width:29px; height:29px; place-items:center; color:var(--navy); border:1px solid #ccd4da; border-radius:50%; background:#fff; font-size:17px; font-weight:500; line-height:1; transition:transform .2s; }
.customer-record[open] .customer-record-summary-action b { transform:rotate(180deg); }
.customer-record-grid.registry-record-grid { grid-template-columns:minmax(260px,.72fr) minmax(480px,1.45fr); }

/* The CRM keeps a 222 px sidebar on medium desktop widths. Switch customer
   cards before their three minimum-width columns outgrow the real content
   area, otherwise the finance block is clipped by the registry panel. */
@media (max-width:1370px) {
  .customer-record-grid.registry-record-grid { grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr); }
  .customer-record-grid.registry-record-grid>.registry-data-section { border-bottom:1px solid #dce3e8; }
  .customer-record-grid.registry-record-grid>.registry-data-section:nth-child(2) { border-right:0; }
  .customer-record-grid.registry-record-grid>.registry-data-section:last-child { border-bottom:0; }
}

@media (max-width:760px) {
  .registry-search { grid-template-columns:minmax(0,1fr); }
  .registry-search.registry-search-with-facet { grid-template-columns:minmax(0,1fr); }
  .registry-search .button { grid-column:auto; }
  .customer-records.registry-records { gap:12px; padding:10px; }
  .customer-record>summary.registry-record-header { align-items:stretch; min-height:0; padding:18px 18px 17px 21px; }
  .customer-record .customer-avatar { width:44px; height:44px; font-size:19px; }
  .customer-record>.registry-record-header h3 { font-size:25px; }
  .customer-record-summary-meta { display:grid; width:100%; grid-template-columns:auto minmax(0,1fr) auto; justify-content:stretch; gap:8px; }
  .customer-record-gross { min-width:0; padding:4px 9px; border-left:0; }
  .customer-record-gross small { font-size:8px; }
  .customer-record-gross strong { font-size:17px; white-space:normal; }
  .customer-record-summary-action>span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .customer-record-grid.registry-record-grid { grid-template-columns:minmax(0,1fr); }
  .customer-record-grid.registry-record-grid>.registry-data-section { padding:19px 18px 21px 21px; }
  .customer-record-footer { padding:14px 18px 15px 21px; }
  .customer-actions.customer-actions-compact .button { width:100%; }
}

/* Adminisztrátori mesternaptár és szerepkörszínű naptárbejegyzések. */
.calendar-dot.role-admin,
.calendar-item.event.role-admin,
.calendar-role-bubble.role-admin,
.calendar-assignee-initial.role-admin { --calendar-role-color:#28314f; --calendar-role-soft:#f1f3f7; }
.calendar-dot.role-staff,
.calendar-item.event.role-staff,
.calendar-role-bubble.role-staff,
.calendar-assignee-initial.role-staff { --calendar-role-color:#167989; --calendar-role-soft:#edf8f9; }
.calendar-dot.role-administrative,
.calendar-item.event.role-administrative,
.calendar-role-bubble.role-administrative,
.calendar-assignee-initial.role-administrative { --calendar-role-color:#75558f; --calendar-role-soft:#f6f1f9; }
.calendar-dot.role-partner,
.calendar-item.event.role-partner,
.calendar-role-bubble.role-partner,
.calendar-assignee-initial.role-partner { --calendar-role-color:#a86721; --calendar-role-soft:#fff6e9; }
.calendar-dot.role-subcontractor,
.calendar-item.event.role-subcontractor,
.calendar-role-bubble.role-subcontractor,
.calendar-assignee-initial.role-subcontractor { --calendar-role-color:#3266a8; --calendar-role-soft:#eef4fb; }
.calendar-dot.role-customer,
.calendar-item.event.role-customer,
.calendar-role-bubble.role-customer,
.calendar-assignee-initial.role-customer { --calendar-role-color:#4d7e45; --calendar-role-soft:#f1f8ef; }
.calendar-dot[class*="role-"] { background:var(--calendar-role-color,#28314f); }
.calendar-dot.role-mixed { background:linear-gradient(135deg,#167989 0 31%,#a86721 34% 64%,#3266a8 67% 100%); }
.calendar-item.event[class*="role-"] {
  border-color:var(--calendar-role-color,#28314f);
  background:var(--calendar-role-soft,#f1f3f7);
}
.calendar-item.event.role-mixed {
  border-image:linear-gradient(180deg,#167989 0 31%,#a86721 34% 64%,#3266a8 67% 100%) 1;
  background:linear-gradient(135deg,#edf8f9 0 34%,#fff6e9 50% 67%,#eef4fb 100%);
}
.calendar-item.event[class*="role-"].is-editable:hover,
.calendar-item.event[class*="role-"].is-editable:focus { box-shadow:0 0 0 1px var(--calendar-role-color,#28314f); }
.calendar-item-assignees { display:-webkit-box!important; overflow:hidden!important; color:#58626f!important; font-size:7px!important; line-height:1.35!important; white-space:normal!important; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.calendar-item-assignees b { color:var(--calendar-role-color,#28314f); font-weight:800; }
.calendar-modal-card.is-master-event-modal { width:min(100%,720px); }
.calendar-assignee-picker { display:grid; gap:13px; min-width:0; margin:0; padding:0; border:0; }
.calendar-assignee-picker>legend { margin-bottom:7px; color:var(--navy); font-family:var(--serif); font-size:22px; font-weight:600; line-height:1.15; }
.calendar-assignee-all { display:flex!important; align-items:center; gap:12px!important; min-height:62px; padding:11px 13px; border:1px solid #b9d5d9; border-radius:5px; background:#edf8f9; cursor:pointer; text-transform:none!important; }
.calendar-assignee-all input,
.calendar-assignee-groups input { width:18px!important; min-height:18px!important; height:18px!important; padding:0!important; accent-color:var(--teal); }
.calendar-assignee-all>span { display:grid; gap:3px; }
.calendar-assignee-all strong { color:var(--navy); font-size:12px; line-height:1.35; }
.calendar-assignee-all small { color:var(--muted); font-size:10px; font-weight:500; line-height:1.45; letter-spacing:0; }
.calendar-assignee-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:11px; }
.calendar-assignee-groups>details { overflow:hidden; min-width:0; border:1px solid var(--line); border-radius:5px; background:#fff; }
.calendar-assignee-groups>details[data-calendar-assignee-group="staff"] { --calendar-role-color:#167989; --calendar-role-soft:#edf8f9; }
.calendar-assignee-groups>details[data-calendar-assignee-group="partner"] { --calendar-role-color:#a86721; --calendar-role-soft:#fff6e9; }
.calendar-assignee-groups>details[data-calendar-assignee-group="subcontractor"] { --calendar-role-color:#3266a8; --calendar-role-soft:#eef4fb; }
.calendar-assignee-groups>details>summary { display:flex; align-items:center; gap:8px; min-height:48px; padding:9px 11px; outline:0; background:#f6f8f9; cursor:pointer; }
.calendar-assignee-groups>details>summary:focus-visible { box-shadow:inset 0 0 0 3px rgba(0,119,136,.16); }
.calendar-assignee-groups>details[open]>summary { border-bottom:1px solid var(--line); }
.calendar-assignee-groups>details.has-selection>summary { background:var(--calendar-role-soft,#f6f8f9); }
.calendar-assignee-groups>details>summary strong { color:var(--navy); font-size:11px; }
.calendar-assignee-groups>details>summary small { margin-left:auto; color:var(--muted); font-size:9px; }
.calendar-assignee-groups>details.has-selection>summary small { color:var(--calendar-role-color,#167989); font-weight:800; }
.calendar-role-bubble { display:block; width:10px; height:10px; border-radius:50%; background:var(--calendar-role-color); }
.calendar-assignee-groups>details>div { display:grid; max-height:190px; overflow:auto; padding:5px; }
.calendar-assignee-groups>details>div>label { display:grid; grid-template-columns:18px 32px minmax(0,1fr); align-items:center; gap:9px; min-height:48px; padding:6px 7px; border-radius:4px; cursor:pointer; text-transform:none!important; }
.calendar-assignee-groups>details>div>label:hover { background:#f4f7f8; }
.calendar-assignee-groups>details>div>label:has(input:checked) { background:var(--calendar-role-soft,#f1f3f7); }
.calendar-assignee-initial { display:grid; width:32px; height:32px; place-items:center; color:#fff; border-radius:50%; background:var(--calendar-role-color); font-family:var(--serif); font-size:14px; font-weight:600; }
.calendar-assignee-groups label>span:last-child { display:grid; gap:2px; min-width:0; }
.calendar-assignee-groups label strong { overflow:hidden; color:var(--navy); font-size:11px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.calendar-assignee-groups label small { color:var(--muted); font-size:9px; font-weight:600; line-height:1.3; letter-spacing:0; }
.calendar-assignee-groups input:disabled { opacity:.65; }
.calendar-assignee-groups>details>div>p { margin:8px; color:var(--muted); font-size:10px; line-height:1.5; }
.calendar-assignee-summary { margin:0; padding:9px 11px; color:#176a76; border-radius:4px; background:#edf8f9; font-size:10px; font-weight:700; line-height:1.45; }
.calendar-assignee-summary.is-error { color:#8b3139; background:#fff1f2; }
.calendar-modal-export {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:9px 13px;
  color:var(--teal);
  border:1px solid #b7dadd;
  border-radius:4px;
  background:#f0f9fa;
  font-size:11px;
  font-weight:800;
  line-height:1.4;
}
.calendar-modal-export[hidden] { display:none; }
.calendar-export-icon { display:grid; flex:0 0 14px; width:14px; height:14px; place-items:center; }
.calendar-export-icon svg { display:block; width:14px; height:14px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.calendar-modal-export:hover,
.calendar-modal-export:focus-visible {
  color:#fff;
  outline:0;
  border-color:var(--teal);
  background:var(--teal);
}
.calendar-event-form.is-readonly input:disabled,
.calendar-event-form.is-readonly select:disabled,
.calendar-event-form.is-readonly textarea:disabled { color:var(--ink); opacity:1; background:#f5f7f7; -webkit-text-fill-color:var(--ink); }
.calendar-item.is-viewable { cursor:pointer; }
.calendar-item.is-viewable:hover,
.calendar-item.is-viewable:focus { outline:0; box-shadow:0 0 0 1px var(--teal); }

@media (max-width:760px) {
  .calendar-modal-card.is-master-event-modal { max-height:94vh; }
  .calendar-assignee-groups { grid-template-columns:1fr; }
  .calendar-assignee-groups>details>div { max-height:150px; }
  .calendar-assignee-picker>legend { font-size:20px; }
  .calendar-assignee-all { align-items:flex-start; }
  .calendar-item-assignees { -webkit-line-clamp:1; }
  .calendar-modal-export { width:100%; min-height:46px; }
}

/* Egységes nyilvántartási oldalfejléc és alatta futó menüszalag. */
.crm-record-page-header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin:0 0 13px; }
.crm-record-page-header>div:first-child { min-width:0; }
.crm-record-page-header .section-label { margin-bottom:7px; }
.crm-record-page-header h1 { margin:0; color:var(--navy); font-family:var(--serif); font-size:clamp(34px,3vw,44px); font-weight:600; line-height:.95; letter-spacing:-.025em; }
.crm-record-page-header p:not(.section-label) { max-width:690px; margin:9px 0 0; color:var(--muted); font-size:10px; line-height:1.55; }
.crm-page-command-bar { display:flex; width:100%; min-width:0; align-items:center; justify-content:space-between; gap:14px; margin:0 0 20px; padding:6px 7px; border:1px solid #cad5dc; border-radius:9px; background:#e9eef1; box-shadow:0 5px 15px rgba(24,32,56,.055); }
.crm-page-menu,.colleague-page-tabs { display:flex; min-width:0; max-width:100%; align-items:stretch; gap:4px; margin:0; padding:0; }
.crm-page-menu a,.crm-page-menu>span { display:flex; min-height:38px; align-items:center; justify-content:center; padding:8px 16px; color:#53616d; border:1px solid transparent; border-radius:6px; font-size:10px; font-weight:800; line-height:1.3; text-decoration:none; white-space:nowrap; transition:color .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease; }
.crm-page-menu a:hover,.crm-page-menu a:focus-visible { color:var(--navy); outline:0; border-color:#bfd0d7; background:#fff; }
.crm-page-menu .is-active { color:#fff; border-color:var(--navy); background:var(--navy); box-shadow:0 4px 10px rgba(24,32,56,.18); }
.crm-page-command-bar .crm-page-create-button { flex:0 0 auto; width:auto; min-width:0; min-height:38px; padding:8px 15px; white-space:nowrap; }
.worktime-summary-important-button { flex:0 0 auto; width:auto; min-width:0; min-height:40px; padding:8px 18px; color:#fff; border-color:#a52f3a; background:#b83b46; box-shadow:0 7px 18px rgba(163,47,58,.22); white-space:nowrap; }
.worktime-summary-important-button:hover,.worktime-summary-important-button:focus-visible { color:#fff; outline:0; border-color:#8f2731; background:#8f2731; box-shadow:0 8px 20px rgba(143,39,49,.3); }
.worktime-heading-actions { display:flex; flex:0 0 auto; align-items:center; gap:8px; }
.worktime-heading-actions .button { width:auto; min-width:0; min-height:40px; white-space:nowrap; }
/* Szerkeszthető kolléganyilvántartás és későbbi regisztráció-előkészítés. */
.colleague-admin-heading { align-items:flex-end; margin-bottom:22px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.colleague-admin-heading h1 { letter-spacing:-.025em; }
.colleague-admin-heading .button { min-width:190px; }
.colleague-create-panel { overflow:hidden; margin-bottom:22px; scroll-margin-top:calc(var(--app-header-height,90px) + 14px); border:1px solid #cbd8de; border-radius:7px; background:#fff; box-shadow:0 14px 36px rgba(24,32,56,.075); }
.colleague-create-panel[hidden] { display:none; }
.colleague-create-panel>header { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:23px 26px; color:#fff; background:linear-gradient(125deg,var(--navy),#253456); }
.colleague-create-panel>header .section-label { color:#9ed8dd; }
.colleague-create-panel>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:31px; font-weight:600; line-height:1; }
.colleague-create-panel>header p:not(.section-label) { max-width:650px; margin:9px 0 0; color:#c4cad5; font-size:10px; line-height:1.6; }
.colleague-create-panel>header>button { display:grid; flex:0 0 auto; width:34px; height:34px; padding:0; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(255,255,255,.06); font-size:23px; line-height:1; }
.colleague-create-panel>form { display:grid; grid-template-columns:1.08fr .9fr 1fr; }
.colleague-create-panel fieldset { display:grid; align-content:start; gap:13px; min-width:0; margin:0; padding:22px 23px 24px; border:0; border-right:1px solid #dce3e8; }
.colleague-create-panel fieldset:nth-of-type(2) { background:#f7f9fa; }
.colleague-create-panel fieldset:nth-of-type(3) { border-right:0; background:#edf8f8; }
.colleague-create-panel legend,.colleague-edit-section>h3 { width:100%; margin:0 0 2px; padding:0; color:var(--navy); font-family:var(--serif); font-size:21px; font-weight:600; line-height:1.1; }
.colleague-create-panel label,.colleague-edit-form label { display:grid; align-content:start; gap:6px; min-width:0; color:#5e6a76; font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.colleague-create-panel input,.colleague-create-panel select,.colleague-edit-form input,.colleague-edit-form select,.colleague-search select { width:100%; min-width:0; height:41px; padding:0 11px; color:var(--ink); border:1px solid #c6d0d7; border-radius:4px; outline:0; background:#fff; font:500 12px/1.3 var(--sans); letter-spacing:0; text-transform:none; }
.company-create-panel textarea,.company-edit-form textarea { width:100%; min-width:0; min-height:78px; padding:10px 11px; resize:vertical; color:var(--ink); border:1px solid #c6d0d7; border-radius:4px; outline:0; background:#fff; font:500 12px/1.45 var(--sans); letter-spacing:0; text-transform:none; }
.colleague-create-panel input:focus,.colleague-create-panel select:focus,.colleague-edit-form input:focus,.colleague-edit-form select:focus,.colleague-search select:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.company-create-panel textarea:focus,.company-edit-form textarea:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.colleague-create-panel label small,.colleague-edit-form label small { color:#74808b; font-size:8px; font-weight:500; letter-spacing:0; line-height:1.45; text-transform:none; }
.colleague-create-panel>form>footer { display:flex; grid-column:1/-1; justify-content:flex-end; gap:9px; padding:16px 23px 19px; border-top:1px solid #dce3e8; background:#fff; }
.colleague-counts { display:flex; flex:0 0 auto; gap:8px; }
.colleague-counts>span { display:grid; min-width:70px; padding:10px 12px; border-left:3px solid var(--teal); background:#eef7f8; text-align:center; }
.colleague-counts>span:last-child { border-left-color:#1c6b47; background:#f0f8f3; }
.colleague-counts>span.is-adhoc { border-left-color:#c1842b; background:#fff5e5; }
.colleague-counts strong { color:var(--navy); font-family:var(--serif); font-size:24px; font-weight:700; line-height:.9; }
.colleague-counts small { margin-top:5px; color:#55717a; font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.colleague-search { grid-template-columns:minmax(280px,1fr) minmax(170px,.3fr) auto auto; }
.colleague-search select { min-height:41px; }
.colleague-cards.registry-records { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,190px)); align-items:start; justify-content:start; gap:12px; padding:12px; }
.registry-segment-heading { display:flex; grid-column:1/-1; align-items:flex-start; justify-content:space-between; min-width:0; margin:5px 0 -2px; padding:15px 17px; border:1px solid #dce3e7; border-left:4px solid var(--teal); border-radius:7px; background:#f7fafb; }
.registry-segment-heading.is-adhoc { margin-top:14px; border-color:#ead7b1; border-left-color:#c1842b; background:#fff8eb; }
.registry-segment-heading h2 { margin:3px 0 0; color:var(--navy); font-family:var(--serif); font-size:23px; font-weight:600; }
.registry-segment-heading p:not(.section-label) { margin:6px 0 0; color:#6d7982; font-size:9px; line-height:1.5; }
.colleague-card { aspect-ratio:1; overflow:visible; border-radius:12px; box-shadow:0 9px 22px rgba(24,32,56,.11),0 2px 6px rgba(24,32,56,.055); transition:box-shadow .2s ease,transform .2s ease; }
.colleague-card.is-adhoc { border-color:#dbbd82; box-shadow:0 9px 22px rgba(139,91,21,.12),0 2px 6px rgba(139,91,21,.07); }
.colleague-card.is-adhoc::before { background:#c1842b; }
@media (hover:hover) {
  .colleague-card:hover { box-shadow:0 13px 28px rgba(24,32,56,.145),0 4px 9px rgba(24,32,56,.065); }
}
.colleague-card[open] { transform:none; transition:none; }
.colleague-card>summary { display:flex; box-sizing:border-box; height:100%; min-height:0; padding:13px; flex-direction:column; align-items:stretch; border-bottom:0; border-radius:11px; outline:0; background:linear-gradient(145deg,#fff 0%,#f9fbfc 100%); cursor:pointer; list-style:none; }
.colleague-card.is-adhoc>summary { background:linear-gradient(145deg,#fffdf8 0%,#fff6e6 100%); }
.colleague-card>summary::-webkit-details-marker { display:none; }
.colleague-card>summary:focus-visible { box-shadow:inset 0 0 0 3px rgba(0,119,136,.2); }
.colleague-card[open]>summary { border-bottom:0; background:linear-gradient(145deg,#fff 0%,#f9fbfc 100%); }
.colleague-card-identity { display:flex; min-width:0; min-height:0; align-items:flex-start; flex-direction:column; gap:8px; }
.colleague-card-identity>div { display:grid; min-width:0; width:100%; grid-template-rows:auto 34px 24px; row-gap:3px; }
.colleague-avatar { display:grid; flex:0 0 auto; width:38px; height:38px; place-items:center; color:#fff; border-radius:50%; background:var(--navy); box-shadow:0 0 0 4px rgba(24,32,56,.08); font-family:var(--serif); font-size:17px; font-weight:700; }
.crm-app .app-content .colleague-card .registry-record-code { margin:0; overflow:visible; font-size:8px; line-height:1.25; letter-spacing:.04em; text-overflow:clip; white-space:nowrap; }
.crm-app .app-content .colleague-card>.registry-record-header h3 { display:-webkit-box; max-height:34px; overflow:hidden; padding-bottom:0; font-size:16px; line-height:1.04; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.crm-app .app-content .colleague-card>.registry-record-header h3+p { display:-webkit-box; min-height:0; max-height:24px; margin:0; overflow:hidden; padding-bottom:0; font-size:9px; line-height:1.25; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.colleague-card-summary-meta { display:flex; box-sizing:border-box; width:100%; min-height:30px; margin-top:auto; flex:0 0 auto; align-items:flex-end; justify-content:flex-start; gap:5px; padding-top:8px; border-top:1px solid #dce3e8; }
.colleague-card-overlay { display:none; }
.colleague-card[open]>.colleague-card-overlay { display:block; }
.colleague-card-backdrop { position:fixed; z-index:90; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(17,24,42,.62); backdrop-filter:blur(3px); cursor:default; }
.colleague-card-dialog { position:fixed; z-index:91; top:50%; left:50%; display:flex; width:min(1120px,calc(100vw - 40px)); max-height:calc(100vh - 40px); overflow:auto; flex-direction:column; border:1px solid #bccbd3; border-radius:12px; background:#fff; box-shadow:0 28px 80px rgba(8,16,33,.34); transform:translate(-50%,-50%); }
.colleague-card-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:21px 24px; color:#fff; background:linear-gradient(125deg,var(--navy),#253456); }
.colleague-card-dialog-header .section-label { color:#9ed8dd; }
.colleague-card-dialog-header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:31px; font-weight:600; line-height:1; }
.colleague-card-dialog-header p:not(.section-label) { margin:8px 0 0; color:#c4cad5; font-size:9px; line-height:1.5; }
.colleague-card-dialog-header>button { display:grid; flex:0 0 auto; width:36px; height:36px; padding:0; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(255,255,255,.06); font-size:24px; line-height:1; cursor:pointer; }
body.crm-colleague-card-open { overflow:hidden; }
.colleague-card-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(245px,.32fr); align-items:stretch; }
.colleague-edit-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); min-width:0; }
.colleague-edit-section { display:grid; align-content:start; gap:12px; min-width:0; margin:0; padding:19px 20px 21px; border-right:1px solid #dce3e8; background:#fff; }
.colleague-edit-section.is-work { background:#f8fafb; }
.colleague-edit-section.is-contact { background:#f2f7fa; }
.colleague-edit-form>footer { display:flex; grid-column:1/-1; align-items:center; justify-content:space-between; gap:16px; padding:13px 20px; border-top:1px solid #dce3e8; background:#fafbfb; }
.colleague-edit-form>footer span { color:#77818d; font-size:8px; line-height:1.45; }
.colleague-registration-panel { display:flex; flex-direction:column; min-width:0; padding:21px 20px; border-left:1px solid #c7dde0; background:#edf8f8; }
.colleague-registration-panel.is-incomplete { border-left-color:#e1c994; background:#fff9ea; }
.colleague-registration-panel.is-linked { border-left-color:#a9ccb8; background:#f0f8f3; }
.colleague-registration-panel h4 { margin:0; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:600; line-height:1; }
.colleague-registration-panel>p:not(.section-label) { margin:10px 0 16px; color:#61707b; font-size:9px; line-height:1.6; }
.colleague-account-status { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 15px; padding:10px 11px; color:#17684f; border:1px solid #a9ccb8; border-radius:5px; background:#fff; font-size:8px; font-weight:800; text-transform:uppercase; }
.colleague-account-status strong { padding:5px 7px; color:#fff; border-radius:999px; background:#17684f; font-size:7px; letter-spacing:.04em; }
.colleague-registration-panel dl { display:grid; gap:11px; margin:0 0 18px; }
.colleague-registration-panel dl>div { display:grid; gap:3px; padding-top:9px; border-top:1px solid rgba(0,119,136,.18); }
.colleague-registration-panel dt { color:#71808a; font-size:7px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.colleague-registration-panel dd { margin:0; overflow-wrap:anywhere; color:var(--navy); font-size:10px; font-weight:700; line-height:1.45; }
.colleague-registration-panel form { margin-top:auto; }
.colleague-registration-panel .button { width:100%; margin-top:auto; text-align:center; }
.colleague-registration-panel form .button { margin-top:0; }
.colleague-registration-panel .button:disabled { color:#7b858e; border-color:#c9d0d5; background:#eef1f2; cursor:not-allowed; transform:none; }
.colleague-readonly-data { padding:22px; }
.colleague-readonly-data dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; margin:0; }
.colleague-readonly-data dl>div { display:grid; gap:4px; }
.colleague-readonly-data dt { color:#7b8590; font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.colleague-readonly-data dd { margin:0; color:var(--ink); font-size:10px; font-weight:650; overflow-wrap:anywhere; }
.colleague-card-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 12px 10px 20px; border-top:1px solid #dce3e8; background:#fafbfc; }
.colleague-card-footer>p { margin:0; color:#77818d; font-size:7.5px; line-height:1.45; }
.colleague-card-footer>p strong { color:#525c68; }
.colleague-lifecycle-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.colleague-lifecycle-actions form { display:flex; }
.colleague-lifecycle-actions .button { width:auto; min-height:38px; padding:7px 12px; font-size:9px; font-weight:800; white-space:nowrap; }
.colleague-lifecycle-actions .button-role-preview { color:#fff; border-color:var(--teal); background:var(--teal); }
.colleague-lifecycle-actions .button-role-preview:hover { color:#fff; border-color:#005f6d; background:#005f6d; }
.colleague-lifecycle-actions .button-role-preview:disabled,.colleague-lifecycle-actions .crm-card-save-action:disabled { color:#7b858e; border-color:#c9d0d5; background:#eef1f2; cursor:not-allowed; transform:none; }
.colleague-schedule-fields,.worktime-time-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.colleague-schedule-fields>label>span { display:flex; min-height:30px; align-items:flex-end; }
.vehicle-registry-page { display:grid; gap:16px; }
.vehicle-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:13px; }
.vehicle-add-button { display:inline-flex; min-width:142px; min-height:43px; align-items:center; justify-content:center; gap:7px; font-size:15px; line-height:1; }
.vehicle-add-button span { font-size:9px; }
.vehicle-registry-panel { overflow:hidden; border:1px solid #cbd8de; border-radius:11px; background:#fff; box-shadow:0 12px 30px rgba(24,32,56,.075); }
.vehicle-search { grid-template-columns:minmax(280px,1fr) minmax(180px,.32fr) auto auto; }
.vehicle-cards.registry-records { grid-template-columns:repeat(auto-fill,minmax(218px,246px)); gap:15px; padding:15px; }
.vehicle-card-shell { position:relative; min-width:0; }
.vehicle-card.colleague-card { min-height:284px; aspect-ratio:auto; }
.vehicle-card.colleague-card>summary { height:100%; min-height:284px; padding:0 13px 13px; overflow:hidden; }
.vehicle-card-thumbnail { position:relative; display:grid; height:132px; margin:0 -13px 12px; overflow:hidden; place-items:center; color:#fff; background:linear-gradient(135deg,#1d2c4b,#007788); }
.vehicle-card-thumbnail img { width:100%; height:100%; object-fit:cover; }
.vehicle-card-thumbnail.is-empty svg { width:62px; height:62px; fill:none; stroke:currentColor; stroke-width:1.25; opacity:.82; }
.vehicle-card-copy { display:grid; min-width:0; grid-template-rows:auto 38px auto; gap:3px; }
.crm-app .app-content .vehicle-card .registry-record-code { margin:0; color:var(--teal); }
.crm-app .app-content .vehicle-card>.registry-record-header h3 { max-height:38px; font-size:18px; line-height:1.05; }
.crm-app .app-content .vehicle-card>.registry-record-header h3+p { margin:0; color:#6e7b85; font-size:8.5px; }
.vehicle-card .colleague-card-summary-meta { min-height:39px; align-items:center; flex-wrap:wrap; }
.vehicle-card .registry-status { min-height:23px; padding:0 7px; font-size:6.5px; }
.vehicle-card-minus { position:absolute; z-index:5; top:8px; right:8px; }
.vehicle-card-minus button { display:grid; width:30px; height:30px; padding:0; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.7); border-radius:50%; background:#b83f49; box-shadow:0 5px 15px rgba(70,10,20,.28); font:800 20px/1 var(--sans); cursor:pointer; transition:background-color .18s ease,transform .18s ease; }
.vehicle-card-minus button:hover,.vehicle-card-minus button:focus-visible { outline:0; background:#8f2630; transform:scale(1.06); }
.vehicle-card-dialog { width:min(1180px,calc(100vw - 40px)); }
.vehicle-card-body { display:block; }
.vehicle-edit-form { display:grid; grid-template-columns:1fr 1fr; min-width:0; background:#f4f7f8; }
.vehicle-edit-section { display:grid; align-content:start; gap:14px; min-width:0; padding:20px 22px 22px; border-right:1px solid #dce3e8; border-bottom:1px solid #dce3e8; background:#fff; }
.vehicle-edit-section:nth-of-type(2n) { border-right:0; }
.vehicle-edit-section.is-technical { background:#f8fafb; }
.vehicle-edit-section.is-nav,.vehicle-edit-section.is-media { grid-column:1/-1; border-right:0; }
.vehicle-edit-section.is-nav { background:#eef8f8; }
.vehicle-edit-section.is-media { border-bottom:0; background:#f7f9fa; }
.vehicle-edit-section h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:24px; font-weight:650; line-height:1; }
.vehicle-edit-section>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.vehicle-edit-section>header p { max-width:630px; margin:7px 0 0; color:#667680; font-size:8px; line-height:1.55; }
.vehicle-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.vehicle-edit-section label,.vehicle-upload-control { display:grid; align-content:start; gap:6px; min-width:0; color:#5e6a76; font-size:8px; font-weight:800; letter-spacing:.065em; text-transform:uppercase; }
.vehicle-edit-section input,.vehicle-edit-section select,.vehicle-edit-section textarea { box-sizing:border-box; width:100%; min-width:0; min-height:41px; padding:0 11px; color:var(--ink); border:1px solid #c6d0d7; border-radius:5px; outline:0; background:#fff; font:500 11px/1.35 var(--sans); letter-spacing:0; text-transform:none; }
.vehicle-edit-section textarea { min-height:100px; padding:10px 11px; resize:vertical; }
.vehicle-edit-section input:focus,.vehicle-edit-section select:focus,.vehicle-edit-section textarea:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.vehicle-edit-section label small,.vehicle-upload-control small { color:#75828b; font-size:7.5px; font-weight:500; letter-spacing:0; line-height:1.45; text-transform:none; }
.vehicle-nav-values { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.vehicle-nav-values article { display:grid; min-width:0; padding:14px 16px; border:1px solid #bfdadd; border-radius:7px; background:#fff; }
.vehicle-nav-values span { color:#60717b; font-size:7px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.vehicle-nav-values strong { margin-top:6px; color:var(--navy); font-family:var(--serif); font-size:22px; font-weight:700; line-height:1; }
.vehicle-nav-values small { margin-top:6px; color:#75838c; font-size:7.5px; }
.vehicle-nav-status { margin:0; padding:9px 11px; color:#8a6218; border-left:3px solid #c89529; background:#fff7e5; font-size:8px; font-weight:700; line-height:1.45; }
.vehicle-nav-status.is-live { color:#17684f; border-left-color:#2b8964; background:#eff9f3; }
.vehicle-nav-status.is-error { color:#a1353f; border-left-color:#bd424c; background:#fff0f1; }
.vehicle-nav-sources { display:flex; flex-wrap:wrap; gap:8px; }
.vehicle-nav-sources a { color:var(--teal); font-size:8px; font-weight:800; }
.vehicle-thumbnail-editor { display:grid; grid-template-columns:180px minmax(260px,1fr); align-items:start; gap:12px 16px; }
.vehicle-thumbnail-preview { display:grid; width:180px; height:112px; overflow:hidden; place-items:center; color:#fff; border-radius:7px; background:#213253; }
.vehicle-thumbnail-preview img { width:100%; height:100%; object-fit:cover; }
.vehicle-thumbnail-preview.is-empty { align-content:center; gap:5px; color:#80909d; border:1px dashed #b7c4cb; background:#edf2f4; }
.vehicle-thumbnail-preview.is-empty svg { width:43px; height:43px; fill:none; stroke:currentColor; stroke-width:1.4; }
.vehicle-thumbnail-preview.is-empty span { font-size:7px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.vehicle-upload-control input { padding:7px 9px; }
.vehicle-remove-thumbnail { grid-column:2; display:flex!important; align-items:center; grid-template-columns:auto 1fr; }
.vehicle-remove-thumbnail input { width:18px; min-height:18px; height:18px; padding:0; accent-color:#b83f49; }
.vehicle-edit-section.is-media>label { margin-top:2px; }
.vehicle-edit-form>footer { display:flex; grid-column:1/-1; justify-content:flex-end; gap:9px; padding:14px 20px 18px; border-top:1px solid #dce3e8; background:#fff; }
.vehicle-card-footer { padding-left:20px; }
.vehicle-create-modal { width:min(1160px,calc(100vw - 40px)); max-height:calc(100vh - 40px); overflow:auto; }
.vehicle-create-modal>header { position:sticky; z-index:2; top:0; display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:21px 24px; color:#fff; background:linear-gradient(125deg,var(--navy),#253456); }
.vehicle-create-modal>header .section-label { color:#9ed8dd; }
.vehicle-create-modal>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:31px; font-weight:600; line-height:1; }
.vehicle-create-modal>header p:not(.section-label) { max-width:670px; margin:8px 0 0; color:#c4cad5; font-size:9px; line-height:1.5; }
.vehicle-create-modal>header>button { display:grid; flex:0 0 auto; width:36px; height:36px; padding:0; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(255,255,255,.06); font-size:24px; line-height:1; cursor:pointer; }
@media (max-width:900px) {
  .vehicle-heading-actions { align-items:flex-end; flex-direction:column; }
  .vehicle-search { grid-template-columns:minmax(0,1fr) minmax(170px,.42fr) auto; }
  .vehicle-search .button-outline { grid-column:1/-1; width:max-content; }
  .vehicle-edit-form { grid-template-columns:1fr; }
  .vehicle-edit-section,.vehicle-edit-section.is-nav,.vehicle-edit-section.is-media { grid-column:auto; border-right:0; }
}
@media (max-width:640px) {
  .vehicle-registry-page .crm-record-page-header { align-items:stretch; flex-direction:column; }
  .vehicle-heading-actions { align-items:stretch; }
  .vehicle-heading-actions .colleague-counts { justify-content:stretch; }
  .vehicle-heading-actions .colleague-counts>span { flex:1; }
  .vehicle-add-button { width:100%; }
  .vehicle-search { grid-template-columns:1fr; }
  .vehicle-search .button,.vehicle-search .button-outline { grid-column:auto; width:100%; }
  .vehicle-cards.registry-records { grid-template-columns:1fr; padding:10px; }
  .vehicle-card.colleague-card,.vehicle-card.colleague-card>summary { min-height:292px; }
  .vehicle-card-thumbnail { height:146px; }
  .vehicle-card-dialog { top:0; left:0; width:100vw; max-height:100vh; height:100vh; border:0; border-radius:0; transform:none; }
  .vehicle-card-dialog-header { padding:17px 18px; }
  .vehicle-card-dialog-header h2 { font-size:27px; }
  .vehicle-edit-section { padding:18px 17px 20px; }
  .vehicle-field-grid,.vehicle-nav-values { grid-template-columns:1fr; }
  .vehicle-edit-section>header { flex-direction:column; }
  .vehicle-edit-section>header .button { width:100%; }
  .vehicle-thumbnail-editor { grid-template-columns:1fr; }
  .vehicle-thumbnail-preview { width:100%; height:auto; aspect-ratio:1.6; }
  .vehicle-remove-thumbnail { grid-column:auto; }
  .vehicle-card-footer { align-items:stretch; flex-direction:column; padding:12px 14px; }
  .vehicle-card-footer .colleague-lifecycle-actions,.vehicle-card-footer .colleague-lifecycle-actions form,.vehicle-card-footer .colleague-lifecycle-actions .button { width:100%; }
  .vehicle-create-modal { top:0; left:0; width:100vw; max-height:100vh; height:100vh; border:0; border-radius:0; transform:none; }
}
.worktime-page-heading { margin-bottom:18px; }
.worktime-dashboard { display:grid; gap:14px; }
.worktime-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.worktime-toolbar-primary { display:flex; min-width:0; align-items:stretch; gap:9px; }
.worktime-month-switcher { display:flex; min-width:285px; align-items:center; justify-content:space-between; gap:10px; overflow:hidden; border:1px solid #c9d5dc; border-radius:10px; background:#fff; box-shadow:0 8px 20px rgba(24,32,56,.075); }
.worktime-month-switcher>div { display:grid; min-width:0; padding:9px 5px; text-align:center; }
.worktime-month-switcher span { color:#71808a; font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.worktime-month-switcher strong { margin-top:3px; overflow:hidden; color:var(--navy); font-family:var(--serif); font-size:19px; font-weight:650; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
.worktime-month-button { display:grid; align-self:stretch; flex:0 0 42px; place-items:center; color:var(--navy); background:#f4f7f8; font-family:var(--serif); font-size:27px; font-weight:700; line-height:1; text-decoration:none; transition:color .18s ease,background-color .18s ease; }
.worktime-month-button:first-child { border-right:1px solid #dce3e8; }
.worktime-month-button:last-child { border-left:1px solid #dce3e8; }
.worktime-month-button:hover,.worktime-month-button:focus-visible { color:#fff; outline:0; background:var(--teal); }
.worktime-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.worktime-metrics article { position:relative; display:grid; min-width:0; min-height:102px; align-content:center; padding:15px 17px 14px; overflow:hidden; border:1px solid #d2dce1; border-radius:11px; background:linear-gradient(145deg,#fff,#f7fafb); box-shadow:0 8px 22px rgba(24,32,56,.085); }
.worktime-metrics article::before { position:absolute; top:0; bottom:0; left:0; width:4px; content:""; background:var(--teal); }
.worktime-metrics article:nth-child(3)::before { background:#d69a28; }
.worktime-metrics article:nth-child(4)::before { background:#36765b; }
.worktime-metrics article.is-negative::before { background:#c24f51; }
.worktime-metrics span { color:#60717d; font-size:7px; font-weight:850; letter-spacing:.075em; text-transform:uppercase; }
.worktime-metrics strong { margin-top:7px; color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:700; line-height:.95; }
.worktime-metrics article.is-negative strong { color:#a13d43; }
.worktime-metrics small { margin-top:7px; color:#7a8790; font-size:8px; line-height:1.35; }
.worktime-filters { display:grid; grid-template-columns:minmax(180px,1fr) minmax(190px,1.1fr) minmax(155px,.8fr) auto auto; align-items:end; gap:9px; padding:13px; border:1px solid #d0dbe0; border-radius:10px; background:#edf3f5; }
.worktime-filters label,.worktime-entry-modal label { display:grid; align-content:start; gap:6px; min-width:0; color:#5e6a76; font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.worktime-filters input,.worktime-filters select,.worktime-entry-modal input,.worktime-entry-modal select,.worktime-entry-modal textarea { box-sizing:border-box; width:100%; min-width:0; height:41px; padding:0 11px; color:var(--ink); border:1px solid #c6d0d7; border-radius:5px; outline:0; background:#fff; font:500 12px/1.3 var(--sans); letter-spacing:0; text-transform:none; }
.worktime-entry-modal textarea { height:auto; min-height:132px; padding:10px 11px; resize:vertical; line-height:1.45; }
.worktime-filters input:focus,.worktime-filters select:focus,.worktime-entry-modal input:focus,.worktime-entry-modal select:focus,.worktime-entry-modal textarea:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.worktime-filters .button { min-width:82px; min-height:41px; }
.worktime-registry { overflow:hidden; border:1px solid #cbd8de; border-radius:11px; background:#fff; box-shadow:0 12px 30px rgba(24,32,56,.085); }
.worktime-registry>header { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; padding:17px 19px; border-bottom:1px solid #dce3e8; background:linear-gradient(135deg,#fff,#f5f8f9); }
.worktime-registry>header h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:650; line-height:1; }
.crm-app .app-content .worktime-registry>header p:not(.section-label) { margin:6px 0 0; color:#707d87; font-size:8px; }
.worktime-registry>header>span { flex:0 0 auto; padding:6px 9px; color:#315c66; border:1px solid #c2d8db; border-radius:999px; background:#edf8f8; font-size:7px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.worktime-registry-weeks { display:grid; gap:12px; padding:12px; background:#edf2f4; }
.worktime-registry-week { overflow:hidden; border:1px solid #c5d3d9; border-radius:10px; background:#fff; box-shadow:0 8px 22px rgba(24,32,56,.075); }
.worktime-registry-week>header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:10px 13px; color:#fff; background:var(--teal); }
.worktime-registry-week>header h3 { margin:0; color:#fff; font-family:var(--serif); font-size:19px; font-weight:650; line-height:1; }
.crm-app .app-content .worktime-registry-week>header p { margin:3px 0 0; color:#d8f1f3; font-size:7px; }
.worktime-registry-week-count { display:inline-flex; min-height:23px; box-sizing:border-box; flex:0 0 auto; align-items:center; padding:4px 7px; color:#fff; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:rgba(255,255,255,.08); font-size:7px; font-weight:800; line-height:1; white-space:nowrap; }
.worktime-table-wrap { width:100%; overflow-x:auto; }
.worktime-table { width:100%; min-width:890px; border-collapse:collapse; }
.worktime-table th { padding:10px 11px; color:#6c7882; border-bottom:1px solid #cfd9de; background:#edf2f4; font-size:7px; font-weight:850; letter-spacing:.065em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.worktime-table td { padding:11px; color:#56636d; border-bottom:1px solid #e0e6e9; font-size:9px; line-height:1.35; vertical-align:middle; }
.worktime-table th:nth-child(2),.worktime-table td:nth-child(2) { width:16%; min-width:150px; }
.worktime-table td:nth-child(4)>.worktime-cell-primary,.worktime-table td:nth-child(5)>.worktime-cell-primary,.worktime-table td:nth-child(6)>strong,.worktime-table td:nth-child(7)>strong { line-height:1.35; white-space:nowrap; }
.worktime-table tbody tr:last-child td { border-bottom:0; }
.worktime-table tbody tr:hover { background:#fbfdfd; }
.worktime-table td>strong,.worktime-table td>small,.worktime-table td>.worktime-cell-primary,.worktime-table td>.worktime-project-link { display:block; max-width:210px; }
.crm-app .app-content .worktime-table td>strong { color:var(--navy); font-size:13px; font-weight:750; line-height:1.45; }
.crm-app .app-content .worktime-table td>.worktime-cell-primary { color:#56636d; font-size:13px; font-weight:500; line-height:1.45; }
.crm-app .app-content .worktime-table td>.worktime-project-link { color:var(--teal); font-size:13px; font-weight:500; line-height:1.45; text-decoration-color:rgba(0,119,136,.35); text-decoration-thickness:1px; text-underline-offset:2px; }
.worktime-table td>.worktime-project-link:hover,.worktime-table td>.worktime-project-link:focus-visible { color:var(--navy); outline:0; text-decoration-color:currentColor; }
.worktime-table td>small { margin-top:3px; overflow:hidden; color:#7b8790; font-size:7.5px; text-overflow:ellipsis; white-space:nowrap; }
@media (min-width:521px) {
  .worktime-table td>small:empty::before { content:"\00a0"; }
}
.worktime-day-pill { display:inline-flex; max-width:140px; align-items:center; padding:5px 8px; color:#665320; border:1px solid #decf9f; border-radius:999px; background:#fff8df; font-size:7px; font-weight:550; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.worktime-day-pill.is-sick_leave { color:#863d42; border-color:#e4bdc0; background:#fff0f1; }
.worktime-day-pill.is-other_absence { color:#5d596d; border-color:#cec9d7; background:#f4f2f8; }
.worktime-overtime.is-positive { color:#24704c; }
.worktime-overtime.is-negative { color:#ad4046; }
.worktime-row-actions { display:flex; justify-content:flex-end; gap:5px; }
.worktime-row-actions form { display:flex; }
.worktime-row-actions button { min-height:29px; padding:5px 7px; color:var(--teal); border:1px solid #b8d4d8; border-radius:5px; background:#f2f9f9; font:800 7px/1.1 var(--sans); cursor:pointer; }
.worktime-row-actions form button { color:#a33f44; border-color:#e0bec1; background:#fff4f5; }
.worktime-row-actions button:disabled { opacity:.45; cursor:not-allowed; }
.crm-create-modal-panel.worktime-entry-modal { display:flex; width:min(1400px,calc(100vw - 40px)); flex-direction:column; overflow:hidden!important; }
.worktime-entry-modal>header { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:21px 24px; color:#fff; background:linear-gradient(125deg,var(--navy),#253456); }
.crm-create-modal-panel.worktime-entry-modal>header { position:static; flex:0 0 auto; }
.worktime-entry-modal>header .section-label { color:#9ed8dd; }
.worktime-entry-modal>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:31px; font-weight:600; line-height:1; }
.worktime-entry-modal>header p:not(.section-label) { margin:8px 0 0; color:#c4cad5; font-size:9px; line-height:1.5; }
.worktime-entry-modal>header>button { display:grid; flex:0 0 auto; width:36px; height:36px; padding:0; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(255,255,255,.06); font-size:24px; line-height:1; cursor:pointer; }
.worktime-entry-modal>form { min-height:0; flex:1 1 auto; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.worktime-form-grid { display:grid; grid-template-columns:1fr .96fr 1.64fr; }
.worktime-form-section { display:grid; width:100%; min-width:0; max-width:100%; align-content:start; gap:13px; margin:0; padding:20px 21px 22px; border:0; border-right:1px solid #dce3e8; }
.worktime-form-section[hidden],[data-worktime-workday-field][hidden] { display:none!important; }
.worktime-form-section.is-time { background:#f7f9fa; }
.worktime-form-section.is-description { border-right:0; background:#edf8f8; }
.worktime-form-section>*,.worktime-time-pair,.worktime-number-input,.worktime-mobilization-fields { width:100%; min-width:0; max-width:100%; }
.worktime-native-control { display:flex; box-sizing:border-box; width:100%; min-width:0; max-width:100%; height:41px; align-items:center; overflow:hidden; padding:0 10px; border:1px solid #c6d0d7; border-radius:5px; background:#fff; }
.worktime-entry-modal .worktime-native-control :is(input[type="date"],input[type="time"]) { display:block; flex:1 1 0; box-sizing:border-box; width:100%; min-width:0; max-width:100%; min-inline-size:0; max-inline-size:100%; height:100%; margin:0; padding:0; border:0; border-radius:0; outline:0; background:transparent; box-shadow:none; text-align:center; }
.worktime-entry-modal .worktime-native-control :is(input[type="date"],input[type="time"])::-webkit-date-and-time-value { display:flex; width:100%; min-width:0; height:100%; align-items:center; justify-content:center; padding:0; text-align:center; }
.worktime-entry-modal .worktime-native-control :is(input[type="date"],input[type="time"])::-webkit-datetime-edit { display:flex; width:100%; min-width:0; height:100%; align-items:center; justify-content:center; padding:0; text-align:center; }
.worktime-entry-modal .worktime-native-control :is(input[type="date"],input[type="time"])::-webkit-datetime-edit-fields-wrapper { display:flex; width:100%; min-width:0; height:100%; align-items:center; justify-content:center; padding:0; text-align:center; }
.worktime-native-control:focus-within { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.worktime-entry-modal label small { color:#79858e; font-size:7.5px; font-weight:500; letter-spacing:0; line-height:1.45; text-transform:none; }
.worktime-allocation-field { display:grid; gap:8px; }
.worktime-allocation-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.worktime-allocation-heading>span { color:#5e6a76; font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.worktime-allocation-heading>button { min-height:28px; padding:5px 8px; color:var(--teal); border:1px solid #afd0d4; border-radius:5px; background:#fff; font:800 7px/1.1 var(--sans); cursor:pointer; }
.worktime-allocation-list { display:grid; gap:7px; }
.worktime-allocation-row { display:grid; grid-template-columns:minmax(130px,1.15fr) minmax(110px,.9fr) 92px 28px; align-items:end; gap:6px; padding:9px; border:1px solid #c9d9dd; border-radius:7px; background:#fff; box-shadow:0 4px 12px rgba(24,32,56,.045); }
.worktime-allocation-row label { gap:4px; }
.worktime-allocation-row input,.worktime-allocation-row select { height:var(--crm-control-height); padding:0 8px; font-size:11px; }
.worktime-allocation-row .worktime-number-input input { padding-right:37px; }
.worktime-allocation-row .worktime-number-input em { right:8px; font-size:7px; }
.worktime-allocation-remove { display:grid; width:28px; height:var(--crm-control-height); padding:0; place-items:center; color:#a33f44; border:1px solid #e0bec1; border-radius:5px; background:#fff4f5; font:700 18px/1 var(--sans); cursor:pointer; }
.worktime-allocation-remove:disabled { opacity:.35; cursor:not-allowed; }
.worktime-allocation-summary { color:#708087; font-size:7.5px; font-weight:600; line-height:1.4; }
.worktime-allocation-summary.is-valid { color:#246b49; }
.worktime-allocation-summary.is-error { color:#a33f44; font-weight:750; }
.worktime-colleague-create-field { display:grid; align-content:start; gap:6px; min-width:0; }
.worktime-field-label { color:#5e6a76; font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.worktime-colleague-picker { position:relative; min-width:0; border:1px solid #c6d0d7; border-radius:5px; background:#fff; }
.worktime-colleague-picker>summary { display:grid; box-sizing:border-box; min-height:41px; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:0 11px; list-style:none; color:var(--ink); cursor:pointer; font:500 12px/1.3 var(--sans); letter-spacing:0; text-transform:none; }
.worktime-colleague-picker>summary::-webkit-details-marker { display:none; }
.worktime-colleague-picker>summary::marker { content:""; }
.worktime-colleague-picker>summary::after { color:var(--teal); content:"⌄"; font-size:16px; font-weight:800; line-height:1; }
.worktime-colleague-picker>summary>strong { display:none; color:var(--teal); font-size:7px; font-weight:800; white-space:nowrap; }
.worktime-colleague-picker.has-selection>summary>strong { display:block; }
.worktime-colleague-picker[open]>summary { border-bottom:1px solid #d9e1e5; background:#f7fbfb; }
.worktime-colleague-picker[open]>summary::after { transform:rotate(180deg); }
.worktime-colleague-picker>summary:focus-visible { outline:0; box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.worktime-colleague-picker.has-error { border-color:#b33d47; box-shadow:0 0 0 3px rgba(179,61,71,.1); }
.worktime-colleague-options { display:grid; max-height:230px; overflow:auto; padding:5px; }
.worktime-entry-modal .worktime-colleague-option { display:grid; min-height:44px; grid-template-columns:18px minmax(0,1fr); align-items:center; gap:9px; padding:6px 7px; border-radius:4px; cursor:pointer; letter-spacing:0; text-transform:none; }
.worktime-entry-modal .worktime-colleague-option:hover { background:#f4f7f8; }
.worktime-entry-modal .worktime-colleague-option:has(input:checked) { background:#edf8f9; }
.worktime-entry-modal .worktime-colleague-option input { width:18px; min-height:18px; height:18px; padding:0; accent-color:var(--teal); }
.worktime-colleague-option>span { display:grid; min-width:0; gap:2px; }
.worktime-colleague-option strong { overflow:hidden; color:var(--navy); font-size:10px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.worktime-entry-modal .worktime-colleague-option small { color:#77848d; font-size:7px; font-weight:550; }
.worktime-colleague-help { color:#79858e; font-size:7.5px; font-weight:500; line-height:1.45; }
.worktime-colleague-help.is-error { color:#9d3039; font-weight:750; }
[data-worktime-create-colleagues][hidden],
[data-worktime-edit-colleague][hidden] { display:none!important; }
.worktime-number-input { position:relative; }
.worktime-number-input input { padding-right:50px; }
.worktime-entry-modal .worktime-number-input input[data-worktime-distance] { height:41px; padding:0 50px; appearance:textfield; -moz-appearance:textfield; line-height:41px; text-align:center; }
.worktime-entry-modal .worktime-number-input input[data-worktime-distance]::-webkit-inner-spin-button,
.worktime-entry-modal .worktime-number-input input[data-worktime-distance]::-webkit-outer-spin-button { margin:0; -webkit-appearance:none; }
.worktime-number-input em { position:absolute; top:50%; right:11px; color:#77838d; font-size:8px; font-style:normal; font-weight:750; letter-spacing:0; text-transform:none; transform:translateY(-50%); }
.worktime-time-pair>label>span:first-child { display:flex; min-height:24px; align-items:flex-end; line-height:1.35; }
.worktime-entry-modal .worktime-mobilization-toggle { display:grid; grid-template-columns:20px minmax(0,1fr); align-items:start; gap:10px; padding:11px 12px; color:inherit; border:1px solid #c6d5da; border-radius:7px; background:#fff; cursor:pointer; letter-spacing:0; text-transform:none; }
.worktime-entry-modal .worktime-mobilization-toggle:has(input:checked) { border-color:#78aeb5; background:#eaf6f7; box-shadow:0 0 0 3px rgba(0,119,136,.07); }
.worktime-entry-modal .worktime-mobilization-toggle>input { width:19px; min-height:19px; height:19px; margin:1px 0 0; padding:0; accent-color:var(--teal); }
.worktime-mobilization-toggle>span { display:grid; gap:3px; }
.worktime-mobilization-toggle strong { color:var(--navy); font-size:11px; line-height:1.2; }
.worktime-mobilization-fields { display:grid; gap:10px; padding:12px; border:1px solid #bfd6d9; border-radius:7px; background:#eaf6f7; }
.worktime-mobilization-fields[hidden] { display:none!important; }
.worktime-mobilization-fields>p { margin:0; color:#56727a; font-size:7.5px; line-height:1.5; }
.worktime-live-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid #cbdade; border-bottom:1px solid #cbdade; background:#eaf5f5; }
.worktime-live-summary>div { display:grid; min-width:0; padding:13px 17px 14px; border-right:1px solid #cbdade; }
.worktime-live-summary>div:last-child { border-right:0; }
.worktime-live-summary span { color:#55717a; font-size:7px; font-weight:850; letter-spacing:.065em; text-transform:uppercase; }
.worktime-live-summary strong { margin-top:5px; color:var(--navy); font-family:var(--serif); font-size:22px; font-weight:700; line-height:1; }
.worktime-live-summary strong.is-negative { color:#a33f44; }
.worktime-live-summary strong.is-positive { color:#246b49; }
.worktime-live-summary small { margin-top:5px; color:#708087; font-size:7px; line-height:1.35; }
.crm-app .app-content .worktime-form-note { margin:0; padding:12px 21px; color:#697780; background:#fafbfb; font-size:8px; line-height:1.5; }
.worktime-entry-modal form>footer { display:flex; justify-content:flex-end; gap:9px; padding:15px 21px 18px; border-top:1px solid #dce3e8; background:#fff; }
.worktime-attendance-modal.crm-create-modal-panel { width:min(760px,calc(100vw - 40px)); }
.worktime-attendance-modal>header { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:21px 24px; color:#fff; background:linear-gradient(125deg,var(--navy),#253456); }
.worktime-attendance-modal>header .section-label { color:#9ed8dd; }
.worktime-attendance-modal>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:31px; font-weight:600; line-height:1; }
.worktime-attendance-modal>header p:not(.section-label) { max-width:560px; margin:8px 0 0; color:#c4cad5; font-size:9px; line-height:1.5; }
.worktime-attendance-modal>header>button { display:grid; flex:0 0 auto; width:36px; height:36px; padding:0; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(255,255,255,.06); font-size:24px; line-height:1; cursor:pointer; }
.worktime-attendance-content { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(210px,.75fr); gap:12px; padding:18px; background:#edf3f5; }
.worktime-attendance-picker-field { display:grid; min-width:0; grid-row:1/3; align-content:start; gap:6px; padding:15px; border:1px solid #cbd8de; border-radius:9px; background:#fff; box-shadow:0 7px 18px rgba(24,32,56,.06); }
.worktime-attendance-month,.worktime-attendance-includes { display:grid; align-content:start; gap:5px; padding:14px; border:1px solid #cbd8de; border-radius:9px; background:#fff; }
.worktime-attendance-month>span,.worktime-attendance-includes>span { color:#5e6a76; font-size:7px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.worktime-attendance-month>strong { color:var(--navy); font-family:var(--serif); font-size:20px; font-weight:700; line-height:1.1; }
.worktime-attendance-month>small { color:#7a8790; font-size:7.5px; line-height:1.45; }
.worktime-attendance-includes ul { display:grid; gap:5px; margin:3px 0 0; padding-left:15px; color:#5f6e78; font-size:7.5px; line-height:1.4; }
.worktime-attendance-picker-tools { display:flex; justify-content:flex-end; gap:6px; padding:6px 7px 2px; border-top:1px solid #e0e6e9; }
.worktime-attendance-picker-tools button { padding:4px 6px; color:var(--teal); border:0; border-radius:4px; background:transparent; font:800 7px/1.2 var(--sans); cursor:pointer; }
.worktime-attendance-picker-tools button:hover,.worktime-attendance-picker-tools button:focus-visible { outline:0; background:#edf8f9; }
.worktime-attendance-modal .worktime-colleague-option { display:grid; min-height:44px; grid-template-columns:18px minmax(0,1fr); align-items:center; gap:9px; padding:6px 7px; border-radius:4px; cursor:pointer; letter-spacing:0; text-transform:none; }
.worktime-attendance-modal .worktime-colleague-option:hover { background:#f4f7f8; }
.worktime-attendance-modal .worktime-colleague-option:has(input:checked) { background:#edf8f9; }
.worktime-attendance-modal .worktime-colleague-option input { width:18px; min-height:18px; height:18px; margin:0; padding:0; accent-color:var(--teal); }
.worktime-attendance-modal .worktime-colleague-option small { color:#77848d; font-size:7px; font-weight:550; }
.worktime-attendance-modal form>footer { display:flex; justify-content:flex-end; gap:9px; padding:15px 18px 18px; border-top:1px solid #dce3e8; background:#fff; }
.worktime-attendance-modal [data-worktime-attendance-submit]:disabled { opacity:.48; cursor:not-allowed; }
.worktime-month-summary-modal.crm-create-modal-panel { width:min(1260px,calc(100vw - 40px)); }
.worktime-month-summary-modal>header { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:20px 23px; color:#fff; background:linear-gradient(125deg,var(--navy),#253456); }
.worktime-month-summary-modal>header .section-label { color:#9ed8dd; }
.worktime-month-summary-modal>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:31px; font-weight:600; line-height:1; }
.worktime-month-summary-modal>header p:not(.section-label) { margin:7px 0 0; color:#c4cad5; font-size:8.5px; line-height:1.45; }
.worktime-summary-header-actions { display:flex; flex:0 0 auto; align-items:center; gap:7px; }
.worktime-export-button { display:grid; min-width:48px; height:34px; padding:0 10px; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.35); border-radius:6px; background:rgba(255,255,255,.08); font-size:8px; font-weight:850; letter-spacing:.06em; text-decoration:none; transition:background-color .18s ease,border-color .18s ease; }
.worktime-export-button:hover,.worktime-export-button:focus-visible { border-color:#8ed5db; outline:0; background:rgba(0,119,136,.55); }
.worktime-summary-header-actions>button { display:grid; width:36px; height:36px; padding:0; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(255,255,255,.06); font-size:24px; line-height:1; cursor:pointer; }
.worktime-summary-content { display:grid; gap:14px; padding:16px; background:#edf2f4; }
.worktime-summary-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); overflow:hidden; border:1px solid #cad7dc; border-radius:9px; background:#fff; box-shadow:0 7px 18px rgba(24,32,56,.07); }
.worktime-summary-metrics article { display:grid; min-width:0; align-content:center; padding:11px 13px; border-right:1px solid #dce4e7; }
.worktime-summary-metrics article:last-child { border-right:0; }
.worktime-summary-metrics span { color:#657680; font-size:6.5px; font-weight:850; letter-spacing:.065em; text-transform:uppercase; }
.worktime-summary-metrics strong { margin-top:4px; color:var(--navy); font-family:var(--serif); font-size:19px; font-weight:700; line-height:1; }
.worktime-summary-metrics small { margin-top:4px; color:#839097; font-size:6.5px; }
.worktime-summary-metrics article.is-negative strong { color:#a33f44; }
.worktime-summary-weeks { display:grid; gap:12px; }
.worktime-summary-week { overflow:hidden; border:1px solid #c5d3d9; border-radius:10px; background:#fff; box-shadow:0 8px 22px rgba(24,32,56,.075); }
.worktime-summary-week>header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:10px 13px; color:#fff; background:var(--teal); }
.worktime-summary-week>header h3 { margin:0; color:#fff; font-family:var(--serif); font-size:19px; font-weight:650; line-height:1; }
.crm-app .app-content .worktime-summary-week>header p { margin:3px 0 0; color:#d8f1f3; font-size:7px; }
.worktime-summary-week-totals { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.crm-app .app-content .worktime-summary-week-totals :is(span,strong,em) { display:inline-flex; min-height:23px; box-sizing:border-box; align-items:center; padding:4px 7px; color:inherit; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:rgba(255,255,255,.08); font-size:7px; font-style:normal; font-weight:800; line-height:1; white-space:nowrap; }
.worktime-summary-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.worktime-summary-day { min-width:0; min-height:126px; border-right:1px solid #dce4e7; background:#fff; }
.worktime-summary-day:last-child { border-right:0; }
.worktime-summary-day.is-weekend { background:#fffdf6; }
.worktime-summary-day>header { display:grid; box-sizing:border-box; min-height:52px; grid-template-columns:minmax(56px,.8fr) minmax(74px,1.2fr); align-items:center; gap:7px; padding:8px; border-bottom:1px solid #dce4e7; background:#f5f8f9; }
.worktime-summary-day.is-weekend>header { background:#fff7df; }
.worktime-summary-day>header>div { display:grid; min-width:0; gap:3px; }
.crm-app .app-content .worktime-summary-day>header strong { color:var(--navy); font-family:var(--serif); font-size:15px; font-weight:700; line-height:1.05; white-space:nowrap; }
.crm-app .app-content .worktime-summary-day>header>div>span { overflow:hidden; color:#596a75; font-size:8px; font-weight:850; line-height:1.2; letter-spacing:.04em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.crm-app .app-content .worktime-summary-day>header small { display:grid; min-width:0; justify-items:end; gap:3px; color:#7d898f; font-size:7px; font-weight:500; line-height:1.2; text-align:right; }
.worktime-summary-day>header small>span { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.crm-app .app-content .worktime-summary-empty { margin:0; padding:12px 8px; color:#929ba1; font-size:7px; font-style:italic; }
.worktime-summary-entry-list { display:grid; }
.worktime-summary-entry { display:grid; gap:8px; padding:10px 8px; border-bottom:1px solid #e1e7e9; }
.worktime-summary-entry:last-child { border-bottom:0; }
.worktime-summary-entry>div { display:grid; min-width:0; gap:2px; }
.worktime-summary-entry strong,.worktime-summary-entry span,.worktime-summary-entry small { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.worktime-summary-entry strong { color:var(--navy); font-size:7.5px; font-weight:800; }
.worktime-summary-entry span { color:#46545e; font-size:7px; font-weight:700; }
.worktime-summary-entry small { color:#7b878e; font-size:6.5px; line-height:1.3; }
.crm-app .app-content .worktime-summary-entry .worktime-summary-entry-name { color:var(--navy); font-size:10px; font-weight:800; line-height:1.15; }
.crm-app .app-content .worktime-summary-entry .worktime-summary-entry-role { color:#7a878e; font-size:6.5px; font-weight:500; line-height:1.25; }
.worktime-summary-entry>div.worktime-summary-entry-primary { grid-template-columns:minmax(0,1fr) auto auto; align-items:start; gap:5px; }
.worktime-summary-entry-primary>.worktime-summary-entry-person { display:grid; min-width:0; gap:2px; }
.worktime-summary-entry>div.worktime-summary-entry-hours { grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:3px 6px; }
.worktime-summary-entry>div.worktime-summary-entry-project { padding-top:7px; border-top:1px solid #e2e8ea; }
.crm-app .app-content .worktime-summary-entry .worktime-summary-entry-total { color:var(--navy); font-size:9px; font-weight:800; line-height:1.1; }
.crm-app .app-content .worktime-summary-entry-primary .worktime-overtime { justify-self:end; font-size:7.5px; font-weight:800; line-height:1.1; }
.crm-app .app-content .worktime-summary-entry .worktime-summary-entry-range,.crm-app .app-content .worktime-summary-entry .worktime-summary-entry-travel { color:#6d7981; font-size:6.5px; font-weight:550; line-height:1.25; }
.worktime-summary-entry-travel { justify-self:end; }
.worktime-summary-entry>div.worktime-summary-entry-project { gap:3px; }
.crm-app .app-content .worktime-summary-entry .worktime-summary-entry-project-meta { color:#7b878e; font-size:5.7px; font-weight:800; letter-spacing:.055em; line-height:1.2; text-transform:uppercase; }
.crm-app .app-content .worktime-summary-entry-project>a,.crm-app .app-content .worktime-summary-entry-project>strong { display:block; min-width:0; overflow:hidden; color:var(--teal); font-size:7.5px; font-weight:650; line-height:1.25; text-decoration-color:rgba(0,119,136,.35); text-overflow:ellipsis; text-decoration-thickness:1px; text-underline-offset:2px; white-space:nowrap; }
.worktime-summary-entry-project>a:hover,.worktime-summary-entry-project>a:focus-visible { color:var(--navy); outline:0; text-decoration-color:currentColor; }
.crm-app .app-content p.worktime-summary-entry-note { display:grid; gap:3px; margin:0; padding:6px 7px; color:#5d6971; border-left:2px solid #8abcc2; border-radius:0 5px 5px 0; background:#edf7f7; line-height:1.35; }
.crm-app .app-content .worktime-summary-entry-note .worktime-summary-entry-note-label { color:#38707a; font-size:5.5px; font-weight:850; letter-spacing:.055em; line-height:1.2; text-transform:uppercase; }
.crm-app .app-content .worktime-summary-entry-note .worktime-summary-entry-note-text { display:-webkit-box; max-height:27px; overflow:hidden; color:#66747c; font-size:6.4px; font-weight:500; line-height:1.4; text-overflow:clip; white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.worktime-summary-entry .worktime-overtime.is-positive { color:#24704c; }
.worktime-summary-entry .worktime-overtime.is-negative { color:#ad4046; }
.crm-app .app-content .worktime-table td>.worktime-overtime,.crm-app .app-content .worktime-summary-entry .worktime-overtime { color:#ad4046; }

/* Négyzetes ügyfélkártyák a partner- és alvállalkozói névjegyzék mintájára. */
.customer-card-dialog { width:min(1180px,calc(100vw - 40px)); }
.customer-card-data { display:grid; gap:13px; margin:2px 0 0; }
.customer-card-data>div { display:grid; gap:4px; min-width:0; padding-top:10px; border-top:1px solid #dce3e8; }
.customer-card-data dt { color:#71808a; font-size:7px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.customer-card-data dd { min-width:0; margin:0; overflow-wrap:anywhere; color:var(--navy); font-size:10px; font-weight:700; line-height:1.5; }
.customer-card-data .registry-status { width:max-content; max-width:100%; }
.customer-card-total { font-family:var(--serif); font-size:19px!important; font-weight:700!important; }
.customer-card-addresses { display:grid; gap:4px; }
.customer-card-projects .customer-project-contract-links { display:flex; flex-wrap:wrap; gap:5px; }
.customer-card-projects .customer-project-contract-links a { display:inline-flex; align-items:center; gap:5px; padding:5px 7px; color:var(--teal); border:1px solid #bed9dc; border-radius:3px; background:#f2f9f9; font-size:8px; font-weight:800; text-decoration:none; }
.customer-card-account-panel>p:not(.section-label) { margin-bottom:13px; }
.customer-card-account-panel dl { margin-bottom:14px; }
.customer-card-account-actions { display:grid; gap:8px; margin-top:auto; }
.customer-card-account-actions form { display:grid; }
.customer-card-account-actions .button { display:grid; width:100%; min-height:38px; margin:0; place-items:center; }
.customer-card .registry-status.is-pending { max-width:125px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

@media (min-width:1101px) and (max-width:1366px) {
  .worktime-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .worktime-form-section.is-time { border-right:0; }
  .worktime-form-section.is-description { grid-column:1/-1; border-top:1px solid #dce3e8; }
}
@media (max-width:1100px) {
  .worktime-form-grid { grid-template-columns:1fr; }
  .worktime-form-section { border-right:0; border-bottom:1px solid #dce3e8; }
  .worktime-form-section.is-description { grid-column:auto; border-top:0; border-bottom:0; }
  .worktime-time-pair { grid-template-columns:1fr; }
  .worktime-time-pair>label>span:first-child { min-height:0; }
}
@media (max-width:900px) {
  .worktime-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .worktime-filters .button { width:100%; }
}
@media (max-width:1180px) {
  .colleague-create-panel>form { grid-template-columns:1fr 1fr; }
  .colleague-create-panel fieldset:nth-of-type(2) { border-right:0; }
  .colleague-create-panel fieldset:nth-of-type(3) { grid-column:1/-1; border-top:1px solid #dce3e8; }
  .colleague-card-body { grid-template-columns:1fr; }
  .colleague-registration-panel { border-top:1px solid #c7dde0; border-left:0; }
  .colleague-registration-panel .button { width:max-content; margin-top:0; }
  .customer-card-account-actions { grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; margin-top:0; }
  .customer-card-account-actions .button { width:100%; }
}
@media (max-width:820px) {
  .colleague-edit-form { grid-template-columns:1fr; }
  .colleague-edit-section { border-right:0; border-bottom:1px solid #dce3e8; }
  .colleague-edit-section.is-contact { border-bottom:0; }
  .colleague-search { grid-template-columns:1fr; }
  .colleague-search .button { width:100%; }
}
@media (max-width:760px) {
  .crm-record-page-header { align-items:flex-start; flex-direction:column; gap:13px; }
  .crm-record-page-header h1 { font-size:34px; }
  .crm-record-page-header p:not(.section-label) { font-size:9px; }
  .crm-page-command-bar { align-items:stretch; flex-direction:column; gap:7px; }
  .crm-page-menu { display:grid; width:100%; grid-template-columns:minmax(0,1fr); }
  .colleague-page-tabs { display:grid; width:100%; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; }
  .colleague-page-tabs a { min-width:0; padding:8px 7px; font-size:9px; text-align:center; white-space:normal; overflow-wrap:anywhere; }
  .crm-page-command-bar .crm-page-create-button { align-self:flex-end; }
  .worktime-summary-important-button { align-self:flex-end; }
  .colleague-admin-heading { align-items:flex-start; padding-bottom:20px; }
  .colleague-admin-heading .button { width:100%; min-width:0; }
  .colleague-registry>.registry-panel-header { align-items:flex-start; flex-direction:column; }
  .colleague-counts { width:100%; }
  .colleague-counts>span { flex:1 1 0; }
  .colleague-create-panel>header { padding:21px 19px; }
  .colleague-create-panel>form { grid-template-columns:1fr; }
  .colleague-create-panel fieldset,.colleague-create-panel fieldset:nth-of-type(3) { grid-column:auto; padding:20px 19px; border-right:0; border-bottom:1px solid #dce3e8; }
  .colleague-create-panel input,.colleague-create-panel select,.colleague-edit-form input,.colleague-edit-form select,.company-create-panel textarea,.company-edit-form textarea,.colleague-search select { font-size:16px; }
  .colleague-create-panel>form>footer { align-items:stretch; flex-direction:column-reverse; padding:16px 19px 19px; }
  .colleague-counts>span { min-width:58px; padding:9px; }
  .colleague-cards.registry-records { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:9px; }
  .colleague-card>summary { align-items:stretch; flex-direction:column; padding:12px; }
  .colleague-avatar { width:40px; height:40px; font-size:17px; }
  .colleague-card-identity { gap:9px; }
  .colleague-card-identity>div { grid-template-rows:auto 34px 28px; row-gap:4px; }
  .crm-app .app-content .colleague-card .registry-record-code { font-size:7px; letter-spacing:.025em; }
  .crm-app .app-content .colleague-card>.registry-record-header h3 { max-height:34px; font-size:16px; }
  .crm-app .app-content .colleague-card>.registry-record-header h3+p { max-height:28px; font-size:8px; }
  .colleague-card-summary-meta { width:100%; justify-content:space-between; }
  .colleague-card-dialog { top:8px; right:8px; bottom:8px; left:8px; width:auto; max-height:none; border-radius:10px; transform:none; }
  .colleague-card-dialog-header { padding:19px 18px; }
  .colleague-card-dialog-header h2 { font-size:27px; }
  .colleague-edit-section { padding:19px 18px 20px 21px; }
  .colleague-edit-form>footer { align-items:stretch; flex-direction:column; padding:15px 18px 17px 21px; }
  .colleague-registration-panel { padding:20px 18px 21px; }
  .colleague-registration-panel .button { width:100%; }
  .customer-card-account-actions { grid-template-columns:1fr; }
  .colleague-card-footer { align-items:flex-start; flex-direction:column; padding:13px 16px 14px 20px; }
  .colleague-lifecycle-actions,.colleague-lifecycle-actions form,.colleague-lifecycle-actions .button { width:100%; }
  .colleague-lifecycle-actions { flex-direction:column; }
  .colleague-readonly-data dl { grid-template-columns:1fr; }
  .worktime-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .worktime-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .worktime-filters .button { width:100%; }
  .worktime-form-grid { grid-template-columns:1fr; }
  .worktime-form-section { border-right:0; border-bottom:1px solid #dce3e8; }
  .worktime-form-section.is-description { border-bottom:0; }
  .worktime-allocation-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr) 100px 32px; }
  .worktime-live-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .worktime-live-summary>div:nth-child(2) { border-right:0; }
  .worktime-live-summary>div:nth-child(-n+2) { border-bottom:1px solid #cbdade; }
  .worktime-summary-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .worktime-summary-metrics article { border-bottom:1px solid #dce4e7; }
  .worktime-summary-metrics article:nth-child(even) { border-right:0; }
  .worktime-summary-metrics article:last-child { grid-column:1/-1; border-bottom:0; }
  .worktime-summary-days { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .worktime-summary-day { border-bottom:1px solid #dce4e7; }
  .worktime-summary-day:nth-child(even) { border-right:0; }
}
@media (max-width:520px) {
  .colleague-cards.registry-records { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:8px; }
  .colleague-schedule-fields { grid-template-columns:1fr; }
  .colleague-schedule-fields>label>span { min-height:0; }
  .worktime-toolbar { align-items:stretch; flex-direction:column; }
  .worktime-toolbar-primary { flex-direction:column; }
  .worktime-month-switcher { width:100%; min-width:0; }
  .worktime-metrics { gap:7px; }
  .worktime-metrics article { min-height:92px; padding:13px 13px 12px; }
  .worktime-metrics strong { font-size:23px; }
  .worktime-filters { grid-template-columns:1fr; }
  .worktime-filters input,.worktime-filters select,.worktime-entry-modal input,.worktime-entry-modal select,.worktime-entry-modal textarea { font-size:16px; }
  .worktime-registry>header { align-items:flex-start; flex-direction:column; }
  .worktime-registry-weeks { gap:9px; padding:9px; }
  .worktime-registry-week>header { gap:10px; padding:10px 11px; }
  .worktime-registry-week>header h3 { font-size:18px; }
  .worktime-table { min-width:0; }
  .worktime-table thead { display:none; }
  .worktime-table,.worktime-table tbody,.worktime-table tr { display:block; }
  .worktime-table tbody { padding:9px; }
  .worktime-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:9px; overflow:hidden; border:1px solid #d5dfe4; border-radius:9px; box-shadow:0 6px 14px rgba(24,32,56,.065); }
  .worktime-table tr:last-child { margin-bottom:0; }
  .worktime-table td { display:grid; min-width:0; padding:9px 10px; border-right:1px solid #e0e6e9; border-bottom:1px solid #e0e6e9; }
  .worktime-table td:nth-child(2) { width:auto; min-width:0; }
  .worktime-table td:nth-child(even) { border-right:0; }
  .worktime-table td:nth-last-child(-n+2) { border-bottom:0; }
  .worktime-table td::before { margin-bottom:4px; color:#7b8790; font-size:6.5px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
  .worktime-table td:nth-child(1)::before { content:"Dátum"; }
  .worktime-table td:nth-child(2)::before { content:"Kolléga"; }
  .worktime-table td:nth-child(3)::before { content:"Projekt / nap"; }
  .worktime-table td:nth-child(4)::before { content:"Idősáv"; }
  .worktime-table td:nth-child(5)::before { content:"Utazás"; }
  .worktime-table td:nth-child(6)::before { content:"Munkaidő"; }
  .worktime-table td:nth-child(7)::before { content:"Túlóra"; }
  .worktime-table td:nth-child(8)::before { content:"Műveletek"; }
  .worktime-table td>small:empty { display:none; }
  .worktime-row-actions { justify-content:flex-start; }
  .crm-create-modal-panel.worktime-entry-modal { top:8px; right:8px; bottom:8px; left:8px; display:block; width:auto; max-height:none; overflow-x:hidden!important; overflow-y:auto!important; border-radius:10px!important; transform:none; }
  .worktime-entry-modal>form { overflow:visible; }
  .worktime-entry-modal>header { padding:19px 18px; }
  .worktime-entry-modal>header h2 { font-size:27px; }
  .worktime-form-section { padding:18px; }
  .worktime-allocation-heading { align-items:stretch; flex-direction:column; }
  .worktime-allocation-heading>button { align-self:flex-end; }
  .worktime-allocation-row { grid-template-columns:minmax(0,1fr) 48px; }
  .worktime-allocation-row>label:first-child,
  .worktime-allocation-row>label:nth-child(2) { grid-column:1/-1; }
  .worktime-allocation-row .worktime-allocation-minutes { grid-column:1; }
  .worktime-allocation-row .worktime-allocation-minutes { min-width:0; }
  .worktime-allocation-remove { grid-column:2; width:100%; height:var(--crm-control-height); }
  .worktime-colleague-picker>summary { min-height:46px; font-size:16px; }
  .worktime-colleague-picker>summary>strong { font-size:8px; }
  .worktime-colleague-options { max-height:210px; }
  .worktime-colleague-option strong { font-size:13px; }
  .worktime-entry-modal .worktime-colleague-option small { font-size:9px; }
  .worktime-live-summary>div { padding:12px 13px; }
  .worktime-live-summary strong { font-size:19px; }
  .crm-app .app-content .worktime-form-note { padding:12px 18px; }
  .worktime-entry-modal form>footer { align-items:stretch; flex-direction:column-reverse; padding:15px 18px 18px; }
  .worktime-heading-actions { width:100%; align-items:stretch; flex-direction:column; }
  .worktime-heading-actions .button { width:100%; }
  .worktime-attendance-modal.crm-create-modal-panel { top:8px; right:8px; bottom:8px; left:8px; width:auto; max-height:none; border-radius:10px!important; transform:none; }
  .worktime-attendance-modal>header { padding:18px 16px; }
  .worktime-attendance-modal>header h2 { font-size:26px; }
  .worktime-attendance-content { grid-template-columns:1fr; padding:10px; }
  .worktime-attendance-picker-field { grid-row:auto; }
  .worktime-attendance-modal .worktime-colleague-option strong { font-size:13px; }
  .worktime-attendance-modal .worktime-colleague-option small { font-size:9px; }
  .worktime-attendance-modal form>footer { align-items:stretch; flex-direction:column-reverse; }
  .worktime-month-summary-modal.crm-create-modal-panel { top:8px; right:8px; bottom:8px; left:8px; width:auto; max-height:none; border-radius:10px!important; transform:none; }
  .worktime-month-summary-modal>header { padding:17px 16px; }
  .worktime-month-summary-modal>header h2 { font-size:26px; }
  .worktime-month-summary-modal>header p:not(.section-label) { max-width:190px; }
  .worktime-summary-header-actions { gap:5px; }
  .worktime-export-button { min-width:42px; padding:0 7px; }
  .worktime-summary-content { padding:9px; }
  .worktime-summary-week>header { align-items:flex-start; flex-direction:column; }
  .worktime-summary-week-totals { justify-content:flex-start; }
  .worktime-summary-days { grid-template-columns:1fr; }
  .worktime-summary-day { min-height:0; border-right:0; }
}

/* Egységes létrehozó ablakok: az oldal a meglévő szerkesztőkártyákhoz hasonlóan a háttérben marad. */
body.crm-create-modal-open { overflow:hidden; overscroll-behavior:none; }
.crm-create-modal-backdrop {
  position:fixed;
  z-index:120;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:rgba(17,24,42,.62);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
  cursor:default;
}
.crm-create-modal-backdrop[hidden],.crm-create-modal-panel[hidden] { display:none!important; }
.crm-create-modal-panel {
  position:fixed!important;
  z-index:121;
  top:50%;
  left:50%;
  box-sizing:border-box;
  width:min(1120px,calc(100vw - 40px));
  max-height:calc(100vh - 40px);
  margin:0!important;
  overflow:auto!important;
  overscroll-behavior:contain;
  border:1px solid #bccbd3!important;
  border-radius:9px!important;
  background:#fff;
  box-shadow:0 28px 80px rgba(8,16,33,.34)!important;
  transform:translate(-50%,-50%);
}
.crm-create-modal-panel>header { position:sticky; z-index:2; top:0; }
/* Létrehozó ablak szabvány: normál címsorelem, böngészőfüggő fieldset-legend pozicionálás nélkül. */
.crm-create-modal-panel .crm-form-section-title {
  display:block;
  box-sizing:border-box;
  width:100%;
  min-width:0;
  margin:0 0 2px;
  padding:0;
  align-self:start;
  color:var(--navy);
  font-family:var(--serif);
  font-size:21px;
  font-weight:600;
  line-height:1.1;
}
.crm-create-modal-panel .project-form-section>.crm-form-section-title {
  grid-column:1/-1;
  font-size:24px;
}
.crm-create-modal-panel .customer-form-section>.crm-form-section-title {
  grid-column:1/-1;
  margin-bottom:3px;
  font-size:23px;
}
.crm-save-confirm-layer[hidden] { display:none!important; }
body.crm-save-confirm-open { overflow:hidden; overscroll-behavior:none; }
.crm-save-confirm-layer { position:fixed; inset:0; z-index:200; display:grid; padding:20px; place-items:center; }
.crm-save-confirm-backdrop { position:absolute; inset:0; width:100%; height:100%; margin:0; padding:0; border:0; border-radius:0; background:rgba(17,24,42,.68); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); cursor:default; }
.crm-save-confirm-dialog { position:relative; width:min(460px,calc(100vw - 32px)); overflow:hidden; border:1px solid #bccbd3; border-radius:12px; background:#fff; box-shadow:0 30px 90px rgba(5,12,26,.42); }
.crm-save-confirm-dialog>header { padding:23px 25px 21px; color:#fff; background:var(--navy); }
.crm-save-confirm-dialog>header .section-label { margin-bottom:7px; color:rgba(255,255,255,.7); }
.crm-save-confirm-dialog>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:32px; font-weight:600; line-height:1; }
.crm-save-confirm-copy { display:grid; gap:10px; padding:23px 25px; }
.crm-save-confirm-copy p,.crm-save-confirm-copy small { margin:0; }
.crm-save-confirm-copy p { color:var(--ink); font-size:12px; font-weight:700; line-height:1.6; }
.crm-save-confirm-copy small { color:var(--muted); font-size:9px; line-height:1.55; }
.crm-save-confirm-dialog>footer { display:flex; justify-content:flex-end; gap:9px; padding:17px 25px 21px; border-top:1px solid var(--line); background:#f8faf9; }
@media (max-width:520px) {
  .crm-save-confirm-layer { padding:12px; }
  .crm-save-confirm-dialog { width:100%; }
  .crm-save-confirm-dialog>header,.crm-save-confirm-copy { padding-right:20px; padding-left:20px; }
  .crm-save-confirm-dialog>footer { align-items:stretch; flex-direction:column-reverse; padding:16px 20px 19px; }
  .crm-save-confirm-dialog>footer .button { width:100%; }
}
.project-create-panel.crm-create-modal-panel { width:min(1240px,calc(100vw - 40px)); }
.customer-create-panel.crm-create-modal-panel { width:min(900px,calc(100vw - 40px)); }
.user-create-panel.crm-create-modal-panel { width:min(820px,calc(100vw - 40px)); }
.user-create-panel>header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:22px;
  padding:23px 26px;
  color:#fff;
  background:linear-gradient(125deg,var(--navy),#253456);
}
.user-create-panel>header .section-label { color:#9ed8dd; }
.user-create-panel>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:31px; font-weight:600; line-height:1; }
.user-create-panel>header p:not(.section-label) { max-width:620px; margin:9px 0 0; color:#c4cad5; font-size:10px; line-height:1.6; }
.user-create-panel>header>button {
  display:grid;
  flex:0 0 auto;
  width:34px;
  height:34px;
  padding:0;
  place-items:center;
  color:#fff;
  border:1px solid rgba(255,255,255,.3);
  border-radius:50%;
  background:rgba(255,255,255,.06);
  font-size:23px;
  line-height:1;
}
.user-create-form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 18px; padding:23px 26px 25px; }
.user-create-form .partner-registration-fields,.user-create-form>footer { grid-column:1/-1; }
.user-create-form .partner-registration-fields { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.user-create-form .partner-registration-fields>p { grid-column:1/-1; }
.user-create-form>footer { display:flex; justify-content:flex-end; gap:9px; padding-top:2px; }

@media (max-width:760px) {
  .crm-create-modal-panel,
  .project-create-panel.crm-create-modal-panel,
  .customer-create-panel.crm-create-modal-panel,
  .user-create-panel.crm-create-modal-panel {
    top:8px;
    right:8px;
    bottom:8px;
    left:8px;
    width:auto;
    max-height:none;
    border-radius:7px!important;
    transform:none;
  }
  .user-create-panel>header { padding:21px 19px; }
  .user-create-panel>header h2 { font-size:27px; }
  .user-create-form { grid-template-columns:1fr; padding:20px 19px 22px; }
  .user-create-form .partner-registration-fields,.user-create-form>footer { grid-column:auto; }
  .user-create-form .partner-registration-fields { grid-template-columns:1fr; }
  .user-create-form .partner-registration-fields>p { grid-column:auto; }
  .user-create-form input,.user-create-form select { font-size:16px; }
  .user-create-form>footer { align-items:stretch; flex-direction:column-reverse; }
  .user-create-form>footer .button { width:100%; }
}

/* Felhasználói csoportkártyák, csoportlista és második szintű részletes adatlap. */
body.crm-user-role-group-open,body.crm-user-role-entry-open { overflow:hidden; overscroll-behavior:none; }
.user-role-groups {
  grid-template-columns:repeat(auto-fill,minmax(170px,190px));
  align-items:start;
  justify-content:start;
  gap:12px;
  padding:12px;
}
.user-role-card {
  aspect-ratio:1;
  overflow:visible;
  border-radius:12px;
  box-shadow:0 9px 22px rgba(24,32,56,.11),0 2px 6px rgba(24,32,56,.055);
  transition:box-shadow .2s ease;
}
@media (hover:hover) {
  .user-role-card:hover { box-shadow:0 13px 28px rgba(24,32,56,.145),0 4px 9px rgba(24,32,56,.065); }
}
.user-role-card[open] { transition:none; }
.user-role-card>.user-role-card-summary {
  box-sizing:border-box;
  width:100%;
  height:100%;
  min-height:0;
  padding:16px;
  align-items:stretch;
  flex-direction:column;
  border:0;
  border-radius:11px;
  box-shadow:inset 0 -26px 60px rgba(0,0,0,.08);
}
.user-role-card>.user-role-card-summary:focus-visible { box-shadow:inset 0 0 0 3px rgba(255,255,255,.72),inset 0 -26px 60px rgba(0,0,0,.08); }
.user-role-card>.user-role-card-summary h3 { max-width:100%; padding-bottom:0; font-size:21px; line-height:1.04; overflow-wrap:normal; }
.user-role-card[data-user-role-group="admin"]>.user-role-card-summary h3 { font-size:19px; }
.user-role-card>.user-role-card-summary .section-label { font-size:7px; }
.user-role-card>.user-role-card-summary .user-role-group-toggle { width:100%; margin-top:auto; padding-top:12px; justify-content:space-between; border-top:1px solid rgba(255,255,255,.25); }
.user-role-card>.user-role-card-summary .user-role-group-toggle small { color:rgba(255,255,255,.78); font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.user-role-card>.user-role-card-summary .user-role-count { width:34px; height:34px; font-size:11px; }
.user-role-group-overlay,.user-role-entry-overlay { display:none; }
.user-role-card[open]>.user-role-group-overlay,.user-role-entry[open]>.user-role-entry-overlay { display:block; }
.user-role-group-backdrop {
  position:fixed;
  z-index:130;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:rgba(17,24,42,.62);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
  cursor:default;
}
.user-role-group-dialog {
  position:fixed;
  z-index:131;
  top:20px;
  right:20px;
  bottom:20px;
  left:20px;
  width:min(600px,calc(100vw - 40px));
  height:max-content;
  max-height:calc(100vh - 40px);
  margin:auto;
  overflow:auto;
  overscroll-behavior:contain;
  border:1px solid var(--role-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 28px 80px rgba(8,16,33,.34);
}
.user-role-group-dialog>header,.user-role-entry-dialog>header {
  position:sticky;
  z-index:4;
  top:0;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:22px 24px;
  color:#fff;
  background:var(--role-color);
}
.user-role-group-dialog>header>div,.user-role-entry-dialog>header>div { min-width:0; }
.user-role-group-dialog>header .section-label,.user-role-entry-dialog>header .section-label { color:rgba(255,255,255,.74); }
.user-role-group-dialog>header h2,.user-role-entry-dialog>header h2 { margin:0; color:#fff; font-family:var(--serif); font-size:31px; font-weight:600; line-height:1; }
.user-role-group-dialog>header p:not(.section-label),.user-role-entry-dialog>header p:not(.section-label) { max-width:650px; margin:9px 0 0; color:rgba(255,255,255,.76); font-size:9px; line-height:1.55; }
.user-role-group-dialog>header>button,.user-role-entry-dialog>header>button {
  display:grid;
  flex:0 0 auto;
  width:36px;
  height:36px;
  padding:0;
  place-items:center;
  color:#fff;
  border:1px solid rgba(255,255,255,.34);
  border-radius:50%;
  background:rgba(255,255,255,.08);
  font-size:24px;
  line-height:1;
}
.user-role-dialog-count { display:grid; flex:0 0 auto; min-width:72px; padding:10px 12px; place-items:center; border-left:3px solid #fff; background:rgba(255,255,255,.12); }
.user-role-dialog-count strong { color:#fff; font-family:var(--serif); font-size:25px; line-height:.9; }
.user-role-dialog-count small { margin-top:6px; color:rgba(255,255,255,.78); font-size:6px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.user-role-group-dialog>.user-role-members { gap:9px; padding:12px; background:var(--role-soft); }
.user-role-group-dialog>.user-role-empty { padding:24px; background:var(--role-soft); }
.user-role-group-dialog .user-role-entry { overflow:visible; border-color:var(--role-border); box-shadow:0 5px 15px rgba(24,32,56,.055); }
.user-role-group-dialog .user-role-entry>summary { min-height:72px; border-left-color:var(--role-color); border-radius:8px; }
.user-role-summary-identity>small { overflow:hidden; color:#687582; font-size:9px; font-weight:500; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.user-role-entry-status { display:inline-flex; flex:0 0 auto; min-height:28px; padding:5px 9px; align-items:center; color:#23704d; border:1px solid #a8ceb6; border-radius:999px; background:#f1faf4; font-size:8px; font-weight:800; text-transform:uppercase; }
.user-role-entry-status.is-inactive { color:#94323b; border-color:#d9a1a6; background:#fff3f4; }
.user-role-entry-status.is-pending { color:#8b651a; border-color:#dfca94; background:#fff9ea; }
.user-role-group-dialog>header { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:12px; padding:18px 20px; }
.user-role-group-dialog>header h2 { font-size:28px; }
.user-role-group-dialog>header>button { width:34px; height:34px; }
.user-role-group-dialog .user-role-dialog-count { min-width:60px; padding:8px 9px; }
.user-role-group-dialog .user-role-dialog-count strong { font-size:21px; }
.user-role-group-dialog .user-role-dialog-count small { margin-top:4px; }
.user-role-group-dialog>.user-role-members { padding:10px; }
.user-role-group-dialog .user-role-entry>summary { min-height:62px; padding:9px 11px; }
.user-role-group-dialog .user-role-summary-identity>span,.user-role-group-dialog .user-role-entry-status { display:none; }
.user-role-group-dialog .user-role-entry-status.is-pending { display:inline-flex; }
.user-role-entry-backdrop {
  position:fixed;
  z-index:10;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:rgba(17,24,42,.7);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
  cursor:default;
}
.user-role-entry-dialog {
  position:fixed;
  z-index:11;
  top:20px;
  right:20px;
  bottom:20px;
  left:20px;
  width:min(1120px,calc(100vw - 40px));
  height:max-content;
  max-height:calc(100vh - 40px);
  margin:auto;
  overflow:auto;
  overscroll-behavior:contain;
  border:1px solid var(--role-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 30px 90px rgba(5,12,26,.42);
}
.user-role-entry-dialog>.user-role-entry-body { background:#fff; }
.user-role-entry-dialog .user-management-card { border:0; border-radius:0; }
.user-role-entry-dialog .user-edit-row { border-top:1px solid var(--role-border); }

@media (max-width:760px) {
  .user-role-groups { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:9px; }
  .user-role-card>.user-role-card-summary { padding:13px; }
  .user-role-card>.user-role-card-summary h3 { font-size:18px; }
  .user-role-card[data-user-role-group="admin"]>.user-role-card-summary h3 { font-size:16px; }
  .user-role-group-dialog,.user-role-entry-dialog { top:8px; right:8px; bottom:8px; left:8px; width:auto; height:auto; max-height:none; margin:0; border-radius:10px; }
  .user-role-group-dialog>header,.user-role-entry-dialog>header { gap:13px; padding:19px 17px; }
  .user-role-group-dialog>header h2,.user-role-entry-dialog>header h2 { font-size:27px; }
  .user-role-group-dialog>header p:not(.section-label) { display:none; }
  .user-role-dialog-count { display:none; }
  .user-role-group-dialog>.user-role-members { padding:8px; }
  .user-role-group-dialog .user-role-entry>summary { min-height:68px; padding:10px 11px; }
  .user-role-summary-identity>strong { font-size:19px; }
  .user-role-summary-identity>small { max-width:190px; }
  .user-role-entry-status { min-height:25px; padding:4px 7px; font-size:7px; }
}

/* Role-specific staff, partner and subcontractor workspaces. */
.role-workspace-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.role-workspace-metrics article { display:grid; min-height:96px; align-content:center; padding:18px 20px; border:1px solid #d5dee4; border-radius:8px; background:#fff; box-shadow:0 8px 22px rgba(24,32,56,.05); }
.role-workspace-metrics strong { color:var(--navy); font-family:var(--serif); font-size:34px; line-height:1; }
.role-workspace-metrics span { margin-top:8px; color:#66747e; font-size:9px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.role-module-content { display:grid; min-width:0; max-width:100%; gap:20px; }
.role-module-hero { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:28px 31px; color:#fff; border-radius:8px; background:linear-gradient(125deg,var(--navy),#263655 80%,#007788 150%); }
.role-module-hero>div { min-width:0; max-width:760px; }
.role-module-hero .section-label { color:#9ed8dd; }
.role-module-hero h1,.role-module-hero h2 { margin:4px 0 0; color:#fff; font-family:var(--serif); font-size:38px; font-weight:600; }
.crm-app .app-content .role-module-hero p:not(.section-label) { margin:9px 0 0; color:#c6ced8; font-size:12px; line-height:1.6; }
.role-module-hero>strong { display:grid; min-width:112px; justify-items:center; padding:14px 18px; border-left:3px solid var(--teal); background:rgba(255,255,255,.08); font-family:var(--serif); font-size:32px; }
.role-module-hero>strong small { margin-top:5px; color:#cad2db; font-family:var(--sans); font-size:7px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.role-filter-tabs { display:flex; flex-wrap:wrap; gap:7px; padding:6px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.role-filter-tabs a { padding:9px 13px; color:#5f6d77; border-radius:5px; font-size:10px; font-weight:800; }
.role-filter-tabs a.is-active { color:#fff; background:var(--navy); }
.role-record-list { display:grid; gap:10px; }
.role-record-card { display:grid; grid-template-columns:110px minmax(0,1fr) auto; align-items:center; gap:20px; padding:20px 22px; border:1px solid #d9e0e5; border-left:4px solid var(--teal); border-radius:8px; background:#fff; }
.role-record-card.is-completed { border-left-color:#78a58d; opacity:.82; }
.role-record-status,.leave-status { display:inline-flex; width:max-content; align-items:center; justify-content:center; padding:7px 10px; color:#8b5c1e; border-radius:999px; background:#fff4df; font-size:8px; font-weight:850; text-transform:uppercase; }
.role-record-status.is-completed,.leave-status.is-approved { color:#17684f; background:#eaf8f1; }
.leave-status.is-rejected { color:#922c37; background:#fff0f2; }
.leave-status.is-withdrawn { color:#586773; background:#edf1f3; }
.role-record-card h2,.document-record-grid h2 { margin:4px 0 0; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:600; }
.role-record-card p { margin:5px 0 0; color:#6c7882; font-size:11px; }
.role-record-card dl,.partner-order-card dl,.my-project-card dl { display:grid; gap:8px; margin:0; }
.role-record-card dl div,.partner-order-card dl div,.my-project-card dl div { display:grid; gap:2px; }
.role-record-card dt,.partner-order-card dt,.my-project-card dt { color:#8a949c; font-size:7px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.role-record-card dd,.partner-order-card dd,.my-project-card dd { margin:0; color:#33414d; font-size:10px; font-weight:700; }
.document-record-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.document-record-grid article { display:grid; grid-template-columns:62px minmax(0,1fr) auto; align-items:center; gap:17px; padding:20px; border:1px solid #d9e0e5; border-radius:8px; background:#fff; }
.document-type-mark { display:grid; width:58px; height:58px; place-items:center; color:#fff; border-radius:7px; background:var(--navy); font-size:9px; font-weight:900; }
.document-record-grid p,.document-record-grid small { margin:5px 0 0; color:#6d7983; font-size:10px; }
.personal-profile-summary { overflow:hidden; border:1px solid var(--line); border-radius:7px; background:#fff; }
.personal-profile-summary>header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 24px; border-bottom:1px solid var(--line); }
.personal-profile-summary h2 { margin:3px 0 0; color:var(--navy); font-family:var(--serif); font-size:29px; font-weight:600; }
.personal-profile-summary>header>span { padding:7px 10px; color:#17684f; border-radius:999px; background:#eaf8f1; font-size:8px; font-weight:850; text-transform:uppercase; }
.personal-profile-summary dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; }
.personal-profile-summary dl div { min-width:0; padding:16px 20px; border-right:1px solid #e6ebee; border-bottom:1px solid #e6ebee; }
.personal-profile-summary dt { color:#87929a; font-size:7px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.personal-profile-summary dd { margin:6px 0 0; color:#263643; font-size:11px; font-weight:700; overflow-wrap:anywhere; }
.worktime-self-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 28px; color:#fff; border-radius:8px; background:var(--navy); }
.worktime-self-header h1 { margin:4px 0 0; color:#fff; font-family:var(--serif); font-size:36px; font-weight:600; }
.worktime-self-header p:not(.section-label) { margin:6px 0 0; color:#bdc6d2; font-size:11px; }
.worktime-self-header nav { display:flex; gap:8px; }
.worktime-self-header nav a { display:grid; width:42px; height:42px; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.3); border-radius:50%; font-size:20px; }
.personal-worktime-calendar,.leave-request-form,.leave-request-history,.order-status-section,.my-project-status-section { overflow:hidden; border:1px solid #d9e0e5; border-radius:8px; background:#fff; }
.personal-worktime-calendar>header,.leave-request-history>header,.order-status-section>header,.my-project-status-section>header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 23px; border-bottom:1px solid #e4e9ec; }
.personal-worktime-calendar h2,.leave-request-form h2,.leave-request-history h2,.order-status-section h2,.my-project-status-section h2 { margin:3px 0 0; color:var(--navy); font-family:var(--serif); font-size:28px; font-weight:600; }
.personal-worktime-week>header { display:flex; justify-content:space-between; gap:14px; padding:11px 22px; color:#fff; background:#293752; font-size:10px; }
.personal-worktime-day { display:grid; grid-template-columns:100px 110px minmax(0,1fr) auto; align-items:center; gap:14px; min-height:62px; padding:12px 22px; border-top:1px solid #edf0f2; }
.personal-worktime-day time,.personal-worktime-day>div { display:grid; gap:3px; color:#293844; font-size:11px; font-weight:800; }
.personal-worktime-day small { color:#7c8790; font-size:8px; font-weight:600; }
.leave-request-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; }
.leave-request-form { padding:23px; }
.leave-request-form header p:not(.section-label) { margin:8px 0 0; color:#687681; font-size:11px; line-height:1.6; }
.leave-request-form>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; margin:20px 0; }
.leave-request-form label,.admin-leave-list form label { display:grid; gap:7px; color:#5b6975; font-size:9px; font-weight:850; }
.leave-request-form label.is-wide { grid-column:1/-1; }
.leave-request-form input,.leave-request-form textarea,.admin-leave-list textarea,.admin-leave-list select { width:100%; min-width:0; padding:11px 12px; color:var(--ink); border:1px solid #c9d2d8; border-radius:5px; background:#fff; font:500 13px/1.4 var(--sans); }
.leave-request-form textarea,.admin-leave-list textarea { min-height:82px; resize:vertical; }
.leave-request-history>div { display:grid; }
.leave-request-history article { display:grid; grid-template-columns:120px minmax(0,1fr) auto; align-items:start; gap:14px; padding:16px 20px; border-top:1px solid #e8ecef; }
.leave-request-history article:first-child { border-top:0; }
.leave-request-history article>div { display:grid; gap:4px; }
.leave-request-history small,.leave-request-history p { margin:0; color:#6f7b84; font-size:9px; line-height:1.5; }
.leave-withdraw-form { align-self:center; }
.leave-withdraw-form .button { min-height:36px; padding:0 12px; white-space:nowrap; }
.order-status-section>header>span,.my-project-status-section>header>span { display:grid; min-width:38px; height:38px; place-items:center; color:#fff; border-radius:50%; background:var(--teal); font-weight:850; }
.partner-order-list { display:grid; }
.partner-order-card { display:grid; grid-template-columns:96px minmax(0,1fr) auto; gap:18px; padding:19px 22px; border-top:1px solid #e8ecef; }
.partner-order-card:first-child { border-top:0; }
.partner-order-card h3,.my-project-card h3 { margin:4px 0 0; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:600; }
.partner-order-card p,.partner-order-card small { margin:6px 0 0; color:#6b7781; font-size:10px; line-height:1.5; }
.my-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:14px; }
.my-project-card { display:grid; gap:16px; padding:21px; border:1px solid #dbe2e6; border-radius:7px; background:#fff; }
.my-project-card>header { display:flex; justify-content:space-between; gap:14px; }
.my-project-card>header>span { height:max-content; padding:7px 10px; color:#17684f; border-radius:999px; background:#eaf8f1; font-size:8px; font-weight:850; text-transform:uppercase; }
.my-project-card.is-closed>header>span { color:#596976; background:#eef1f3; }
.my-project-card header p { margin:5px 0 0; color:#6e7a83; font-size:10px; }
.my-project-progress { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; }
.my-project-progress>span { height:8px; overflow:hidden; border-radius:999px; background:#e5eaed; }
.my-project-progress i { display:block; height:100%; background:var(--teal); }
.my-project-progress strong { color:var(--navy); font-size:11px; }
.admin-leave-list { display:grid; gap:12px; }
.admin-leave-list>article { overflow:hidden; border:1px solid #d9e0e5; border-radius:8px; background:#fff; }
.admin-leave-list>article>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:20px 23px; border-bottom:1px solid #e7ebee; }
.admin-leave-list h2 { margin:4px 0 0; color:var(--navy); font-family:var(--serif); font-size:27px; font-weight:600; }
.admin-leave-list header p:not(.section-label),.admin-leave-reason { margin:7px 0 0; color:#6c7881; font-size:10px; }
.admin-leave-reason { padding:0 23px; }
.admin-leave-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px 18px; padding:18px 23px; }
.admin-leave-status-form { display:grid; grid-column:1/-1; grid-template-columns:minmax(180px,.45fr) minmax(0,1fr) auto; align-items:end; gap:14px; }
.admin-leave-status-form select { min-height:42px; }
.admin-leave-status-form .button { white-space:nowrap; }
.admin-leave-control-meta { display:grid; gap:4px; color:#68757f; font-size:9px; line-height:1.5; }
.admin-leave-delete-form { justify-self:end; }

.project-participants-panel { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; }
.project-participants-panel>header { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; padding:27px 30px; border-bottom:1px solid #e5e9ec; }
.project-participants-panel>header h2 { margin:5px 0 0; color:var(--navy); font-family:var(--serif); font-size:31px; font-weight:600; }
.project-participants-panel>header p:not(.section-label) { max-width:760px; margin:9px 0 0; color:#66737d; font-size:10px; line-height:1.65; }
.project-participants-panel>header>strong { display:grid; min-width:112px; justify-items:center; color:var(--teal); font-family:var(--serif); font-size:34px; line-height:1; }
.project-participants-panel>header>strong small { margin-top:7px; color:#71808a; font:800 8px/1.2 var(--sans); letter-spacing:.05em; text-transform:uppercase; }
.project-participants-panel>form { display:grid; }
.project-participant-workspace { display:grid; gap:14px; padding:18px; background:#f3f6f7; }
.project-participant-roster,.project-participant-picker { overflow:hidden; border:1px solid #d5dfe3; border-radius:8px; background:#fff; box-shadow:0 8px 22px rgba(24,32,56,.055); }
.project-participant-roster>header,.project-participant-picker>header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:18px 21px; border-bottom:1px solid #dfe6e9; }
.project-participant-roster>header h3,.project-participant-picker>header h3 { margin:4px 0 0; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:650; line-height:1; }
.project-participant-roster>header>p,.project-participant-picker>header>p { max-width:510px; margin:0; color:#687681; font-size:8px; line-height:1.55; text-align:right; }
.project-participant-roster-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:#dfe6e9; }
.project-participant-roster-role { min-width:0; padding:14px; background:#f9fbfb; }
.project-participant-roster-role>header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.project-participant-roster-role>header h4 { margin:0; color:#314958; font-size:9px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.project-participant-roster-role>header span { display:grid; min-width:24px; height:24px; place-items:center; color:#fff; border-radius:999px; background:var(--teal); font-size:8px; font-weight:900; }
.project-participant-roster-empty { min-height:45px; box-sizing:border-box; margin:0; padding:14px; color:#89939b; border:1px dashed #cbd6db; border-radius:6px; background:#fff; font-size:8px; }
.project-participant-chip-list { display:grid; gap:7px; }
.project-participant-chip { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:stretch; overflow:hidden; border:1px solid #bfd5d8; border-left:4px solid var(--teal); border-radius:6px; background:#fff; transition:opacity .18s ease,background-color .18s ease; }
.project-participant-chip.is-directory { border-color:#e2c998; border-left-color:#bd812d; background:#fffaf0; }
.project-participant-chip.is-pending-removal { opacity:.58; background:#f3f4f5; }
.project-participant-chip>label { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:9px; min-width:0; padding:10px; cursor:pointer; }
.project-participant-chip input,.project-participant-compact-option input { width:16px; height:16px; margin:0; accent-color:var(--teal); }
.project-participant-chip.is-directory input,.project-participant-source.is-directory input { accent-color:#bd812d; }
.project-participant-chip label>span { display:grid; min-width:0; gap:2px; }
.project-participant-chip strong { display:-webkit-box; overflow:hidden; color:var(--navy); font-size:9px; font-weight:800; line-height:1.25; white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.project-participant-compact-option strong { overflow:hidden; color:var(--navy); font-size:9px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.project-participant-chip small,.project-participant-compact-option small { overflow:hidden; color:#707d86; font-size:7px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.project-participant-chip label>b,.project-participant-compact-option>em { padding:4px 6px; color:#2c6770; border-radius:999px; background:#dfeff1; font-size:6px; font-style:normal; font-weight:900; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; }
.project-participant-chip.is-directory label>b,.project-participant-source.is-directory .project-participant-compact-option>em { color:#80581d; background:#f5e3be; }
.project-participant-chip label>em { display:none; grid-column:2/4; color:#a33f44; font-size:6px; font-style:normal; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.project-participant-chip.is-pending-removal label>em { display:block; }
.project-participant-delete-button { align-self:stretch; padding:7px 9px; color:#9b3038; border:0; border-left:1px solid #ead4d6; background:#fff5f5; font:850 6px/1.3 var(--sans); letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }
.project-participant-delete-button:hover,.project-participant-delete-button:focus-visible { color:#fff; outline:0; background:#a3343e; }
.project-participant-delete-button:disabled { opacity:.45; cursor:not-allowed; }
.project-participant-role-list { display:grid; gap:8px; padding:12px; background:#f4f7f8; }
.project-participant-role-picker { overflow:hidden; border:1px solid #d3dde2; border-radius:7px; background:#fff; }
.project-participant-role-picker>summary { display:grid; grid-template-columns:minmax(180px,1fr) auto 74px; align-items:center; gap:18px; min-height:68px; box-sizing:border-box; padding:13px 17px; list-style:none; cursor:pointer; user-select:none; }
.project-participant-role-picker>summary::-webkit-details-marker { display:none; }
.project-participant-role-picker>summary::marker { content:""; }
.project-participant-role-picker[open]>summary { border-bottom:1px solid #dbe4e7; background:#f8fbfb; }
.project-participant-role-picker>summary>span:first-child { display:grid; gap:3px; }
.project-participant-role-picker>summary small { color:#5c7780; font-size:6px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.project-participant-role-picker>summary strong { color:var(--navy); font-family:var(--serif); font-size:21px; font-weight:650; line-height:1; }
.project-participant-role-metrics { display:flex; align-items:center; gap:5px; color:#73808a; font-size:7px; white-space:nowrap; }
.project-participant-role-metrics b { display:grid; min-width:21px; height:21px; place-items:center; color:#fff; border-radius:999px; background:var(--teal); font-size:7px; }
.project-participant-role-action { display:grid; min-height:29px; place-items:center; color:#2c6770; border:1px solid #bcd4d8; border-radius:5px; background:#f0f8f8; font-size:7px; font-weight:850; text-transform:uppercase; }
.project-participant-role-action i { font-style:normal; }
.project-participant-role-action i:last-child,.project-participant-role-picker[open] .project-participant-role-action i:first-child { display:none; }
.project-participant-role-picker[open] .project-participant-role-action i:last-child { display:block; }
.project-participant-role-body { display:grid; gap:12px; padding:14px; background:#f8fafb; }
.project-participant-search { display:grid; grid-template-columns:auto minmax(220px,390px); align-items:center; justify-content:end; gap:12px; color:#66747e; font-size:7px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.project-participant-search input { min-height:38px; padding:8px 11px; color:var(--ink); border:1px solid #c9d4d9; border-radius:5px; outline:0; background:#fff; font:500 11px/1.3 var(--sans); letter-spacing:0; text-transform:none; }
.project-participant-search input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,119,136,.1); }
.project-participant-source-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.project-participant-source { overflow:hidden; border:1px solid #d8e1e5; border-radius:7px; background:#fff; }
.project-participant-source.is-directory { border-color:#e3d1ac; background:#fffdf8; }
.project-participant-source>header { display:flex; min-height:58px; box-sizing:border-box; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border-bottom:1px solid #e2e8eb; background:#f4f8f8; }
.project-participant-source.is-directory>header { border-color:#eadbbd; background:#fff5e3; }
.project-participant-source>header>div { display:grid; gap:3px; }
.project-participant-source>header strong { color:#315963; font-size:8px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
.project-participant-source.is-directory>header strong { color:#80591f; }
.project-participant-source>header small { color:#7b878f; font-size:7px; }
.project-participant-source>header>span { display:grid; min-width:25px; height:25px; place-items:center; color:#fff; border-radius:999px; background:#5e8d95; font-size:8px; font-weight:900; }
.project-participant-source.is-directory>header>span { background:#bd812d; }
.project-participant-compact-list { display:grid; max-height:262px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.project-participant-compact-option { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; min-height:57px; box-sizing:border-box; padding:9px 12px; border-top:1px solid #edf0f2; cursor:pointer; }
.project-participant-compact-option:first-child { border-top:0; }
.project-participant-compact-option:hover,.project-participant-compact-option.is-selected { background:#eef8f8; }
.project-participant-option-shell { display:grid; grid-template-columns:minmax(0,1fr) auto; border-top:1px solid #efe6d6; }
.project-participant-option-shell:first-child { border-top:0; }
.project-participant-option-shell>.project-participant-compact-option { border-top:0; }
.project-participant-option-shell .project-participant-delete-button { min-width:63px; }
.project-participant-compact-option[hidden],.project-participant-option-shell[hidden] { display:none!important; }
.project-participant-filter-empty { margin:0; padding:14px; color:#7b8790; border:1px dashed #c7d2d7; border-radius:6px; background:#fff; font-size:8px; text-align:center; }
.project-participants-panel>form>footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 23px; border-top:1px solid #e2e7ea; }
.project-participants-panel>form>footer p { margin:0; color:#6e7a83; font-size:9px; }
.my-project-card { color:inherit; transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.my-project-card:hover { transform:translateY(-2px); border-color:#9fc8cd; box-shadow:0 9px 24px rgba(21,36,56,.08); }
.my-project-card>div>p:not(.section-label) { margin:7px 0 0; color:#66747e; font-size:10px; line-height:1.5; }
.my-project-card>strong { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:14px; color:var(--teal); border-top:1px solid #e7ebee; font-size:9px; text-transform:uppercase; }
.my-project-safe-detail { overflow:hidden; border:1px solid #d9e0e5; border-radius:8px; background:#fff; }
.my-project-safe-detail>header { padding:29px 30px; color:#fff; background:var(--navy); }
.my-project-safe-detail h1 { margin:6px 0 0; color:#fff; font-family:var(--serif); font-size:38px; font-weight:600; }
.my-project-safe-detail dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:0; padding:22px; }
.my-project-safe-detail dl>div { padding:20px; border:1px solid #e0e5e8; border-radius:6px; background:#fafbfb; }
.my-project-safe-detail dt { color:#7b8790; font-size:8px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.my-project-safe-detail dd { margin:8px 0 0; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:600; }
.my-project-safe-detail>p { margin:0; padding:18px 22px; color:#65727c; border-top:1px solid #e3e8eb; font-size:10px; line-height:1.6; }

@media (max-width:980px) {
  .role-workspace-metrics,.personal-profile-summary dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .document-record-grid,.my-project-grid,.leave-request-layout { grid-template-columns:1fr; }
  .role-record-card,.partner-order-card { grid-template-columns:100px minmax(0,1fr); }
  .role-record-card dl,.partner-order-card dl { grid-column:2; }
  .project-participant-roster-grid,.project-participant-source-grid { grid-template-columns:1fr; }
}
@media (max-width:660px) {
  .role-workspace-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .role-workspace-metrics article { min-height:82px; padding:14px; }
  .role-module-hero,.worktime-self-header { align-items:flex-start; flex-direction:column; padding:22px 19px; }
  .role-module-hero>strong { min-width:0; justify-items:start; }
  .role-filter-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .role-filter-tabs a { text-align:center; }
  .role-record-card,.document-record-grid article,.partner-order-card { grid-template-columns:1fr; gap:12px; padding:17px; }
  .role-record-card dl,.partner-order-card dl { grid-column:auto; }
  .document-type-mark { width:48px; height:48px; }
  .personal-profile-summary>header { align-items:flex-start; flex-direction:column; padding:18px; }
  .personal-profile-summary dl { grid-template-columns:1fr; }
  .personal-worktime-day { grid-template-columns:72px minmax(0,1fr); padding:12px 16px; }
  .personal-worktime-day>span,.personal-worktime-day>strong { grid-column:2; justify-self:start; }
  .leave-request-form>div { grid-template-columns:1fr; }
  .leave-request-form label.is-wide { grid-column:auto; }
  .leave-request-history article { grid-template-columns:1fr; }
  .leave-withdraw-form,.leave-withdraw-form .button { width:100%; }
  .my-project-grid { padding:9px; }
  .admin-leave-list>article>header { align-items:flex-start; }
  .admin-leave-list>article>header { flex-direction:column; }
  .admin-leave-controls,.admin-leave-status-form { grid-template-columns:1fr; align-items:stretch; }
  .admin-leave-status-form,.admin-leave-control-meta,.admin-leave-delete-form { grid-column:auto; }
  .admin-leave-delete-form,.admin-leave-delete-form .button,.admin-leave-status-form .button { width:100%; }
  .project-participants-panel>header,.project-participants-panel>form>footer { align-items:flex-start; flex-direction:column; }
  .project-participants-panel>header { padding:22px 19px; }
  .project-participants-panel>header>strong { justify-items:start; }
  .project-participant-workspace { padding:9px; }
  .project-participant-roster>header,.project-participant-picker>header { align-items:flex-start; flex-direction:column; padding:17px; }
  .project-participant-roster>header>p,.project-participant-picker>header>p { max-width:none; text-align:left; }
  .project-participant-role-picker>summary { grid-template-columns:minmax(0,1fr) auto; gap:10px; padding:12px; }
  .project-participant-role-metrics { grid-column:1/3; grid-row:2; flex-wrap:wrap; }
  .project-participant-role-action { grid-column:2; grid-row:1; }
  .project-participant-role-body { padding:10px; }
  .project-participant-search { grid-template-columns:1fr; justify-content:stretch; }
  .project-participant-search input { min-width:0; width:100%; font-size:16px; }
  .project-participant-chip { grid-template-columns:1fr; }
  .project-participant-delete-button { min-height:34px; border-top:1px solid #ead4d6; border-left:0; }
  .project-participant-option-shell { grid-template-columns:1fr; }
  .project-participant-option-shell .project-participant-delete-button { min-width:0; }
  .project-participants-panel>form>footer .button { width:100%; }
  .my-project-safe-detail>header { padding:24px 20px; }
  .my-project-safe-detail h1 { font-size:31px; }
  .my-project-safe-detail dl { grid-template-columns:1fr; padding:10px; }
}

/* Customer portal mobile typography uses one deliberate, readable scale. */
@media (max-width:660px) {
  .crm-app .customer-shell {
    --customer-mobile-display:27px;
    --customer-mobile-subheading:22px;
    --customer-mobile-body:14px;
    --customer-mobile-item:14px;
    --customer-mobile-meta:12px;
    --customer-mobile-label:11px;
    --customer-mobile-control:12px;
  }

  .crm-app .customer-shell .app-header-page .section-label {
    display:block;
    font-size:10px;
    line-height:1.3;
    letter-spacing:.08em;
  }
  .crm-app .customer-shell .app-header-page h1 { font-size:20px; line-height:1.05; }
  .crm-app .customer-shell .app-header-page>p:last-child {
    display:block;
    font-size:11px;
    line-height:1.4;
  }
  .crm-app .customer-shell .profile-mark { font-size:11px; }
  .crm-app .customer-shell .profile .logout-form button { font-size:11px; line-height:1.35; }
  .crm-app .customer-shell .notification-badge { font-size:9px; }
  .crm-app .customer-shell .app-nav a { font-size:14px; }
  .crm-app .customer-shell .app-sidebar-bottom small,
  .crm-app .customer-shell .app-sidebar-developer { font-size:11px; line-height:1.45; }

  .crm-app .customer-shell .customer-contract-header span,
  .crm-app .customer-shell .customer-party-panel dt,
  .crm-app .customer-shell .customer-payment-schedule dt,
  .crm-app .customer-shell .customer-payment-summary dt,
  .crm-app .customer-shell .customer-extra-work-list article>div>span,
  .crm-app .customer-shell .customer-contact-simple>div>span,
  .crm-app .customer-shell .customer-portal-page .section-label {
    font-size:var(--customer-mobile-label);
    line-height:1.4;
    letter-spacing:.065em;
  }

  .crm-app .customer-shell .customer-contract-header strong { font-size:23px; line-height:1.08; }
  .crm-app .customer-shell .customer-contract-header p,
  .crm-app .customer-shell .customer-party-panel dd,
  .crm-app .customer-shell .customer-payment-schedule dd,
  .crm-app .customer-shell .customer-payment-summary dd {
    font-size:var(--customer-mobile-body);
    line-height:1.5;
  }

  .crm-app .customer-shell .customer-party-panel h2,
  .crm-app .customer-shell .customer-contract-price h2,
  .crm-app .customer-shell .customer-payment-schedule h2,
  .crm-app .customer-shell .customer-contract-documents h2,
  .crm-app .customer-shell .customer-managed-documents>header h2,
  .crm-app .customer-shell .customer-contact h2 {
    font-size:var(--customer-mobile-display);
    line-height:1.08;
  }
  .crm-app .customer-shell .customer-contract-grand-total small,
  .crm-app .customer-shell .customer-payment-stage-name small,
  .crm-app .customer-shell .customer-payment-summary article>div>small,
  .crm-app .customer-shell .customer-extra-work-disclosure summary small,
  .crm-app .customer-shell .customer-extra-work-empty small,
  .crm-app .customer-shell .customer-extra-work-list .vat-price-breakdown small,
  .crm-app .customer-shell .customer-pdf-group li small,
  .crm-app .customer-shell .customer-managed-documents>header>strong small,
  .crm-app .customer-shell .customer-managed-folder header small,
  .crm-app .customer-shell .customer-managed-folder li small {
    font-size:var(--customer-mobile-meta);
    line-height:1.5;
  }
  .crm-app .customer-shell .customer-contract-price-list { padding-top:14px; }
  .crm-app .customer-shell .customer-contract-price-list>div,
  .crm-app .customer-shell .customer-contract-grand-total dl>div { gap:14px; padding:4px 0; }
  .crm-app .customer-shell .customer-contract-price-list dt,
  .crm-app .customer-shell .customer-contract-price-list dd { font-size:13px; line-height:1.45; }
  .crm-app .customer-shell .customer-contract-price-list dd { font-weight:600; }
  .crm-app .customer-shell .customer-contract-price-list>.is-gross { margin-top:7px; padding-top:12px; }
  .crm-app .customer-shell .customer-contract-price-list>.is-gross dt,
  .crm-app .customer-shell .customer-contract-grand-total dt { font-size:14px; }
  .crm-app .customer-shell .customer-contract-price-list>.is-gross dd,
  .crm-app .customer-shell .customer-contract-grand-total dd { font-size:21px; font-weight:700; line-height:1.2; letter-spacing:-.02em; }
  .crm-app .customer-shell .customer-money-currency { font-size:12px; }
  .crm-app .customer-shell .customer-contract-grand-total { gap:5px; padding-top:15px; }
  .crm-app .customer-shell .customer-contract-grand-total dl { margin-top:4px; padding-top:10px; }
  .crm-app .customer-shell .customer-contract-grand-total>span,
  .crm-app .customer-shell .customer-payment-summary article>div>strong {
    font-size:var(--customer-mobile-label);
    line-height:1.35;
  }

  .crm-app .customer-shell .customer-payment-schedule>header>p,
  .crm-app .customer-shell .customer-contract-documents>header p,
  .crm-app .customer-shell .customer-managed-documents>header p:not(.section-label),
  .crm-app .customer-shell .customer-contact p,
  .crm-app .customer-shell .customer-extra-work-list article p {
    font-size:var(--customer-mobile-body);
    line-height:1.6;
  }
  .crm-app .customer-shell .customer-payment-stage-name strong,
  .crm-app .customer-shell .customer-pdf-group li strong,
  .crm-app .customer-shell .customer-managed-folder li strong {
    font-size:var(--customer-mobile-item);
    line-height:1.4;
  }
  .crm-app .customer-shell .customer-payment-schedule li>em {
    font-size:var(--customer-mobile-label);
    line-height:1.35;
  }
  .crm-app .customer-shell .customer-extra-work-disclosure summary>span,
  .crm-app .customer-shell .customer-extra-work-empty>span { font-size:var(--customer-mobile-item); line-height:1.4; }
  .crm-app .customer-shell .customer-extra-work-disclosure summary strong,
  .crm-app .customer-shell .customer-extra-work-empty strong { font-size:24px; line-height:1.1; }

  .crm-app .customer-shell .customer-pdf-heading h3,
  .crm-app .customer-shell .customer-managed-folder h3 {
    font-size:var(--customer-mobile-subheading);
    line-height:1.12;
    overflow-wrap:anywhere;
  }
  .crm-app .customer-shell .customer-pdf-heading>span,
  .crm-app .customer-shell .document-type-mark { font-size:10px; }
  .crm-app .customer-shell .customer-pdf-group li a,
  .crm-app .customer-shell .customer-managed-folder li .button,
  .crm-app .customer-shell .customer-contact a,
  .crm-app .customer-shell .customer-portal-page .button {
    font-size:var(--customer-mobile-control);
    line-height:1.35;
  }
  .crm-app .customer-shell .customer-managed-documents>header>strong { font-size:28px; line-height:1.05; }
}

/* Role-account preview notices can wrap on narrow screens; keep sticky navigation below the real notice height. */
.crm-role-account-preview.crm-has-preview-notice .app-shell { min-height:calc(100vh - var(--role-account-preview-notice-height,34px)); }
.crm-role-account-preview.crm-has-preview-notice .app-sidebar {
  top:var(--role-account-preview-notice-height,34px);
  height:calc(100vh - var(--role-account-preview-notice-height,34px));
}
.crm-role-account-preview.crm-has-preview-notice .app-header { top:var(--role-account-preview-notice-height,34px); }
.crm-role-account-preview .logout-form { display:none!important; }
.crm-role-account-preview form[aria-disabled="true"] button[type="submit"] { cursor:not-allowed; opacity:.55; }

/* Avatarok: különálló személyi és ipari portrék, kompakt választó és tömörített egyéni profilképek. */
.crm-avatar { display:inline-grid; flex:0 0 auto; overflow:hidden; border-radius:50%; background-color:#e9f2ef; background-image:var(--avatar-image); background-repeat:no-repeat; background-size:cover; background-position:center; color:transparent; }
.profile-mark.crm-avatar { box-shadow:0 0 0 2px rgba(0,119,136,.13); }
.profile-mark:not(.crm-avatar) { overflow:hidden; color:transparent; background-color:#e9f2ef; background-image:var(--current-avatar-image,url('assets/avatars/people/person-01.webp')); background-repeat:no-repeat; background-size:cover; background-position:center; box-shadow:0 0 0 2px rgba(0,119,136,.13); }
.colleague-avatar.crm-avatar { background-color:#e9f2ef; box-shadow:0 0 0 4px rgba(24,32,56,.08); }
.avatar-editor { display:block; grid-column:1/-1; min-width:0; padding:13px 18px; border-top:1px solid #dce3e8; background:#f6faf9; }
.avatar-picker-trigger { display:grid; width:100%; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; padding:0; border:0; background:transparent; color:inherit; text-align:left; cursor:pointer; }
.avatar-picker-trigger:hover strong { color:var(--teal); }
.avatar-picker-trigger:focus-visible { outline:3px solid rgba(0,119,136,.2); outline-offset:5px; border-radius:8px; }
.avatar-picker-trigger>span:not(.crm-avatar) { display:grid; gap:2px; min-width:0; }
.avatar-picker-trigger small { color:var(--teal); font-size:7px; font-style:normal; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.avatar-picker-trigger strong { color:var(--navy); font-family:var(--serif); font-size:19px; font-weight:600; transition:color .18s; }
.avatar-picker-trigger em { color:#71808a; font-size:8px; font-style:normal; line-height:1.4; }
.avatar-picker-trigger>b { color:var(--teal); font-family:var(--sans); font-size:25px; font-weight:400; }
.avatar-editor-preview { width:54px; height:54px; box-shadow:0 0 0 4px #fff,0 5px 15px rgba(24,32,56,.12); }
.avatar-picker-panel { width:min(620px,calc(100vw - 28px)); max-width:none; max-height:min(680px,calc(100vh - 28px)); padding:0; overflow:hidden; border:1px solid #cbdadd; border-radius:12px; background:#f7faf9; color:var(--ink); box-shadow:0 26px 80px rgba(10,20,37,.32); }
.avatar-picker-panel[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto auto; }
.avatar-picker-panel::backdrop { background:rgba(11,20,38,.58); backdrop-filter:blur(2px); }
.avatar-picker-panel>header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:19px 21px 17px; border-bottom:1px solid #d7e1e3; background:#fff; }
.avatar-picker-panel>header h3 { margin:2px 0 3px; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:600; }
.avatar-picker-panel>header p:not(.section-label) { margin:0; color:#71808a; font-size:9px; line-height:1.5; }
.avatar-picker-panel>header>button { display:grid; width:34px; height:34px; flex:0 0 auto; place-items:center; padding:0; border:1px solid #bdcbd0; border-radius:50%; background:#fff; color:var(--navy); font-size:22px; cursor:pointer; }
.avatar-preset-grid { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:9px; min-height:0; padding:18px 20px; overflow-y:auto; overscroll-behavior:contain; }
.avatar-preset-option { min-width:0; cursor:pointer; }
.avatar-preset-option>input { position:absolute; width:1px!important; height:1px!important; opacity:0; pointer-events:none; }
.avatar-preset-option>span { position:relative; display:grid; aspect-ratio:1; place-items:center; padding:5px; border:1px solid #d5dfe2; border-radius:10px; background:#fff; transition:border-color .18s,box-shadow .18s,transform .18s; }
.avatar-preset-option:hover>span { transform:translateY(-1px); border-color:#87bec4; }
.avatar-preset-option>input:focus-visible+span { outline:3px solid rgba(0,119,136,.2); outline-offset:2px; }
.avatar-preset-option>input:checked+span { border-color:var(--teal); box-shadow:0 0 0 2px rgba(0,119,136,.13); }
.avatar-preset-option>span>i { position:absolute; right:2px; bottom:2px; display:none; width:18px; height:18px; place-items:center; border:2px solid #fff; border-radius:50%; background:var(--teal); color:#fff; font-family:var(--sans); font-size:10px; font-style:normal; font-weight:900; }
.avatar-preset-option>input:checked+span>i { display:grid; }
.avatar-preset-thumb { width:100%; height:100%; }
.avatar-picker-actions { display:grid; gap:9px; padding:14px 20px; border-top:1px solid #d7e1e3; background:#edf5f3; }
.avatar-upload-control { display:grid; gap:7px; padding:13px 15px; border:1px dashed #9fb9be; border-radius:6px; background:#fff; color:#42535e!important; cursor:pointer; }
.avatar-upload-control>span { font-size:9px; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.avatar-upload-control input[type=file] { width:100%; height:auto; min-height:38px; padding:7px; border:1px solid #d5dfe2; border-radius:4px; background:#f9fbfb; font-size:10px; }
.avatar-upload-control small { color:#74828a; font-size:8px; font-weight:500; line-height:1.5; letter-spacing:0; text-transform:none; }
.avatar-remove-control { display:flex!important; align-items:center!important; grid-template-columns:none!important; gap:9px!important; color:#5c6972!important; font-size:8px!important; font-weight:700!important; letter-spacing:0!important; text-transform:none!important; }
.avatar-remove-control input { width:16px!important; height:16px!important; margin:0; }
.avatar-picker-panel>footer { display:flex; justify-content:flex-end; padding:11px 20px; border-top:1px solid #d7e1e3; background:#fff; }
.own-avatar-form { overflow:hidden; margin-bottom:20px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.own-avatar-form .avatar-editor { border-top:0; }
.own-avatar-form>footer { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 20px; border-top:1px solid var(--line); background:#fff; }
.own-avatar-form>footer p { margin:0; color:#77838b; font-size:9px; line-height:1.5; }

@media (max-width:660px) {
  .avatar-preset-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; padding:14px; }
  .avatar-editor { padding:12px 15px; }
  .avatar-picker-panel { width:calc(100vw - 18px); max-height:calc(100vh - 18px); border-radius:9px; }
  .avatar-picker-panel>header { padding:15px; }
  .avatar-picker-panel>header h3 { font-size:22px; }
  .avatar-picker-actions { padding:12px 14px; }
  .avatar-picker-panel>footer { padding:10px 14px; }
  .avatar-editor-preview { width:48px; height:48px; }
  .own-avatar-form>footer { align-items:stretch; flex-direction:column; }
}

/* Session 9: administrator overview rebuilt around operational decisions. */
.app-content.admin-overview { display:grid; max-width:1460px; gap:16px; padding-top:28px; }
.admin-overview :is(.admin-overview-status,.admin-overview-panel) { box-sizing:border-box; min-width:0; border:1px solid #d4dde3; border-radius:6px; background:#fff; box-shadow:0 3px 14px rgba(24,32,56,.025); }
.admin-overview-status { overflow:hidden; }
.admin-overview-status-heading,.admin-overview-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:17px 20px; border-bottom:1px solid #dce3e8; }
.admin-overview-status-heading { align-items:center; padding-top:15px; padding-bottom:14px; background:#f8fafb; }
.admin-overview-status-heading .section-label,.admin-overview-panel-heading .section-label { margin:0 0 4px; }
.admin-overview-status-heading h2,.admin-overview-panel-heading h2 { margin:0; padding:0!important; color:var(--navy); font-family:var(--serif); font-size:25px; font-weight:600; line-height:1.08!important; }
.admin-overview-status-heading>div:last-child { display:flex; align-items:center; gap:14px; }
.admin-overview-status-heading>div:last-child small { color:#7a8790; font-size:10px; }
.admin-overview-status-heading>div:last-child a { display:inline-flex; min-height:32px; align-items:center; gap:6px; padding:0 11px; color:var(--teal); border:1px solid #aebdc5; border-radius:4px; background:#fff; font-size:11px!important; font-weight:800; }
.admin-overview-status-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.admin-overview-status-cell { display:grid; min-width:0; min-height:120px; grid-template-columns:34px minmax(0,1fr); align-items:start; gap:13px; padding:20px; color:var(--ink); border-right:1px solid #dce3e8; background:#fff; }
.admin-overview-status-cell:last-child { border-right:0; }
.admin-overview-status-cell:hover { background:#f8fbfb; }
.admin-overview-status-icon { display:grid; width:30px; height:30px; place-items:center; color:var(--teal); border:1px solid currentColor; border-radius:50%; font-size:15px; font-weight:800; }
.admin-overview-status-cell>span:last-child { display:grid; min-width:0; }
.admin-overview-status-cell small { color:#4e5b67; font-size:11px!important; font-weight:800; line-height:1.35!important; }
.admin-overview-status-cell strong { margin:7px 0 6px; color:var(--teal); font-family:var(--serif); font-size:32px!important; font-weight:600!important; line-height:.9!important; }
.admin-overview-status-cell em { color:#77838c; font-size:10px!important; font-style:normal; line-height:1.4!important; }
.admin-overview-status-cell.is-danger .admin-overview-status-icon,.admin-overview-status-cell.is-danger strong { color:#cb3540; }
.admin-overview-status-cell.is-warning .admin-overview-status-icon,.admin-overview-status-cell.is-warning strong { color:#c48300; }
.admin-overview-status-cell.is-clear .admin-overview-status-icon,.admin-overview-status-cell.is-clear strong { color:#3f8b61; }

.admin-overview-command { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,.92fr); align-items:stretch; gap:16px; }
.admin-overview-panel { overflow:hidden; }
.admin-overview-panel-heading { align-items:center; min-height:70px; }
.admin-overview-panel-heading .text-button { align-self:center; color:var(--teal); font-size:11px!important; font-weight:800; white-space:nowrap; }
.admin-overview-empty { margin:0; padding:26px 20px; color:#74818a; font-size:12px!important; }

.admin-overview-agenda { margin:0; padding:0 20px; list-style:none; }
.admin-overview-agenda li { display:grid; min-height:82px; grid-template-columns:58px 18px minmax(0,1fr) auto; align-items:center; gap:9px; border-bottom:1px solid #dfe5e9; }
.admin-overview-agenda li:last-child { border-bottom:0; }
.admin-overview-agenda time { color:var(--teal); font-size:12px!important; font-weight:850; line-height:1.25!important; }
.admin-overview-agenda time small { display:block; margin-top:3px; color:#667680; font-size:10px!important; }
.admin-overview-timeline-mark { position:relative; display:block; width:10px; height:10px; border:2px solid #fff; border-radius:50%; background:#8cb4ba; box-shadow:0 0 0 1px #8cb4ba; }
.admin-overview-agenda li.is-today .admin-overview-timeline-mark { background:var(--teal); box-shadow:0 0 0 1px var(--teal); }
.admin-overview-agenda li:not(:last-child) .admin-overview-timeline-mark::after { position:absolute; top:11px; left:3px; width:1px; height:72px; content:""; background:#cbd8dc; }
.admin-overview-agenda li>div { min-width:0; }
.admin-overview-agenda li>div strong { display:block; color:var(--navy); font-family:var(--serif); font-size:17px!important; font-weight:650!important; line-height:1.2!important; }
.admin-overview-agenda li>div small { display:block; margin-top:4px; overflow:hidden; color:#71808a; font-size:10px!important; text-overflow:ellipsis; white-space:nowrap; }
.admin-overview-agenda li>em { padding:4px 7px; color:#5d6972; border:1px solid #cfd9df; border-radius:3px; background:#f7f9fa; font-size:9px!important; font-style:normal; font-weight:850; letter-spacing:.035em; text-transform:uppercase; }

.admin-overview-project-state-layout { display:grid; grid-template-columns:minmax(175px,.72fr) minmax(230px,1.28fr); min-height:164px; }
.admin-overview-distribution { padding:20px; border-right:1px solid #dce3e8; }
.admin-overview-distribution>span { display:block; color:#5c6873; font-size:10px; font-weight:800; }
.admin-overview-distribution>strong { display:block; margin:7px 0 15px; color:var(--navy); font-family:var(--serif); font-size:31px; font-weight:600; line-height:1; }
.admin-overview-distribution>p { margin:18px 0 0; color:#7a8790; }
.admin-overview-segmented { display:flex; height:32px; overflow:hidden; border-radius:2px; background:#e6ecef; }
.admin-overview-segmented i { display:grid; min-width:0; place-items:center; color:#fff; font-size:11px; font-style:normal; font-weight:850; }
.admin-overview-segmented .is-active { background:var(--teal); }
.admin-overview-segmented .is-completed { background:#68b733; }
.admin-overview-distribution-legend { display:flex; flex-wrap:wrap; gap:10px 15px; margin-top:13px; }
.admin-overview-distribution-legend span { display:flex; align-items:center; gap:6px; color:#687680; font-size:9px; }
.admin-overview-distribution-legend i { width:8px; height:8px; border-radius:50%; background:var(--teal); }
.admin-overview-distribution-legend i.is-completed { background:#68b733; }
.admin-overview-attention { padding:16px 18px 8px; }
.admin-overview-attention h3 { margin:0; padding:0 0 9px!important; color:#4b5864; font-size:11px; font-weight:800; }
.admin-overview-attention>a { display:grid; min-height:40px; grid-template-columns:minmax(0,1fr) auto 18px; align-items:center; gap:10px; color:#33404a; border-top:1px solid #dfe5e9; }
.admin-overview-attention>a>span { display:flex; min-width:0; align-items:center; gap:9px; font-size:10px; font-weight:750; }
.admin-overview-attention>a>span i { display:grid; width:19px; height:19px; flex:0 0 auto; place-items:center; color:var(--teal); border:1px solid currentColor; border-radius:50%; font-size:10px; font-style:normal; font-weight:850; }
.admin-overview-attention>a strong { color:inherit; font-size:11px!important; }
.admin-overview-attention>a em { color:#6d7982; font-style:normal; }
.admin-overview-attention>a.is-danger { color:#c5323e; }
.admin-overview-attention>a.is-warning { color:#b67700; }
.admin-overview-attention>a.is-info { color:var(--teal); }
.admin-overview-attention>a.is-clear { color:#498366; }

.admin-overview-projects { margin-top:0; }
.admin-overview-project-table { padding:0 20px 5px; }
.admin-overview-project-head,.admin-overview-project-row { display:grid; grid-template-columns:1.05fr 1.55fr .95fr 1.06fr 1.12fr .9fr .82fr 18px; align-items:center; gap:12px; min-width:0; }
.admin-overview-project-head { min-height:34px; color:#66737d; border-bottom:1px solid #d6dfe4; background:#f7f9fa; }
.admin-overview-project-head span { padding:0 3px; font-size:8px; font-weight:850; letter-spacing:.045em; text-transform:uppercase; }
.admin-overview-project-row { position:relative; min-height:70px; padding:8px 3px; color:var(--ink); border-bottom:1px solid #dfe5e9; }
.admin-overview-project-row:last-child { border-bottom:0; }
.admin-overview-project-row:hover { background:#f7fbfb; }
.admin-overview-project-code { color:var(--teal); font-size:10px!important; font-weight:850!important; }
.admin-overview-project-name { min-width:0; }
.admin-overview-project-name strong { display:block; overflow:hidden; color:var(--navy); font-size:11px!important; text-overflow:ellipsis; white-space:nowrap; }
.admin-overview-project-name small { display:block; overflow:hidden; margin-top:3px; color:#7b8790; font-size:9px!important; text-overflow:ellipsis; white-space:nowrap; }
.admin-overview-badge { display:inline-flex; max-width:100%; min-height:24px; box-sizing:border-box; align-items:center; padding:4px 7px; color:#735819; border:1px solid #dfc676; border-radius:4px; background:#fff6cf; font-size:8px!important; font-style:normal; font-weight:850; line-height:1.2!important; text-transform:uppercase; }
.admin-overview-badge.is-completed,.admin-overview-badge.is-portal-active { color:#256f4d; border-color:#a7d2ba; background:#edf8f1; }
.admin-overview-badge.is-portal-hidden { color:#84621c; border-color:#dfc47e; background:#fff9e8; }
.admin-overview-project-row time,.admin-overview-project-row>small { color:#56646f; font-size:9px!important; font-weight:650; }
.admin-overview-payment { display:grid; grid-template-columns:31px minmax(36px,1fr); align-items:center; gap:7px; }
.admin-overview-payment>strong { color:var(--navy); font-size:10px!important; }
.admin-overview-payment>i { display:block; height:5px; overflow:hidden; background:#e1e8eb; }
.admin-overview-payment>i span { display:block; height:100%; background:var(--teal); }
.admin-overview-project-row>b { color:var(--teal); font-size:15px; font-weight:700; }

.admin-overview-deadline-list>a { display:grid; min-height:74px; grid-template-columns:42px minmax(190px,1.3fr) minmax(170px,1fr) auto; align-items:center; gap:16px; padding:12px 20px; color:var(--ink); background:#fbfcfc; }
.admin-overview-deadline-list>a+a { border-top:1px solid #dce3e8; }
.admin-overview-deadline-icon { display:grid; width:36px; height:36px; place-items:center; color:#fff; border-radius:50%; background:var(--teal); font-size:18px; }
.admin-overview-deadline-list strong { display:block; color:var(--navy); font-family:var(--serif); font-size:16px!important; font-weight:650!important; }
.admin-overview-deadline-list small { display:block; margin-top:3px; color:#71808a; font-size:9px!important; }
.admin-overview-deadline-list time { display:block; margin-top:3px; color:#42515d; font-size:10px!important; font-weight:750; }
.admin-overview-deadline-list em { padding:6px 8px; color:var(--teal); border:1px solid #8cbcc2; border-radius:3px; background:#f1f9f9; font-size:10px!important; font-style:normal; font-weight:850; white-space:nowrap; }

.admin-overview-secondary { display:grid; grid-template-columns:minmax(360px,.82fr) minmax(460px,1.18fr); align-items:stretch; gap:16px; }
.admin-overview-portfolio dl { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; border-bottom:1px solid #dce3e8; }
.admin-overview-portfolio dl>div { min-width:0; padding:17px 14px; border-right:1px solid #dce3e8; }
.admin-overview-portfolio dl>div:last-child { border-right:0; }
.admin-overview-portfolio dt,.admin-overview-analytics dt { color:#687680; font-size:8px!important; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.admin-overview-portfolio dd { margin:9px 0 0; overflow-wrap:anywhere; color:var(--navy); font-family:var(--serif); font-size:17px!important; font-weight:600; line-height:1.08!important; }
.admin-overview-portfolio .is-remaining dd { color:var(--teal); }
.admin-overview-portfolio dl span { display:block; height:5px; margin-top:9px; overflow:hidden; background:#dfe7ea; }
.admin-overview-portfolio dl span i { display:block; height:100%; background:var(--teal); }
.admin-overview-portfolio>p { margin:0; padding:14px 18px; color:#75818a; background:#f8fafb; font-size:10px!important; line-height:1.5!important; }
.admin-overview-live-status { display:flex; align-items:center; gap:7px; color:#39795b; font-size:9px; font-weight:800; text-transform:uppercase; }
.admin-overview-live-status i { width:7px; height:7px; border-radius:50%; background:#3a9367; box-shadow:0 0 0 3px rgba(58,147,103,.12); }
.admin-overview-analytics-layout { display:grid; grid-template-columns:190px minmax(0,1fr); min-height:185px; }
.admin-overview-analytics-layout>dl { display:grid; align-content:center; gap:13px; margin:0; padding:18px; border-right:1px solid #dce3e8; background:#f8fafb; }
.admin-overview-analytics-layout>dl>div { padding-bottom:11px; border-bottom:1px solid #dfe5e9; }
.admin-overview-analytics-layout>dl>div:last-child { padding-bottom:0; border-bottom:0; }
.admin-overview-analytics-layout dd { margin:4px 0 0; color:var(--navy); font-family:var(--serif); font-size:22px!important; font-weight:600; line-height:1!important; }
.admin-overview-analytics-chart { min-width:0; padding:13px 17px 9px; }
.admin-overview-chart-legend { display:flex; justify-content:flex-end; gap:14px; }
.admin-overview-chart-legend span { display:flex; align-items:center; gap:5px; color:#74818a; font-size:8px; }
.admin-overview-chart-legend i { width:14px; height:3px; background:var(--teal); }
.admin-overview-chart-legend i.is-clicks { background:#65a84b; }
.admin-overview-analytics-chart svg { display:block; width:100%; height:135px; margin-top:2px; }
.admin-overview-analytics-chart svg line { stroke:#e3e9ec; stroke-width:1; vector-effect:non-scaling-stroke; }
.admin-overview-analytics-chart svg path { fill:url(#admin-overview-analytics-fill); }
.admin-overview-analytics-chart svg polyline { fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-width:2.5; vector-effect:non-scaling-stroke; }
.admin-overview-analytics-chart svg polyline.is-views { stroke:var(--teal); }
.admin-overview-analytics-chart svg polyline.is-clicks { stroke:#65a84b; }
.admin-overview-chart-empty { display:grid; min-height:185px; place-items:center; margin:0; color:#78858e; }
.admin-overview-analytics-details { border-top:1px solid #dce3e8; color:#687781; font-size:9px; }
.admin-overview-analytics-details summary { width:max-content; margin:10px 18px; cursor:pointer; color:var(--teal); font-weight:800; }
.admin-overview-analytics-details>div { max-height:220px; overflow:auto; border-top:1px solid #e0e6ea; }
.admin-overview-analytics-details table { min-width:430px; }
.admin-overview-analytics-details th,.admin-overview-analytics-details td { padding:8px 12px; font-size:9px!important; }

@media (max-width:1160px) {
  .admin-overview-command,.admin-overview-secondary { grid-template-columns:1fr; }
  .admin-overview-status-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-overview-status-cell:nth-child(2) { border-right:0; }
  .admin-overview-status-cell:nth-child(-n+2) { border-bottom:1px solid #dce3e8; }
  .admin-overview-project-head,.admin-overview-project-row { grid-template-columns:1fr 1.35fr .9fr 1fr 1fr .85fr .75fr 16px; gap:9px; }
}

@media (max-width:850px) {
  .admin-overview-project-head { display:none; }
  .admin-overview-project-table { display:grid; gap:10px; padding:12px; background:#f3f6f7; }
  .admin-overview-project-row { grid-template-columns:1fr 1fr; gap:10px 12px; padding:17px; border:1px solid #d5dfe3!important; border-radius:5px; background:#fff; }
  .admin-overview-project-code,.admin-overview-project-name { grid-column:1/-1; }
  .admin-overview-project-row>b { position:absolute; top:16px; right:16px; }
  .admin-overview-payment { max-width:170px; }
  .admin-overview-project-row>small { align-self:center; text-align:right; }
}

@media (max-width:660px) {
  .app-content.admin-overview { gap:12px; padding:18px 12px 38px; }
  .admin-overview-status-heading,.admin-overview-panel-heading { align-items:flex-start; flex-direction:column; padding:16px; }
  .admin-overview-status-heading h2,.admin-overview-panel-heading h2 { font-size:23px; }
  .admin-overview-status-heading>div:last-child { width:100%; align-items:center; flex-direction:row; justify-content:space-between; gap:10px; }
  .admin-overview-status-heading>div:last-child a { min-height:28px; }
  .admin-overview-panel-heading .text-button { align-self:flex-start; }
  .admin-overview-status-cell { min-height:126px; grid-template-columns:26px minmax(0,1fr); gap:8px; padding:15px 12px; }
  .admin-overview-status-icon { width:24px; height:24px; font-size:12px; }
  .admin-overview-status-cell small { font-size:10px!important; }
  .admin-overview-status-cell strong { font-size:28px!important; }
  .admin-overview-status-cell em { font-size:9px!important; }
  .admin-overview-agenda { padding:0 15px; }
  .admin-overview-agenda li { grid-template-columns:48px 14px minmax(0,1fr); align-items:start; padding:16px 0; }
  .admin-overview-agenda li>em { grid-column:3; justify-self:start; }
  .admin-overview-agenda li:not(:last-child) .admin-overview-timeline-mark::after { height:96px; }
  .admin-overview-agenda li>div small { white-space:normal; }
  .admin-overview-project-state-layout { grid-template-columns:1fr; }
  .admin-overview-distribution { border-right:0; border-bottom:1px solid #dce3e8; }
  .admin-overview-project-row { grid-template-columns:1fr; }
  .admin-overview-project-code,.admin-overview-project-name { grid-column:1; }
  .admin-overview-project-row>small { text-align:left; }
  .admin-overview-deadline-list>a { grid-template-columns:38px minmax(0,1fr); gap:10px 12px; padding:16px; }
  .admin-overview-deadline-list>a>span:nth-child(3),.admin-overview-deadline-list>a>em { grid-column:2; }
  .admin-overview-deadline-list>a>em { justify-self:start; }
  .admin-overview-portfolio dl { grid-template-columns:1fr 1fr; }
  .admin-overview-portfolio dl>div:nth-child(2) { border-right:0; }
  .admin-overview-portfolio dl>div:nth-child(-n+2) { border-bottom:1px solid #dce3e8; }
  .admin-overview-portfolio dd { font-size:15px!important; }
  .admin-overview-analytics-layout { grid-template-columns:1fr; }
  .admin-overview-analytics-layout>dl { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:0; border-right:0; border-bottom:1px solid #dce3e8; }
  .admin-overview-analytics-layout>dl>div { padding:15px 11px; border-right:1px solid #dfe5e9; border-bottom:0; }
  .admin-overview-analytics-layout>dl>div:last-child { padding:15px 11px; border-right:0; }
  .admin-overview-analytics-layout dd { font-size:19px!important; }
  .admin-overview-analytics-chart { padding-right:10px; padding-left:10px; }
}
