:root { color-scheme: light; --navy:#18344c; --blue:#2f6f9f; --sky:#edf5fa; --line:#d9e2e8; --paper:#fff; --bg:#f5f7f9; --red:#d23f3f; --green:#237a57; --sidebar:218px; }
.billing-summary>*,.invoice-project-context>div>* { min-width:0; overflow-wrap:anywhere; }
.message p.message-image-caption { margin:8px 0 0; max-width:560px; white-space:pre-wrap; overflow-wrap:anywhere; }
@media (max-width:780px) {
  .panel.invoice-request-picker { display:block; }
  .invoice-request-picker .invoice-project-picker { width:100%; grid-template-columns:minmax(0,1fr); }
  .invoice-project-picker .invoice-project-option>span { display:block; white-space:normal; overflow-wrap:anywhere; }
  .invoice-project-picker .invoice-project-option :is(b,small) { display:block; margin-left:0; overflow:visible; }
  .billing-summary .invoice-project-context>div { grid-template-columns:minmax(0,1fr); gap:4px; }
  .billing-summary .invoice-project-context strong { margin-bottom:6px; }
}
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; background:var(--bg); color:#172b3a; font:14px/1.45 "Segoe UI","Microsoft YaHei",sans-serif; }
a { color:var(--blue); text-decoration:none; }
.app-shell { display:grid; grid-template-columns:var(--sidebar) minmax(0,1fr); min-height:100vh; }
.app-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; gap:11px; padding:17px 11px 13px; overflow:auto; color:#fff; background:linear-gradient(180deg,#18344c 0%,#142b3e 100%); box-shadow:2px 0 16px #102a4324; }
.sidebar-brand { padding:0 9px 13px; border-bottom:1px solid #ffffff24; }.brand { font-weight:800; letter-spacing:.08em; font-size:17px; }.subbrand { opacity:.7; font-size:11px; }
.app-sidebar nav { display:grid; gap:5px; }.app-sidebar nav a { position:relative; display:flex; align-items:center; justify-content:flex-start; gap:9px; color:#dceaf4; padding:10px 11px; border:1px solid transparent; border-radius:9px; white-space:nowrap; transition:.15s ease; }.app-sidebar nav a::before { display:grid; width:22px; height:22px; place-items:center; border-radius:6px; color:#8fc7e8; background:#ffffff0d; font-size:13px; font-weight:800; }.app-sidebar nav a[href="/"]::before { content:"▦"; }.app-sidebar nav a[href="/communication"]::before { content:"●"; font-size:10px; }.app-sidebar nav a[href="/drive"]::before { content:"▣"; }.app-sidebar nav a:hover { color:#fff; border-color:#ffffff20; background:#ffffff12; transform:translateX(1px); }.app-sidebar nav a.active { color:#fff; border-color:#73bde840; background:linear-gradient(90deg,#3f718f66,#ffffff12); box-shadow:inset 3px 0 0 #6fc5f3,0 4px 13px #071f3028; }.app-sidebar nav a.active::before { color:#fff; background:#62b7e82e; }.nav-unread { display:grid; min-width:18px; height:18px; margin-left:auto; place-items:center; padding:0 5px; border-radius:99px; color:#fff; background:#e02b2b; box-shadow:0 0 0 2px var(--navy); font-size:10px; font-weight:800; }
.app-sidebar>nav { padding:3px 0 7px; border-bottom:1px solid #ffffff17; }.context-shortcuts { display:grid; gap:3px; padding:6px 0 10px; border-bottom:1px solid #ffffff17; }.context-shortcuts-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; padding:5px 10px; border:0; color:#7fa6bf; background:transparent; font-size:9px; font-weight:850; letter-spacing:.12em; text-align:left; cursor:pointer; }.context-shortcuts-toggle em { font-size:13px; font-style:normal; }.context-shortcut-links { display:grid; gap:3px; }.context-shortcuts[data-collapsed="true"] .context-shortcut-links { display:none; }.app-sidebar .context-shortcuts a { justify-content:flex-start; gap:7px; padding:6px 10px; border-radius:6px; color:#a9c3d4; font-size:12px; }.app-sidebar .context-shortcuts a>span { color:#62b7e8; font-size:16px; line-height:1; }.app-sidebar .context-shortcuts a.active { color:#fff; background:#ffffff12; box-shadow:inset 2px 0 0 #62b7e8; }
.user { display:flex; align-items:center; gap:8px; white-space:nowrap; }.user form { margin:0; }.role { border:1px solid #ffffff4d; border-radius:99px; padding:2px 7px; font-size:11px; }
.sidebar-user { margin-top:auto; padding:12px 8px 0; border-top:1px solid #ffffff24; flex-wrap:wrap; }.sidebar-domain { padding:0 8px; color:#8eabc0; font-size:11px; }
.workspace-context { display:grid; gap:2px; padding:11px; border:1px solid #ffffff2e; border-radius:8px; background:#ffffff0c; }.workspace-context span { font-weight:750; }.workspace-context small { color:#9fb7c8; }
.app-content { min-width:0; }
button,.button { border:0; border-radius:6px; padding:9px 15px; color:#fff; background:var(--blue); font-weight:650; cursor:pointer; }
button:hover,.button:hover { filter:brightness(.94); }.link { background:transparent; padding:4px; font-weight:400; }.link:hover { text-decoration:underline; }
button:disabled,button.is-processing { opacity:.6; cursor:wait; }
main { width:100%; max-width:none; margin:0; padding:16px 18px 28px; }.page-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:11px; }.page-title h1 { margin:0; font-size:22px; }.domain { color:#607786; }
.panel { min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:14px; margin-bottom:12px; box-shadow:0 2px 8px #102a4307; }.panel h2 { margin:0 0 10px; font-size:16px; }
.settings-company { padding:13px 16px; margin-bottom:12px; }.settings-company .form-grid { gap:9px 12px; margin-top:10px; }.settings-company input,.settings-company textarea { padding:7px 9px; }.settings-company textarea { min-height:56px; }
.grid { display:grid; gap:12px; }.grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }.grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }.metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:12px; }
.metric { background:#fff; border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:5px; padding:12px; display:flex; justify-content:space-between; align-items:center; color:#405261; }.metric strong { color:var(--navy); font-size:24px; }
.workspace-hero { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:12px; padding:18px 20px; border-radius:6px; color:#fff; background:linear-gradient(125deg,#102a43,#145b8b); box-shadow:0 4px 14px #102a4318; }.workspace-hero h2 { margin:3px 0 5px; font-size:21px; }.workspace-hero p { margin:0; color:#d8e8f3; }.eyebrow { font-size:10px; font-weight:800; letter-spacing:.12em; color:#9fc9e5; }.quick-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; max-width:620px; }.quick-actions .button,.primary-action { display:inline-flex; align-items:center; min-height:35px; }.primary-action { padding:8px 13px; border-radius:6px; color:var(--blue); background:var(--sky); }.workspace-hero .quick-actions .button,.workspace-hero .primary-action { border:1px solid #ffffff4d; color:#fff; background:#ffffff12; }.workspace-hero .quick-actions .primary-action { border-color:#fff; background:#fff; color:var(--navy); border-radius:4px; padding:8px 13px; font-weight:750; }
.workspace-hero.compact { padding:18px 22px; }.eyebrow.dark { color:var(--blue); }.primary-action.dark { margin-top:14px; border:0; background:var(--blue); color:#fff; border-radius:6px; padding:9px 15px; font-weight:750; }.button.subtle { color:var(--blue); background:var(--sky); }
.entry-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:18px; }.entry-choices>a { display:grid; grid-template-columns:44px 1fr auto; align-items:center; gap:15px; min-height:126px; padding:20px; border:1px solid var(--line); border-radius:12px; color:var(--navy); background:#fff; box-shadow:0 4px 18px #102a4308; }.entry-choices>a:hover { border-color:#72a9cf; transform:translateY(-1px); box-shadow:0 8px 24px #1769aa18; }.entry-choices h2,.entry-choices p { margin:0; }.entry-choices p { margin-top:5px; color:#607786; }.entry-choices strong { color:var(--blue); white-space:nowrap; }.choice-no { display:grid; place-items:center; width:40px; height:40px; border-radius:9px; background:var(--sky); color:var(--blue); font-size:18px; font-weight:850; }
.entry-choices.admin-entries { grid-template-columns:repeat(4,minmax(0,1fr)); }.admin-entries>a { grid-template-columns:40px 1fr; }.admin-entries>a>strong { grid-column:2; }
.trade-choices { grid-template-columns:repeat(3,minmax(0,1fr)); }.trade-choices>a { grid-template-columns:40px 1fr; }.trade-choices>a>strong { grid-column:2; }
.trade-intake .trade-heading { align-items:flex-start; margin-bottom:24px; }.trade-heading h2 { font-size:26px; letter-spacing:-.5px; margin:8px 0; }.trade-heading p { color:#60758a; margin:0; }.trade-heading>a { font-size:13px; padding-top:12px; white-space:nowrap; }
.trade-steps { list-style:none; padding:0; margin:0 0 26px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid #dae5ee; border-radius:10px; background:#f8fafc; overflow:hidden; }.trade-steps li { display:flex; gap:12px; align-items:center; padding:16px 20px; font-size:14px; font-weight:600; }.trade-steps li+li { border-left:1px solid #dae5ee; }.trade-steps li>span { font-size:13px; color:#3b759d; background:#e7f0f7; border-radius:8px; padding:9px; }.trade-steps small { display:block; color:#6b7e90; font-size:12px; font-weight:400; margin-top:4px; }
.trade-intake .form-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px 22px; }.trade-intake label { font-size:13px; color:#40596e; }.trade-intake input,.trade-intake select,.trade-intake textarea { font-size:14px; border-color:#cbd8e3; border-radius:6px; }.trade-intake .section-heading h3 { margin:0; }.trade-intake .section-heading p { margin:6px 0 0; font-size:13px; }.trade-ai-state,.trade-section-tag { border:1px solid #d6e4ec; background:#fff; border-radius:20px; padding:5px 10px; font-size:12px; color:#52758b; }.trade-intake .trade-source { background:#f6f9fc; padding:22px; }.trade-intake .trade-source>.section-heading { margin-bottom:18px; }.trade-intake .trade-source-actions button,.trade-intake .trade-source-actions .button { min-height:38px; padding:9px 15px; border-radius:6px; font-size:13px; }.trade-intake .trade-source-actions [data-trade-file-name] { font-size:13px; color:#667e92; flex:1; }.trade-intake .trade-source small { line-height:1.6; }.trade-intake .trade-lines-wrap { border:1px solid #dce5ed; border-radius:8px; }.trade-intake .trade-lines th { padding:12px 8px; color:#536b80; background:#f0f5f9; font-weight:600; }.trade-intake .trade-confirm { padding:20px; margin-top:20px; background:#f4f8fb; border:1px solid #dce5ed; border-radius:8px; }.trade-intake .trade-confirm label { max-width:70%; line-height:1.6; }.trade-intake .trade-confirm input { flex-shrink:0; }.trade-intake .trade-total { padding:20px 0 0; font-size:13px; color:#60758a; }
@media(max-width:1000px) { .trade-intake .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.trade-steps li { padding:12px; gap:8px; }.trade-steps small { display:none; } }
@media(max-width:600px) { .trade-intake .trade-heading { flex-direction:column; gap:8px; }.trade-heading h2 { font-size:23px; }.trade-steps li { flex-direction:column; font-size:12px; padding:12px 5px; }.trade-intake .form-grid { grid-template-columns:1fr; }.trade-intake .form-grid .wide { grid-column:auto; }.trade-intake .trade-confirm label { max-width:100%; }.trade-intake .trade-source { padding:14px; } }
.trade-intake { max-width:1500px; margin-inline:auto; }.trade-intake h3 { font-size:16px; margin:0 0 14px; }.trade-intake form>section { padding:22px 0; border-bottom:1px solid var(--line); }.trade-source { padding:18px; background:#f2f7fc; border:1px solid #dce7f0; border-radius:10px; }.trade-source-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:14px; }.trade-source-actions .button { position:relative; overflow:hidden; cursor:pointer; }.trade-source-actions .button:focus-within { outline:2px solid #2f75ac; outline-offset:2px; }.trade-file { position:absolute; inset:0; opacity:0; cursor:pointer; }.trade-paste { display:block; margin:12px 0; }.trade-paste textarea { display:block; width:100%; margin-top:7px; }.trade-source small { color:#526d82; }.trade-feedback { white-space:pre-wrap; padding:12px 16px; border-left:3px solid #377aaf; background:#f1f7fc; font-size:14px; }.trade-lines-wrap { overflow-x:auto; }.trade-lines { min-width:1000px; table-layout:fixed; }.trade-lines th { font-size:12px; }.trade-lines th:nth-child(1) { width:60px; }.trade-lines th:nth-child(2) { width:155px; }.trade-lines th:nth-child(3) { width:300px; }.trade-lines th:nth-child(5) { width:70px; }.trade-lines th:last-child { width:65px; }.trade-lines td { padding:8px 5px; }.trade-lines input { width:100%; min-width:0; padding:8px; }.trade-lines button { padding:7px; }.trade-total { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:20px; padding-top:16px; }.trade-total label { display:flex; align-items:center; gap:12px; }.trade-total input { width:200px; }.trade-confirm { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; padding:20px 0 4px; }.trade-confirm label { display:flex; align-items:center; gap:9px; }.trade-confirm input { width:auto; }.trade-confirm button { flex-shrink:0; }
@media(max-width:1100px) { .trade-choices { grid-template-columns:1fr; } }
@media(max-width:600px) { .trade-source { padding:12px; }.trade-total { justify-content:flex-start; }.trade-total label { flex-wrap:wrap; }.trade-confirm button { width:100%; } }
.intake-heading,.section-heading,.next-actions { display:flex; align-items:center; justify-content:space-between; gap:20px; }.intake-heading h2,.section-heading h2,.next-actions h2 { margin:3px 0; }.next-actions>div:last-child,.row-actions { display:flex; flex-wrap:wrap; gap:7px; }.next-actions form,.row-actions form { margin:0; }.mini { padding:5px 8px; font-size:12px; }
.settlement-strip { display:grid; grid-template-columns:1.2fr repeat(3,1fr); gap:10px; margin:13px 0 16px; }.settlement-strip>div { min-height:68px; padding:11px 12px; border:1px solid var(--line); border-radius:8px; background:#f9fbfc; }.settlement-strip span,.settlement-strip strong { display:block; }.settlement-strip span { color:#687e8d; font-size:12px; }.settlement-strip strong { margin-top:5px; }.settlement-strip .total { border-color:#77afd2; background:var(--sky); }.settlement-strip .total strong { color:var(--navy); font-size:18px; }
.workflow-board { display:grid; gap:12px; margin-bottom:18px; }.workflow-lane { display:grid; grid-template-columns:210px 1fr; gap:15px; align-items:stretch; }.lane-title { display:flex; gap:12px; align-items:center; padding:16px 18px; border-radius:10px; color:#fff; background:var(--navy); }.lane-title>span { display:grid; place-items:center; min-width:34px; height:34px; border-radius:50%; background:#ffffff18; color:#9fc9e5; font-size:12px; font-weight:800; }.lane-title h2 { margin:0; font-size:16px; }.lane-title p { margin:2px 0 0; color:#bcd2e1; font-size:12px; }.workflow-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.workflow-step { position:relative; display:grid; grid-template-columns:34px 1fr auto; gap:10px; align-items:center; min-height:78px; padding:13px 15px; border:1px solid var(--line); border-radius:10px; color:#172b3a; background:#fff; box-shadow:0 3px 12px #102a4308; }.workflow-step:not(.muted):hover { border-color:#72a9cf; box-shadow:0 7px 20px #1769aa18; transform:translateY(-1px); }.workflow-step:not(:last-child)::after { content:"›"; position:absolute; z-index:2; right:-11px; top:25px; color:#8ca3b3; font-size:22px; font-weight:800; }.workflow-step .step-number { display:grid; place-items:center; width:30px; height:30px; border-radius:7px; color:#0e6097; background:var(--sky); font-weight:800; }.workflow-step b,.workflow-step small { display:block; }.workflow-step small { margin-top:3px; color:#687e8d; line-height:1.3; }.workflow-step>strong { min-width:32px; text-align:center; color:var(--blue); font-size:22px; }.workflow-step.muted { color:#6d7d88; background:#f7f9fb; }.workflow-step.muted .step-number { color:#7b8a94; background:#e9eef2; }.dashboard-grid { display:grid; grid-template-columns:minmax(0,3fr) minmax(240px,1fr); gap:16px; align-items:start; }.support-links { display:grid; gap:10px; }.support-links h2 { margin-bottom:2px; }.support-links a { display:grid; gap:2px; padding:12px; border:1px solid var(--line); border-radius:8px; }.support-links a:hover { border-color:#72a9cf; background:#f8fbfd; }.support-links span { color:#687e8d; font-size:12px; }
.personal-work { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:18px; }.personal-work .panel { margin:0; }.responsibility-panel { border-top:4px solid #91a9b8; }.responsibility-panel.primary { border-top-color:var(--blue); }.responsibility-panel .section-heading { margin-bottom:9px; }.responsibility-panel .section-heading h2 { margin:0; }.responsibility-panel .section-heading p { margin:3px 0 0; }.responsibility-count { display:inline-grid; place-items:center; min-width:25px; height:25px; margin-left:5px; padding:0 7px; border-radius:99px; color:#0e6097; background:var(--sky); font-size:13px; }
.finance-metrics .metric { color:#405261; }.finance-ledger .section-heading { margin-bottom:10px; }.finance-state { color:#607786; font-size:12px; }.finance-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }.finance-summary a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px; border:1px solid var(--line); border-radius:8px; }.finance-summary strong { color:var(--navy); font-size:22px; }.finance-filter { flex-wrap:wrap; }.finance-filter select { min-width:145px; width:auto; }.finance-filter input { min-width:210px; width:auto; }
.dashboard-pulse { display:flex; gap:10px; }.dashboard-pulse a { display:grid; min-width:110px; padding:10px 14px; border:1px solid #ffffff35; border-radius:8px; color:#fff; text-align:center; }.dashboard-pulse b { font-size:20px; }.dashboard-pulse span { color:#c8ddea; font-size:11px; }.workflow-steps.four { grid-template-columns:repeat(4,minmax(0,1fr)); }.dashboard-process .workflow-step { min-height:88px; }
.personalized-workspace { border:1px solid #d6e2ea; border-left:5px solid #2f6f9f; color:#18344c; background:linear-gradient(110deg,#fff 0%,#f7fbfd 68%,#edf5fa 100%); box-shadow:0 5px 18px #18344c0b; }.personalized-workspace .eyebrow { color:#4d84aa; }.personalized-workspace h2 { color:#18344c; }.personalized-workspace p { color:#607584; }.personalized-workspace .dashboard-pulse a { border-color:#cddde7; color:#285f88; background:#fff; box-shadow:0 2px 8px #18344c0a; }.personalized-workspace .dashboard-pulse a:hover { border-color:#8bb4cf; background:#f7fbfe; }.personalized-workspace .dashboard-pulse span { color:#6f8491; }.dashboard-process { gap:10px; }.dashboard-process .workflow-lane { --lane:#2f6f9f; --lane-soft:#edf5fa; grid-template-columns:200px minmax(0,1fr); gap:10px; padding:10px; border:1px solid #dce4e9; border-radius:10px; background:#fff; box-shadow:0 3px 12px #18344c08; }.dashboard-process .workflow-lane:nth-child(2) { --lane:#328078; --lane-soft:#edf7f5; }.dashboard-process .workflow-lane:nth-child(3) { --lane:#c46b27; --lane-soft:#fff5eb; }.dashboard-process .lane-title { color:#273e4f; background:var(--lane-soft); border-left:4px solid var(--lane); }.dashboard-process .lane-title>span { color:#fff; background:var(--lane); }.dashboard-process .lane-title p { color:#6e818c; }.dashboard-process .workflow-step { min-height:74px; border-color:#e0e6ea; border-radius:8px; background:#fbfcfd; box-shadow:none; }.dashboard-process .workflow-step .step-number { color:var(--lane); background:var(--lane-soft); }.dashboard-process .workflow-step>strong { color:var(--lane); }.dashboard-process .workflow-step:hover { border-color:color-mix(in srgb,var(--lane) 45%,#dce4e9); background:#fff; box-shadow:0 5px 16px #18344c10; }
.communication-shell { display:grid; grid-template-columns:250px minmax(0,1fr); height:calc(100dvh - 44px); min-height:520px; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 7px 24px #102a430d; }.communication-rail { display:flex; min-width:0; flex-direction:column; border-right:1px solid var(--line); background:#f8fafc; }.communication-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; padding:18px 12px 10px; }.communication-heading h2 { margin:2px 0; font-size:20px; }.communication-heading p { margin:0; color:#6b8191; font-size:11px; }.communication-search { padding:0 10px 10px; color:#647987; font-size:11px; }.communication-search input { margin-top:3px; background:#fff; }.communication-list { min-height:0; overflow:auto; padding:0 7px 12px; }.room-row,.person-row { display:grid; width:100%; grid-template-columns:40px minmax(0,1fr) auto; gap:8px; align-items:center; padding:8px; border:0; border-radius:8px; color:#243a49; background:transparent; text-align:left; }.room-row:hover,.person-row:hover,.room-row.active { background:#e6f1f8; }.room-row>span:nth-child(2),.person-row>span:nth-child(2) { min-width:0; }.room-row b,.person-row b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.room-row small,.person-row small { display:none; }.room-row em { display:grid; min-width:20px; height:20px; place-items:center; padding:0 5px; border-radius:99px; color:#fff; background:var(--blue); font-size:10px; font-style:normal; }.person-row em { color:#638092; font-size:10px; font-style:normal; }.person-row:disabled { opacity:.62; cursor:default; }.chat-avatar { display:grid; width:38px; height:38px; place-items:center; border-radius:50%; color:#12679f; background:#ddebF5; font-size:11px; font-weight:800; }.chat-avatar.group { color:#765600; background:#ffefbd; }.chat-placeholder { padding:28px 14px; color:#718796; text-align:center; }.conversation-panel { position:relative; display:grid; min-width:0; grid-template-rows:auto minmax(0,1fr) auto; background:#f4f7f9; }.conversation-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 20px; border-bottom:1px solid var(--line); background:#fff; }.conversation-header h2 { margin:0; font-size:18px; }.conversation-header p { margin:3px 0 0; color:#708390; font-size:11px; }.message-list { display:flex; min-height:0; flex-direction:column; overflow-x:hidden; overflow-y:scroll; overscroll-behavior:contain; scrollbar-gutter:stable; scrollbar-color:#7fa7bd #e5edf2; padding:20px; }.message-list::-webkit-scrollbar { width:12px; }.message-list::-webkit-scrollbar-track { background:#e5edf2; }.message-list::-webkit-scrollbar-thumb { min-height:42px; border:3px solid #e5edf2; border-radius:9px; background:#7fa7bd; }.message-list::-webkit-scrollbar-thumb:hover { background:#4d829f; }.conversation-empty { display:grid; height:100%; min-height:180px; place-content:center; gap:6px; color:#69808e; text-align:center; }.conversation-empty b { color:#405765; }.message { display:flex; width:min(680px,88%); flex:0 0 auto; flex-direction:column; align-items:flex-start; gap:3px; margin:0 0 14px; }.message.mine { margin-left:auto; align-items:flex-end; }.message>span { padding:0 4px; color:#6f8390; font-size:10px; }.message>div { min-width:90px; max-width:100%; padding:9px 11px; border:1px solid #d9e3e9; border-radius:5px 12px 12px; background:#fff; box-shadow:0 2px 7px #102a4307; }.message.mine>div { border-color:#b9dbef; border-radius:12px 5px 12px 12px; background:#dff2fd; }.message p { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }.message time { display:block; margin-top:4px; color:#7b8d97; font-size:9px; text-align:right; }.message-read { display:block; margin-top:2px; color:#81919b; font-size:9px; text-align:right; }.message-read.read { color:#1672ad; }.message-file { padding:0; color:#116ca7; background:transparent; text-align:left; }.message-composer { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:9px; align-items:end; padding:12px 16px; border-top:1px solid var(--line); background:#fff; }.message-composer[aria-disabled="true"] { background:#f8fafc; }.message-composer[aria-disabled="true"] .file-trigger { opacity:.55; cursor:not-allowed; }.message-entry { display:grid; gap:2px; }.message-entry small { color:#738692; font-weight:400; }.message-composer textarea { min-height:42px; max-height:130px; }.file-trigger { display:grid; min-width:108px; min-height:42px; place-items:center; padding:0 12px; border:1px dashed #7fa8c1; border-radius:7px; color:#235c7c; background:#f2f8fc; cursor:pointer; font-size:13px; font-weight:750; }.file-trigger input { display:none; }.chat-drop-overlay { position:absolute; z-index:5; inset:12px; display:none; place-items:center; border:3px dashed #3990c8; border-radius:12px; color:#0d5f95; background:#e8f3fbeb; font-size:20px; font-weight:800; pointer-events:none; }.conversation-panel.is-file-dragging .chat-drop-overlay { display:grid; }.group-dialog { width:min(560px,calc(100vw - 32px)); max-height:80vh; border:0; border-radius:12px; padding:0; box-shadow:0 18px 60px #0a20384d; }.group-dialog::backdrop { background:#0d263b73; }.group-dialog form { display:grid; gap:12px; padding:20px; }.group-member-list { max-height:320px; overflow:auto; border:1px solid var(--line); border-radius:7px; }.group-member-list label { display:grid; grid-template-columns:auto 1fr; gap:10px; padding:9px 11px; border-bottom:1px solid #e4ebf0; }.group-member-list label:last-child { border-bottom:0; }.group-member-list small { display:block; color:#758995; }.error-text { color:var(--red)!important; }
.chat-avatar { position:relative; }.chat-avatar.broadcast { color:#fff; background:linear-gradient(145deg,#d63031,#a90d20); }.unread-dot { position:absolute; top:-1px; right:-1px; width:10px; height:10px; border:2px solid #fff; border-radius:50%; background:#e02b2b; }.room-row em { background:#e02b2b; }.broadcast-row { margin-bottom:4px; border-bottom:1px solid #e5ebef; }.conversation-panel { grid-template-rows:auto auto minmax(0,1fr) auto; }.broadcast-stack { max-height:46vh; overflow:auto; padding:14px 18px 2px; background:#fff7e8; border-bottom:1px solid #edcf91; }.broadcast-banner { margin-bottom:12px; padding:14px 16px; border:1px solid #e1ad4f; border-left:5px solid #d77800; border-radius:8px; color:#49320f; background:#fff; box-shadow:0 5px 16px #9c5f1518; }.broadcast-banner>div,.broadcast-banner footer { display:flex; justify-content:space-between; align-items:center; gap:12px; }.broadcast-banner>div span { color:#ad4d00; font-weight:800; }.broadcast-banner time,.broadcast-banner small { color:#80694b; font-size:10px; }.broadcast-banner p { margin:9px 0; white-space:pre-wrap; font-size:15px; font-weight:650; }.conversation-empty.compact { min-height:100px; }.composer-tools { display:flex; flex-wrap:wrap; gap:5px; }.composer-tool { display:grid; min-width:48px; min-height:42px; place-items:center; align-content:center; gap:0; padding:3px 7px; border:1px solid #c7d8e3; border-radius:7px; color:#235c7c; background:#f2f8fc; cursor:pointer; font-size:17px; font-weight:700; }.composer-tool small { color:#58778a; font-size:9px; }.composer-tool input { display:none; }.composer-tool.recording { color:#fff; background:#d42b2b; animation:pulse-recording 1s infinite alternate; }.composer-tool.recording small { color:#fff; }.mobile-capture { display:none; }.quick-replies { display:flex; gap:3px; }.quick-replies button { padding:1px 5px; color:#334f61; background:transparent; font-size:17px; }.pending-attachments { display:flex; flex-wrap:wrap; gap:5px; padding:4px 0 2px; }.pending-attachments[hidden] { display:none; }.pending-attachment { display:flex; max-width:100%; align-items:center; gap:6px; padding:5px 7px; border:1px solid #bdd5e4; border-radius:7px; color:#244b63; background:#edf7fc; font-size:11px; }.pending-attachment b { max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.pending-attachment small { color:#6b8392; }.pending-attachment button { padding:0 3px; color:#8b3b34; background:transparent; font-size:15px; line-height:1; }.message-entry textarea { margin-top:2px; }@keyframes pulse-recording { to { filter:brightness(1.25); } }
.unread-sources { position:relative; display:flex; align-items:center; gap:7px; margin:4px 8px 8px; padding:8px 10px; border:1px solid #f0c8c8; border-radius:7px; color:#6b2a2a; background:#fff5f5; font-size:11px; }.unread-sources .unread-dot { position:static; border:0; box-shadow:none; }.unread-sources span:last-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.conversation-actions { display:flex; align-items:center; gap:4px; }.icon-action { display:grid; width:36px; height:36px; place-items:center; padding:0; border:1px solid transparent; border-radius:7px; color:#506979; background:transparent; font-size:18px; font-weight:700; }.icon-action:hover,.icon-action:focus-visible { border-color:#cbdce7; color:#146fa8; background:#edf6fb; }.communication-dialog { width:min(900px,calc(100vw - 32px)); max-height:min(86vh,820px); border:0; border-radius:12px; padding:0; box-shadow:0 20px 70px #0b243b52; }.communication-dialog::backdrop { background:#0d263b73; }.dialog-panel { display:grid; gap:14px; padding:20px; }.dialog-panel h2 { margin:2px 0 0; }.dialog-tabs { display:flex; gap:4px; border-bottom:1px solid #d9e4eb; }.dialog-tabs button { margin-bottom:-1px; padding:9px 14px; border:0; border-bottom:3px solid transparent; border-radius:0; color:#687e8c; background:transparent; }.dialog-tabs button.active { border-bottom-color:#1876b2; color:#135f91; }.files-toolbar { display:grid; grid-template-columns:minmax(220px,1fr) minmax(280px,1.4fr); gap:12px; align-items:end; }.drive-upload { min-height:58px; justify-content:center; padding:8px 12px; border:1px dashed #87acc3; border-radius:8px; color:#195f8b; background:#f1f8fc; cursor:pointer; text-align:center; }.drive-upload input { display:none; }.drive-upload small { color:#6c8493; font-size:10px; }.drive-upload.is-file-dragging { border-color:#1681c0; background:#e3f3fc; box-shadow:0 0 0 3px #1a83bf22; }.drive-library-toolbar { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(120px,.6fr) minmax(240px,1.3fr) auto; gap:10px; align-items:end; padding:10px; border:1px solid #dbe8ef; border-radius:9px; background:#f5f9fb; }.drive-new-folder { display:grid; grid-template-columns:1fr auto; }.drive-new-folder>input { grid-column:1 }.drive-new-folder>button { grid-column:2; grid-row:2; border-radius:0 5px 5px 0; }.drive-new-folder>input { border-radius:5px 0 0 5px; }.drive-folder-actions { display:flex; gap:5px; padding-bottom:1px; }.drive-edit-dialog { width:min(520px,calc(100vw - 32px)); }.drive-edit-dialog form>button[type="submit"] { justify-self:end; }.file-center-list { min-height:180px; max-height:46vh; overflow:auto; border:1px solid #dde6ec; border-radius:9px; background:#fff; }.file-center-row { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 12px; border-bottom:1px solid #e6edf1; }.file-center-row:last-child { border-bottom:0; }.file-center-row>div:nth-child(2) { min-width:0; }.file-center-row b,.file-center-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.file-center-row small { margin-top:3px; color:#748895; font-size:10px; }.file-kind { display:grid; width:34px; height:34px; place-items:center; border-radius:8px; color:#156da3; background:#e4f1f8; font-size:12px; font-weight:800; }.file-row-actions { display:flex; gap:5px; }.link-danger { color:#a82a21; background:transparent; }.file-center-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; color:#6a808e; font-size:11px; }.member-summary { display:flex; flex-wrap:wrap; gap:8px; max-height:180px; overflow:auto; }.member-chip { display:grid; grid-template-columns:32px auto; grid-template-rows:auto auto; column-gap:8px; align-items:center; min-width:150px; padding:8px 10px; border:1px solid #dfe8ed; border-radius:8px; background:#f8fafb; }.member-chip i { display:grid; grid-row:1/3; width:30px; height:30px; place-items:center; border-radius:50%; color:#176a9e; background:#deedf6; font-size:10px; font-style:normal; font-weight:800; }.member-chip small { color:#718591; font-size:10px; }.settings-room-info dl { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0; }.settings-room-info dl div { padding:10px; border:1px solid #dfe7ec; border-radius:8px; background:#f8fafb; }.settings-room-info dt { color:#708592; font-size:10px; }.settings-room-info dd { margin:3px 0 0; color:#263e4d; font-weight:700; }.settings-dialog form { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:end; }
.message-image { display:grid; max-width:min(420px,70vw); overflow:hidden; padding:0; border:0; border-radius:9px; color:#607786; background:#edf3f6; text-align:center; }.message-image img { display:block; max-width:100%; max-height:360px; object-fit:contain; }.message-image small { padding:18px 24px; }.message-image.loaded small { display:none; }.communication-image-dialog { width:min(1100px,calc(100vw - 30px)); max-height:92vh; border:0; border-radius:12px; padding:0; background:#13232d; box-shadow:0 24px 80px #06131bcc; }.communication-image-dialog::backdrop { background:#07151dcc; }.image-preview-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; color:#fff; }.communication-image-dialog>img { display:block; width:100%; max-height:calc(92vh - 52px); object-fit:contain; background:#0c171e; }
.icon-action svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.conversation-actions [data-enable-chat-notifications][aria-pressed="true"] { color:#146fa8; background:#e7f3fa; }
label { display:flex; flex-direction:column; gap:4px; color:#405261; font-weight:600; } input,select,textarea { width:100%; border:1px solid #b8c7d2; border-radius:4px; padding:7px 9px; background:#fff; color:#172b3a; font:inherit; } textarea { min-height:62px; resize:vertical; } input:focus,select:focus,textarea:focus { outline:3px solid #2f80bd26; border-color:var(--blue); }
.searchable-select { display:grid; gap:5px; width:100%; min-width:0; }.select-option-search { padding:7px 9px; background:#f8fbfd; }.inline-form>.searchable-select { width:auto; min-width:170px; }
input[type="checkbox"] { width:auto; align-self:flex-start; }
.file-drop-target { border-radius:7px; transition:border-color .15s,background .15s,box-shadow .15s; }.file-drop-target.is-file-dragging { background:#e8f3fb; box-shadow:0 0 0 3px #2f80bd35; }.file-drop-hint { color:#6c8290; font-weight:400; }
.file-receiver { position:relative; min-width:0; width:100%; padding:18px; background:#f8fafc; border:1px dashed #a6bed0; color:#365770; }.file-receiver:focus-within { outline:2px solid #478bb7; outline-offset:2px; }.file-receiver-main { display:flex; align-items:center; gap:14px; }.file-receiver-main svg { width:30px; height:30px; stroke:#5484a4; stroke-width:1.5; fill:none; flex-shrink:0; }.file-receiver-main>div { flex:1; }.file-receiver-main strong { display:block; font-size:14px; font-weight:600; }.file-receiver-main small { display:block; margin-top:5px; color:#738799; font-size:12px; font-weight:400; }.file-receiver-selection { display:flex; align-items:center; gap:12px; margin-top:12px; padding-top:10px; border-top:1px solid #e0e8ef; font-size:12px; color:#637e92; overflow-wrap:anywhere; }.file-receiver-selection>span { flex:1; }.file-receiver button { font-size:13px; white-space:nowrap; }.file-receiver .file-receiver-native { position:absolute; width:1px; height:1px; opacity:0; padding:0; border:0; bottom:0; }.compact-upload .file-receiver-native { display:block!important; }.attachment-form .file-receiver { padding:10px; }.attachment-form .file-receiver-main svg { display:none; }
.file-ai-review:not([hidden]) { display:flex; align-items:center; gap:8px; padding:12px; background:#fff8e9; border:1px solid #ead6aa; border-radius:6px; font-size:13px; }.file-ai-review input { width:auto; }.file-receiver-selection { flex-wrap:wrap; }
@media(max-width:600px) { .file-receiver-main { flex-wrap:wrap; }.file-receiver-main>button { width:100%; }.file-receiver { padding:14px; } }
.company-role-fields { display:grid; gap:8px; border:1px solid var(--line); border-radius:6px; padding:10px; }
.company-role-fields label,.company-role-form label { flex-direction:row; align-items:center; gap:6px; white-space:nowrap; }
.company-role-form { margin-top:0; align-items:center; flex-wrap:nowrap; }.company-role-form button { padding:6px 9px; }
.stack { display:grid; gap:8px; }.form-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px 12px; margin-top:12px; }.form-grid .wide { grid-column:1/-1; }.form-grid>button { align-self:end; width:max-content; }
.accounting-entry>details>summary { padding-bottom:2px; }.accounting-entry>details>.muted { margin:8px 0 2px; }.entry-section { min-width:0; margin:0; padding:12px 14px 14px; border:1px solid #dbe5eb; border-radius:8px; background:#fbfcfd; }.entry-section legend { padding:0 8px 0 0; color:#2e5069; font-size:13px; font-weight:750; }.entry-section legend span { display:inline-grid; width:22px; height:22px; margin-right:7px; place-items:center; border-radius:50%; color:#fff; background:#2f6f9f; font-size:11px; }.entry-section>.form-grid { margin-top:9px; }.required-note { display:block; margin:1px 0 3px; color:#9a5b00; font-size:11px; }.required-note.optional { color:#687d8b; }.entry-actions { display:flex; justify-content:flex-end; padding-top:2px; }.entry-actions button { min-width:132px; }
details>summary { cursor:pointer; font-size:16px; font-weight:700; color:var(--navy); }
.supplier-invoice-history>.section-heading { gap:18px; }.completeness-legend { display:flex; flex-wrap:wrap; gap:12px; color:#5f7382; font-size:12px; }.completeness-legend>span,.completeness-marker { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }.completeness-dot { width:9px; height:9px; flex:0 0 9px; border-radius:50%; box-shadow:0 0 0 3px #fff; }.completeness-dot.complete { background:#2f8a68; }.completeness-dot.incomplete { background:#d9822b; }.supplier-invoice-year { margin-top:10px; border:1px solid #dce5eb; border-radius:8px; background:#fbfcfd; overflow:hidden; }.supplier-invoice-year>summary,.supplier-invoice-month>summary { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:11px 14px; list-style-position:inside; }.supplier-invoice-year>summary { background:#edf3f7; color:#243f54; }.supplier-invoice-month { margin:10px; border:1px solid #e3e9ed; border-radius:7px; background:#fff; overflow:hidden; }.supplier-invoice-month>summary { font-size:14px; color:#405b6e; }.supplier-invoice-year summary>span:first-child { display:inline-flex; align-items:center; gap:9px; }.supplier-invoice-month .table-wrap { margin:0 10px 10px; }.period-meta { color:#6e818e; font-size:12px; font-weight:500; }.supplier-invoice-history th:first-child,.supplier-invoice-history td:first-child { width:82px; }
.invoice-periods { display:grid; gap:10px; margin-top:12px; }.invoice-year { overflow:hidden; border:1px solid #d8e3e9; border-radius:10px; background:#f9fbfc; }.invoice-year>summary,.invoice-month>summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 14px; cursor:pointer; list-style-position:inside; }.invoice-year>summary { color:#193e58; background:linear-gradient(90deg,#eaf2f6,#f4f8fa); }.invoice-year>summary>span,.invoice-month>summary>span { display:inline-flex; align-items:center; gap:9px; }.invoice-month { margin:10px; overflow:hidden; border:1px solid #e0e8ed; border-radius:8px; background:#fff; }.invoice-month>summary { color:#405b6e; background:#fbfcfd; }.invoice-month .table-wrap { margin:0 10px 10px; }.invoice-periods th:first-child,.invoice-periods td:first-child { width:112px; }.invoice-periods details[open]>summary { box-shadow:inset 3px 0 0 #3a8aaa; }
.record-editor { width:min(760px,calc(100vw - 28px)); max-height:90vh; padding:0; border:0; border-radius:14px; box-shadow:0 24px 80px #0c2b4052; }.record-editor::backdrop { background:#102a436b; backdrop-filter:blur(3px); }.record-editor-panel { display:grid; gap:18px; padding:22px; background:#fff; }.record-editor-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:14px; border-bottom:1px solid #dfe7ec; }.record-editor-heading h2 { margin:3px 0; font-size:21px; }.record-editor-heading p { margin:0; color:#6b7f8c; }.record-editor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 15px; }.record-editor-grid label { display:grid; gap:5px; color:#3f596a; font-size:12px; font-weight:750; }.record-editor-grid .wide { grid-column:1/-1; }.record-editor-grid textarea { min-height:84px; }.record-editor-actions { display:flex; justify-content:flex-end; gap:9px; padding-top:2px; }.compact-upload { display:inline-flex; align-items:center; gap:5px; margin-top:5px; }.compact-upload label { margin:0; }.compact-upload input[type="file"] { display:none; }.settlement-ready tbody td:last-child .button { display:inline-flex; margin:2px 0; border-radius:6px; }.settlement-ready tbody tr:nth-child(even) td:last-child .button { border-color:#b6d4e5; color:#176da4; background:#e7f2f8; }.settlement-ready tbody tr:nth-child(odd) td:last-child .button { border-color:#2c79aa; color:#fff; background:#2c79aa; }
.project-year { border-top:1px solid var(--line); padding:12px 0 0; margin-top:12px; }.project-year>summary { font-size:16px; }.project-period { margin:10px 0 0 18px; }.project-period>summary { font-size:14px; color:#405261; }.project-period .table-wrap { margin-top:8px; }.sort-link { color:inherit; display:block; }
.project-entry-note { display:flex; align-items:center; gap:14px; }.project-entry-note span { color:#607786; }.project-entry-note .button { margin-left:auto; }.current-projects { margin:16px 0 22px; }.completed-projects { padding-top:18px; border-top:1px solid var(--line); }.project-state { display:inline-block; min-width:62px; padding:3px 9px; border-radius:99px; font-weight:750; text-align:center; }.project-state.settled { color:#0d693f; background:#dff4e9; }.project-state.unsettled { color:#8a5a00; background:#fff0bd; }.project-state.neutral { color:#5f6f79; background:#e9eef2; }
.inline-form { display:flex; align-items:end; gap:9px; margin-top:14px; }.inline-form select { min-width:170px; }.attachment-form { display:flex; align-items:end; gap:10px; margin-top:14px; }.attachment-form label { flex:1; }
.project-hero { display:grid; grid-template-columns:minmax(260px,1fr) minmax(400px,2fr); gap:28px; }.project-hero h2 { margin:8px 0; font-size:23px; }.facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.facts div { border-left:3px solid #dce8f0; padding-left:10px; }.facts span,.invoice-parties span { display:block; color:#6a7f8e; font-size:12px; }.facts strong { display:block; margin-top:3px; }
.invoice-actions { display:flex; justify-content:flex-end; gap:8px; margin-bottom:12px; }.invoice-actions form { margin:0; }.danger { background:#b42318; }
.invoice-sheet { position:relative; width:min(8.5in,100%); min-height:11in; margin:0 auto 18px; padding:.45in; background:#fff; color:#111; border:1px solid #c8c8c8; box-shadow:0 5px 24px #102a4312; font:12px/1.35 Arial,Helvetica,sans-serif; }.void-watermark { position:absolute; inset:38% 10% auto; z-index:2; transform:rotate(-24deg); color:#b42318; border:8px solid #b42318; padding:12px; text-align:center; font-size:72px; font-weight:800; line-height:.8; letter-spacing:.12em; opacity:.26; pointer-events:none; }.void-watermark span { display:block; margin-top:16px; font-size:28px; letter-spacing:.25em; }.document-header { display:grid; grid-template-columns:1.2fr 1fr; gap:28px; align-items:start; }.issuer { display:flex; gap:14px; align-items:flex-start; }.issuer img { width:112px; height:auto; object-fit:contain; }.issuer strong { display:block; margin-top:4px; font-size:18px; }.issuer p { margin:5px 0 0; }.document-title { text-align:right; }.document-title h2 { margin:0 0 14px; font-size:25px; letter-spacing:.02em; }.document-meta,.document-reference table { margin-left:auto; min-width:280px; border-collapse:collapse; }.document-meta th,.document-meta td,.document-reference th,.document-reference td { border:1px solid #111; padding:4px 8px; text-align:center; }.document-meta th,.document-reference th { background:#efefef; color:#111; font-size:10px; letter-spacing:.02em; }.document-parties { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:24px; }.document-parties>div { min-height:105px; border:1px solid #111; padding:0 9px 9px; }.document-parties span { display:block; margin:0 -9px 8px; padding:3px 9px; background:#efefef; border-bottom:1px solid #111; font-weight:bold; }.document-reference { display:flex; justify-content:flex-end; margin:16px 0; }.document-lines { width:100%; min-width:0; border-collapse:collapse; }.document-lines th,.document-lines td { border:1px solid #111; padding:5px 6px; text-align:left; vertical-align:top; }.document-lines th { background:#efefef; color:#111; font-size:10px; }.document-lines th:nth-child(1) { width:16%; }.document-lines th:nth-child(2) { width:38%; }.document-lines th:nth-child(3) { width:10%; }.document-lines th:nth-child(4) { width:8%; }.document-lines th:nth-child(5),.document-lines th:nth-child(6) { width:14%; }.document-lines .number,.document-totals td { text-align:right; white-space:nowrap; }.document-bottom { display:grid; grid-template-columns:1fr 320px; gap:26px; margin-top:20px; align-items:start; }.bank-information { border:1px solid #111; min-height:142px; padding:8px; }.bank-information strong { display:block; margin:-8px -8px 7px; padding:4px 8px; border-bottom:1px solid #111; background:#efefef; }.bank-information p { margin:0; }.document-totals { width:100%; min-width:0; border-collapse:collapse; }.document-totals th,.document-totals td { border-bottom:1px solid #111; padding:6px 8px; }.document-totals th { background:#fff; color:#111; font-size:12px; text-align:left; text-transform:none; letter-spacing:0; }.document-totals .grand th,.document-totals .grand td,.document-totals .balance th,.document-totals .balance td { border-top:2px solid #111; font-size:15px; font-weight:bold; }.document-footer { margin-top:36px; border-top:1px solid #111; padding-top:7px; text-align:center; }
.delivery-note-controls { margin:0; }.delivery-note-sheet { font-size:13px; }.delivery-party { display:grid; grid-template-columns:1fr 1fr; margin-top:24px; }.delivery-party>div { grid-column:2; min-height:105px; border:1px solid #111; padding:0 9px 9px; }.delivery-party span { display:block; margin:0 -9px 8px; padding:3px 9px; background:#efefef; border-bottom:1px solid #111; font-weight:bold; }.delivery-lines th:nth-child(1) { width:15%; text-align:center; }.delivery-lines th:nth-child(2) { width:55%; }.delivery-lines th:nth-child(3) { width:15%; text-align:center; }.delivery-lines th:nth-child(4) { width:15%; text-align:center; }.delivery-lines td:nth-child(1),.delivery-lines td:nth-child(3),.delivery-lines td:nth-child(4) { text-align:center; }.delivery-signature { display:grid; grid-template-columns:1.2fr 1fr .7fr; gap:26px; margin-top:62px; }.delivery-signature span { padding:6px 2px; border-bottom:1px solid #111; }
.estimate-document-lines th:nth-child(1) { width:12%; }.estimate-document-lines th:nth-child(2) { width:43%; }.estimate-document-lines th:nth-child(3) { width:12%; }.estimate-document-lines th:nth-child(4),.estimate-document-lines th:nth-child(5) { width:16.5%; }.estimate-watermark { inset:40% 14% auto; font-size:48px; }
.invoice-request-picker { display:flex; align-items:center; justify-content:space-between; gap:20px; }.invoice-request-picker h2,.invoice-request-picker p { margin:0; }.invoice-request-picker p { margin-top:4px; }.invoice-request-sheet input,.invoice-request-sheet textarea { width:100%; min-width:0; padding:4px; border:0; border-bottom:1px dashed #8ea7b8; border-radius:0; background:#fffdf0; color:#111; font:inherit; }.invoice-request-sheet textarea { min-height:50px; resize:vertical; }.invoice-request-sheet .document-meta input,.invoice-request-sheet .document-reference input { text-align:center; }.invoice-request-sheet .document-totals input { display:inline-block; width:88px; padding:0 2px; text-align:right; }
.supplier-original iframe { display:block; width:100%; height:72vh; min-height:560px; margin-top:12px; border:1px solid var(--line); background:#eef3f7; }.supplier-original img { display:block; max-width:100%; max-height:76vh; margin:12px auto 0; border:1px solid var(--line); }
.invoice-request-picker { align-items:flex-start; }.invoice-project-picker { width:min(760px,100%); display:grid; grid-template-columns:1fr auto; gap:9px; }.invoice-project-options { grid-column:1/-1; max-height:260px; overflow:auto; border:1px solid #cad9e5; border-radius:8px; background:#fff; }.invoice-project-option { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:9px; padding:6px 11px; border-bottom:1px solid #e3ebf1; cursor:pointer; }.invoice-project-option:last-child { border-bottom:0; }.invoice-project-option:has(input:checked) { background:#eaf5ff; }.invoice-project-option:has(input:disabled) { opacity:.45; cursor:not-allowed; }.invoice-project-option input { width:auto; margin:0; }.invoice-project-option>span { min-width:0; display:flex; align-items:center; gap:5px; white-space:nowrap; }.invoice-project-option b { overflow:hidden; text-overflow:ellipsis; font-weight:500; }.invoice-project-option small { margin-left:auto; overflow:hidden; text-overflow:ellipsis; color:#60788b; }.invoice-selection-summary { display:flex; align-items:center; gap:14px; padding:12px 16px; }.invoice-selection-summary span { flex:1; color:#496479; }
.billing-summary { display:grid; gap:16px; }.billing-summary .section-heading { margin:0; }.invoice-project-context { display:grid; gap:7px; padding:11px 13px; border-radius:8px; background:#f1f7fb; }.invoice-project-context>div { display:grid; grid-template-columns:64px max-content 150px minmax(220px,1fr); gap:8px 12px; align-items:center; }.invoice-project-context span { color:#627b8d; font-size:12px; }.invoice-project-context strong { color:var(--navy); }.invoice-request-lines { min-width:860px; table-layout:fixed; }.invoice-request-lines col.item { width:72px; }.invoice-request-lines col.description { width:auto; }.invoice-request-lines col.quantity { width:78px; }.invoice-request-lines col.unit { width:100px; }.invoice-request-lines col.unit-price { width:118px; }.invoice-request-lines col.amount { width:98px; }.invoice-request-lines col.actions { width:58px; }.invoice-request-lines td { padding:3px; vertical-align:middle; }.invoice-request-lines textarea { min-height:44px; }.invoice-request-lines td:nth-child(5) input { text-align:right; }.billing-summary-total,.billing-check { display:flex; justify-content:flex-end; align-items:center; gap:14px; padding:12px 14px; border-radius:8px; background:var(--sky); }.billing-summary-total strong,.billing-check strong { color:var(--navy); font-size:18px; }.invoice-split-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; padding:14px; margin-bottom:12px; border:1px solid var(--line); border-radius:8px; background:#f8fbfd; }.invoice-split-row .wide { grid-column:1/-1; }.invoice-split-row>button { justify-self:start; }
.estimate-lines { min-width:760px; table-layout:fixed; }.estimate-lines col.item { width:80px; }.estimate-lines col.description { width:auto; }.estimate-lines col.quantity { width:100px; }.estimate-lines col.unit-price { width:130px; }.estimate-lines col.amount { width:110px; }.estimate-lines col.actions { width:58px; }.estimate-lines td { padding:4px; vertical-align:middle; }.estimate-lines textarea { min-height:46px; }.estimate-lines input,.estimate-lines textarea { width:100%; min-width:0; }
.table-wrap { overflow:auto; border:1px solid #e4ebf0; border-radius:4px; } table { width:100%; border-collapse:collapse; min-width:680px; } th,td { text-align:left; padding:7px 8px; border-bottom:1px solid #e5edf2; vertical-align:top; } th { position:sticky; top:0; z-index:1; color:#405b6e; background:#eef3f7; font-size:11px; text-transform:uppercase; letter-spacing:.03em; } tbody tr:nth-child(even) td { background:#fbfcfd; } tbody tr:hover td { background:#eef7fc; }.empty { text-align:center; padding:20px; color:#789; }
.entity,.match { display:inline-block; border-radius:99px; padding:2px 8px; font-size:11px; font-weight:700; }.entity.hijoy { color:#0d5f95; background:#ddecf7; }.entity.njhz { color:#7a4f00; background:#fff0c7; }.match.unmatched { color:#9b301e; background:#fde8e4; }.match.matched { color:#0d693f; background:#dff4e9; }
.notice { padding:11px 14px; margin-bottom:16px; border-radius:7px; background:#e5f6ed; color:var(--green); border:1px solid #bce5ce; }.notice.error { background:#fff0ee; color:var(--red); border-color:#f6c7c2; }
.notice.warning { background:#fff7df; color:#7a4f00; border-color:#efd38a; }.negative { color:var(--red); }.warning { color:#9a5b00; }
select[data-payment-entity]:disabled { color:#155f47; border-color:#8fc7b1; background:#edf8f3; opacity:1; cursor:not-allowed; font-weight:750; }
.global-broadcast-alert { margin:0 0 14px; padding:14px 17px; border:1px solid #e5b455; border-left:5px solid #d77800; border-radius:8px; color:#49320f; background:linear-gradient(105deg,#fffaf0,#fff 70%); box-shadow:0 6px 18px #9c5f1517; }.global-broadcast-alert>div,.global-broadcast-alert footer { display:flex; align-items:center; gap:10px; }.global-broadcast-alert>div span { padding:3px 7px; border-radius:99px; color:#fff; background:#c95d00; font-size:10px; font-weight:800; }.global-broadcast-alert time { margin-left:auto; color:#80694b; font-size:11px; }.global-broadcast-alert p { margin:10px 0 12px; white-space:pre-wrap; font-size:15px; font-weight:650; }.global-broadcast-alert footer { justify-content:flex-end; }.global-broadcast-alert .button { padding:8px 12px; }
.login-body { min-height:100vh; display:grid; place-items:center; background:linear-gradient(145deg,#0d263b,#174c70); }.login-card { width:min(410px,calc(100vw - 32px)); background:#fff; border-radius:14px; padding:30px; box-shadow:0 20px 60px #0004; }.login-card form { display:grid; gap:14px; margin:22px 0; }.login-brand { color:var(--navy); font-size:22px; font-weight:850; letter-spacing:.07em; }.login-card>p,.login-card>small { color:#607786; }
.mobile-app-nav { display:none; }.mobile-install-link { display:flex; align-items:center; gap:11px; margin-top:18px; padding:12px; border:1px solid #d5e3ec; border-radius:9px; background:#f2f8fc; }.mobile-install-link>span:first-child { display:grid; width:38px; height:38px; place-items:center; border-radius:9px; color:#fff; background:var(--blue); font-size:20px; }.mobile-install-link strong,.mobile-install-link small { display:block; }.mobile-install-link small { margin-top:2px; color:#607786; font-size:11px; }
.install-page { width:100%; padding:24px; }.install-card { display:grid; width:min(760px,100%); grid-template-columns:96px minmax(0,1fr) 166px; gap:20px 24px; align-items:center; margin:auto; padding:30px; border-radius:18px; background:#fff; box-shadow:0 24px 70px #071d2e52; }.install-app-icon { width:96px; height:96px; border-radius:22px; box-shadow:0 7px 20px #102a4326; }.install-qr { width:166px; height:166px; grid-column:3; grid-row:1/4; padding:7px; border:1px solid var(--line); border-radius:12px; background:#fff; }.install-eyebrow { color:var(--blue); font-size:10px; font-weight:850; letter-spacing:.14em; }.install-card h1 { margin:3px 0 7px; color:var(--navy); font-size:25px; }.install-card p { margin:0; color:#506b7d; }.install-actions { display:flex; grid-column:1/3; gap:9px; }.install-actions .button { display:inline-flex; align-items:center; }.install-status { grid-column:1/3; padding:10px 12px; border-radius:7px; color:#2a5e7c; background:#edf6fb; }.install-guide { display:grid; grid-column:1/-1; gap:10px; margin:0; padding:0; counter-reset:install-step; list-style:none; }.install-guide li { display:grid; grid-template-columns:160px 1fr; gap:10px; padding-top:10px; border-top:1px solid #e5edf2; }.install-guide span,.install-card>small { color:#607786; }.install-card>small { grid-column:1/-1; }
@media (max-width:1000px) { :root { --sidebar:210px; }.grid.two,.grid.three,.metrics,.entry-choices.admin-entries { grid-template-columns:repeat(2,minmax(0,1fr)); }.form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.project-hero,.workflow-lane,.dashboard-grid,.personal-work { grid-template-columns:1fr; }.workflow-steps.four { grid-template-columns:repeat(2,minmax(0,1fr)); }.workspace-hero { align-items:flex-start; flex-direction:column; }.quick-actions { justify-content:flex-start; }.settlement-strip { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:780px) { .app-shell { display:block; }.app-sidebar { position:sticky; z-index:20; top:0; width:auto; height:56px; flex-direction:row; align-items:center; justify-content:space-between; padding:8px 14px; overflow:visible; }.sidebar-brand { padding:0; border:0; }.brand { font-size:15px; }.subbrand { display:none; }.app-sidebar nav { display:none; }.sidebar-user { margin:0; padding:0; border:0; font-size:11px; }.sidebar-user .role { display:none; }.sidebar-domain { display:none; }.app-content main { padding-bottom:90px; } table { min-width:600px; }.mobile-app-nav { position:fixed; z-index:30; right:0; bottom:0; left:0; display:grid; grid-auto-flow:column; grid-auto-columns:1fr; height:calc(62px + env(safe-area-inset-bottom)); padding:5px 14px env(safe-area-inset-bottom); border-top:1px solid #d6e1e8; background:#fffc; box-shadow:0 -5px 20px #102a4314; backdrop-filter:blur(14px); }.mobile-app-nav a { position:relative; display:grid; place-items:center; align-content:center; gap:1px; min-width:0; border-radius:9px; color:#617888; }.mobile-app-nav a>span { font-size:19px; line-height:1; }.mobile-app-nav a>small { font-size:10px; font-weight:700; }.mobile-app-nav a.active { color:#176da4; background:#e9f4fa; }.mobile-app-nav .nav-unread { position:absolute; top:3px; left:calc(50% + 8px); font-style:normal; box-shadow:0 0 0 2px #fff; }.location-tracking .mobile-app-nav a[data-mobile-nav="locations"]::after { content:""; position:absolute; top:5px; left:calc(50% + 9px); width:7px; height:7px; border:2px solid #fff; border-radius:50%; background:#16a060; }.install-card { grid-template-columns:72px minmax(0,1fr); padding:22px; }.install-app-icon { width:72px; height:72px; border-radius:17px; }.install-qr { grid-column:1/-1; grid-row:auto; width:min(210px,70vw); height:auto; justify-self:center; }.install-actions,.install-status { grid-column:1/-1; }.install-guide li { grid-template-columns:1fr; gap:3px; } }
@media (max-width:620px) {
  main { padding:14px; }.grid.two,.grid.three,.metrics,.form-grid,.workflow-steps,.entry-choices,.entry-choices.admin-entries,.project-stage,.settlement-strip,.finance-summary { grid-template-columns:1fr; }.form-grid .wide { grid-column:auto; }.workspace-hero { padding:20px; }.workspace-hero h2 { font-size:21px; }.quick-actions { width:100%; }.quick-actions a { width:100%; justify-content:center; }.workflow-step:not(:last-child)::after { content:"⌄"; right:auto; left:21px; top:auto; bottom:-17px; }.entry-choices>a { grid-template-columns:40px 1fr; }.entry-choices>a>strong { grid-column:2; }.intake-heading,.section-heading,.next-actions { align-items:flex-start; flex-direction:column; }
  .page-title,.project-entry-note { align-items:flex-start; flex-direction:column; }.project-entry-note .button { margin-left:0; }.domain { margin-top:4px; }.panel { padding:14px; }
  .facts { grid-template-columns:1fr 1fr; }.inline-form,.attachment-form { align-items:stretch; flex-direction:column; }.invoice-sheet { min-height:0; padding:18px; }.document-header,.document-parties,.document-bottom,.delivery-party { grid-template-columns:1fr; }.delivery-party>div { grid-column:1; }.document-title { text-align:left; }.document-meta,.document-reference table { margin-left:0; width:100%; }.document-reference { justify-content:stretch; }
}
@media (max-width:780px) { .communication-shell { grid-template-columns:1fr; height:auto; min-height:0; }.communication-rail { max-height:420px; border-right:0; border-bottom:1px solid var(--line); }.conversation-panel { min-height:580px; }.dashboard-pulse { width:100%; }.dashboard-pulse a { flex:1; }.mobile-capture { display:grid; } }
@media (max-width:620px) { .workflow-steps.four { grid-template-columns:1fr; } .communication-shell { border-radius:7px; }.communication-heading,.conversation-header { padding:12px; }.message-list { padding:12px; }.message-composer { grid-template-columns:1fr auto; padding:9px; }.composer-tools { grid-column:1/-1; }.broadcast-stack { max-height:52vh; padding:10px 10px 1px; }.broadcast-banner>div,.broadcast-banner footer { align-items:flex-start; flex-direction:column; }.message-entry small { font-size:10px; } }
@media (max-width:620px) { .communication-dialog { width:calc(100vw - 18px); max-height:90vh; }.dialog-panel { padding:14px; }.files-toolbar,.drive-library-toolbar,.settings-dialog form { grid-template-columns:1fr; }.drive-folder-actions { flex-wrap:wrap; }.file-center-row { grid-template-columns:34px minmax(0,1fr); }.file-row-actions { grid-column:1/-1; flex-wrap:wrap; justify-content:flex-end; }.settings-room-info dl { grid-template-columns:1fr; }.conversation-actions { gap:1px; }.icon-action { width:32px; height:32px; } }
.message-meta { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:4px; }.message-meta time { display:inline; margin:0; }.message-withdraw { padding:0; border:0; color:#667f8e; background:transparent; font-size:9px; font-weight:700; }.message-withdraw:hover,.message-withdraw:focus-visible { color:#a82a21; text-decoration:underline; }.redacted-message { color:#7c8d97; font-style:italic; }.message-audio { min-width:140px; padding:0; color:#116ca7; background:transparent; text-align:left; font-weight:750; }
.message-context-menu { position:fixed; z-index:1200; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); width:min(320px,calc(100vw - 24px)); padding:8px; border:1px solid #ffffff16; border-radius:13px; background:#34424d; box-shadow:0 12px 34px #102a4340; }
.message-context-menu[hidden] { display:none; }
.login-card .remember-login { display:flex; align-items:center; gap:9px; }
.login-card .remember-login input { width:18px; height:18px; margin:0; }
.message-forward-dialog p { margin:0; overflow-wrap:anywhere; font-size:14px; }
.message-forward-dialog select { min-height:180px; }
.message-forward-dialog option { padding:10px; }
.message-forward-dialog { max-height:90dvh; }
.forward-modes { display:grid; grid-template-columns:1fr 1fr; gap:10px; min-width:0; padding:0; border:0; margin:0; }
.forward-modes[hidden] { display:none; }
.forward-modes legend { margin-bottom:7px; font-size:13px; font-weight:650; }
.forward-modes label { display:flex; flex-direction:row; align-items:center; gap:9px; padding:12px; border:1px solid #d9e3eb; border-radius:10px; cursor:pointer; }
.forward-modes label:has(:checked) { border-color:#3b87b3; background:#eff7fc; box-shadow:0 0 0 1px #3b87b320; }
.forward-modes input { width:16px; height:16px; flex:none; margin:0; accent-color:#307aa7; }
.forward-modes b,.forward-modes small { display:block; }
.forward-modes b { font-size:14px; }.forward-modes small { margin-top:4px; font-size:11px; font-weight:400; color:#69818f; }
.message-forward-dialog .forward-notice { color:#728492; font-size:12px; }
.forward-footer { display:flex; justify-content:flex-end; padding-top:4px; }
.message-more { min-width:28px; min-height:24px; padding:0 5px; border:0; border-radius:5px; background:transparent; color:#78909f; font-size:18px; line-height:1; letter-spacing:1px; }
.message-more:hover,.message-more:focus-visible { background:#dcebf4; color:#1c6089; }
.message .message-text,.message .message-quote,.bundle-record .message-text { -webkit-touch-callout:default; -webkit-user-select:text; user-select:text; cursor:text; }
.message-bundle { display:block; width:300px; max-width:100%; padding:3px 1px 0; color:#284756; background:transparent; text-align:left; font-weight:400; }
.message-bundle>b { display:flex; align-items:center; gap:8px; margin-bottom:10px; font-size:15px; overflow-wrap:anywhere; }
.message-bundle svg { width:19px; height:19px; flex:none; }
.message-bundle>span>span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin:5px 0; color:#718390; font-size:12px; }
.message-bundle>small { display:flex; justify-content:space-between; gap:12px; padding-top:9px; margin-top:12px; border-top:1px solid #dce5eb; color:#7a8e9b; font-size:11px; }
.message-bundle-dialog { width:min(640px,calc(100vw - 24px)); }
.message-bundle-dialog .dialog-panel { display:flex; flex-direction:column; max-height:88dvh; }
.message-bundle-dialog h2 { overflow-wrap:anywhere; }
.bundle-origin { margin:0 0 12px; color:#7a8d99; font-size:12px; }
[data-bundle-items] { overflow:auto; min-height:0; }
.bundle-record { padding:16px 0; border-top:1px solid #e5edf2; }
.bundle-record header { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:6px 12px; margin-bottom:9px; color:#426779; font-size:13px; }
.bundle-record time { color:#8b9ba5; font-size:11px; }.bundle-record p { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.bundle-record img { max-width:100%; }.bundle-record .message-file { overflow-wrap:anywhere; }.bundle-record .message-image-caption { margin-top:8px; }
@media(max-width:560px) { .forward-modes label { padding:10px 8px; gap:6px; }.message-forward-dialog select { min-height:140px; }.message-more { min-width:36px; min-height:28px; } }
.message-forwarded { display:block; margin-bottom:5px; color:#607d90; font-size:12px; }
.message-context-menu button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; width:100%; min-height:62px; padding:7px 2px; border:0; border-radius:8px; color:#fff; background:transparent; text-align:center; font-size:12px; font-weight:500; }
.message-context-menu button[hidden],.message-reply-preview[hidden] { display:none; }
.message-context-menu :is([data-message-action="redact"],[data-message-action="delete"]) { color:#ffd4cf; }
.message-reply-preview { display:flex; align-items:center; gap:8px; padding:5px 8px; margin-bottom:5px; border-left:3px solid #91b5cb; background:#eaf0f4; color:#506b7b; font-size:13px; }
.message-reply-preview span { flex:1; min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.message-reply-preview button { flex:none; width:36px; height:36px; padding:0; background:transparent; color:#506b7b; font-size:22px; }
.message-quote { margin:0 0 7px; padding:5px 8px; border-left:3px solid #91b5cb; color:#506b7b; background:#ffffff60; font-size:13px; overflow-wrap:anywhere; }
.message-context-menu button:hover,.message-context-menu button:focus-visible { background:#ffffff20; outline:1px solid #ffffff60; }
.message-context-menu svg,.message-selection-bar svg,.message-collection-button svg,.hiagent-toolbar svg { width:22px; height:22px; flex:none; }
.message-reply-preview>svg,.message-quote>svg,.message-forwarded>svg { width:16px; height:16px; flex:none; }
.message-quote,.message-forwarded { display:flex; align-items:flex-start; gap:6px; }
.message-quote { border:0; border-radius:6px; padding:8px 10px; background:#eaf0f4; }
.message-forward-dialog [data-forward-preview] { padding:12px; border-radius:8px; background:#f1f5f8; max-height:110px; overflow:auto; }
.message-select-check { width:32px; height:32px; padding:0; margin-right:6px; border-radius:50%; background:#e7f1f8; color:#176da4; font-size:20px; vertical-align:middle; }
.message.is-selected>div { outline:2px solid #438ab4; }
.message-selection-bar { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:6px; }
.message-selection-bar[hidden],.message-composer.message-selecting>:not(.message-selection-bar) { display:none!important; }
.message-selection-bar button { display:flex; flex-direction:column; align-items:center; gap:4px; min-width:44px; min-height:44px; padding:5px; font-size:12px; background:transparent; color:#245e86; }
.message-selection-bar>span { font-size:12px; white-space:nowrap; }
.message-saved-item { padding:14px 0; border-bottom:1px solid #dbe5ec; }
.message-saved-item p { white-space:pre-wrap; overflow-wrap:anywhere; max-height:140px; overflow:auto; margin:7px 0; }
.message-saved-item small { color:#6c8291; }.message-saved-item>div { display:flex; gap:8px; margin-top:8px; }
.message-tool-dialog { width:min(620px,calc(100vw - 24px)); max-height:90dvh; padding:0; }
.message-tool-dialog h2 { margin:0; }.message-tool-dialog .section-heading { margin-bottom:12px; }
.message-tool-dialog .dialog-panel { padding:20px; gap:8px; }
.message-tool-dialog form { display:grid; gap:12px; }.message-tool-dialog p { overflow-wrap:anywhere; }
.message-file-dialog { width:min(900px,calc(100vw - 24px)); }
.message-file-dialog .dialog-panel { grid-template-columns:minmax(0,1fr); }.message-file-preview { min-width:0; }
.message-file-card { margin:12px 0; padding:14px 16px; border:1px solid #e0e7ed; border-radius:12px; background:#f3f6f8; overflow-wrap:anywhere; font-size:16px; }
.message-file-actions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
[data-office-import-action] { display:inline-flex; flex-wrap:wrap; align-items:center; gap:8px; max-width:100%; }
.message-file-preview iframe { width:100%; height:60dvh; border:1px solid #dbe5ec; }.message-file-preview img,.message-file-preview video { max-width:100%; }
.message-file-preview pre { font-family:inherit; font-size:15px; white-space:pre-wrap; overflow-wrap:anywhere; }.message-file-preview p { font-size:13px; }
.message-file-preview .spreadsheet-toolbar { display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:8px;font-size:13px;margin:10px 0; }.spreadsheet-toolbar select { width:auto;max-width:75%; }
.spreadsheet-grid { overflow:auto;max-height:58dvh;border:1px solid #cddbe5;background:#fff; }
.spreadsheet-table { width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:13px;line-height:1.4;color:#183647; }
.spreadsheet-table th,.spreadsheet-table td { padding:6px 8px;border:0;border-right:1px solid #dce4e9;border-bottom:1px solid #dce4e9;white-space:pre-wrap;overflow-wrap:anywhere;max-width:400px;vertical-align:middle; }
.spreadsheet-table td { background:#fff;font-weight:400; }.spreadsheet-table th { background:#edf3f6;color:#536d7c;text-align:center; }
.spreadsheet-table thead th { position:sticky;top:0;z-index:2; }.spreadsheet-table tbody th { position:sticky;left:0;z-index:1;min-width:36px; }
.spreadsheet-table .is-number { text-align:right;font-variant-numeric:tabular-nums; }.spreadsheet-table .is-bold { font-weight:700; }.spreadsheet-table .has-formula { text-decoration:underline dotted #879da9;text-underline-offset:4px; }
.hiagent-summary-dialog { width:min(760px,calc(100vw - 24px)); }
.hiagent-toolbar { display:flex; align-items:center; justify-content:flex-end; gap:8px; color:#6c8291; }.hiagent-toolbar>span { margin-right:auto; font-size:13px; }
.hiagent-toolbar button { display:grid; place-items:center; width:44px; height:44px; padding:8px; color:#245e86; background:#edf3f7; }
.hiagent-answer,.hiagent-previous-answer { margin:16px 0; padding:18px; background:#f6f8fa; border-radius:14px; overflow-wrap:anywhere; font-size:16px; line-height:1.75; }
.hiagent-answer:empty { display:none; }.hiagent-answer p { margin:0 0 12px; }.hiagent-answer h3 { margin:16px 0 8px; font-size:17px; }
.hiagent-previous-answer { white-space:pre-wrap; color:#526777; }.hiagent-summary-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; font-size:13px; }
.hiagent-summary-dialog [data-summary-followup] { position:sticky; bottom:0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:12px 0 max(8px,env(safe-area-inset-bottom)); background:#fff; }
.hiagent-summary-dialog [data-summary-followup] input { margin:0; min-width:0; font-size:16px; }.hiagent-summary-dialog [data-summary-status] { font-size:13px; color:#61798a; }
body.communication-compact .message-collection-button { display:none; }
@media(max-width:780px) { .hiagent-summary-dialog { width:100%; max-width:none; max-height:92dvh; margin:auto 0 0; border-radius:22px 22px 0 0; }.hiagent-summary-dialog .dialog-panel { padding:18px 16px; }.hiagent-answer { font-size:18px; padding:16px; }.message-tool-dialog .section-heading { position:sticky; top:0; background:#fff; z-index:1; } }
.drive-page { display:grid; gap:16px; }.drive-hero { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:22px 26px; border:1px solid #cfe0ea; border-left:5px solid #2e83b7; border-radius:13px; background:linear-gradient(115deg,#f8fcff,#eaf5fb); }.drive-hero h2 { margin:3px 0 5px; font-size:25px; }.drive-hero p { margin:0; color:#536f81; }.drive-capacity { flex:none; padding:12px 16px; border:1px solid #c8dce8; border-radius:11px; color:#175f8d; background:#fff; font-weight:800; }.drive-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:16px; align-items:start; }.drive-browser,.drive-connect { margin:0; }.drive-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:13px; }.drive-breadcrumb { display:flex; align-items:center; min-width:0; gap:5px; overflow:auto; }.drive-breadcrumb button { padding:7px 8px; border:0; color:#176da4; background:transparent; white-space:nowrap; }.drive-actions { display:flex; flex:none; gap:8px; }.drive-actions label { display:inline-flex; align-items:center; cursor:pointer; }.drive-actions input,.drive-page-drop input { display:none; }.drive-search { display:grid; gap:5px; margin-bottom:11px; color:#526c7d; font-size:12px; font-weight:750; }.drive-page-drop { display:grid; min-height:90px; place-content:center; gap:5px; margin-bottom:14px; border:2px dashed #8ab5ce; border-radius:11px; color:#276b91; background:#f5fbfe; text-align:center; cursor:pointer; transition:.15s ease; }.drive-page-drop span { color:#6b8493; font-size:11px; }.drive-page-drop.active { border-color:#1681bd; background:#e5f4fb; transform:scale(1.005); }.drive-table { min-height:360px; border:1px solid #dbe5eb; border-radius:10px; overflow:hidden; }.drive-item { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:11px; align-items:center; min-height:66px; padding:9px 13px; border-bottom:1px solid #e6edf1; background:#fff; }.drive-item:last-child { border-bottom:0; }.drive-item.folder { cursor:pointer; }.drive-item.folder:hover,.drive-item:hover { background:#f5fafc; }.drive-item>span { font-size:24px; }.drive-item b,.drive-item small { display:block; }.drive-item b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.drive-item small { margin-top:3px; color:#778d9a; font-size:10px; }.drive-item>div:last-child { display:flex; gap:5px; opacity:.15; transition:.15s ease; }.drive-item:hover>div:last-child,.drive-item:focus-within>div:last-child { opacity:1; }.drive-transfer { position:fixed; z-index:60; right:22px; bottom:22px; max-width:min(440px,calc(100vw - 32px)); padding:12px 16px; border:1px solid #88bad3; border-radius:10px; color:#fff; background:#176da4; box-shadow:0 12px 34px #0a365452; font-weight:750; }.drive-connect { position:sticky; top:18px; }.drive-connect h3 { margin:4px 0 8px; }.drive-connect>p { color:#5f7888; line-height:1.6; }.copy-field { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; margin-top:5px; }.copy-field input { min-width:0; font-size:11px; }.drive-credentials { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.drive-credentials div { padding:9px; border-radius:8px; background:#f2f7fa; }.drive-credentials dt { color:#718693; font-size:10px; }.drive-credentials dd { margin:3px 0 0; overflow-wrap:anywhere; font-weight:800; }.drive-password-form { display:grid; gap:9px; padding-top:12px; border-top:1px solid #dfe8ed; }.drive-password-form label { display:grid; gap:4px; }.drive-connect details { margin-top:15px; padding-top:12px; border-top:1px solid #dfe8ed; }.drive-connect ol { padding-left:20px; color:#526c7d; font-size:12px; line-height:1.6; }
.account-security.panel { display:grid; grid-template-columns:minmax(190px,.55fr) minmax(0,2fr); gap:12px; align-items:center; padding:10px 12px; margin-bottom:0; }.account-security h3 { margin:2px 0 4px; }.account-security>div>p { margin:0; color:#607887; line-height:1.4; }.account-security-forms { display:grid; grid-template-columns:1.5fr 1fr; gap:10px; }.account-security-forms form { display:grid; grid-template-columns:repeat(3,minmax(105px,1fr)) auto; gap:7px; align-items:end; padding:9px 10px; border:1px solid #dce6ec; border-radius:8px; background:#f8fbfd; }.account-security-forms form+form { grid-template-columns:minmax(150px,1fr) auto; grid-template-areas:"field action" "hint hint"; }.account-security-forms form+form label { grid-area:field; }.account-security-forms form+form button { grid-area:action; }.account-security-forms label { display:grid; gap:3px; color:#496477; font-size:11px; font-weight:750; }.account-security-forms button { min-height:38px; align-self:end; padding:8px 12px; white-space:nowrap; }.account-security-forms small { grid-area:hint; margin-top:-3px; color:#6b818e; font-size:10px; line-height:1.2; }
.sidebar-session-actions { display:flex; align-items:center; gap:9px; }.sidebar-session-actions form { margin:0; }.session-lock[hidden] { display:none; }.session-lock { position:fixed; z-index:5000; inset:0; display:grid; place-items:center; padding:20px; background:linear-gradient(145deg,rgba(7,28,44,.96),rgba(18,76,109,.95)); backdrop-filter:blur(8px); }.session-lock-card { width:min(420px,calc(100vw - 32px)); padding:30px; border:1px solid #ffffff38; border-radius:17px; background:#fff; box-shadow:0 28px 90px #0007; }.session-lock-card h1,.session-lock-card h2 { margin:8px 0 5px; color:#102f46; }.session-lock-card>p { margin:0 0 18px; color:#627a89; }.session-lock-card form { display:grid; gap:13px; }.session-lock-card label { display:grid; gap:6px; color:#496477; font-size:12px; font-weight:750; }.session-lock-card .lock-switch-account { display:block; margin-top:12px; text-align:center; }.session-lock-card .lock-switch-account button { padding:6px; color:#5d7686; }.session-lock-mark { color:#2c82b8; font-size:12px; font-weight:900; letter-spacing:.16em; }.session-is-locked { overflow:hidden; }
@media (max-width:1100px) { .drive-layout,.account-security { grid-template-columns:1fr; }.drive-connect { position:static; }.drive-hero { align-items:flex-start; flex-direction:column; }.account-security-forms { grid-template-columns:1fr; } }
@media (max-width:620px) { .drive-toolbar { align-items:stretch; flex-direction:column; }.drive-actions { display:grid; grid-template-columns:1fr 1fr; }.drive-actions>* { justify-content:center; }.drive-item { grid-template-columns:34px minmax(0,1fr); }.drive-item>div:last-child { grid-column:1/-1; justify-content:flex-end; opacity:1; }.drive-credentials { grid-template-columns:1fr; }.account-security-forms form { grid-template-columns:1fr; } }
.communication-heading { justify-content:flex-end; padding-block:10px 7px; }.communication-heading-actions { display:flex; align-items:center; gap:6px; }.chat-avatar { position:relative; overflow:visible; }.chat-avatar img { width:100%; height:100%; border-radius:50%; object-fit:cover; }.chat-avatar.avatar-unavailable::after { content:"?"; }.chat-avatar.avatar-unavailable img { display:none; }.avatar-dialog { width:min(470px,calc(100vw - 28px)); }.avatar-help { margin:0; color:#607786; }.avatar-choices { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.avatar-choices button { min-height:58px; border:1px solid #d8e3ea; border-radius:12px; background:#f6fafc; font-size:28px; }.avatar-choices button:hover,.avatar-choices button:focus-visible { border-color:#4e9dca; background:#eaf5fb; }.avatar-photo-picker { display:grid; place-items:center; min-height:70px; border:2px dashed #7fa8c1; border-radius:10px; color:#235c7c; background:#f4f9fc; cursor:pointer; font-weight:750; }.avatar-photo-picker input { display:none; }.avatar-dialog [data-avatar-status] { min-height:20px; color:#276b48; }
body.communication-compact { overflow:hidden; background:#e8eef2; }
body.communication-compact .app-shell { display:block; min-height:100dvh; }
body.communication-compact .app-sidebar { display:none; }
body.communication-compact .app-content { width:64px; }
body.communication-compact .app-content main { width:64px; height:100dvh; padding:0; }
body.communication-compact .communication-shell { display:grid; width:64px; height:100dvh; min-height:0; grid-template-columns:64px; border:0; border-right:1px solid #c9d7e0; border-radius:0; box-shadow:7px 0 24px #102a431c; }
body.communication-compact .communication-rail { position:relative; max-height:none; padding-bottom:190px; border:0; background:linear-gradient(180deg,#f8fbfd,#eef4f7); }
body.communication-compact .conversation-panel,body.communication-compact .communication-search,body.communication-compact [data-new-group],body.communication-compact [data-new-field-support],body.communication-compact .unread-sources { display:none!important; }
body.communication-compact .communication-heading { align-items:center; justify-content:center; padding:10px 5px 7px; }
body.communication-compact .communication-heading-actions { width:100%; justify-content:center; }
body.communication-compact .communication-heading-actions .icon-action { width:34px; height:34px; border-color:#ccdae3; background:#fff; }
body.communication-compact .communication-list { padding:2px 5px 12px; }
.compact-connection-state { display:none; }
body.communication-compact .communication-boot { padding:8px 0; gap:8px; }
body.communication-compact .communication-boot>:not(button) { display:none; }
body.communication-compact .communication-boot>.compact-connection-state { display:block; font-size:12px; white-space:nowrap; }
body.communication-compact .room-row,body.communication-compact .person-row { display:grid; width:52px; min-height:48px; grid-template-columns:36px; place-content:center; gap:0; margin:2px 0; padding:6px 8px; }
body.communication-compact .room-row>span:nth-child(2),body.communication-compact .person-row>span:nth-child(2),body.communication-compact .room-row>em,body.communication-compact .person-row>em { display:none; }
body.communication-compact .chat-avatar { width:36px; height:36px; }
body.communication-compact .mobile-app-nav { position:fixed; z-index:40; right:auto; bottom:0; left:0; display:grid; width:64px; height:auto; grid-template-columns:1fr; grid-template-rows:none; grid-auto-rows:52px; padding:5px; border-top:1px solid #cfdae1; border-right:1px solid #cfdae1; background:#fffefa; box-shadow:0 -7px 18px #102a4315; backdrop-filter:blur(14px); }
body.communication-compact .mobile-app-nav a { position:relative; display:grid; min-width:0; place-items:center; align-content:center; gap:1px; border-radius:9px; color:#5b7281; }
body.communication-compact .mobile-app-nav a>span { font-size:18px; line-height:1; }
body.communication-compact .mobile-app-nav a>small { font-size:10px; font-weight:750; }
body.communication-compact .mobile-app-nav a.active { color:#176da4; background:#e7f3fa; }
body.communication-compact .mobile-app-nav .nav-unread { position:absolute; top:5px; right:13px; left:auto; box-shadow:0 0 0 2px #fff; }
.communication-dock { position:fixed; z-index:90; top:12px; right:12px; bottom:12px; width:64px; overflow:hidden; border:1px solid #c9d7e0; border-radius:13px; background:#f5f9fb; box-shadow:0 12px 36px #102a4330; transition:width .2s ease,box-shadow .2s ease; }
.communication-dock.expanded { width:var(--communication-dock-width); box-shadow:0 18px 55px #102a4350; }
.communication-dock-link { display:flex; height:36px; align-items:center; justify-content:center; gap:4px; border-bottom:1px solid var(--line); color:#245e86; background:#fff; font-size:12px; font-weight:650; }
.communication-dock iframe { display:block; width:100%; height:calc(100% - 36px); border:0; background:#eef4f7; }
body.communication-modal-open::after { content:""; position:fixed; inset:0; z-index:100; background:#0d263b45; }
.communication-dock.modal-open { display:block!important; z-index:101; width:min(920px,calc(100vw - 24px))!important; transition:none; }
@media (min-width:781px) {
  body.has-communication-dock { --communication-dock-width:64px; }
  body.communication-dock-expanded { --communication-dock-width:min(560px,calc((100vw - var(--sidebar) - 24px)/2)); }
  html:not(.workspace-child)>body.has-communication-dock:not(.workspace-chat-open)>.app-shell { margin-right:calc(var(--communication-dock-width) + 24px); }
  .communication-dock:not(.workspace-chat-full) { width:var(--communication-dock-width);transition:none; }
}
body.communication-embedded { overflow:hidden; background:#eef4f7; }
body.communication-embedded .app-shell { display:block; min-height:100dvh; }
body.communication-embedded .app-sidebar,body.communication-embedded .mobile-app-nav { display:none!important; }
body.communication-embedded .app-content,body.communication-embedded .app-content main { width:100%; height:100dvh; max-width:none; padding:0; }
body.communication-embedded .communication-shell { width:100%; height:100dvh; border:0; border-radius:0; box-shadow:none; }
body.communication-embedded.communication-compact .communication-rail { padding-bottom:12px; }
body.communication-embedded.communication-compact .mobile-app-nav { display:none!important; }
@media (max-width:780px) { .communication-dock { display:none; } }
.chat-avatar.broadcast { overflow:hidden; color:#fff; background:#fff; box-shadow:0 4px 12px #c22e2938; font-size:19px; }
.chat-avatar.broadcast img { width:100%; height:100%; border-radius:50%; object-fit:cover; }
.avatar-choices { grid-template-columns:repeat(5,1fr); gap:8px; }.avatar-choices button { min-height:54px; padding:5px; font-size:27px; }.avatar-choices button:hover,.avatar-choices button:focus-visible { transform:translateY(-1px); }
.permission-editor { min-width:190px; }.permission-editor>summary { padding:9px 11px; border:1px solid #d6e3ea; border-radius:8px; color:#176da4; background:#f5f9fb; cursor:pointer; font-size:13px; font-weight:750; }.permission-editor[open]>summary { border-color:#8ebbd2; border-radius:8px 8px 0 0; background:#eaf5fb; }.permission-editor>div { display:grid; grid-template-columns:repeat(3,minmax(150px,1fr)); gap:8px; padding:10px; border:1px solid #d6e3ea; border-top:0; border-radius:0 0 8px 8px; }.permission-editor fieldset { display:grid; align-content:start; gap:5px; margin:0; padding:9px; border:1px solid #d9e4ea; border-radius:8px; background:#fff; }.permission-editor legend { padding:0 4px; color:#526b7b; font-size:10px; font-weight:850; }.permission-editor label { display:flex; flex-direction:row; align-items:flex-start; gap:8px; color:#354f60; font-size:11px; font-weight:600; }.permission-editor label span { min-width:0; line-height:1.45; }.permission-editor input[type=checkbox] { flex:0 0 16px; width:16px; height:16px; margin:1px 0 0; }
.settings-guide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:10px; }.settings-guide>div { display:flex; align-items:center; gap:11px; padding:13px 15px; border:1px solid #d6e3ea; border-radius:10px; background:#fff; }.settings-guide b { display:grid; width:30px; height:30px; flex:0 0 30px; place-items:center; border-radius:50%; color:#fff; background:#2d7dab; }.settings-guide span,.settings-guide strong,.settings-guide small { display:block; }.settings-guide small { margin-top:2px; color:#687f8d; }.settings-principle { margin:0 0 12px; padding:11px 14px; border-left:4px solid #2c8a72; border-radius:7px; color:#425d6e; background:#eef8f5; }.settings-section { margin-bottom:12px; }.settings-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:14px; }.settings-section-heading h2 { margin:2px 0 3px; }.settings-section-heading p { margin:0; color:#607786; }.settings-create { min-width:190px; }.settings-create>summary { padding:8px 12px; border:1px solid #9cbfd3; border-radius:8px; color:#176da4; background:#f3f9fc; font-size:13px; white-space:nowrap; }.settings-create[open] { width:min(720px,100%); }.settings-create[open]>summary { margin-bottom:10px; }.settings-create .form-grid { margin:0; }.job-role-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.job-role-card { display:grid; gap:12px; min-width:0; padding:14px; border:1px solid #d8e3e9; border-radius:10px; background:#fbfcfd; }.job-role-card>header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }.job-role-card h3 { margin:3px 0 1px; }.job-role-card header small { color:#748895; }.job-role-code { color:#4380a4; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:10px; }.job-role-active { display:flex; align-items:center; gap:5px; white-space:nowrap; font-size:11px; font-weight:750; }.job-role-active input { width:auto; }.job-role-fields { display:grid; grid-template-columns:1fr 1fr; gap:9px; }.job-role-fields label { color:#526c7d; font-size:11px; font-weight:750; }.job-role-fields input { margin-top:4px; }.job-role-usage { display:flex; flex-wrap:wrap; gap:7px; }.job-role-usage span { padding:6px 9px; border-radius:99px; color:#526b7b; background:#edf3f6; font-size:11px; }.job-role-usage b { color:#174f73; }.job-role-card>footer { display:flex; align-items:center; justify-content:flex-end; gap:7px; padding-top:2px; }.job-role-card>footer form { margin:0; }
.account-security-forms { grid-template-columns:1fr 1.45fr .85fr; }.account-security-forms form,.account-security-forms form+form { grid-template-areas:none; }.account-security-forms .username-settings { grid-template-columns:minmax(105px,1fr) minmax(105px,1fr) auto; }.account-security-forms .password-settings { grid-template-columns:repeat(3,minmax(105px,1fr)) auto; }.account-security-forms .password-settings label,.account-security-forms .password-settings button { grid-area:auto; }.account-security-forms .lock-settings { grid-template-columns:minmax(135px,1fr) auto; grid-template-areas:"field action" "hint hint"; }.account-security-forms .lock-settings label { grid-area:field; }.account-security-forms .lock-settings button { grid-area:action; }
@media (max-width:1350px) { .account-security-forms { grid-template-columns:1fr; }.permission-editor>div { grid-template-columns:repeat(2,minmax(150px,1fr)); } }
@media (max-width:980px) { .job-role-grid { grid-template-columns:1fr; }.settings-section-heading { flex-direction:column; }.settings-create[open] { width:100%; } }
@media (max-width:780px) { .context-shortcuts { display:none!important; }.settings-guide { grid-template-columns:1fr; }.job-role-fields,.permission-editor>div { grid-template-columns:1fr; }.account-security-forms .username-settings,.account-security-forms .password-settings,.account-security-forms .lock-settings { grid-template-columns:1fr; grid-template-areas:none; }.account-security-forms .lock-settings label,.account-security-forms .lock-settings button { grid-area:auto; } }
@media (max-width:620px) { .record-editor-panel { padding:16px; }.record-editor-grid { grid-template-columns:1fr; }.record-editor-grid .wide { grid-column:auto; }.record-editor-actions>* { flex:1; } }
.communication-shell { min-height:0; }
.conversation-panel { min-height:0; overflow:hidden; }
.conversation-header { grid-row:1; }
.broadcast-stack { grid-row:2; }
.message-list { grid-row:3; }
.message-composer { position:sticky; z-index:4; bottom:0; grid-row:4; max-height:min(45dvh,280px); overflow:auto; box-shadow:0 -6px 18px #102a4310; }
.communication-shell.viewport-fitted { min-height:0; }
.communication-shell.viewport-fitted .conversation-panel { overflow:hidden; }
.communication-shell.viewport-fitted .message-list { min-height:0; padding-bottom:20px; }
.communication-shell.viewport-fitted .message-composer { position:relative; z-index:4; left:auto; width:auto; bottom:auto; }
.message-composer { min-height:128px; grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) auto; gap:0; align-items:stretch; padding:0; overflow:hidden; border:1px solid #d8e1e7; border-radius:10px 10px 0 0; }
.message-entry { display:grid; min-height:0; overflow:auto; padding:10px 14px 0; }
.message-composer{grid-template-columns:44px minmax(0,1fr) 44px}.message-composer>.composer-footer{grid-column:1/-1}.composer-voice-toggle,.composer-emoji-toggle{align-self:end;width:40px;height:44px;padding:7px;border:0;background:transparent;color:#465e6c}.composer-voice-toggle svg,.composer-emoji-toggle svg{width:28px;height:28px}.composer-hold-voice{width:100%;min-height:44px;background:#fff;color:#36515e;border:1px solid #cfdbe2;border-radius:7px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.composer-hold-voice.recording{background:#d8efdf}.composer-hold-voice.cancel-recording{background:#ffe2df}.chat-emoji-panel{position:fixed;z-index:100;width:280px;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:10px;border:1px solid #dce5eb;border-radius:14px;background:#fff;box-shadow:0 8px 30px #132c4930}.chat-emoji-panel button{display:grid;place-items:center;gap:3px;padding:6px;background:transparent;color:#38677e;border:0}.chat-emoji-panel svg{width:30px;height:30px}.chat-emoji-panel small{font-size:11px}.chat-emoji-panel button:hover{background:#eef5fa}.message-emoji{display:inline-flex;width:44px;height:44px;color:#38677e}
.message-composer textarea { min-height:74px; max-height:160px; margin:0; padding:4px 2px; border:0; background:transparent; resize:none; box-shadow:none; }
.message-composer textarea:focus { border:0; outline:0; box-shadow:none; }
.composer-footer { display:grid; min-height:44px; flex:none; grid-template-columns:auto minmax(0,1fr) auto; gap:10px; align-items:center; padding:4px 10px 8px; background:#fff; }
.composer-tools { align-items:center; gap:2px; }
.composer-tool { min-width:34px; min-height:34px; padding:3px; border:0; color:#506979; background:transparent; }
.composer-tool small { display:none; }
.quick-replies { order:-1; gap:0; }
.quick-replies button { min-width:34px; min-height:34px; padding:2px; border-radius:7px; }
.composer-footer>[data-composer-help] { overflow:hidden; color:#87959e; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.composer-footer>[data-message-send] { min-width:64px; padding:8px 14px; flex-shrink:0; }
/* Keep the send action inside narrow/full/embedded chat, independent of toolbar width. */
@media(max-width:600px){
  body.communication-page .message-composer>.composer-footer{display:flex;grid-column:1/-1;justify-content:space-between;gap:6px;min-width:0}
  body.communication-page .composer-footer>[data-composer-help]{display:none}
  body.communication-page .composer-footer>.composer-tools{min-width:0;flex-wrap:wrap}
}
body.communication-page .communication-shell .message p.redacted-message{font-size:10px;line-height:1.3;font-style:normal;margin:2px 0;color:#84939c}
.invoice-draft-status{font-size:12px;color:#466b80;overflow-wrap:anywhere}
.message-list,.communication-list { scrollbar-width:thin; scrollbar-color:#91aebe transparent; }
.message-list::-webkit-scrollbar,.communication-list::-webkit-scrollbar { width:8px; }
.message-list::-webkit-scrollbar-track,.communication-list::-webkit-scrollbar-track { background:transparent; }
.message-list::-webkit-scrollbar-thumb,.communication-list::-webkit-scrollbar-thumb { min-height:36px; border:2px solid transparent; border-radius:8px; background:#91aebe; background-clip:padding-box; }
.communication-shell { grid-template-columns:190px minmax(0,1fr); }
/* The dock owns the viewport. Only the message list scrolls; the composer always
   remains in the final grid row, regardless of browser size or zoom. */
body.communication-embedded { height:100dvh; }
body.communication-embedded .app-shell,
body.communication-embedded .app-content,
body.communication-embedded .app-content main { height:100%; min-height:0; overflow:hidden; }
body.communication-embedded .communication-shell { height:100%; min-height:0; }
.conversation-panel { height:100%; min-height:0; grid-template-rows:auto auto minmax(0,1fr) auto; overflow:hidden; }
.message-list { min-height:0; overflow-y:auto; }
.message-composer,
.communication-shell.viewport-fitted .message-composer { position:static; bottom:auto; min-height:104px; max-height:min(210px,40dvh); grid-template-rows:minmax(44px,1fr) auto; overflow:visible; }
.message-entry { min-height:0; overflow:hidden; padding-top:8px; }
.message-composer textarea { min-height:44px; max-height:120px; overflow-y:auto; }
.composer-footer { min-height:44px; }
.message-composer[aria-disabled="true"] { display:none; }
body:not(.communication-embedded) [data-toggle-compact] { display:none; }
@media (max-width:780px) {
  body.communication-embedded .communication-shell { height:100%; grid-template-columns:190px minmax(0,1fr); }
  body.communication-embedded .communication-rail { max-height:none; min-height:0; overflow:hidden; border-right:1px solid var(--line); border-bottom:0; }
  body.communication-embedded .communication-list { min-height:0; overflow-y:auto; }
  body.communication-embedded .conversation-panel { min-height:0; }
}
@media (max-width:560px) {
  body.communication-page.mobile-chat-open:not(.communication-embedded) .mobile-app-nav { display:none; }
  body.communication-page.mobile-chat-open:not(.communication-embedded) .app-content main { padding:0; }
  body.communication-embedded .communication-shell { grid-template-columns:72px minmax(0,1fr); }
  body.communication-embedded .communication-search,
  body.communication-embedded .room-row>span:nth-child(2),
  body.communication-embedded .person-row>span:nth-child(2),
  body.communication-embedded .room-row>em,
  body.communication-embedded .person-row>em,
  body.communication-embedded [data-new-group] { display:none; }
  body.communication-embedded .communication-heading-actions { justify-content:center; }
  body.communication-embedded .room-row,
  body.communication-embedded .person-row { grid-template-columns:40px; justify-content:center; padding-inline:6px; }
  .composer-footer { grid-template-columns:minmax(0,1fr) auto; }
  .composer-footer>[data-composer-help] { display:none; }
}
@media (max-height:560px) {
  .message-composer,
  .communication-shell.viewport-fitted .message-composer { min-height:88px; max-height:34dvh; }
  .message-composer textarea { min-height:36px; }
}
body.communication-page { overflow:hidden; }
body.communication-page .app-shell,
body.communication-page .app-content,
body.communication-page .app-content main { height:100vh; height:100dvh; min-height:0; overflow:hidden; }
body.communication-page .communication-shell { height:100%; max-height:100%; min-height:0; }
body.communication-page .communication-rail { min-height:0; overflow:hidden; }
body.communication-page .communication-list { flex:1 1 0; min-height:0; overflow-y:auto; scrollbar-gutter:stable; }
body.communication-page .conversation-panel { height:100%; min-height:0; overflow:hidden; }
body.communication-page .message-composer:not([hidden]) { height:clamp(88px,18dvh,104px); min-height:88px; max-height:104px; grid-template-rows:minmax(0,1fr) 44px; }
body.communication-page .message-entry { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
body.communication-page .message-composer textarea { flex:1 1 auto; height:100%; min-height:0; max-height:100%; overflow-y:scroll; scrollbar-width:thin; scrollbar-gutter:stable; scrollbar-color:#7897aa #edf3f7; }
body.communication-page .message-composer textarea::-webkit-scrollbar{width:9px}
body.communication-page .message-composer textarea::-webkit-scrollbar-thumb{background:#7897aa;border:2px solid #edf3f7;border-radius:6px}
body.communication-page .message-composer textarea::-webkit-scrollbar-track{background:#edf3f7}
body.communication-page .message-composer.has-reply { height:168px; min-height:168px; max-height:180px; }
body.communication-page .message-composer.has-reply .message-entry { grid-template-rows:auto minmax(44px,1fr); }
.mobile-chat-back { display:none; width:36px; height:36px; place-items:center; padding:0; border:0; color:#176da4; background:transparent; font-size:32px; line-height:1; }
.communication-boot { display:grid; justify-items:center; gap:9px; }
.communication-boot strong { color:#365569; }
.communication-boot span { max-width:220px; line-height:1.55; }
.communication-boot button,.communication-boot a { margin-top:3px; }
.communication-fatal { display:grid; place-content:center; justify-items:center; gap:12px; min-height:100%; padding:28px; color:#526c7e; background:#fff; text-align:center; }
.communication-fatal strong { color:#9e312c; font-size:18px; }
.communication-fatal p { max-width:460px; margin:0; }
.communication-fatal>div { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
@media (max-width:780px) {
  body.communication-page:not(.communication-embedded) .app-content { height:calc(100vh - 118px); height:calc(100dvh - 118px); }
  body.communication-page:not(.communication-embedded) .app-content main { height:100%; padding:8px; }
  body.communication-page:not(.communication-embedded) .communication-shell { grid-template-columns:190px minmax(0,1fr); }
  body.communication-page:not(.communication-embedded) .communication-rail { max-height:none; border-right:1px solid var(--line); border-bottom:0; }
  body.communication-page:not(.communication-embedded) .conversation-panel { min-height:0; }
}
@media (max-width:560px), (max-height:560px) and (pointer:coarse) {
  body.communication-page:not(.communication-embedded) .conversation-panel,
  body.communication-page:not(.communication-embedded) .message-list { touch-action:pan-y pinch-zoom; }
  .message>span,.message button,.message-meta { -webkit-user-select:none; user-select:none; }
  body.communication-page.mobile-chat-open:not(.communication-embedded) .mobile-app-nav { display:none; }
  body.communication-page.mobile-chat-open:not(.communication-embedded) .communication-shell {
    position:fixed; z-index:100; top:var(--chat-top,0px); left:var(--chat-left,0px);
    width:var(--chat-width,100%); height:var(--chat-height,100dvh); max-height:none; border:0; border-radius:0;
  }
  body.communication-page:not(.communication-embedded) .conversation-header { padding-top:max(10px,env(safe-area-inset-top)); }
  body.communication-page:not(.communication-embedded) .conversation-header>div:first-of-type { flex:1; min-width:0; }
  body.communication-page:not(.communication-embedded) .communication-shell { grid-template-columns:1fr; }
  body.communication-page:not(.communication-embedded) .communication-rail { display:flex; width:100%; }
  body.communication-page:not(.communication-embedded) .conversation-panel { display:none; }
  body.communication-page:not(.communication-embedded) .communication-shell.mobile-room-open .communication-rail { display:none; }
  body.communication-page:not(.communication-embedded) .communication-shell.mobile-room-open .conversation-panel { display:grid; }
  body.communication-page:not(.communication-embedded) .communication-shell.mobile-room-open .conversation-actions { display:flex; }
  body.communication-page:not(.communication-embedded) .room-row,
  body.communication-page:not(.communication-embedded) .person-row { grid-template-columns:40px minmax(0,1fr) auto; min-height:64px; padding:10px 8px; }
  body.communication-page:not(.communication-embedded) .room-row b,
  body.communication-page:not(.communication-embedded) .person-row b { font-size:16px; line-height:1.4; }
  body.communication-page:not(.communication-embedded) .message p { font-size:17px; line-height:1.55; }
  body.communication-page:not(.communication-embedded) .message>span { font-size:12px; }
  body.communication-page:not(.communication-embedded) .message time,
  body.communication-page:not(.communication-embedded) .message-read { font-size:11px; }
  body.communication-page:not(.communication-embedded) .conversation-header h2 { font-size:19px; }
  body.communication-page:not(.communication-embedded) .composer-action-sheet label,
  body.communication-page:not(.communication-embedded) .composer-action-sheet button { min-height:44px; font-size:16px; }
  .mobile-app-nav small { font-size:13px; }
  body.communication-page:not(.communication-embedded) .room-row small,
  body.communication-page:not(.communication-embedded) .person-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
  .mobile-chat-back { display:grid; }
  body.communication-page:not(.communication-embedded) .message-composer,
  body.communication-page:not(.communication-embedded) .communication-shell.viewport-fitted .message-composer {
    position:relative; display:grid; grid-template-columns:40px minmax(0,1fr) 40px 44px; grid-template-rows:auto; gap:5px; align-items:end;
    height:auto; min-height:0; max-height:none;
    padding:8px calc(20px + env(safe-area-inset-right)) max(28px,calc(12px + env(safe-area-inset-bottom))) calc(16px + env(safe-area-inset-left));
    overflow:visible;
    border-width:1px 0 0; border-radius:0; background:#f5f5f5; box-shadow:0 -2px 10px #102a4310;
  }
  body.communication-page:not(.communication-embedded) .message-entry { min-height:44px; padding:0; overflow:visible; }
  body.communication-page:not(.communication-embedded) .message-composer textarea {
    width:100%; height:auto; min-height:44px; max-height:112px; padding:9px 11px; border:1px solid #d9dee2;
    border-radius:7px; background:#fff; line-height:22px; font-size:17px;
  }
  body.communication-page:not(.communication-embedded) .composer-footer {
    position:static; display:block; grid-column:4; min-height:44px; padding:0; background:transparent;
  }
  body.communication-page:not(.communication-embedded) .keyboard-visible .message-composer { padding-block:6px; }
  body.communication-page:not(.communication-embedded) .composer-tools { display:block; }
  body.communication-page:not(.communication-embedded) .composer-tool { width:44px; height:44px; padding:0; font-size:22px; }
  body.communication-page:not(.communication-embedded) .composer-tool>span { font-size:0; }
  body.communication-page:not(.communication-embedded) .composer-tool>span::before { content:"＋"; font-size:28px; font-weight:400; }
  body.communication-page:not(.communication-embedded) .quick-replies,
  body.communication-page:not(.communication-embedded) [data-composer-help] { display:none!important; }
  body.communication-page:not(.communication-embedded) .pending-attachments { margin-bottom:6px; }
}
.location-page main { display:grid; gap:16px; }
.location-hero { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:25px 28px; border-radius:16px; color:#fff; background:linear-gradient(135deg,#153a54,#1d7298); box-shadow:0 16px 36px #123b5530; }
.location-hero h1 { margin:4px 0 7px; color:#fff; font-size:27px; }.location-hero p { max-width:650px; margin:0; color:#d9edf7; }.location-hero .button { flex:none; color:#174b68; background:#fff; }
.location-share-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px 20px; align-items:center; padding:20px 23px; border:1px solid #c9dde8; border-radius:13px; background:#fff; box-shadow:0 7px 22px #102a430d; }
.location-share-card>div:first-child { display:flex; align-items:center; gap:12px; }.location-share-card h2 { margin:0; font-size:19px; }.location-share-card p { margin:4px 0 0; color:#637b8a; }
.location-live-dot { width:13px; height:13px; border-radius:50%; background:#a7b7c1; box-shadow:0 0 0 6px #edf1f4; }.location-share-card[data-enabled="true"] .location-live-dot { background:#17a665; box-shadow:0 0 0 6px #dff5e9; }
.location-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }.location-disclosure { grid-column:1/-1; padding-top:12px; border-top:1px solid #e4ebef; font-size:12px; line-height:1.6; }
.location-team { margin:0; }.location-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }.location-person { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:10px; align-items:center; padding:12px; border:1px solid #dde7ec; border-radius:10px; background:#f9fbfc; }
.location-person>div:nth-child(2) b,.location-person>div:nth-child(2) small,.location-person>div:last-child span,.location-person>div:last-child small { display:block; }.location-person small { color:#718794; font-size:10px; }.location-person>div:last-child { text-align:right; }.location-person>div:last-child a { display:block; margin-top:4px; font-size:11px; }.location-age { color:#16784b; font-size:12px; font-weight:800; }.location-age.stale { color:#a35c11; }
@media (max-width:780px) { .location-page .app-content main { padding:10px 10px 88px; }.location-list { grid-template-columns:1fr; }.location-hero { align-items:flex-start; padding:20px; }.location-share-card { grid-template-columns:1fr; padding:17px; }.location-actions { justify-content:stretch; }.location-actions button { flex:1; }.location-disclosure { grid-column:1; }.location-person { grid-template-columns:42px minmax(0,1fr); }.location-person>div:last-child { grid-column:2; text-align:left; } }
.composer-action-menu { position:relative; }
.composer-action-menu>summary { list-style:none; cursor:pointer; }
.composer-action-menu>summary::-webkit-details-marker { display:none; }
.composer-action-sheet { position:absolute; z-index:15; bottom:42px; left:0; display:grid; width:190px; padding:6px; border:1px solid #cbd9e2; border-radius:10px; background:#fff; box-shadow:0 12px 28px #102a4330; }
.composer-action-sheet label,.composer-action-sheet button { display:flex; align-items:center; gap:8px; width:100%; padding:10px; border:0; border-radius:7px; color:#244b63; background:transparent; cursor:pointer; font-size:13px; font-weight:700; text-align:left; }
.composer-action-sheet label:hover,.composer-action-sheet button:hover { background:#edf6fb; }
.composer-action-sheet label { position:relative; overflow:hidden; }
.composer-action-sheet input { display:block; position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.composer-action-sheet { max-height: min(390px, 65dvh); overflow-y:auto; }
.composer-action-sheet small { padding:6px 10px; color:#58778a; font-size:11px; }
.composer-action-sheet button.recording { color:#fff; background:#bc2828; }
.chat-capture-preview{width:min(900px,calc(100vw - 32px));max-height:90dvh;overflow:auto;padding:20px;border:1px solid #cbd9e2;border-radius:14px}.chat-capture-preview img{display:block;max-width:100%;max-height:60dvh;object-fit:contain;margin:12px auto}.chat-capture-preview::backdrop{background:#18344c88}
[data-capture-screen][hidden]{display:none}
@media(max-width:560px){
  body.desktop-screenclip:not(.communication-embedded) .message-composer{grid-template-columns:40px minmax(0,1fr) 40px}
  body.desktop-screenclip:not(.communication-embedded) .composer-footer{grid-column:1/-1;display:flex;justify-content:space-between;gap:6px}
  body.desktop-screenclip:not(.communication-embedded) .message-composer .composer-tools,body.desktop-screenclip:not(.communication-embedded) .message-composer.has-content .composer-tools{display:flex;gap:6px}
}
.pending-attachments { max-height:140px; overflow-y:auto; }
.send-attachments { flex-shrink:0; }
@media (pointer:coarse) {
  input, select, textarea:not([data-message-input]) { font-size:16px !important; }
  body { touch-action:pan-x pan-y; }
}
.message-location { display:grid; gap:4px; min-width:210px; padding:10px 12px; border:1px solid #acd2bc; border-radius:8px; color:#185c3c; background:#f0faf4; text-decoration:none; }
.message-location small { color:#5b7c6a; font-size:10px; }
.field-room-state { display:inline-block; margin-left:6px; padding:1px 5px; border-radius:8px; color:#087146; background:#ddf5e9; font-size:8px; font-style:normal; vertical-align:2px; }
.field-room-state.archived { color:#667782; background:#e8edf0; }
.room-row.archived { opacity:.78; }
.field-support-guide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.field-support-guide article { display:grid; gap:4px; padding:14px 16px; border:1px solid #d5e4ec; border-radius:10px; background:#fff; }
.field-support-guide b { color:#174e6d; }.field-support-guide span { color:#687f8e; font-size:12px; line-height:1.5; }
.field-session-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.field-session { display:grid; gap:4px; padding:13px 15px; border:1px solid #d8e4ea; border-left:4px solid #19a166; border-radius:9px; color:#1d445c; background:#f9fcfd; text-decoration:none; }
.field-session.archived { border-left-color:#98a8b2; color:#536b79; background:#f3f6f7; }
.field-session small { color:#718592; font-size:10px; }.field-session-state { justify-self:start; color:#148053; font-size:10px; font-weight:800; }
.field-session.archived .field-session-state { color:#74848d; }
.field-support-dialog { width:min(620px,calc(100vw - 32px)); }
.field-support-dialog .dialog-panel { width:100%; gap:16px; }
.field-support-dialog .dialog-panel>p { margin:0; color:#607587; line-height:1.6; }
.field-support-members { display:grid; gap:5px; padding:12px; border:1px solid #d9e5eb; border-radius:9px; background:#f7fafc; color:#557080; }
.field-support-members b,.field-support-members small,.field-support-members span,.field-support-members em { display:block; }
.field-support-members b { color:#173f57; }.field-support-members small,.field-support-members em { font-size:10px; }.field-support-members em { font-style:normal; }
@media (max-width:780px) {
  .field-support-guide,.field-session-list { grid-template-columns:1fr; }
  .location-hero { flex-direction:column; }.location-hero .button { width:100%; text-align:center; }
}
@media (max-width:560px) {
  body.communication-page:not(.communication-embedded) .composer-action-sheet { right:0; bottom:44px; left:auto; width:min(230px,calc(100vw - 24px)); }
}
/* Domain navigation: one destination per job, not parallel duplicate workflows. */
.company-context { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.company-context article { background:#edf5f8; border-left:3px solid #347da1; border-radius:8px; padding:14px 16px; min-width:0; }
.company-context p { color:var(--muted); font-size:13px; line-height:1.6; margin:6px 0 0; }
.workspace-domains { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 24px; align-items:start; padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.workspace-domain { min-width:0; background:#fff; overflow:hidden; }
.workspace-domain header { display:flex; align-items:center; gap:10px; padding:8px 6px; border-bottom:1px solid var(--line); }
.workspace-domain header>span { flex:0 0 30px; height:30px; display:grid; place-items:center; border-radius:8px; background:#dfeef5; color:#246a90; font-weight:700; }
.workspace-domain h2 { margin:0; font-size:16px; }
.workspace-domain header p { margin:6px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.workspace-domain>div { padding:2px 0; }
.workspace-domain a { display:grid; grid-template-columns:minmax(0,1fr) auto 16px; gap:4px 10px; padding:11px 6px; min-height:44px; text-decoration:none; }
.workspace-domain a:last-child { border-bottom:0; }
.workspace-domain a small { grid-column:1; color:var(--muted); line-height:1.55; }
.workspace-domain a>span { grid-column:3; grid-row:1; align-self:center; }
.workspace-domain a:hover,.workspace-domain a:focus-visible { background:#eef6fc; border-radius:6px; }
.workbench-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.workbench-heading h2{flex:none;margin:0;font-size:22px}.workbench-priority .section-heading h2{font-size:17px;margin:0}
.workbench-priority .section-heading{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.workbench-priority .empty{padding:8px 0;margin:0;text-align:left}.workbench-priority .section-heading>a{white-space:nowrap}
main details { scroll-margin-top:18px; }
@media(max-width:780px) { main details { scroll-margin-top:74px; } }
.workbench-maintenance{margin-top:14px;padding:14px 18px;border:1px solid var(--line);border-radius:10px;background:#fff}
.workbench-maintenance>summary{cursor:pointer;color:var(--muted)}.workbench-maintenance[open]>summary{margin-bottom:16px}
.workbench-maintenance .quick-actions{margin-bottom:12px}.workbench-maintenance .workspace-domain{max-width:600px}
@media(max-width:780px){.app-sidebar a[href="/hiagent"]{display:none}.workbench-priority{padding:14px}.workbench-heading h2{font-size:20px}.workbench-heading>a{font-size:12px}}
@media(max-width:1100px) { .workspace-domains { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:780px) { .workspace-domains { grid-template-columns:minmax(0,1fr); padding:12px; } .company-context { display:none; } }
@page { size:A4; margin:12mm; }
@page delivery-note { size:A4; margin:.35in; }
.trade-intake [data-trade-add] { display:block; width:100%; margin:16px 0 0; padding:11px 16px; text-align:center; color:#2c6d9c; background:#dfe7ec; border:1px solid transparent; border-radius:6px; }.trade-intake [data-trade-add]:hover { background:#d1e1ec; }
@media print { .app-sidebar,.page-title,.no-print,button { display:none!important; } .app-shell { display:block; } body { background:#fff; } main { max-width:none; padding:0; }.panel { box-shadow:none; break-inside:avoid; }.invoice-sheet { width:100%; min-height:0; margin:0; padding:0; border:0; box-shadow:none; }.delivery-note-sheet { page:delivery-note; }.document-lines thead { display:table-header-group; }.document-lines tr { break-inside:avoid; }.document-footer { break-before:avoid; } }

.sidebar-brand .brand { color:inherit; text-decoration:none; }
.solutions-nav-icon { display:inline-grid; width:20px; place-items:center; margin-right:10px; font-size:17px; }
.solutions-home { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; margin-top:20px; }
.solutions-home .workspace-domain { display:block; min-height:150px; padding:22px; color:inherit; text-decoration:none; }
.solutions-home .workspace-domain p { color:var(--muted); }
.solutions-home .workspace-domain>span { color:var(--blue); font-weight:700; }
.drive-page .drive-item>div:last-child { opacity:1; flex-wrap:wrap; }
.drive-page .drive-item { min-height:54px; }
.drive-page .drive-item>input[type=checkbox],.drive-selection input[type=checkbox] { width:18px; height:18px; margin:0; }
.drive-name { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:5px 0; color:#174964; background:transparent; text-align:left; }
.drive-name:hover { color:#0877bb; text-decoration:underline; background:transparent; }
.drive-selection { display:flex; flex-wrap:wrap; align-items:center; gap:9px; padding:10px 0; border-bottom:1px solid #dbe5eb; }
.drive-selection label { display:flex; align-items:center; gap:6px; margin:0; }
.drive-selection select { width:auto; padding:5px; }
.drive-list-hint { font-size:12px; color:#526c7d; }
.drive-page .drive-page-drop { min-height:55px; }
.drive-page .drive-table { min-height:260px; max-height:65vh; overflow:auto; scrollbar-width:thin; }
.drive-modal { width:min(860px,calc(100vw - 32px)); max-height:90vh; padding:18px; border:1px solid #cbdce7; border-radius:12px; }
.drive-modal::backdrop { background:#102a4677; }
.drive-modal form { display:block; }
.drive-modal header,.drive-modal footer { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.drive-modal header h2 { min-width:0; overflow-wrap:anywhere; font-size:18px; }
.drive-modal footer { justify-content:flex-end; margin-top:16px; }
.drive-modal [hidden] { display:none; }
.drive-modal [data-content] { overflow:auto; max-height:68vh; }
.drive-modal p { white-space:pre-wrap; overflow-wrap:anywhere; }
.drive-modal img,.drive-modal video { display:block; max-width:100%; max-height:62vh; margin:auto; }
.drive-modal iframe { width:100%; height:60vh; border:0; }
.drive-modal [data-content] { min-width:0; }.drive-modal .spreadsheet-toolbar { display:flex;gap:8px;align-items:center;margin:10px 0; }.drive-modal .muted { overflow-wrap:anywhere; }.drive-modal [data-content]>a { margin-bottom:10px; }
.drive-modal pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.drive-transfer { max-height:30vh; overflow:auto; }
.drive-page,.drive-browser,.drive-connect,.account-security-forms { min-width:0; }
.drive-page .drive-toolbar { flex-wrap:wrap; }
@media(max-width:1100px) {
  .account-security.panel { grid-template-columns:minmax(0,1fr); }
  .account-security .account-security-forms form { grid-template-columns:minmax(0,1fr); grid-template-areas:none; }
  .account-security .account-security-forms form>* { grid-area:auto; }
  .drive-page .drive-item { grid-template-columns:24px minmax(0,1fr); }
  .drive-page .drive-item>div:last-child { grid-column:2; justify-content:flex-start; }
  .drive-selection { gap:6px; }
}
.role-preview-controls form { display:flex; flex-wrap:wrap; align-items:end; gap:12px; }
.completeness-dot.partial { background:#d88b12; }
.completeness-dot.neutral { background:#788697; }
.finance-filter { display:flex; flex-wrap:wrap; align-items:end; gap:10px; }
.finance-filter label { min-width:140px; }
/* Shared archive hierarchy: year bars, alternating month strips, independent state badges. */
:is(.project-year,.invoice-year,.supplier-invoice-year) { margin:10px 0; padding:0; border:1px solid #d6e2ed; border-radius:3px; overflow:hidden; background:#fff; }
:is(.project-year,.invoice-year,.supplier-invoice-year)>summary { display:flex; align-items:center; gap:10px; min-height:44px; padding:10px 14px; color:#fff; background:linear-gradient(90deg,#193e6c,#2d6596); font-size:15px; list-style:none; }
:is(.project-year,.invoice-year,.supplier-invoice-year)>summary .period-meta { color:#e5eff8; margin-left:auto; }
:is(.project-period,.invoice-month,.supplier-invoice-month) { margin:0; border:0; border-top:1px solid #dce6ef; border-radius:0; background:#fff; overflow:hidden; }
:is(.project-period,.invoice-month,.supplier-invoice-month)>summary { display:flex; align-items:center; gap:10px; min-height:38px; padding:8px 16px 8px 28px; color:#245279; background:#f3f7fc; font-size:13px; list-style:none; }
:is(.project-period,.invoice-month,.supplier-invoice-month):nth-of-type(even)>summary { background:#dfeaf5; }
:is(.project-year,.invoice-year,.supplier-invoice-year,.project-period,.invoice-month,.supplier-invoice-month)>summary::before { content:'▸'; flex:none; font-size:12px; }
:is(.project-year,.invoice-year,.supplier-invoice-year,.project-period,.invoice-month,.supplier-invoice-month)[open]>summary::before { content:'▾'; }
:is(.project-year,.invoice-year,.supplier-invoice-year,.project-period,.invoice-month,.supplier-invoice-month)>summary::-webkit-details-marker { display:none; }
:is(.project-year,.invoice-year,.supplier-invoice-year,.project-period,.invoice-month,.supplier-invoice-month)>summary:focus-visible { outline:3px solid #edaa30; outline-offset:-3px; }
:is(.invoice-year,.supplier-invoice-year)>summary .completeness-marker { padding:2px 7px; border-radius:4px; background:#fff; color:#273f50; font-size:11px; }
:is(.invoice-month,.supplier-invoice-month)>summary .completeness-marker { font-size:11px; }
:is(.invoice-year,.supplier-invoice-year,.invoice-month,.supplier-invoice-month)>summary>span:first-child { flex:1; }
:is(.project-period,.invoice-month,.supplier-invoice-month) .table-wrap { margin:0; border:0; border-radius:0; }
main :not(.invoice-document)>.table-wrap tbody tr:nth-child(even) td,
:is(.project-period,.invoice-month,.supplier-invoice-month) tbody tr:nth-child(even) td { background:#eef4fa; }
.completeness-dot.incomplete { background:#ba4040; }
/* Keep directory exits and file actions together while browsing long folders. */
.drive-list-toolbar { position:sticky; top:8px; z-index:5; border:1px solid #d5e2ed; border-radius:10px; background:#fff; box-shadow:0 3px 12px #18344c0c; }
.drive-folder-nav { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:11px 14px; background:#f2f7fc; border-radius:10px 10px 0 0; border-bottom:1px solid #dce6ef; }
.drive-folder-nav>.secondary { min-height:34px; padding:6px 12px; color:#285f89; background:#fff; border:1px solid #c9dbe9; white-space:nowrap; }
.drive-folder-nav>.secondary:disabled { color:#8998a5; background:#f3f6f8; border-color:#dce4ea; opacity:1; }
.drive-folder-nav .drive-breadcrumb { flex:1; min-width:120px; padding-left:6px; }
.drive-folder-nav .drive-breadcrumb button:last-child { font-weight:750; color:#25465f; }
.drive-list-toolbar .drive-selection { gap:12px 18px; padding:11px 14px; border:0; }
.drive-selection-status,.drive-bulk-actions,.drive-view-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.drive-selection-status { min-height:34px; gap:12px; }
.drive-selection-status>label { flex-direction:row; gap:7px; white-space:nowrap; font-weight:600; }
.drive-selection-status>[data-drive-selection-count] { color:#5b7183; font-size:12px; }
.drive-bulk-actions { padding-left:16px; border-left:1px solid #dce6ef; }
.drive-view-actions { margin-left:auto; }
.drive-list-toolbar .drive-selection button,.drive-list-toolbar select { min-height:34px; padding:6px 12px; border-radius:6px; font-size:12px; }
.drive-list-toolbar .drive-selection .secondary { color:#2c628b; background:#fff; border:1px solid #cbdce9; }
.drive-list-toolbar .drive-selection .link-danger { color:#b73c40; background:#fff4f3; border:1px solid #efd1cf; }
.drive-list-toolbar .drive-selection button:disabled { color:#8a99a7; background:#f2f5f8; border-color:#e0e7ed; opacity:1; cursor:not-allowed; }
.drive-view-actions label { flex-direction:row; white-space:nowrap; font-size:12px; color:#617788; }
.drive-view-actions select { min-width:108px; background:#fff; }
/* Table record editors: compact rows, focused editing, persistent actions. */
.record-edit-trigger { display:inline-flex; align-items:center; gap:6px; padding:7px 11px; border:1px solid #cfdeea; border-radius:6px; color:#326687; background:#f7fafd; font-size:12px; white-space:nowrap; }
.record-edit-trigger:hover { background:#eaf3fa; border-color:#94bad5; filter:none; }
.customer-work-list.panel { padding:18px; border-radius:10px; }
.customer-work-list .section-heading { align-items:center; margin-bottom:16px; }
.customer-work-list .section-heading h2 { font-size:17px; font-weight:650; margin:0 0 5px; }
.customer-work-list .section-heading p { margin:0; font-size:12px; color:#7a8c9b; }
.customer-work-list .table-wrap { margin:0; }
.customer-work-list table { width:100%; min-width:960px; table-layout:fixed; }
.customer-work-list th { padding:12px 16px; font-size:12px; font-weight:600; color:#637c90; background:#f4f7fa; }
.customer-work-list td { padding:15px 16px; font-size:13px; vertical-align:top; line-height:1.55; overflow-wrap:anywhere; }
.customer-work-list th:nth-child(1) { width:18%; }
.customer-work-list th:nth-child(2) { width:11%; }
.customer-work-list th:nth-child(3) { width:22%; }
.customer-work-list th:nth-child(4) { width:27%; }
.customer-work-list th:nth-child(5) { width:8%; }
.customer-work-list th:nth-child(6) { width:14%; }
.customer-work-list small { display:block; margin-top:5px; font-size:11px; color:#7c8f9f; font-weight:400; }
.customer-work-list .record-code { font-weight:600; }
.customer-work-list .customer-name { display:block; color:#354e62; font-weight:500; }
.customer-work-list .work-status { display:inline-block; padding:3px 7px; border-radius:5px; background:#eaf2f8; color:#446a86; font-size:12px; }
.table-record-editor { width:min(760px,calc(100vw - 28px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid #d9e4ed; }
.table-record-editor .record-editor-panel { display:flex; flex-direction:column; gap:0; padding:0; max-height:calc(100dvh - 36px); min-width:0; margin:0; }
.table-record-editor .record-editor-heading { flex:none; padding:20px 24px 16px; background:#f7fafd; border-bottom:1px solid #e0e9f0; }
.table-record-editor .record-editor-heading h2 { margin:0 0 5px; font-size:19px; color:#25465e; }
.table-record-editor .record-editor-heading p { margin:0; font-size:12px; color:#71869a; overflow-wrap:anywhere; }
.table-record-editor .record-editor-grid { overflow:auto; min-height:0; padding:20px 24px; gap:16px 20px; align-items:start; }
.table-record-editor .record-editor-grid label { display:grid; gap:6px; font-size:12px; font-weight:500; color:#48657b; min-width:0; }
.table-record-editor .record-editor-grid input,.table-record-editor .record-editor-grid select { min-width:0; height:37px; border-color:#cfdde8; border-radius:6px; background:#fff; }
.table-record-editor .record-editor-grid textarea { min-height:65px; border-color:#cfdde8; border-radius:6px; resize:vertical; }
.table-record-editor .record-editor-actions { flex:none; margin:0; padding:14px 24px; border-top:1px solid #e0e9f0; background:#f8fafc; }
.table-record-editor .record-editor-actions button { min-width:84px; min-height:36px; font-size:13px; }
.table-record-editor .record-editor-actions .secondary { background:#fff; color:#547087; border:1px solid #ccdae5; }
.master-section .company-role-form { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0; }
.master-section .company-role-form label { display:inline-flex; flex-direction:row; align-items:center; gap:5px; margin:0; white-space:nowrap; }
.master-section .company-role-form input[type=checkbox] { width:15px; height:15px; margin:0; }
.master-section .company-role-form button { padding:6px 10px; font-size:12px; }
@media(max-width:600px) {
  .table-record-editor .record-editor-grid { grid-template-columns:minmax(0,1fr); padding:16px; }
  .table-record-editor .record-editor-heading,.table-record-editor .record-editor-actions { padding:14px 16px; }
}
/* Unified, quiet controls for navigation, files and account settings. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.ui-icon,.nav-icon { flex:none; vertical-align:middle; }
.app-sidebar { background:#172f43; box-shadow:none; }
.sidebar-brand { padding:5px 10px 19px; }
.sidebar-brand .brand { font-size:18px; letter-spacing:.065em; line-height:1.4; }
.sidebar-brand .subbrand { margin-top:6px; color:#a9c0d1; opacity:1; }
.app-sidebar>nav { gap:6px; border:0; padding-bottom:10px; }
.app-sidebar>nav a { min-height:44px; padding:10px 12px; gap:12px; border:0; border-radius:7px; color:#c9d9e5; font-weight:500; }
.app-sidebar>nav a::before { display:none; content:none!important; }
.app-sidebar>nav a:hover { transform:none; background:#ffffff0d; }
.app-sidebar>nav a.active { background:#2b526d; box-shadow:inset 3px 0 #78c9ed; color:#fff; }
.app-sidebar>nav a[href='/admin/role-preview'] { margin-top:10px; border-top:1px solid #ffffff14; border-radius:0 0 7px 7px; font-size:12px; }
.app-sidebar .context-shortcuts { border-top:1px solid #ffffff14; border-bottom:0; padding-top:12px; }
.context-shortcuts-toggle { font-size:11px; font-weight:600; letter-spacing:0; color:#9cb7ca; padding:8px 10px; }
.app-sidebar .context-shortcut-links a { display:flex; align-items:center; padding:8px 12px; }
.drive-page .drive-browser { border-radius:12px; padding:18px; transition:box-shadow .15s; }
.drive-page .drive-browser.active { box-shadow:inset 0 0 0 2px #338aca; background:#f3f9ff; }
.drive-page .drive-toolbar { gap:16px; margin:0; flex-direction:row; align-items:center; }
.drive-page .drive-actions { display:flex; gap:8px; flex-wrap:wrap; }
.drive-page .drive-actions button { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:38px; padding:0 14px; border-radius:7px; font-size:13px; }
.drive-page .drive-actions .secondary { background:#fff; color:#39556b; border:1px solid #d4dfe7; }
.drive-page .drive-upload-button { background:#2b74a8; color:#fff; border:1px solid #2b74a8; }
.drive-page .drive-search { margin:0 0 0 auto; width:min(300px,100%); }
.drive-page .drive-search input { height:38px; background:#f7f9fc; border-color:#dbe4ec; border-radius:7px; }
.drive-upload-hint { display:flex; gap:12px; flex-wrap:wrap; margin:12px 0 16px; font-size:12px; color:#60768a; }
.drive-upload-hint span { color:#8495a3; }
.drive-filters { display:grid; grid-template-columns:minmax(180px,2fr) minmax(160px,1fr) auto; gap:10px 12px; align-items:end; padding:14px; margin:0 0 14px; border:1px solid #d7e4ef; border-radius:9px; background:#f5f9fc; }
.drive-filters label { display:grid; gap:5px; min-width:0; font-size:12px; color:#45627a; }
.drive-filters :is(input,select) { width:100%; min-width:0; height:38px; border-radius:6px; background:#fff; }
.drive-filters>button { min-height:38px; justify-self:start; }
.drive-filters>p { grid-column:1/-1; margin:0; font-size:12px; color:#526c7d; overflow-wrap:anywhere; }
@media(max-width:540px) { .drive-filters { grid-template-columns:minmax(0,1fr); padding:10px; }.drive-filters :is(input,select,button) { min-height:44px; } }
.drive-page .drive-item { grid-template-columns:26px minmax(0,1fr) auto; min-height:64px; padding:10px 14px; border-color:#edf1f5; }
.drive-page .drive-item:nth-child(even) { background:#f8fafc; }
.drive-page .drive-item:hover { background:#edf5fc; }
.drive-page .drive-item>div:last-child { grid-column:auto; display:flex; gap:4px; opacity:1; }
.drive-page .drive-item>div:last-child button { display:inline-flex; align-items:center; gap:5px; padding:7px 9px; border:1px solid transparent; border-radius:6px; background:transparent; color:#526c81; font-size:12px; }
.drive-page .drive-item>div:last-child button:hover { background:#fff; border-color:#d5e2ed; filter:none; color:#236b9b; }
.drive-page .drive-item>div:last-child .link-danger { color:#b14b53; }
.drive-page .drive-item>div:last-child .link-danger:hover { background:#fff1f1; border-color:#efcfd2; color:#a42b37; }
.drive-page .drive-name { display:flex; align-items:center; gap:9px; color:#294b66; font-weight:600; }
.drive-page .drive-name span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.drive-page .drive-item>span { color:#b88c35; font-size:18px; }
.drive-page .drive-item small { margin-top:3px; font-size:11px; color:#7a8e9f; }
.drive-page :is(button,input,select):focus-visible,.account-security :is(button,input):focus-visible { outline:2px solid #3a8bc5; outline-offset:2px; }
.drive-page button:disabled { cursor:not-allowed; }
.account-security.panel { display:block; padding:12px 16px; border-radius:12px; margin-top:16px; }
.account-security>div:first-child { margin-bottom:8px; }
.account-security .eyebrow { display:none; }
.account-security h3 { font-size:17px; margin:0 0 5px; }
.account-security>div>p { font-size:12px; color:#718495; }
.account-security .account-security-forms { display:grid; grid-template-columns:1fr 1.25fr .9fr; gap:10px; align-items:start; }
.account-security .account-security-forms form { display:flex; flex-wrap:wrap; align-items:flex-end; gap:6px 8px; padding:10px 12px; margin:0; border:1px solid #e0e7ed; border-radius:9px; background:#fafbfd; }
.account-security .account-security-forms form>* { grid-area:auto; min-width:0; }
.account-security .account-security-forms h4 { margin:0; font-size:14px; color:#29485f; }
.account-security .security-card-hint { margin:0; line-height:1.4; color:#7c8f9e; font-size:12px; }
.account-security .account-security-forms label { flex:1 1 100px; font-size:12px; color:#526b7e; font-weight:500; gap:3px; }
.account-security .account-security-forms input { height:36px; min-width:0; border-color:#d6e1e9; border-radius:6px; background:#fff; }
.account-security .account-security-forms button { justify-self:start; min-height:34px; margin-top:0; padding:7px 13px; font-size:12px; }
.account-security .account-security-forms .secondary { color:#3d617b; background:#fff; border:1px solid #cbdce8; }
.account-security .account-security-forms small { order:1; margin:0; font-size:11px; line-height:1.5; }
.account-security .account-security-forms h4,.account-security .security-card-hint,.account-security .account-security-forms small { flex-basis:100%; }
@media(max-width:540px){.account-security .account-security-forms label{flex-basis:100%;}.account-security .account-security-forms :is(input,button){min-height:44px;}}
.master-section.panel,.people-create.panel { border:1px solid #dde6ed; box-shadow:none; border-radius:9px; padding:0; margin-bottom:8px; overflow:hidden; }
.master-section.panel>summary,.people-create>details>summary { display:flex; align-items:center; gap:10px; list-style:none; min-height:48px; padding:12px 16px; color:#35536b; font-size:14px; font-weight:600; background:#fff; }
.master-section.panel>summary::before,.people-create>details>summary::before { content:''; width:7px; height:7px; border-right:1.5px solid #8096a7; border-bottom:1.5px solid #8096a7; transform:rotate(-45deg); transition:transform .15s; margin-right:5px; }
.master-section.panel[open]>summary::before,.people-create>details[open]>summary::before { transform:rotate(45deg); }
.master-section.panel>summary::-webkit-details-marker,.people-create>details>summary::-webkit-details-marker { display:none; }
.master-section.panel>summary:hover,.people-create>details>summary:hover { background:#f5f8fc; }
.master-section.panel[open]>summary,.people-create>details[open]>summary { border-bottom:1px solid #e3eaf0; background:#f5f8fc; }
.master-section.panel>.table-wrap { margin:12px; }
.people-create>details>form { padding:16px; }
.department-count { margin-left:auto; padding:2px 9px; border-radius:12px; font-size:11px; font-weight:500; color:#617d91; background:#edf3f8; }
@media(max-width:1100px) { .account-security .account-security-forms { grid-template-columns:1fr; } }
@media(max-width:760px) {
  .drive-page .drive-toolbar { align-items:stretch; flex-direction:column; gap:12px; }
  .drive-page .drive-search { width:100%; margin:0; }
  .drive-page .drive-item { grid-template-columns:24px minmax(0,1fr); }
  .drive-page .drive-item>div:last-child { grid-column:2; justify-content:flex-start; }
  .drive-page .drive-browser,.account-security.panel { padding:12px; }
}
.drive-list-toolbar button:focus-visible,.drive-list-toolbar select:focus-visible { outline:2px solid #287ab2; outline-offset:2px; }
@media (max-width:900px) {
  .drive-folder-nav .drive-breadcrumb { flex-basis:100%; padding-left:0; }
  .drive-list-toolbar .drive-selection { gap:10px; }
  .drive-bulk-actions { padding-left:0; border-left:0; }
}
.role-preview-controls label { min-width:240px; }
.role-preview-frame { display:block; width:100%; height:78vh; min-height:480px; border:1px solid #cbdce7; border-radius:10px; background:#f5f8fb; }
.request-intake{max-width:1320px;margin:0 auto 24px;padding:0;overflow:visible;border:1px solid #d8e3ed;border-radius:14px;box-shadow:0 8px 28px #173a5710}
.request-intake-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;background:linear-gradient(110deg,#edf5fc,#fff);border-radius:14px 14px 0 0;border-bottom:1px solid #dce6ef}
.request-intake-header h2{font-size:24px;line-height:1.3;margin:7px 0}.request-intake-header p{margin:0;color:#64798b;font-size:13px}
.request-intake .intake-block{padding:24px 28px}.intake-block-title{display:flex;align-items:center;gap:10px;margin-bottom:20px}.intake-block-title>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#e8f1f9;color:#2c6d9c;font-size:12px;font-weight:700}.intake-block-title h3{margin:0;font-size:16px}.intake-block-title small{margin-left:auto;color:#7a8d9d;font-size:12px}
.intake-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 22px}.request-intake label{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:13px;font-weight:600;color:#425d72}.request-intake input,.request-intake select,.request-intake textarea{font-size:14px;font-weight:400;border-radius:7px;min-width:0;width:100%;box-sizing:border-box}.request-intake textarea{resize:vertical;line-height:1.65}.field-caption{display:flex;justify-content:space-between;gap:8px}.field-caption a{font-size:12px;font-weight:400}.intake-extra{margin-top:18px}.intake-extra summary{font-size:12px;font-weight:500;color:#698096;cursor:pointer}.intake-extra[open]>.intake-fields,.intake-extra[open]>label{margin-top:16px}
.intake-columns{display:grid;grid-template-columns:1.1fr 1fr;border-top:1px solid #e2eaf1}.intake-columns .intake-block+ .intake-block{border-left:1px solid #e2eaf1;background:#f9fbfd}.intake-columns label+label{margin-top:18px}.intake-sources p{font-size:13px;color:#698096;line-height:1.6}.intake-sources>small{display:block;font-size:11px;color:#748798;margin:10px 0 20px}.intake-sources .file-receiver{margin:8px 0;padding:16px;border-radius:9px}.intake-sources .file-receiver-main{flex-wrap:wrap;gap:12px}.intake-sources .file-receiver-main strong{font-size:13px}.intake-sources .file-receiver-main small{font-size:11px}.intake-sources .file-receiver-selection{overflow-wrap:anywhere}.intake-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 28px;border-top:1px solid #dce6ef;background:#f7fafc;border-radius:0 0 14px 14px}.intake-footer p{margin:0;color:#5d7488;font-size:13px}.intake-footer button{flex-shrink:0;padding:12px 24px;border-radius:8px}
.vessel-picker{position:relative;min-width:0}.vessel-picker small{display:block;font-size:11px;color:#688096;margin-top:4px}.vessel-results{position:absolute;top:42px;left:0;right:0;z-index:25;max-height:230px;overflow:auto;border:1px solid #b9cfdf;border-radius:8px;background:white;box-shadow:0 6px 20px #1d395420;padding:4px}.vessel-results[hidden]{display:none}.vessel-results button{display:block;width:100%;text-align:left;background:white;color:#244861;padding:10px 12px;border:0;border-radius:5px;font-size:13px}.vessel-results button:hover,.vessel-results button:focus{background:#eaf3fb}.vessel-results .vessel-new{color:#2373ab}.vessel-create-dialog{width:min(440px,calc(100vw - 32px));padding:26px;border:1px solid #cbdce9;border-radius:14px;box-shadow:0 20px 80px #162e4b40}.vessel-create-dialog::backdrop{background:#14283d66}.vessel-create-dialog h2{font-size:20px;margin:0 0 12px}.vessel-create-dialog p{font-size:13px;color:#637b90;line-height:1.7}.vessel-create-dialog label{display:block}.vessel-create-dialog input{width:100%;margin-top:8px;box-sizing:border-box}.vessel-create-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
@media(max-width:1050px){.intake-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.intake-columns{grid-template-columns:1fr}.intake-columns .intake-block+.intake-block{border-left:0;border-top:1px solid #e2eaf1}}
@media(max-width:600px){.request-intake-header,.request-intake .intake-block{padding:18px}.request-intake-header h2{font-size:21px}.intake-fields{grid-template-columns:1fr;gap:16px}.intake-footer{flex-direction:column;align-items:stretch;padding:18px}.intake-block-title{gap:8px}.intake-block-title small{font-size:10px}}
.project-register-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;background:linear-gradient(110deg,#f1f7fc,#fff);border-radius:12px}.project-register-toolbar p{margin:0 0 10px;color:#687e91;font-size:13px}.project-register-total{font-size:12px;color:#667f94}.project-register-total strong{display:inline-block;margin-left:8px;color:#245e86;font-size:17px}.project-register-toolbar form{margin:0;align-items:flex-end}.project-register-toolbar label{font-size:12px}.project-register-toolbar select{min-width:210px}.project-register{padding:22px 24px;border-radius:12px}.project-list-heading{display:flex;align-items:center;gap:10px;margin:0 0 16px}.project-list-heading h2{font-size:16px;line-height:1.4;margin:0}.project-count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;padding:2px 8px;border-radius:6px;background:#eaf2f8;color:#376889;font-size:12px;font-weight:700}.project-legend{display:flex;gap:8px;margin-left:auto}.project-legend .project-state{font-size:11px}.project-register th{font-size:12px;font-weight:600;padding:12px 14px}.project-register td{padding:12px 14px;line-height:1.55}.project-register .completed-projects{margin-top:28px;border-top:1px solid #e0e9f0;padding-top:24px}@media(max-width:650px){.project-register-toolbar{align-items:stretch;flex-direction:column;gap:16px;padding:18px}.project-register{padding:16px}.project-register-toolbar form{flex-wrap:wrap}.project-register-toolbar select{min-width:0}}
.table-record-editor .record-editor-grid label:has(input[type=checkbox]),.record-editor-grid .confirmation-check{display:flex;align-items:flex-start;gap:10px;grid-column:1/-1;padding:13px 14px;border-radius:8px;background:#f4f8fb;line-height:1.7;font-size:13px;font-weight:400}.table-record-editor .record-editor-grid input[type=checkbox],.record-editor-grid .confirmation-check input[type=checkbox]{width:18px;height:18px;min-height:18px;min-width:18px;flex:0 0 18px;margin:2px 0 0;padding:0;accent-color:#2b73a4;align-self:flex-start}.confirmation-note{font-size:12px;line-height:1.65;color:#73889a}
.procurement-page-note{margin:0 0 18px;color:#698096;font-size:13px}.procurement-create{margin-bottom:18px}.procurement-create>summary{display:inline-flex;padding:10px 16px;background:#2d709e;color:white;border-radius:8px;font-size:13px;cursor:pointer}.procurement-create[open]>.panel{margin-top:12px}.procurement-register{padding:22px 24px;border-radius:12px}.procurement-filters{display:grid;grid-template-columns:minmax(230px,1.6fr) minmax(160px,.8fr) minmax(220px,1.2fr) auto;align-items:end;gap:14px;padding:16px;background:#f5f9fc;border:1px solid #e1eaf1;border-radius:9px;margin-bottom:20px}.procurement-filters label{display:grid;gap:7px;font-size:12px;color:#577087;min-width:0}.procurement-filters>div{display:flex;gap:8px}.procurement-filters .searchable-select{gap:5px}.procurement-filters input,.procurement-filters select{height:37px;min-width:0;font-size:13px}.procurement-register table{min-width:1160px}.procurement-register th{padding:12px;font-size:12px;font-weight:600;background:#f2f6fa;white-space:nowrap}.procurement-register td{padding:14px 12px;vertical-align:top;line-height:1.65;font-size:13px}.procurement-register td small{display:block;color:#7c8f9e;font-size:11px;margin-top:4px}.procurement-register td:nth-child(2){width:25%;min-width:220px}.procurement-register td:nth-child(1){min-width:125px}.procurement-register td:nth-child(3){min-width:95px}.procurement-register td:nth-child(7){white-space:nowrap}.procurement-register tbody tr:nth-child(even){background:#f8fbfd}.procurement-description{overflow-wrap:anywhere}.procurement-amount{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.procurement-state{display:inline-block;padding:3px 8px;border-radius:6px;font-size:11px;white-space:nowrap;background:#edf3f7;color:#526d82}.procurement-state.pending{background:#fff3dc;color:#986111}.procurement-state.working{background:#e7f2ff;color:#286bb0}.procurement-state.done{background:#e6f5ee;color:#267656}.procurement-state.closed{background:#edf0f3;color:#7b8894}.procurement-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:180px}.procurement-project-link{font-size:12px;width:100%;color:#597e98}.procurement-actions .record-edit-trigger{margin:0;padding:6px 9px;font-size:12px;white-space:nowrap}.procurement-actions .record-cancel-trigger{border-color:transparent;background:transparent;color:#9b6666}.procurement-actions .record-cancel-trigger:hover{background:#fff0ee;color:#ad4139}@media(max-width:1050px){.procurement-filters{grid-template-columns:1fr 1fr}}@media(max-width:600px){.procurement-register{padding:16px}.procurement-filters{grid-template-columns:1fr;padding:12px}}
.table-record-editor .record-editor-grid label.confirmation-check{flex-direction:row;flex-wrap:nowrap}.confirmation-check>span{flex:1;min-width:0}
.document-line-editor .document-add-line { display:block; width:100%; margin:12px 0 6px; text-align:center; }
.document-line-editor td:last-child { width:72px; white-space:nowrap; }
.delivery-edit-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.delivery-editor { margin-bottom:20px; }
.ai-assist { padding:0; margin:8px 0 12px; background:#f7fafc; border:1px solid #d5e4ef; border-radius:8px; }
.ai-assist>summary,.intake-originals>summary { padding:12px 16px; cursor:pointer; font-size:14px; color:#36586e; }
.ai-assist>summary span,.intake-originals>summary small { margin-left:12px; color:#667f90; font-size:12px; font-weight:400; }
.ai-assist[open]>summary { border-bottom:1px solid #d5e4ef; }
.ai-assist-body { padding:16px; }
.ai-assist-body>p:first-child { margin:0; font-size:12px; }
.intake-originals { border:1px solid #e0e8ee; border-radius:8px; margin:0 0 12px; }
.intake-originals .file-receiver { margin:0 16px 16px; }
.ai-assist h3 { margin:0 0 5px; font-size:15px; }
.ai-assist textarea { width:100%; min-height:90px; margin:12px 0; }
.ai-assist .quick-actions { margin-top:12px; align-items:center; }
.ai-assist [data-ai-preview] { overflow-wrap:anywhere; font-size:13px; line-height:1.7; }
.ai-assist label.confirmation-check { display:flex; flex-direction:row; align-items:center; gap:9px; margin-top:14px; }
.ai-assist label.confirmation-check input { width:18px; height:18px; }
.ai-assist [hidden] { display:none!important; }
.file-ai-results { padding:18px; margin:14px 0; border:1px solid #a8c9e2; border-radius:10px; background:#f5faff; }
.file-ai-results[hidden] { display:none!important; }
.file-ai-results header { display:flex; justify-content:space-between; align-items:start; gap:12px; }
.file-ai-results h3 { font-size:18px; margin:0 0 5px; }
.file-ai-results header p { margin:0; color:#526c82; }
.file-ai-results .ai-result-state { border-radius:20px; background:#e2eef9; color:#1b5686; padding:6px 12px; white-space:nowrap; font-size:12px; }
.file-ai-results table { min-width:620px; }
.file-ai-results tbody th { font-weight:600; background:transparent; color:#203e57; width:130px; }
.file-ai-results td { white-space:normal; overflow-wrap:anywhere; }
.file-ai-results input[type=checkbox] { width:18px; height:18px; }
.file-ai-results .ai-result-missing,[data-ai-assist] .ai-result-missing { color:#b42318; font-weight:600; background:#fff1ef; }
.file-ai-results .ai-result-different { color:#945200; background:#fff8e9; }
.file-ai-results .ai-result-actions { display:flex; gap:16px; align-items:center; margin-top:14px; }
form label.file-ai-review:not([hidden]) { display:flex; flex-direction:row; align-items:center; justify-content:flex-start; gap:10px; }
form label.file-ai-review input[type=checkbox] { width:18px; height:18px; flex:0 0 18px; margin:0; }
@media(max-width:650px) { .file-ai-results header,.file-ai-results .ai-result-actions { flex-direction:column; } }
.invoice-sheet.delivery-note-sheet { width:min(210mm,100%); min-height:297mm; padding:12mm; font:13px/1.4 Arial,Helvetica,sans-serif; }
.dn-print-table { table-layout:fixed; }
.dn-print-table col:nth-child(1) { width:9%; }
.dn-print-table col:nth-child(2) { width:63%; }
.dn-print-table col:nth-child(3),.dn-print-table col:nth-child(4) { width:14%; }
.dn-print-table .dn-running-header td { border:0; background:white; padding:18px 0 7px; color:#617382; font-size:10px; text-align:left; }
.dn-header { display:grid; grid-template-columns:1.4fr 1fr; gap:24px; border-bottom:2px solid #1e5f91; padding-bottom:16px; }
.dn-issuer img { display:block; width:112px; height:auto; margin-bottom:12px; }
.dn-issuer strong { display:block; font-size:13px; letter-spacing:.02em; color:#152f46; }
.dn-issuer p { margin:8px 0 0; font-size:11px; color:#3e5363; line-height:1.55; }
.dn-title { text-align:right; }
.dn-title h2 { font-size:27px; letter-spacing:-.02em; color:#183e5d; margin:0; }
.dn-title>span { display:block; font-size:8px; letter-spacing:.15em; color:#6c7c88; margin:4px 0 20px; }
.delivery-note-sheet dl { margin:0; }
.delivery-note-sheet dl>div { display:flex; justify-content:space-between; gap:14px; margin:5px 0; }
.delivery-note-sheet dt { color:#617382; font-size:10px; font-weight:normal; }
.delivery-note-sheet dd { margin:0; font-weight:600; overflow-wrap:anywhere; text-align:right; }
.dn-parties { display:grid; grid-template-columns:1.3fr 1fr; gap:28px; padding:14px 0 0; }
.dn-parties>div>span { font-size:9px; letter-spacing:.12em; font-weight:700; color:#47728e; }
.dn-parties p { font-size:12px; margin:7px 0 0; line-height:1.55; }
.dn-parties dl { margin-top:6px; }
.dn-print-table .dn-columns th { padding:8px 7px; background:#e8f0f6; color:#244a66; border:1px solid #b6c8d5; font-size:11px; }
.dn-print-table tbody td { border:1px solid #ccd7df; padding:5px 7px; font-size:12px; line-height:1.35; white-space:normal; overflow-wrap:anywhere; }
.dn-print-table tbody tr:nth-child(even) { background:#f7f9fb; }
.dn-print-table tfoot td { border:0; padding:18px 0 0; white-space:normal; text-align:left; }
.dn-signoff p { margin:0; color:#596d7c; font-size:10px; }
.dn-signoff>div { display:grid; grid-template-columns:1fr 1.3fr .8fr; gap:24px; margin-top:34px; }
.dn-signoff span { border-top:1px solid #8498a7; padding-top:7px; font-size:10px; color:#41596b; }
@page delivery-note { size:A4; margin:10mm 12mm 14mm; @bottom-right { content:"Page " counter(page) " / " counter(pages); font:9px Arial; color:#617382; } }
@media print {
 .invoice-sheet.delivery-note-sheet { padding:0; margin:0; min-height:0; width:100%; page:delivery-note; }
 .dn-print-table thead { display:table-header-group; }
 .dn-print-table tfoot { display:table-footer-group; }
 .dn-print-table tr { break-inside:avoid; }
 .dn-print-table { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}
@media screen and (max-width:650px) { .dn-header,.dn-parties { grid-template-columns:1fr; gap:14px; } .dn-title { text-align:left; } .invoice-sheet.delivery-note-sheet { padding:18px; } }
.trade-extraction-result { border:1px solid #a8c9e2; background:#f5faff; border-radius:12px; padding:20px; margin:16px 0; }
.trade-extraction-result[hidden] { display:none!important; }
.trade-extraction-result header { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.trade-extraction-result h2 { font-size:18px; margin:0 0 6px; }
.trade-extraction-result [data-result-fields] { margin:12px 0; line-height:1.8; }
.trade-extraction-result .table-wrap,.ai-lines-preview { max-height:420px; overflow:auto; }
.trade-extraction-result table,.ai-lines-preview table { min-width:740px; }
.trade-extraction-result th { position:sticky; top:0; background:#e4eef6; }
.trade-extraction-result td:nth-child(2) { width:55%; line-height:1.6; }
.trade-extraction-result td { vertical-align:top; }
.trade-extraction-result .missing-value { color:#b42318; }
.trade-extraction-result [data-result-warning] { white-space:pre-wrap; font-size:12px; line-height:1.7; }
.ai-assist [data-ai-review] { border-top:1px solid #c7d9e7; padding-top:16px; margin-top:16px; }
.request-intake .intake-columns:has(>section:only-child) { grid-template-columns:1fr; }
@media(max-width:650px){ .trade-extraction-result { padding:12px; } .trade-extraction-result header { flex-direction:column; align-items:stretch; } }
.stock-overview .section-heading { align-items:end; gap:20px; }
.stock-overview .section-heading p { color:#526879; margin:0 0 8px; }
.stock-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:20px 0; }
.stock-metrics a { display:grid; gap:12px; padding:18px; border:1px solid #dde6ed; border-radius:10px; background:#f7fafc; text-decoration:none; }
.stock-metrics a:hover { border-color:#7caacb; background:#edf5fb; }
.stock-metrics span { color:#526879; font-size:13px; }
.stock-metrics strong { font-size:26px; font-weight:650; }
.stock-metrics small { font-size:12px; font-weight:400; }
.stock-guidance { color:#526879; font-size:13px; }
.stock-guidance summary { font-size:13px; font-weight:500; }
.stock-empty { padding:25px 16px; color:#738394; text-align:center; background:#f7fafc; border-radius:8px; }
.stock-empty.settled { color:#27705b; background:#f2f9f6; }
.stock-section h2 { font-size:17px; font-weight:650; }
.stock-section .section-heading { margin-bottom:14px; }
@media(max-width:700px){.stock-metrics {grid-template-columns:repeat(2,minmax(0,1fr));}.stock-overview .section-heading{align-items:stretch;flex-direction:column;}}
.bank-import> .inline-form { margin-top:20px; border-top:1px solid #dde6ed; padding-top:16px; }
.bank-row { margin-top:12px; border:1px solid #d8e3ec; border-radius:10px; overflow:hidden; }
.bank-row summary { padding:16px; background:#f1f6fa; font-size:14px; line-height:1.7; }
.bank-row:nth-of-type(even) summary { background:#e5eef5; }
.bank-row-form,.bank-row>a { padding:18px; }
.bank-reason { padding:12px; border-left:3px solid #5996bf; background:#f1f7fb; }
.bank-account-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; padding:16px; background:#f7fafc; border-radius:8px; }
.bank-account-summary dt { color:#657a8c; font-size:12px; margin-bottom:6px; }
.bank-account-summary dd { margin:0; overflow-wrap:anywhere; font-size:14px; }
.bank-source-text { white-space:pre-wrap; overflow-wrap:anywhere; max-height:300px; overflow:auto; padding:14px; background:#f7fafc; }
.trade-lines th:nth-child(2) { width:140px; }
.trade-lines th:nth-child(3) { width:auto; }
.trade-lines th:nth-child(4) { width:88px; }
.trade-lines th:nth-child(6) { width:108px; }
.trade-lines th:nth-child(7) { width:120px; }
.trade-lines textarea { display:block; width:100%; min-width:0; min-height:39px; padding:8px; line-height:1.5; resize:vertical; overflow:hidden; overflow-wrap:anywhere; }
.trade-lines td { vertical-align:top; }
.trade-lines td:nth-child(4) input,.trade-lines td:nth-child(6) input,.trade-lines td:nth-child(7) input { text-align:right; font-variant-numeric:tabular-nums; }
.order-lines-section table { table-layout:fixed; width:100%; }
.order-lines-section th:nth-child(1) { width:60px; }
.order-lines-section th:nth-child(2) { width:auto; }
.order-lines-section th:nth-child(3) { width:85px; }
.order-lines-section th:nth-child(4) { width:70px; }
.order-lines-section th:nth-child(5),.order-lines-section th:nth-child(6) { width:115px; }
.order-lines-section td { vertical-align:top; white-space:normal; overflow-wrap:anywhere; }
.order-lines-section td:nth-child(n+3) { font-variant-numeric:tabular-nums; text-align:right; }
.attachment-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; }
.attachment-form>label { display:flex; flex-direction:column; gap:8px; min-width:0; width:100%; grid-column:1/-1; }
.attachment-form>.file-receiver { grid-column:1; }
.attachment-form>button { grid-column:2; }
.attachment-form .file-receiver { width:100%; min-width:0; }
.attachment-links { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.attachment-links>a:first-child { overflow-wrap:anywhere; }
.attachment-download { white-space:nowrap; font-size:12px; }
@media(max-width:700px){.attachment-form {grid-template-columns:minmax(0,1fr);}.attachment-form>button{grid-column:1;}.order-lines-section table {min-width:700px;}}
@media print {
 body.print-order-page main>*:not(.project-hero):not(.project-page-header):not(.project-workspace):not(.order-lines-section),body.print-order-page .project-hero>div>p {display:none!important;}
 body.print-order-page .project-workspace>[data-project-panel]:not([data-project-panel="files"]),body.print-order-page [data-project-panel="files"]>*:not(.order-lines-section) {display:none!important;}
 .order-lines-section {break-inside:auto; border:0; padding:0;}
 .order-lines-section .table-wrap {overflow:visible;}
 .order-lines-section table {min-width:0; font-size:10px;}
 .order-lines-section th:nth-child(1) {width:7%;}
 .order-lines-section th:nth-child(2) {width:auto;}
 .order-lines-section th:nth-child(3) {width:9%;}
 .order-lines-section th:nth-child(4) {width:8%;}
 .order-lines-section th:nth-child(5),.order-lines-section th:nth-child(6) {width:14%;}
 .order-lines-section thead {display:table-header-group;}
 .order-lines-section tr {break-inside:avoid;}
 .order-lines-section th,.order-lines-section td {padding:6px;}
}
.bank-row-form a { display:block; margin:8px 0; }
.project-view-link { white-space:nowrap; padding:7px 12px; font-size:13px; }
.record-open-cue { display:inline-block; margin-left:6px; font-size:12px; white-space:nowrap; }
@media screen and (max-width:780px) {
  .project-register-toolbar form { width:100%; align-items:stretch; }
  .project-register-toolbar form>label { width:100%; }
  .project-register table { min-width:1080px; }
  .project-register :is(th,td):first-child { min-width:145px; white-space:nowrap; }
  .project-register :is(th,td):nth-child(2) { min-width:200px; }
  .project-register :is(th,td):nth-child(3) { min-width:100px; }
}
.passkey-settings { max-width:720px; margin:auto; }
.operations-dialog { width:min(440px,calc(100vw - 32px)); max-height:calc(100dvh - 40px); padding:24px; border:1px solid #d6e2eb; border-radius:14px; color:#203b50; background:#fff; box-shadow:0 20px 70px #102a4340; }
.operations-dialog::backdrop { background:#102a4366; }
.operations-dialog form { display:grid; gap:16px; margin:0; }
.operations-dialog header span { font-size:10px; font-weight:700; letter-spacing:.1em; color:#52768d; }
.operations-dialog h2 { margin:6px 0 0; font-size:20px; }
.operations-dialog p { margin:0; font-size:15px; line-height:1.65; overflow-wrap:anywhere; white-space:pre-wrap; }
.operations-dialog footer { display:flex; justify-content:flex-end; gap:10px; margin-top:4px; }
.operations-dialog button { min-width:88px; min-height:44px; padding:9px 16px; border-radius:8px; font-size:14px; }
.operations-dialog .danger { background:#b54343; }
.operations-dialog input { min-width:0; font-size:16px; }
.approval-timeline { list-style:none; margin:0; padding:0 0 0 10px; }
.approval-timeline li { position:relative; padding:0 0 20px 22px; border-left:2px solid #dce7ed; }
.approval-timeline li::before { content:''; position:absolute; left:-6px; top:4px; width:10px; height:10px; border-radius:50%; background:#2f78a7; }
.approval-timeline small { display:block; margin-top:4px; color:#6c8292; }
.approval-timeline p { margin:6px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.approval-copy-picker { margin:12px 0; }
.approval-copy-picker input[type=checkbox] { width:auto; }
.entry-actions { flex-wrap:wrap; gap:8px; }
.approval-workspace { max-width:1180px; margin:0 auto; }
.approval-dashboard { --approval-ink:#183547; padding:8px 0 24px; }
.approval-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:26px; }
.approval-eyebrow { font-size:10px; letter-spacing:.16em; color:#647d8e; font-weight:700; }
.approval-hero h1 { margin:8px 0 10px; color:var(--approval-ink); font-size:30px; letter-spacing:-.04em; }
.approval-hero p { margin:0; color:#586f7f; font-size:13px; line-height:1.8; max-width:690px; }
.approval-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:26px; }
.approval-metric { display:flex; flex-direction:column; gap:9px; padding:19px 22px; color:#486170; background:#fff; border:1px solid #dce5eb; border-radius:12px; }
.approval-metric strong { color:var(--approval-ink); font-size:32px; line-height:1.1; font-variant-numeric:tabular-nums; }
.approval-metric small { color:#6b7f8e; font-size:11px; }
.approval-metric.metric-pending { background:#193e54; border-color:#193e54; color:#d9e9f2; }
.approval-metric.metric-pending strong { color:#fff; }.approval-metric.metric-pending small { color:#b9d1df; }
.approval-metric:hover { outline:2px solid #85b7cc; outline-offset:2px; text-decoration:none; }
.approval-dashboard .approval-heading { margin-bottom:0; }
.approval-dashboard .approval-sections { gap:24px; border-bottom:1px solid #dce5eb; margin-bottom:18px; }
.approval-dashboard .approval-sections a { border:0; border-bottom:3px solid transparent; border-radius:0; box-shadow:none; background:transparent; padding:10px 0 14px; }
.approval-dashboard .approval-sections a[aria-current=page] { border-bottom-color:#226f93; background:transparent; }
.approval-dashboard .approval-inbox { border-radius:12px; box-shadow:none; border-color:#dce5eb; }
.approval-dashboard .approval-results-heading { margin:24px 0 12px; }
.approval-dashboard .approval-card { border-radius:12px; padding:20px 24px; border-color:#dce5eb; box-shadow:0 2px 4px #1d394404; }
.approval-dashboard .approval-card h3 { color:var(--approval-ink); font-size:18px; margin:12px 0 8px; }
.approval-dashboard .approval-card .approval-card-owner { margin-top:10px; font-size:12px; color:#39677d; }
.approval-dashboard .approval-empty { border-style:solid; border-color:#dce5eb; padding:42px 20px; }
.approval-empty-symbol { display:grid; place-items:center; margin:0 auto 16px; width:46px; height:46px; border-radius:14px; color:#357963; background:#eaf4ef; font-size:24px; }
.approval-empty p { color:#687f90; margin:10px 0 18px; font-size:13px; }
.approval-dashboard .approval-help { margin-top:12px; border-top:1px solid #dce5eb; font-size:12px; }
.approval-override { width:100%; padding:16px; margin:12px 0; border:1px solid #e8d1a7; border-left:3px solid #ae761c; border-radius:8px; background:#fffbf2; color:#644714; }
.approval-override p { font-size:13px; line-height:1.7; }.approval-override textarea { min-height:82px; }
.approval-override-history { border-left:3px solid #ae761c; }
@media(max-width:640px) {
  .approval-hero { align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
  .approval-hero h1 { font-size:26px; }.approval-hero .approval-launch { margin-left:auto; }
  .approval-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
  .approval-metric { padding:15px; gap:8px; }.approval-metric strong { font-size:27px; }
  .approval-dashboard .approval-sections { gap:20px; }.approval-dashboard .approval-card { padding:17px; }
  .approval-dashboard .approval-empty { padding:30px 14px; }.approval-dashboard .approval-card h3 { font-size:16px; }
}
.approval-heading,.approval-results-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 10px; }
.approval-launch { position:relative; flex-shrink:0; }.approval-launch>summary { list-style:none; padding:10px 17px; border-radius:8px; color:#fff; background:var(--blue); cursor:pointer; }
.approval-launch>div { position:absolute; right:0; top:46px; z-index:12; width:190px; padding:6px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 8px 25px #102a4324; }
.approval-launch a { display:block; padding:12px; border-radius:5px; }.approval-launch a:hover { background:var(--sky); }
.approval-inbox { padding:0 18px 16px; }.approval-tabs { display:flex; gap:22px; padding:0; border-bottom:1px solid var(--line); overflow-x:auto; }
.approval-tabs a { display:flex; align-items:center; gap:7px; flex-shrink:0; padding:16px 0 13px; border-bottom:3px solid transparent; color:#526b7c; }
.approval-tabs a[aria-current=page] { color:#185e90; border-bottom-color:#287bac; font-weight:650; }
.approval-sections { flex:1; gap:6px; border:0; }
.approval-sections a { min-height:40px; padding:9px 14px; border:1px solid transparent; border-bottom-width:1px; border-radius:8px; background:#edf3f7; font-weight:650; }
.approval-sections a[aria-current=page] { border-color:#8ebbd2; background:#fff; box-shadow:inset 0 -3px #287bac; }
.approval-tabs span { padding:1px 6px; border-radius:5px; color:#587085; background:#eef3f6; font-size:12px; }
.approval-tabs a[aria-current=page] span { color:#185e90; background:#e8f3fa; }
.approval-filter { display:grid; grid-template-columns:190px minmax(0,1fr) auto; gap:14px; align-items:end; margin-top:16px; }
.approval-filter>* { min-width:0; }.approval-filter-actions { display:flex; align-items:center; gap:16px; padding-bottom:1px; }
.approval-dates { grid-column:1/-1; color:#60798c; }.approval-dates>summary { font-size:13px; cursor:pointer; }
.approval-dates>div { display:flex; align-items:end; flex-wrap:wrap; gap:14px; margin-top:12px; }.approval-dates>div>span { display:flex; gap:14px; padding:8px 0; }
.approval-results-heading { margin:16px 0 8px; }.approval-results-heading h2 { margin:0; font-size:16px; }
.approval-card { display:block; padding:18px 20px; margin-bottom:10px; border:1px solid var(--line); border-radius:10px; color:#243c4c; background:#fff; }
.approval-card:hover { border-color:#88b4cf; box-shadow:0 3px 14px #102a4310; }.approval-card-title { display:flex; justify-content:space-between; gap:12px; align-items:center; color:#607a8d; font-size:12px; }
.approval-state { display:inline-block; padding:3px 9px; border-radius:5px; white-space:nowrap; color:#526b7c; background:#edf3f7; font-size:12px; }
.approval-state.state-submitted { color:#915400; background:#fff2d7; }.approval-state.state-approved { color:#1a6897; background:#e8f4fc; }.approval-state.state-paid,.approval-state.state-converted { color:#207350; background:#e8f6ee; }.approval-state.state-returned { color:#aa453a; background:#fff0ee; }
.approval-card h3 { margin:9px 0 6px; font-size:16px; font-weight:600; overflow-wrap:anywhere; }.approval-card p { margin:0; color:#687f90; overflow-wrap:anywhere; }
.approval-card footer { display:flex; align-items:end; gap:18px; margin-top:16px; }.approval-card time { color:#7a8d9a; font-size:12px; }.approval-card-amount { margin-left:auto; text-align:right; }.approval-card-amount small { display:block; color:#687f90; font-size:11px; }.approval-card-amount strong { color:#163d5c; font-size:18px; font-weight:650; }.approval-card-open { font-size:12px; color:var(--blue); }
.approval-empty { padding:24px 16px; text-align:center; border:1px dashed #cbdce7; border-radius:10px; background:#fff; }.approval-empty h3 { margin:0 0 8px; font-size:16px; color:#405d71; }.approval-empty a { display:inline-block; margin:4px 12px; }
.approval-pagination,.approval-help { display:flex; flex-wrap:wrap; gap:16px; padding:12px 0; }
.approval-back { display:inline-block; margin:4px 0 16px; }.approval-new { max-width:940px; padding:24px; }.approval-new .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.approval-copy-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; max-height:230px; overflow:auto; padding:3px; }
.approval-copy-options label { display:flex; align-items:center; gap:8px; padding:8px 10px; border:1px solid #dce7ef; border-radius:7px; background:#fff; }.approval-copy-options label:has(:checked) { background:#eaf5fb; border-color:#90bcd7; }.approval-copy-options input[type=checkbox] { flex:0 0 auto; width:16px; height:16px; margin:0; }.approval-copy-options span { min-width:0; overflow-wrap:anywhere; }
.approval-copy-picker>summary { margin-bottom:10px; cursor:pointer; }.approval-copy-picker>summary span { color:var(--blue); margin-left:7px; }.approval-copy-picker>label { max-width:320px; }
.approval-form-footer { display:flex; align-items:center; justify-content:flex-end; gap:22px; border-top:1px solid var(--line); padding-top:18px; margin-top:22px; }
.approval-business-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:12px; }
.approval-business { min-width:0; border:1px solid var(--line); background:#fff; border-radius:8px; padding:14px 16px; }
.approval-business summary { color:#365d78; cursor:pointer; }.approval-business summary>span { margin-left:8px; padding:2px 7px; border-radius:5px; background:#edf4f9; color:#2b6e99; }
.approval-business>div a { display:block; padding:10px 0; border-bottom:1px solid #e6edf3; }.approval-business strong,.approval-business span { display:block; overflow-wrap:anywhere; }.approval-business summary>span { display:inline; }.approval-business strong { font-size:12px; }.approval-business small { display:block; margin-top:10px; color:#7a8d9a; }
.approval-detail { max-width:1060px; }.approval-document { padding:22px; }.approval-document h2 { margin:14px 0 5px; font-size:21px; line-height:1.5; overflow-wrap:anywhere; }
.approval-money-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:22px 0; padding:18px; background:#f3f8fc; border-radius:9px; }
.approval-money-grid span { display:block; color:#637c8f; font-size:12px; }.approval-money-grid strong { display:block; margin-top:5px; color:#194f75; font-size:23px; font-weight:650; overflow-wrap:anywhere; }
.approval-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.approval-facts dt { font-size:12px; color:#758998; }.approval-facts dd { margin:4px 0 0; overflow-wrap:anywhere; }.approval-next { margin:20px 0 0; padding-top:15px; border-top:1px solid var(--line); color:#46718e; }
.approval-detail .panel>form>label { margin:12px 0; }.approval-detail .panel { margin-bottom:16px; }.approval-detail .approval-timeline { margin-top:22px; }
.approval-actions { display:flex; flex-wrap:wrap; gap:10px; }.approval-actions>button { min-width:95px; min-height:42px; }.approval-actions>button:not(:first-child) { color:var(--blue); background:#edf5fa; border:1px solid #cbdfea; }
.operations-dialog form>label { margin:14px 0; }.operations-dialog form>button { min-height:42px; }
@media(max-width:780px) {
  .approval-heading { align-items:center; }.approval-launch>summary { padding:10px 12px; }
  .approval-inbox { padding:0 12px 12px; }.approval-tabs { gap:19px; }.approval-tabs a { padding-top:13px; font-size:13px; }.approval-filter { grid-template-columns:minmax(0,1fr); gap:12px; }
  .approval-filter-actions { justify-content:flex-start; }.approval-filter-actions button { min-width:100px; }.approval-dates>div { display:grid; grid-template-columns:minmax(0,1fr); }.approval-results-heading>span { display:none; }
  .approval-card { padding:15px; }.approval-card footer { flex-wrap:wrap; gap:10px; }.approval-card-open { display:none; }.approval-card-amount strong { font-size:17px; }
  .approval-new { padding:16px; }.approval-new .form-grid { grid-template-columns:minmax(0,1fr); }.approval-copy-options { grid-template-columns:repeat(2,minmax(0,1fr)); }.approval-actions>button { flex:1; min-width:75px; }
  .approval-business-links,.approval-facts { grid-template-columns:minmax(0,1fr); }.approval-money-grid { gap:12px; padding:14px; }.approval-money-grid>div:first-child { grid-column:1/-1; }.approval-money-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.approval-money-grid strong { font-size:18px; }.approval-money-grid>div:first-child strong { font-size:26px; }.approval-document { padding:16px; }
}
.operations-dialog header { position:relative; padding-right:48px; }
.operations-dialog header .dialog-close { position:absolute; right:-8px; top:-8px; }
dialog .dialog-close { display:inline-grid; place-items:center; flex:0 0 44px; width:44px; min-width:44px; height:44px; min-height:44px; padding:0; margin:0; border:0; border-radius:8px; background:transparent; color:#5a7284; font:28px/1 Arial,sans-serif; cursor:pointer; }
dialog .dialog-close:hover { background:#edf3f7; color:#193e58; }
dialog .dialog-close:focus-visible { outline:2px solid #377eaf; outline-offset:2px; }
dialog .section-heading { flex-direction:row; align-items:flex-start; gap:16px; }
dialog .section-heading>div { flex:1; min-width:0; }
body.communication-page { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
.communication-list :is(.room-row,.person-row) b { font-size:14px; line-height:1.4; font-weight:400; }
.communication-heading-actions{flex-wrap:nowrap;gap:5px;min-width:0}.communication-heading-actions :is([data-new-field-support],[data-new-group]){flex-shrink:0}
body.communication-embedded .communication-heading{padding:10px 8px 8px}
body.communication-embedded .communication-heading-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;gap:6px}
body.communication-embedded .communication-heading-actions>[data-open-avatar]{grid-column:1;justify-self:start;width:36px;height:36px;padding:5px}
body.communication-embedded .communication-heading-actions>[data-toggle-compact]{grid-column:2;justify-self:end;width:36px;height:36px}
body.communication-embedded .communication-heading-actions>[data-new-field-support]{justify-self:start}
body.communication-embedded .communication-heading-actions>[data-new-group]{justify-self:end}
body.communication-compact .communication-heading-actions{grid-template-columns:1fr;justify-items:center}
body.communication-compact .communication-heading-actions>:is([data-open-avatar],[data-toggle-compact]){grid-column:1;justify-self:center}
button[data-icon-button] { display:inline-grid; place-items:center; width:44px; min-width:44px; height:44px; min-height:44px; padding:8px; }
.action-glyph { width:20px; height:20px; flex:none; pointer-events:none; }
table:has(tbody>tr:only-child>td.empty) { min-width:0; }
@media screen and (max-width:620px) { .invoice-sheet { overflow-x:auto; } }
.passkey-settings>label { display:block; margin:16px 0; }
.passkey-settings input { display:block; width:100%; margin-top:8px; }
.passkey-list { list-style:none; padding:0; }
.passkey-list li { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid #e2eaf0; }
.passkey-list small { display:block; margin-top:6px; color:#657a8c; }
[data-passkey-status] { font-size:13px; line-height:1.6; }
.login-card>[data-passkey-login] { width:100%; margin-top:12px; }
.project-focus { display:flex; align-items:center; flex-wrap:wrap; gap:8px 20px; padding:10px 14px; background:#edf6fb; border:1px solid #d5e7f2; border-radius:8px; margin:10px 0; }
.project-focus>strong { font-size:14px; }
.project-focus a,.project-focus>span { font-size:13px; }
.project-page-header { display:flex; justify-content:space-between; gap:20px; align-items:center; margin:0 0 18px; }
.project-page-header h1 { font-size:23px; line-height:1.4; margin:7px 0; overflow-wrap:anywhere; }
.project-back { font-size:12px; color:#637e91; }
.project-context { display:flex; flex-wrap:wrap; gap:6px 20px; margin:0; color:#61798a; font-size:13px; overflow-wrap:anywhere; }
.project-statuses { display:flex; flex-wrap:wrap; gap:7px; flex-shrink:0; }
.project-primary-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.project-primary-actions .button,.project-primary-actions button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:10px 18px; }
.project-primary-actions form { margin:0; }
.searchable-select { position:relative; min-width:0; }
.select-option-results { position:absolute; z-index:60; top:43px; left:0; right:0; max-height:260px; overflow-y:auto; overscroll-behavior:contain; border:1px solid #a9c5d8; border-radius:7px; background:#fff; box-shadow:0 7px 20px #18344c24; }
.select-option-results[hidden] { display:none; }
.select-option-results>button { display:block; width:100%; padding:10px 12px; border:0; border-radius:0; text-align:left; font-size:13px; font-weight:400; line-height:1.5; white-space:normal; overflow-wrap:anywhere; color:#234a65; background:#fff; }
.select-option-results>button:hover,.select-option-results>button[aria-selected=true] { background:#e6f2fa; color:#145e90; }
.select-option-results>p { padding:10px 12px; font-size:12px; color:#708391; }
.select-option-hint { font-size:11px; line-height:1.5; font-weight:400; color:#648095; }
.select-option-hint:empty { display:none; }
.page-guide-toggle { position:fixed; right:18px; bottom:18px; z-index:80; display:flex; align-items:center; gap:6px; min-height:42px; padding:9px 12px; border:1px solid #b7cedd; border-radius:22px; background:#fff; color:#285f80; box-shadow:0 3px 14px #18344c18; font-size:13px; }
.page-guide-toggle[aria-expanded=true] { color:#fff; background:#285f80; }
.page-guide-panel { position:fixed; z-index:81; right:18px; bottom:70px; width:min(380px,calc(100vw - 28px)); max-height:calc(100dvh - 105px); display:flex; flex-direction:column; overflow:hidden; background:#fff; border:1px solid #b7cedd; border-radius:12px; box-shadow:0 8px 32px #18344c30; }
.page-guide-panel[hidden] { display:none; }
.page-guide-panel>header { display:flex; align-items:flex-start; gap:10px; padding:14px 14px 12px 18px; border-bottom:1px solid #e1eaf0; background:#f4f8fb; }
.page-guide-panel>header>div { flex:1; min-width:0; }
.page-guide-panel header small { font-size:11px; color:#697e8d; }
.page-guide-panel h2 { margin:5px 0 0; font-size:17px; line-height:1.45; overflow-wrap:anywhere; }
.page-guide-close { flex:none; width:38px; height:38px; padding:0; background:transparent; color:#49677b; font-size:26px; }
.page-guide-content { padding:4px 18px 16px; overflow-y:auto; overscroll-behavior:contain; }
.page-guide-content>section { padding-top:14px; }
.page-guide-content h3 { display:flex; align-items:center; gap:7px; margin:0 0 7px; font-size:14px; color:#245f83; }
.page-guide-content p,.page-guide-content li { font-size:13px; line-height:1.75; overflow-wrap:anywhere; }
.page-guide-content p { margin:0; }
.page-guide-content ol { margin:0; padding-left:22px; }
.page-guide-content li+li { margin-top:6px; }
.page-guide-content .page-guide-note { background:#fff7e9; color:#765a2a; padding:10px; border-radius:6px; margin-top:14px; font-size:12px; }
.page-guide-content .page-guide-footnote { margin-top:12px; color:#708491; font-size:11px; }
@media(min-width:781px){html:not(.workspace-child)>body.has-communication-dock .page-guide-toggle,html:not(.workspace-child)>body.has-communication-dock .page-guide-panel{right:calc(var(--communication-dock-width) + 38px)}}
@media(max-width:780px){.page-guide-toggle{right:12px;bottom:calc(76px + env(safe-area-inset-bottom));font-size:12px;min-height:40px}.page-guide-panel{right:12px;bottom:calc(124px + env(safe-area-inset-bottom));max-height:calc(100dvh - 190px - env(safe-area-inset-bottom))}.workspace-child .page-guide-toggle{bottom:12px}.workspace-child .page-guide-panel{bottom:60px;max-height:calc(100dvh - 82px)}}
.project-primary-actions .secondary { background:#fff; color:#28658d; border:1px solid #a8c7dc; }
.project-primary-actions .subtle { font-weight:400; font-size:13px; }
.business-task-panel>.section-heading { gap:12px; margin-bottom:12px; }
.business-task-panel h2 { margin:0; font-size:18px; }
.business-task-panel table { min-width:820px; table-layout:auto; }
.business-task-panel th:first-child { width:125px; }
.business-task-panel td { padding:12px 10px; overflow-wrap:anywhere; }
.business-task-panel td:first-child a { display:block; font-size:15px; font-weight:600; }
.project-task-help { max-width:340px; font-size:12px; color:#687f90; }
.project-task-help>summary { cursor:pointer; font-size:12px; font-weight:400; }
.project-task-help p { font-size:12px; line-height:1.6; }
.project-task-create { margin-bottom:14px; }
.project-task-create>summary { display:inline-flex; min-height:42px; align-items:center; padding:9px 15px; border:1px solid #a8c7dc; border-radius:7px; color:#22658e; background:#f0f7fb; cursor:pointer; font-size:14px; font-weight:600; }
.project-task-create[open]>summary { margin-bottom:14px; }
.project-reference>summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px; cursor:pointer; }
.project-reference>summary span { color:#667f90; font-size:12px; }
.project-reference.panel { padding:0; }
.project-reference[open]>summary { border-bottom:1px solid #e0e8ee; }
.project-reference-body { padding:16px; }
.project-statuses .project-state { padding:5px 12px; border-radius:20px; background:#e8f3fa; color:#246489; font-size:12px; }
.project-workspace { min-width:0; }
.project-workspace-nav { display:flex; flex-wrap:nowrap; gap:6px; overflow-x:auto; padding:0; margin:0 0 18px; border-bottom:1px solid #d6e3eb; }
.project-workspace-nav a { flex:none; padding:12px 18px; min-height:44px; border-bottom:3px solid transparent; color:#60788b; font-size:14px; text-decoration:none; white-space:nowrap; }
.project-workspace-nav a:hover { color:#246b99; background:#edf5fa; }
.project-workspace-nav a[aria-selected="true"] { border-bottom-color:#2f78a7; color:#205d83; font-weight:600; }
.project-workspace-nav a:focus-visible { outline:2px solid #2f78a7; outline-offset:-3px; }
[data-project-panel][hidden] { display:none!important; }
.project-overview h2 { font-size:15px; margin:0 0 12px; }
.project-overview .facts { gap:12px; }
.project-overview .facts div { border:0; padding:0; min-width:0; }
.project-overview .facts strong { font-weight:400; overflow-wrap:anywhere; }
.project-overview .project-description { margin-top:12px; padding-top:10px; border-top:1px solid #e4ecf2; }
.project-overview .project-edit { margin:10px 0 0; padding:10px 0 0; border:0; border-top:1px solid #e4ecf2; border-radius:0; box-shadow:none; }
.project-overview .project-edit>summary { color:#2c6f9c; font-size:13px; font-weight:400; }
.project-overview .project-edit form { margin-top:16px; }
.project-empty { color:#708596; font-size:13px; padding:8px 0; margin:0 0 12px; }
.procurement-editor { min-width:0; }
.procurement-line { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:16px 0; border-bottom:1px solid var(--line); margin-bottom:12px; align-items:end; }
.procurement-line label,.procurement-supplier label { display:flex; flex-direction:column; gap:6px; min-width:0; font-size:13px; }
.procurement-line-name { grid-column:span 2; }
.procurement-line-total { display:grid; gap:8px; font-variant-numeric:tabular-nums; padding:8px 0; }
.procurement-line-total output { font-weight:600; }
.procurement-supplier { display:grid; gap:8px; min-width:0; }
.procurement-supplier small { color:#698294; font-size:12px; }
.procurement-supplier [data-new-supplier] { justify-self:start; }
.procurement-line-summary { padding:0; list-style:none; min-width:220px; margin:10px 0; }
.procurement-line-summary li { padding:8px 0; border-bottom:1px solid #e5edf3; }
.procurement-line-summary span,.procurement-line-summary small { display:block; white-space:normal; overflow-wrap:anywhere; }
.estimate-editor-lines { min-width:940px; }
.estimate-editor-lines th:nth-child(1) {width:6%;}.estimate-editor-lines th:nth-child(2){width:25%;}.estimate-editor-lines th:nth-child(3){width:24%;}.estimate-editor-lines th:nth-child(4){width:9%;}.estimate-editor-lines th:nth-child(5){width:8%;}.estimate-editor-lines th:nth-child(6){width:11%;}.estimate-editor-lines th:nth-child(7){width:10%;}.estimate-editor-lines th:nth-child(8){width:7%;}
.estimate-document-lines th:nth-child(1){width:6%;}.estimate-document-lines th:nth-child(2){width:23%;}.estimate-document-lines th:nth-child(3){width:25%;}.estimate-document-lines th:nth-child(4){width:8%;}.estimate-document-lines th:nth-child(5){width:8%;}.estimate-document-lines th:nth-child(6),.estimate-document-lines th:nth-child(7){width:15%;}
.project-statuses { align-items:center; }
.project-statuses form { margin:0; }
@media(max-width:700px){.procurement-line{grid-template-columns:repeat(2,minmax(0,1fr));}.procurement-line-name{grid-column:1/-1;}}
.project-workspace-section { padding:0; }
.project-workspace-section>summary { padding:17px 20px; font-size:15px; font-weight:600; cursor:pointer; }
.project-workspace-section>summary .project-count { margin-left:12px; font-size:12px; }
.project-workspace-section[open]>summary { border-bottom:1px solid #e3ebf1; background:#f6f9fc; }
.workspace-section-body { padding:18px 20px; }
.workspace-section-body>.panel { box-shadow:none; margin:0 0 14px; }
.task-actions>summary { white-space:nowrap; font-size:13px; color:#286c98; cursor:pointer; }
.task-actions[open] { min-width:240px; }
.task-actions .row-actions { margin-top:12px; }
.project-description>summary { font-size:13px; font-weight:400; color:#547286; }
.project-description p { max-width:80ch; line-height:1.65; overflow-wrap:anywhere; }
@media(max-width:700px){.workspace-section-body{padding:12px;}.project-workspace-section>summary{padding:15px 12px;}.project-focus{padding:14px;}.project-page-header{align-items:flex-start;flex-wrap:wrap;gap:10px;}.project-page-header h1{font-size:20px;}.project-overview .facts{grid-template-columns:repeat(2,minmax(0,1fr));}.project-workspace-nav{gap:0;}.project-workspace-nav a{padding:12px 15px;}.project-context{gap:5px;flex-direction:column;}}
@media print{[data-project-panel][hidden]{display:block!important;}.project-page-header{margin-bottom:14px;}}
@media(max-width:700px){.project-page-header{display:block;position:relative;margin-bottom:12px}.project-page-header .project-back{display:block;padding-right:80px}.project-page-header .project-statuses{position:absolute;top:0;right:0}.project-page-header .project-context{flex-direction:row;gap:4px 12px}.project-primary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.project-primary-actions .button{padding:10px 8px;font-size:13px}.project-primary-actions form button{width:100%}.project-reference>summary{align-items:flex-start;flex-direction:column;gap:5px}.business-task-panel th:first-child{width:125px}.business-task-panel td{padding:10px 7px}.business-task-panel>.section-heading{align-items:flex-start;flex-wrap:wrap}.project-task-help{max-width:none}.ai-assist>summary span,.intake-originals>summary small{font-size:11px;margin-left:6px}.request-intake-header>a{flex-shrink:0;white-space:nowrap}}
@media print{.record-open-cue{display:none;}body.print-order-page .project-description{display:none!important;}}
.bank-allocation { display:grid; grid-template-columns:minmax(180px,1fr) 180px 70px; gap:10px; margin:10px 0; }
.bank-row-form label.confirmation-check { display:flex; flex-direction:row; justify-content:flex-start; align-items:center; flex-wrap:nowrap; gap:10px; margin:16px 0; }
.bank-row-form .document-add-line { display:block; width:100%; text-align:center; margin:12px 0; background:#eaf4fa; color:#27658e; }
.confirmation-check input[type=checkbox] { width:18px!important; height:18px!important; flex:0 0 18px; margin:0; }
.confirmation-check[hidden] { display:none!important; }
@media(max-width:650px){.bank-allocation{grid-template-columns:minmax(0,1fr) 90px 55px;}.bank-row-form{padding:12px;}}
/* My AI: task and result own the workspace; help stays secondary. */
.agent-workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;width:100%;align-items:start}
.agent-primary{display:grid;min-width:0;gap:16px}.agent-side{display:grid;gap:12px;position:sticky;top:16px}.agent-workspace .panel{padding:20px 22px}
.agent-intro h2{margin:7px 0}.agent-intro p{margin:0;color:#496577;line-height:1.6}.agent-help>summary{cursor:pointer;font-weight:700}.agent-help>summary::marker{color:#2e7da9}
.agent-capabilities{display:grid;gap:10px;margin-top:14px}.agent-capabilities>div{display:grid;gap:6px;padding:12px;border:1px solid #dce7ee;border-radius:9px;background:#f7fafc}.agent-capabilities strong{color:#17394d}.agent-capabilities span{font-size:12px}.agent-capabilities span:before{content:'✓';margin-right:7px;color:#2e7da9}.agent-capabilities>div+div span:before{content:'—';color:#738897}.agent-help ol{margin:14px 0 0;padding-left:20px;color:#526c7d;font-size:12px;line-height:1.8}
.agent-workspace .agent-composer>summary{display:flex;align-items:baseline;gap:9px;font-size:18px;cursor:pointer}.agent-composer>summary small{color:#6f8390;font-size:12px;font-weight:400}
.agent-composer[open]>summary{margin-bottom:18px}
.agent-workspace label{display:block;margin-bottom:12px}
.agent-compose-footer{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:14px 0}
.agent-compose-footer label{margin:0;max-width:220px}
.agent-file-help{display:block;margin-top:6px}
.agent-result{min-height:320px}.agent-result-head{display:flex;align-items:center;gap:10px;position:sticky;z-index:3;top:0;margin:-20px -22px 18px;padding:16px 22px;border-bottom:1px solid #e0e8ee;background:#fff}
.agent-result-head h2{flex:1;margin:0;font-size:19px}
.agent-question{background:#f1f6fa;border-left:3px solid #79a9c8;padding:12px 16px;color:#405e72;white-space:pre-wrap;overflow-wrap:anywhere}
.agent-answer{font-size:15px;line-height:1.85;color:#243b4a;overflow-wrap:anywhere}
.agent-answer p{margin:12px 0}.agent-answer h3{font-size:17px;margin:24px 0 10px;color:#17394d}
.agent-answer li{margin:7px 0}.agent-answer strong{font-weight:650}
.agent-answer pre{white-space:pre-wrap;background:#f3f6f8;padding:14px;border-radius:8px}
.agent-answer code{background:#eef3f6;padding:2px 4px;border-radius:3px}
.agent-table{overflow-x:auto}.agent-table table{width:100%;border-collapse:collapse}
.agent-table td,.agent-table th{padding:10px 12px;border:1px solid #dce5eb;text-align:left;vertical-align:top}
#agent-followup{border-top:1px solid #e0e8ee;margin-top:24px;padding-top:18px}
#agent-followup textarea{min-height:72px}#agent-followup button{display:block;margin-left:auto}
#agent-progress{margin-top:24px;padding-top:14px;border-top:1px solid #e0e8ee;font-size:13px;color:#617b8e}
#agent-model{margin-left:12px;font-size:12px}#agent-draft{margin-top:20px}#agent-error:empty{display:none}.agent-reset-note{margin:12px 0 0;padding:9px 12px;border-radius:7px;color:#24633d;background:#edf8f0;font-size:13px}
@media(max-width:900px){.agent-workspace{grid-template-columns:minmax(0,1fr)}.agent-side{position:static}.agent-side .agent-intro{display:none}}
@media(max-width:640px){.agent-workspace .panel{padding:16px}.agent-answer{font-size:15px}.agent-result-head{flex-wrap:wrap;margin:-16px -16px 14px;padding:13px 16px}.agent-result-head button{font-size:12px;padding:7px 10px}.agent-compose-footer{gap:10px;align-items:stretch;flex-direction:column}.agent-compose-footer label{max-width:none}.agent-workspace .agent-composer>summary{display:block}.agent-composer>summary small{display:block;margin-top:3px}}
.workflow-count{align-self:center;margin-left:auto;padding:.28rem .55rem;border-radius:999px;background:#edf3f7;color:#49606f;font-size:.76rem;font-style:normal;white-space:nowrap}
.workflow-count.action{background:#fff0df;color:#9a4c00}.workflow-count.watch{background:#e8f2fb;color:#23628c}
.workflow-totals{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.workflow-totals>*{padding:.55rem .8rem;border-radius:999px;background:rgba(255,255,255,.85)}
.workflow-items{display:grid;gap:.7rem}.workflow-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.85rem 1rem;border:1px solid #dce7ee;border-radius:12px;color:inherit;text-decoration:none;background:#fff}
.workflow-item:hover{border-color:#5a94b9;background:#f7fbfd}.workflow-item>span:nth-child(2){display:grid;gap:.14rem;min-width:0}.workflow-item strong,.workflow-item small{overflow-wrap:anywhere}.workflow-item small{color:#617584}
.workflow-item[hidden]{display:none}
.workbench-queue-tabs{display:flex;gap:20px;flex-wrap:wrap}.workbench-queue-tabs a{font-size:16px;color:#214e6b}.workbench-queue-tabs b{display:inline-block;margin-left:5px;padding:3px 9px;border-radius:7px;background:#edf5fa}
.workbench-priority .workflow-items{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.workbench-priority .workflow-item{padding:10px 12px;gap:8px;border:0;border-radius:6px;background:#f5f8fb;min-height:76px}.workbench-priority .workflow-item:hover{background:#eaf3f9}.workbench-priority .workflow-mode{font-size:11px;padding:3px 6px}.workbench-priority .workflow-item>span:nth-child(2){grid-template-columns:minmax(0,1fr) auto;gap:3px 8px}.workbench-priority .workflow-item strong{grid-column:1;grid-row:1}.workbench-priority .workflow-item b{grid-column:2;grid-row:1;font-size:12px;font-weight:500;color:#637a8a}.workbench-priority .workflow-item small{grid-column:1/-1;grid-row:2}.workbench-priority .empty{grid-column:1/-1}
@media(max-width:1100px){.workbench-priority .workflow-items{grid-template-columns:repeat(2,minmax(0,1fr))}.workbench-priority .workflow-item:nth-child(n+5){display:none}}
@media(max-width:620px){.workbench-priority .workflow-items{grid-template-columns:minmax(0,1fr)}.workbench-priority .workflow-item:nth-child(n+3){display:none}}
.workflow-filters{display:flex;gap:16px;align-items:end;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid #e2eaf0}.workflow-filters label{margin:0;min-width:160px}.workflow-filter-tabs{display:flex;gap:4px;flex-wrap:wrap}.workflow-filter-tabs button{color:#496477;background:#edf3f7}.workflow-filter-tabs button[aria-pressed=true]{color:#fff;background:#2d709f}
@media(max-width:560px){.workflow-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.workflow-filter-tabs{grid-column:1/-1}.workflow-filters label{min-width:0}.workbench-queue-tabs{gap:12px}.workbench-queue-tabs a{font-size:14px}}
.workflow-mode{padding:.28rem .5rem;border-radius:999px;font-size:.76rem;background:#e8f2fb;color:#23628c}.workflow-item.action .workflow-mode{background:#fff0df;color:#9a4c00}
.workflow-queue-heading{margin-bottom:18px}.workflow-queue-heading p{margin:6px 0 0;color:#61788a;font-size:13px}.workflow-queue-heading .quick-actions{margin:0}
.workflow-queue-panel{padding:16px 20px;border-radius:10px;box-shadow:0 2px 8px #173c5405;--queue-columns:minmax(200px,1fr) minmax(120px,160px) minmax(100px,150px) 100px 66px}
.workflow-queue-panel .workflow-filters{gap:16px;padding-bottom:14px}.workflow-queue-panel .workflow-filter-tabs{background:#edf3f7;padding:3px;border-radius:7px;flex-wrap:nowrap}.workflow-queue-panel .workflow-filter-tabs button{border-radius:5px;min-height:36px;padding:7px 11px;white-space:nowrap}.workflow-queue-panel .workflow-filter-tabs b{margin-left:5px;font-size:12px;font-variant-numeric:tabular-nums}.workflow-queue-panel .workflow-filter-tabs button[aria-pressed=true]{background:#216f9a;box-shadow:0 1px 3px #153c5526}
.workflow-queue-panel .workflow-area-field{flex:0 1 180px;min-width:135px}.workflow-queue-panel .workflow-search-field{flex:1 1 300px;min-width:180px}.workflow-queue-panel .workflow-filters input,.workflow-queue-panel .workflow-filters select{width:100%;min-height:38px;margin-top:5px}.workflow-queue-panel .workflow-filters label{font-size:12px;color:#536b7b}
.workflow-list-meta{display:flex;align-items:start;justify-content:space-between;gap:14px;font-size:12px;margin:12px 0}.workflow-list-meta p{margin:0}.workflow-list-meta details{max-width:470px;text-align:right;color:#607a8c}.workflow-list-meta details p{padding:8px 0;line-height:1.7;text-align:left}.workflow-list-meta summary{cursor:pointer;white-space:nowrap}
.workflow-queue-panel .workflow-column-head,.workflow-queue-panel .workflow-item{display:grid;grid-template-columns:var(--queue-columns);gap:14px;align-items:center;padding:10px 14px}.workflow-queue-panel .workflow-column-head{background:#edf3f7;color:#5a7182;border-radius:6px 6px 0 0;font-size:12px;font-weight:600;border-bottom:1px solid #dce6ed}.workflow-queue-panel .workflow-items{display:block;border-bottom:1px solid #e2eaf0}.workflow-queue-panel .workflow-item{min-height:48px;border:0;border-bottom:1px solid #e9eff3;border-radius:0;font-size:13px;background:#fff}.workflow-queue-panel .workflow-item:last-child{border-bottom:0}.workflow-queue-panel .workflow-item:hover{background:#eef7fc}.workflow-queue-panel .workflow-item:focus-visible{outline:2px solid #247ba8;outline-offset:-2px;background:#eef7fc}.workflow-queue-panel .workflow-item[hidden]{display:none}
.workflow-queue-panel .workflow-item>span:nth-child(2){display:contents}.workflow-queue-panel .workflow-item strong{grid-column:1;grid-row:1;color:#1e4b6a;font-weight:600;line-height:1.5}.workflow-queue-panel .workflow-item small{grid-column:2;grid-row:1;font-size:12px;color:#627987}.workflow-queue-panel .workflow-item b{grid-column:3;grid-row:1;font-size:13px;color:#364f60;font-weight:400}.workflow-queue-panel .workflow-mode{grid-column:4;grid-row:1;justify-self:start;white-space:nowrap;font-size:11px;padding:3px 8px}.workflow-queue-panel .workflow-item>span:last-child{grid-column:5;grid-row:1;color:#2c759e;font-size:12px}.workflow-queue-panel .workflow-item>span:last-child:before{content:'打开 '}
@media(max-width:950px){.workflow-queue-panel{--queue-columns:minmax(150px,1fr) 115px 110px 86px 54px}.workflow-queue-panel .workflow-column-head,.workflow-queue-panel .workflow-item{gap:9px;padding:10px}.workflow-queue-panel .workflow-search-field{flex-basis:100%}}
@media(max-width:700px){.workflow-queue-heading{gap:10px;margin-bottom:12px}.workflow-queue-heading .quick-actions{font-size:12px;display:flex;gap:16px}.workflow-queue-heading .quick-actions a{width:auto;flex:none}.workflow-queue-panel{padding:12px}.workflow-queue-panel .workflow-filters{display:grid;grid-template-columns:minmax(100px,.75fr) minmax(0,1.4fr);gap:10px}.workflow-queue-panel .workflow-filter-tabs{grid-column:1/-1;display:flex}.workflow-queue-panel .workflow-filter-tabs button{flex:1;padding:7px 8px;font-size:12px}.workflow-queue-panel .workflow-filters label{min-width:0}.workflow-queue-panel .workflow-column-head{display:none}.workflow-queue-panel .workflow-item{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;min-height:64px;padding:10px 4px}.workflow-queue-panel .workflow-mode{grid-column:2;grid-row:1;justify-self:end}.workflow-queue-panel .workflow-item small{grid-column:1;grid-row:2}.workflow-queue-panel .workflow-item b{grid-column:2;grid-row:2;max-width:125px;text-align:right;font-size:12px;color:#718594}.workflow-queue-panel .workflow-item>span:last-child{display:none}.workflow-list-meta{font-size:11px;gap:10px}.workflow-list-meta details{max-width:45%}}
.conversation-actions>[data-open-room-search],.conversation-actions>[data-open-room-files],.conversation-actions>[data-open-room-members]{display:none}
.settings-dialog{width:min(560px,calc(100vw - 18px))}.settings-room-info dl{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)}.settings-room-info dd{overflow-wrap:anywhere}
.chat-detail-options{display:grid;margin-top:12px}
.chat-detail-options>button,.chat-detail-options>label{display:flex;flex-direction:row;justify-content:space-between;align-items:center;min-height:52px;margin:0;padding:10px 4px;border:0;border-bottom:1px solid #e3eaf0;border-radius:0;background:transparent;color:#26485c;font-size:16px;text-align:left}
.chat-detail-options input[type=checkbox]{appearance:none;position:relative;align-self:center;flex:0 0 42px;width:42px;height:26px;margin:0;padding:0;border:0;border-radius:20px;background:#c7d2da;cursor:pointer}
.chat-detail-options input[type=checkbox]::before{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #17374b30}
.chat-detail-options input[type=checkbox]:checked{background:#2d779f}.chat-detail-options input[type=checkbox]:checked::before{transform:translateX(16px)}.chat-detail-options input:focus-visible{outline:2px solid #247eae;outline-offset:3px}
.conversation-actions>[data-open-room-settings]{width:44px;height:44px}
.chat-new-message-notice{position:fixed;z-index:150;top:max(16px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:12px 20px;background:#203e52;color:#fff;border-radius:14px;box-shadow:0 8px 24px #142e4833;font-size:16px}
.ai-type-tabs{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}.ai-type-tabs button{background:#fff;color:#36586b;border:1px solid #cfdee7}.ai-type-tabs button[aria-pressed=true]{background:#2d749f;color:#fff}.ai-image-actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-top:12px}.ai-image-actions label{margin:0}.ai-image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.ai-image-card{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid #dce6ee;border-radius:12px}.ai-image-card img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:8px;background:#f3f6f8}.ai-image-card time{font-size:13px;color:#718896}.ai-image-card strong{font-size:15px;overflow-wrap:anywhere}.ai-image-card .ai-image-actions{margin-top:auto}.ai-image-card .button,.ai-image-card button{font-size:13px}
.personal-permissions>.permission-editor{border:0}.personal-permissions>.permission-editor>summary{font-size:1rem;font-weight:700}.personal-permissions .permission-editor>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem}.personal-permissions fieldset{display:grid;gap:.4rem;border:1px solid #dce7ee;border-radius:10px;padding:.75rem}.personal-permissions .form-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1rem}
.agent-entry-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.agent-entry-links a{display:grid;align-content:start;gap:8px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#f6fafc}.agent-entry-links span{font-size:13px;color:#63798a;line-height:1.6}
/* Calls share one top-level overlay, including calls launched from the desktop dock. */
.contact-call {width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:20px;border:1px solid #d9e5ed;border-radius:20px;color:#183347;background:#fff;box-shadow:0 24px 80px #102b4440;overflow:auto;}
.contact-call::backdrop {background:#112b4666;}
.contact-call header {display:flex;align-items:center;gap:8px;color:#628095;font-size:13px;}
.contact-call header span {flex:1;}
.contact-call header button {width:40px;height:40px;padding:0;border:0;background:#f0f5f8;color:#345269;font-size:24px;border-radius:10px;}
.call-person {text-align:center;padding:18px 0 10px;}
.call-avatar {width:68px;height:68px;margin:auto;border-radius:50%;display:grid;place-items:center;background:#e4f1f8;color:#2877a7;font-size:22px;}
.call-person h2 {margin:12px 0 8px;font-size:22px;font-weight:500;}
.call-person p {margin:0;color:#607b8e;}.call-person time {display:block;min-height:24px;font-variant-numeric:tabular-nums;color:#377494;}
.call-video-area {position:relative;height:240px;border-radius:14px;background:#173146;overflow:hidden;margin:10px 0;}
.call-video-area video {width:100%;height:100%;object-fit:contain;}
.call-video-area [data-call-local] {position:absolute;right:8px;bottom:8px;width:100px;height:76px;background:#264353;border-radius:10px;transform:scaleX(-1);object-fit:cover;}
.call-warning {color:#886820;background:#fff8e8;border-radius:10px;padding:10px;font-size:12px;line-height:1.5;}
.call-warning:empty,.call-error:empty {display:none;}.call-error {color:#af303c;font-size:13px;}
.call-controls {display:flex;justify-content:center;gap:12px;margin:20px 0 16px;}
.call-controls button {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:76px;min-height:76px;border:0;border-radius:16px;background:#edf4f8;color:#345c72;padding:10px 8px;font-size:12px;}
.call-controls svg {width:24px;height:24px;}.call-controls .call-end {background:#d94752;color:white;}.call-controls [data-call-answer] {background:#258563;color:white;}
.call-controls [aria-pressed=true] {background:#d7eaf4;color:#176b9a;}.contact-call small {display:block;text-align:center;font-size:11px;color:#698294;}
.contact-call-bar {position:fixed;right:24px;bottom:calc(28px + env(safe-area-inset-bottom,0px));z-index:10001;border:0;border-radius:30px;background:#246d91;color:white;padding:14px 24px;box-shadow:0 4px 24px #193f6a33;max-width:calc(100vw - 48px);}
@media(max-width:760px) {.contact-call {padding:16px;margin:auto;}.contact-call-start {display:inline-flex!important;}.contact-call-start[hidden] {display:none!important;}.call-controls {gap:8px;}.call-controls button {min-width:72px;}}
@media (max-width: 700px) {
  [data-invoice-request-editor] .table-wrap { overflow: visible; }
  [data-invoice-request-editor] table, [data-invoice-request-editor] tbody { display: block; width: 100%; min-width: 0; }
  [data-invoice-request-editor] thead { display: none; }
  [data-invoice-request-editor] tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 12px; margin: 12px 0; border: 1px solid #d2dfe7; border-radius: 10px; }
  [data-invoice-request-editor] td { display: block; padding: 0; border: 0; min-width: 0; }
  [data-invoice-request-editor] td:nth-child(2) { grid-column: 1 / -1; }
  [data-invoice-request-editor] td[data-field-label]::before { content: attr(data-field-label); display: block; margin-bottom: 4px; font-size: 12px; }
  [data-invoice-request-editor] textarea { min-height: 72px; }
}
/* Keep todo controls visible on phones without changing other module tables. */
@media(max-width:700px){
 .todo-table{overflow:visible}
 .todo-table table,.todo-table tbody{display:block;width:100%;min-width:0}
 .todo-table thead{display:none}
 .todo-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;margin:12px 0;border:1px solid #d2dfe7;border-radius:10px}
 .todo-table td{display:block;min-width:0;padding:0;border:0;overflow-wrap:anywhere}
 .todo-table td:nth-child(2),.todo-table td:last-child{grid-column:1/-1}
 .todo-table td::before{content:attr(data-label);display:block;font-size:12px;color:#526b7e;margin-bottom:4px}
 .todo-table input,.todo-table select{max-width:100%;box-sizing:border-box}
}
/* Shared album, paste and screenshot preview: all drawing stays on this device. */
.chat-image-editor{width:min(900px,96vw);max-height:94dvh;padding:18px;border:1px solid #ccdfed;border-radius:16px;overflow:auto;color:#173344;background:white}
.chat-image-editor::backdrop{background:#102331a8}.chat-image-editor header,.chat-image-editor footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.chat-image-editor h2,.chat-image-editor header p{margin:0 0 8px}.chat-image-editor button{min-height:44px}.chat-image-editor footer{position:sticky;bottom:-18px;padding:12px 0;background:white;justify-content:flex-end}.chat-image-editor footer [data-send]{min-width:100px;background:#0c9552}.chat-image-editor label{display:flex;flex-direction:column;gap:5px}.chat-image-editor textarea{box-sizing:border-box;width:100%}.image-editor-stage{background:#e5ebef;display:flex;justify-content:center;align-items:center;min-height:120px;max-height:48dvh;overflow:hidden;border-radius:8px}.image-editor-stage canvas{display:block;max-width:100%;max-height:48dvh;object-fit:contain;touch-action:none;cursor:crosshair}.chat-image-editor [data-thumbnails]{display:flex;gap:6px;overflow:auto}.chat-image-editor [data-thumb]{flex:0 0 60px;padding:3px;background:#eef3f6;border:2px solid transparent}.chat-image-editor [aria-current=true]{border-color:#286f9f}.chat-image-editor [data-thumb] img{width:50px;height:48px;object-fit:contain}.chat-image-editor [data-status]{color:#9b3c14}
.chat-image-editor header{align-items:flex-start}.chat-image-editor header>div:first-child{min-width:0;flex:1}.chat-image-editor header h2{font-size:20px;line-height:1.4}.chat-image-editor [data-recipient]{font-size:12px;line-height:1.5;overflow-wrap:anywhere;color:#64788a}
.chat-image-editor .image-editor-history{display:flex;align-items:center;gap:2px;flex:0 0 auto}.chat-image-editor .image-editor-icon{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:1px solid transparent;border-radius:9px;background:transparent;color:#334d63;cursor:pointer;list-style:none}
.chat-image-editor .image-editor-icon svg,.chat-image-editor [data-reset] svg{width:24px;height:24px;flex:none;pointer-events:none}.chat-image-editor .image-editor-icon::-webkit-details-marker{display:none}.chat-image-editor .image-editor-icon:hover:not(:disabled){background:#e8eef4}.chat-image-editor .image-editor-icon[aria-pressed=true],.chat-image-editor .image-editor-icon[data-active=true]{color:#176ac3;background:#e7f1fe;border-color:#9fc8ef}.chat-image-editor .image-editor-icon:disabled{opacity:.32;cursor:default}.chat-image-editor :is(button,summary,input):focus-visible{outline:2px solid #1b73cf;outline-offset:2px}
.chat-image-editor .image-editor-tools{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;margin:12px 0;padding:5px;border:1px solid #dce5ed;border-radius:12px;background:#f6f8fb}.chat-image-editor .image-editor-color{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px}.chat-image-editor [data-color]{appearance:none;box-sizing:border-box;width:44px;height:44px;padding:8px;border:0;border-radius:50%;background:transparent;cursor:pointer}.chat-image-editor [data-color]::-webkit-color-swatch-wrapper{padding:0}.chat-image-editor [data-color]::-webkit-color-swatch{border:2px solid white;border-radius:50%;box-shadow:0 0 0 1px #b6c5d0}.chat-image-editor [data-color]::-moz-color-swatch{border:2px solid white;border-radius:50%;box-shadow:0 0 0 1px #b6c5d0}
.chat-image-editor .image-editor-menu{position:relative;flex:0 0 auto}.chat-image-editor .image-editor-menu-panel{position:absolute;top:calc(100% + 6px);z-index:3;min-width:160px;padding:10px;border:1px solid #ccdce8;border-radius:10px;background:white;box-shadow:0 8px 24px #19334c24}.chat-image-editor [data-more-menu] .image-editor-menu-panel{right:0;width:210px;box-sizing:border-box}.chat-image-editor [data-shapes-menu] .image-editor-menu-panel{left:50%;transform:translateX(-50%);display:flex;gap:4px;min-width:0}.chat-image-editor [data-reset]{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px;background:#f0f5f9;color:#36556e;border:1px solid #d5e1eb;width:100%}.chat-image-editor [data-reset]:disabled{opacity:.4}.chat-image-editor .image-editor-menu-panel small{display:block;line-height:1.5;font-size:11px;color:#7a6870;margin-top:8px}.chat-image-editor [data-width]{width:100%;min-height:44px;padding:0;margin:0;accent-color:#267bce}.chat-image-editor [data-width-value]{font-size:12px;color:#627b8f}
@media(max-width:600px){.chat-image-editor header{gap:4px}.chat-image-editor header h2{font-size:18px}.chat-image-editor .image-editor-history{gap:0}.chat-image-editor .image-editor-tools{gap:3px;padding:4px}.chat-image-editor footer{flex-wrap:wrap}.chat-image-editor [data-tool-help]{font-size:12px;line-height:1.6}}
@media(max-width:600px){.chat-image-editor{box-sizing:border-box;width:100%;max-width:100%;max-height:100dvh;height:100dvh;margin:0;padding:12px;border-radius:0}.chat-image-editor footer{bottom:-12px}.image-editor-stage,.image-editor-stage canvas{max-height:40dvh}.chat-image-editor [data-thumbnails]{max-height:60px}}
.chat-image-editor .image-editor-tools .image-editor-tool{flex:0 0 58px;width:58px;height:58px;flex-direction:column;gap:4px}.chat-image-editor .image-editor-tool span{font-size:11px;line-height:1.2;font-weight:500}.chat-image-editor .image-editor-tools{justify-content:flex-start;padding:8px;gap:4px;background:#f4f7fa}.chat-image-editor .image-editor-properties{display:flex;align-items:end;gap:12px;margin:8px 0 12px;flex-wrap:wrap}.chat-image-editor [data-text-label]{flex:1;min-width:160px}.chat-image-editor [data-text-size-label]{width:90px}.chat-image-editor [data-delete]{margin-left:auto;font-size:12px;color:#73453e;background:#f8f2f0}.chat-image-editor [data-text-label][hidden],.chat-image-editor [data-text-size-label][hidden]{display:none!important}.chat-image-editor .image-editor-stage{border:1px solid #dce4eb;min-height:170px;background-color:#edf1f5;background-image:linear-gradient(45deg,#e2e8ee 25%,transparent 25%),linear-gradient(-45deg,#e2e8ee 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e2e8ee 75%),linear-gradient(-45deg,transparent 75%,#e2e8ee 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.chat-image-editor footer{border-top:1px solid #dce4eb;margin-top:12px;z-index:4;gap:8px}.chat-image-editor footer>span{margin-right:auto;font-size:11px;color:#637a8b}.chat-image-editor footer [data-send]{background:#0078d4}.chat-image-editor footer [data-queue]{background:#e9f2fb;color:#155a90;border:1px solid #a7c9e4}.chat-image-editor [data-status]:empty{display:none}
.chat-image-editor .image-editor-stroke { flex:0 1 150px; min-width:130px; margin:0 8px; gap:0; font-size:12px; color:#36556e; }
.chat-image-editor .image-editor-stroke>span:first-child { display:flex; justify-content:space-between; gap:12px; }
.chat-image-editor .image-editor-line { display:block; height:12px; width:100%; box-sizing:border-box; border-top:3px solid #ef2929; }
.chat-image-editor .image-editor-stroke:has(input:disabled) { opacity:.5; }
.chat-image-editor [data-add-text][hidden] { display:none!important; }
.pending-attachments .pending-image{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:4px;width:164px;padding:8px;background:white;border-color:#c9dbe8;border-radius:10px}.pending-attachments .pending-image-preview{display:block;width:100%;padding:0;background:#edf2f6;border-radius:6px;overflow:hidden;color:#285e80;font-size:11px;line-height:1.5}.pending-image-preview img{display:block;width:100%;height:86px;object-fit:contain}.pending-image-preview span{display:block;padding:3px;background:#e9f2fa}.pending-attachments .pending-image b{max-width:100%;font-size:11px}.pending-attachments .pending-image small{font-size:10px}.pending-image [data-remove-pending-file]{position:absolute;top:4px;right:4px;width:28px;height:28px;border:1px solid #d3e0e8!important;border-radius:50%;background:white!important}.pending-attachments{max-height:200px;gap:8px}
.pending-attachments .send-attachments{align-self:flex-end;min-height:44px;padding:10px 16px}
@media(max-width:600px){.chat-image-editor .image-editor-tools .image-editor-tool{flex-basis:48px;width:48px;height:54px}.chat-image-editor .image-editor-tools{gap:3px;padding:5px}.chat-image-editor footer>span{flex-basis:100%;margin-bottom:4px}.chat-image-editor footer>button{flex:1;min-width:0!important}.chat-image-editor .image-editor-properties{gap:8px}.chat-image-editor [data-delete]{min-height:36px}.pending-attachments .pending-image{width:140px}.pending-image-preview img{height:72px}}
/* Working pages: controls and records take priority over decorative headings.
   Screen-only; document/print geometry and financial warnings stay unchanged. */
@media screen {
  .project-progress { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; }
  .project-progress a { flex:1 1 145px; display:grid; gap:3px; padding:9px 12px; border:1px solid #d2e1eb; border-radius:6px; background:#fff; }
  .project-progress small { font-size:12px; color:#557083; }
  .project-progress a:hover { background:#edf6fb; border-color:#83b2ce; }
  .vessel-picker-panel form>label { flex:1; min-width:0; max-width:680px; }
  .vessel-picker-panel .searchable-select { width:100%; }
  .vessel-picker-panel select,.vessel-history-filter input { max-width:100%; }
  .vessel-history-filter { gap:10px; }
  .vessel-history-filter>label { min-width:0; }
  .panel:has(>.vessel-history-filter) td small { display:block; margin-top:4px; color:#5a7182; font-size:12px; }
  .panel:has(>.vessel-history-filter) td:first-child { white-space:nowrap; }
  .panel:has(>.vessel-history-filter) td:nth-child(5) { min-width:140px; }
  .app-content main :is(.workspace-hero,.workspace-hero.compact,.project-hero,.project-register-toolbar) { padding:12px 16px; gap:12px; margin-bottom:12px; }
  .app-content main :is(.workspace-hero,.project-hero) h2 { font-size:19px; margin:0 0 4px; }
  .app-content main :is(.workspace-hero,.project-hero)>div>p { margin:4px 0 0; font-size:13px; line-height:1.5; }
  .app-content main :is(.approval-hero,.project-page-header,.location-hero) { margin-bottom:12px; gap:12px; }
  .app-content main :is(.approval-hero,.project-page-header,.location-hero) h1 { font-size:22px; margin:0 0 4px; }
  .app-content main :is(.approval-hero,.location-hero) p { margin:4px 0 0; line-height:1.5; }
  .app-content main :is(.workspace-hero,.project-hero,.approval-hero,.project-page-header,.location-hero) .eyebrow { display:none; }
  .app-content main .entry-choices { gap:10px; margin-bottom:12px; }
  .app-content main .entry-choices>a { min-height:76px; padding:12px 14px; gap:10px; }
  .app-content main .entry-choices h2 { font-size:16px; }
  .app-content main .entry-choices p { margin-top:3px; font-size:12px; }
  .app-content main :is(.customer-work-list,.project-register,.procurement-register) { padding:14px 16px; }
  .app-content main .customer-work-list .section-heading { margin-bottom:10px; }
  .app-content main .request-intake { max-width:none; margin:0 0 12px; border-radius:8px; box-shadow:none; }
  .app-content main .request-intake-header { padding:10px 16px; gap:12px; border-radius:8px 8px 0 0; background:#f6f9fc; }
  .request-intake-header>div:first-child { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 14px; min-width:0; }
  .app-content main .request-intake-header h2 { font-size:18px; margin:0; }
  .intake-guidance { font-size:12px; color:#536d80; }
  .intake-header-actions { display:flex; align-items:center; flex-shrink:0; gap:12px; font-size:13px; }
  .intake-header-actions a { display:inline-flex; align-items:center; min-height:40px; }
  .app-content main .request-intake .intake-block { padding:14px 16px; }
  .request-intake .intake-block-title { margin-bottom:10px; }
  .request-intake .intake-fields { gap:12px 16px; }
  .request-intake .intake-columns label+label { margin-top:12px; }
  .request-intake .intake-extra { margin-top:10px; }
  .request-intake .intake-tools { padding:0 16px; scroll-margin-top:12px; }
  .request-intake .intake-tools>details { margin:0 0 8px; }
  .request-intake .intake-footer { padding:10px 16px; gap:12px; }
  .request-intake .intake-footer p { font-size:12px; }
}
@media screen and (min-width:601px) {
  .workflow-home .workflow-lane:has(>:nth-child(6)) { grid-template-columns:repeat(6,minmax(0,1fr)); }
}
@media print { .project-progress { display:none; } }
@media screen and (max-width:600px) {
  .project-progress { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; }
  .project-progress a { flex:0 0 150px; }
  .app-content main .request-intake-header { align-items:flex-start; flex-wrap:wrap; }
  .intake-header-actions { margin-left:auto; }
  .intake-header-actions a { min-height:44px; }
  .request-intake .intake-fields { gap:12px; }
  .app-content main .entry-choices>a { min-height:76px; }
}
/* Stable top-level workspace: keep the same chat document while business pages change. */
.chat-emoji-panel svg,.message-emoji svg,.composer-emoji-toggle svg{color:#168bfa;stroke-width:1.8}
.chat-emoji-panel small{color:#24475f}.chat-emoji-panel button:hover,.chat-emoji-panel button:focus-visible,.composer-emoji-toggle[aria-expanded=true]{background:#e8f3ff;border-radius:8px}
.chat-emoji-panel button:focus-visible{outline:2px solid #168bfa;outline-offset:-2px}
.workspace-child .app-sidebar,.workspace-child .mobile-app-nav,.workspace-child .communication-dock,.workspace-child .session-lock{display:none!important}
.workspace-child .app-shell{display:block!important}.workspace-child .app-content{padding:16px!important;margin:0!important;max-width:none!important;width:100%!important;box-sizing:border-box}.workspace-child main{max-width:none!important}
.workspace-frame{display:block;width:100%;min-height:0;flex:1;border:0;background:#f5f7f9}.workspace-frame[hidden],.app-content>main[hidden]{display:none!important}
body.workspace-business-open .app-content{display:flex!important;flex-direction:column;padding:0!important;overflow:hidden;min-height:0;height:100dvh}
.workspace-location{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;padding:10px 16px;margin-bottom:10px;border-bottom:1px solid #d6e3eb;background:#f8fbfd;flex-shrink:0;min-width:0;font-size:12px;color:#657f91}.workspace-location[hidden]{display:none!important}.workspace-location-path,.workspace-location-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;min-width:0}.workspace-location-path{flex:1}.workspace-location-path>*{min-width:0;overflow-wrap:anywhere}.workspace-location-path>*+*::before{content:'›';color:#9aabba;margin-right:10px}.workspace-location-path strong{font-weight:500;color:#234a65}.workspace-location-actions a{display:inline-flex;align-items:center;min-height:36px;max-width:280px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.workspace-child .workspace-location{display:none!important}.workspace-business-open .workspace-location{margin:0}
.workspace-location-actions .workspace-chat-status{max-width:min(430px,42vw);gap:5px;padding:5px 9px;border:1px solid #bfd7e6;border-radius:6px;color:#234a65;background:#fff}.workspace-chat-status svg{width:16px;height:16px;flex:none;fill:none;stroke:#2f6f9f;stroke-width:1.7;stroke-linejoin:round}.workspace-chat-status strong{flex:none;color:#174f73}.workspace-chat-status span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.communication-hosted .app-sidebar,.communication-hosted .mobile-app-nav{display:none!important}.communication-hosted .app-shell{display:block!important}.communication-hosted .app-content,.communication-hosted main{padding:0!important;width:100%!important;max-width:none!important}.communication-hosted .communication-shell{height:100dvh!important;margin:0;border:0;border-radius:0}
.communication-dock.workspace-chat-full{display:block!important;top:0;right:0;bottom:0;width:calc(100vw - var(--sidebar));border:0;border-radius:0;box-shadow:none;transition:none}.workspace-chat-full .communication-dock-link{display:none}.communication-dock.workspace-chat-full iframe{height:100%}
@media(max-width:780px){.workspace-child .app-content{padding:10px!important}body.workspace-business-open .app-content{height:calc(100dvh - 64px - env(safe-area-inset-bottom))}.workspace-location{padding:8px 10px;gap:2px}.workspace-location-path{flex-basis:100%}.workspace-location-actions{width:100%;justify-content:space-between}.workspace-location-actions a{min-height:44px;max-width:58vw}.workspace-location-actions .workspace-chat-status{flex:1 1 100%;max-width:100%;min-height:34px}.communication-dock.workspace-chat-full{width:100%;bottom:calc(62px + env(safe-area-inset-bottom));height:auto}.workspace-chat-open .mobile-app-nav,.workspace-business-open .mobile-app-nav{display:grid!important}.workspace-chat-open .app-sidebar,.workspace-business-open .app-sidebar{display:none!important}.workspace-business-open .app-shell{display:block!important}}
.quick-catalog-dialog{max-width:min(480px,94vw);border:1px solid #c8dae6;border-radius:14px;padding:20px}.quick-catalog-dialog form{display:grid;gap:10px}.quick-catalog-dialog footer{display:flex;gap:10px;justify-content:flex-end}.quick-catalog-dialog button{min-height:44px}.catalog-line-results{display:grid;gap:4px;max-height:220px;overflow:auto}.catalog-line-results button{white-space:normal;text-align:left;background:#eef6fb;color:#235271;min-height:38px}
.drive-image-hover{position:fixed;z-index:3000;pointer-events:none;width:min(320px,calc(100vw - 16px));box-sizing:border-box;padding:10px;border:1px solid #c8dae6;border-radius:12px;background:#fff;box-shadow:0 10px 35px #17394f30;color:#24475f;font-size:13px;overflow-wrap:anywhere}.drive-image-hover[hidden]{display:none!important}.drive-image-hover img{display:block;width:100%;height:auto;max-height:min(300px,50vh);object-fit:contain}.drive-image-hover small{display:block;margin-top:6px}.drive-modal .drive-file-details{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;color:#647c8e}.drive-image-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.drive-image-actions button{min-height:44px;white-space:normal}.drive-modal h2{overflow-wrap:anywhere;min-width:0}.drive-modal header{gap:10px}.drive-modal .dialog-close{flex-shrink:0}.drive-name span{overflow-wrap:anywhere}
.drive-modal.drive-image-menu { width:min(420px,calc(100vw - 32px)); box-sizing:border-box; padding:16px; border-radius:12px; box-shadow:0 18px 60px #17334c24; }
.drive-image-menu header h2 { margin:0; font-size:15px; font-weight:600; line-height:1.5; }
.drive-image-menu .drive-file-details { margin:6px 0 12px; font-size:12px; line-height:1.6; color:#718395; }
.drive-image-menu .drive-image-actions { grid-template-columns:minmax(0,1fr); gap:2px; }
.drive-image-menu .drive-image-actions button { display:flex; align-items:center; justify-content:flex-start; gap:12px; min-height:42px; padding:10px 12px; border:0; border-radius:7px; background:transparent; color:#344f65; font-size:13px; font-weight:500; text-align:left; box-shadow:none; }
.drive-image-menu .drive-image-actions button svg { flex:none; width:20px; height:20px; color:#59748b; }
.drive-image-menu .drive-image-actions button:hover { background:#edf4fa; filter:none; }
.drive-image-menu .drive-image-actions button.link-danger { margin-top:6px; border-top:1px solid #e5ebf0; border-radius:0 0 7px 7px; color:#bd4149; }
.drive-image-menu .drive-image-actions button.link-danger svg { color:inherit; }
.drive-image-menu .drive-image-actions button.link-danger:hover { background:#fff2f2; }
@media(max-width:780px){.estimate-editor-lines,.estimate-editor-lines tbody{display:block;width:100%;min-width:0!important}.estimate-editor-lines thead{display:none}.estimate-editor-lines tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;border:1px solid #d2e0e9;padding:12px;margin:10px 0;border-radius:10px}.estimate-editor-lines td{display:block;min-width:0;border:0;padding:0}.estimate-editor-lines td:nth-child(2),.estimate-editor-lines td:nth-child(3){grid-column:1/-1}.estimate-editor-lines td::before{content:attr(data-field-label);display:block;font-size:12px;margin-bottom:4px}.estimate-editor-lines input,.estimate-editor-lines textarea{width:100%!important;min-width:0!important;box-sizing:border-box}.estimate-editor-lines .catalog-line-results{max-width:100%}}
/* Operational labels: identity stays visible; full provenance is expandable. */
.company-name[title]{cursor:help}
.company-full-name summary{font-weight:600}
.company-full-name>div{margin-top:6px;overflow-wrap:anywhere;color:var(--muted,#587184)}
.matching-table th{white-space:nowrap}
.matching-table td{vertical-align:top}
.matching-table td small{display:block;margin-top:3px;color:var(--muted,#587184)}
.matching-table .matching-reference{min-width:210px;max-width:340px}
.matching-reference>a{font-weight:700}
.matching-context{margin-top:3px;font-size:12px;color:var(--muted,#587184)}
.matching-reference details{display:inline-block;margin-left:8px;font-size:12px;color:var(--muted,#587184)}
.matching-reference details[open]{display:block;margin-left:0}
.matching-reference summary{font-size:12px;font-weight:400}
.matching-reference details>div{overflow-wrap:anywhere;margin-top:6px}
.matching-table input:not([type=checkbox]){width:110px;min-width:90px!important}
/* Frequency-first navigation and a compact operational workbench. */
.workbench-daily svg{width:24px;height:24px;grid-row:span 2;color:#387caa;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(min-width:781px){.app-sidebar>nav{gap:2px}.app-sidebar>nav a{min-height:36px;padding:7px 10px;gap:10px;font-size:13px}.sidebar-brand{padding:3px 9px 12px}.app-sidebar>nav a[href='/centers/company'],.app-sidebar>nav a[href='/drive']{margin-top:8px;border-top:1px solid #ffffff24;border-radius:0 0 5px 5px}.app-sidebar>nav a[href='/hr']{color:#adc3d3}}
.workbench-home .workbench-heading{margin-bottom:12px}.workbench-home .workbench-heading>span{font-size:12px;color:#617585}.workbench-daily{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.workbench-daily a{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:2px 9px;padding:10px 12px;min-height:62px;border:1px solid #d7e2eb;border-radius:6px;background:#fff;text-decoration:none}.workbench-daily a>span{grid-row:span 2;font-size:23px;color:#387caa}.workbench-daily strong{font-size:14px;color:#204d6d}.workbench-daily small{font-size:12px;color:#607787}.workbench-daily b{position:absolute;right:8px;top:7px;border-radius:10px;background:#b83932;color:#fff;padding:0 5px;font-size:11px}.workbench-daily a:hover{background:#edf5fb;border-color:#86b7d5}.workbench-daily a:focus-visible{outline:2px solid #277daa;outline-offset:2px}
.workbench-home .workbench-preview{padding:12px 14px;margin-bottom:12px}.workbench-preview .section-heading{margin-bottom:10px}.workbench-home .workbench-queue-tabs{gap:16px}.workbench-home .workbench-queue-tabs a{font-size:14px}.workbench-home .workbench-queue-tabs b{font-size:12px;padding:3px 8px;border-radius:5px}.workbench-preview.workflow-queue-panel .workflow-item{min-height:42px;padding-top:7px;padding-bottom:7px}.workbench-home .workspace-domains{gap:10px 24px;padding:12px 14px;margin:0;border-radius:6px;box-shadow:none}.workbench-home .workspace-domain header{padding:0 0 5px;margin:0;border-bottom:1px solid #e5ebf1}.workbench-home .workspace-domain header h2{font-size:14px;line-height:1.5;margin:0}.workbench-home .workspace-domain a{min-height:32px;padding:6px 2px;font-size:13px}.workbench-home .workbench-maintenance{margin-top:10px;padding:10px 14px;border-radius:6px;font-size:13px}.workbench-process .workflow-home{margin:10px 0 0;border:0;padding:0;box-shadow:none}
@media(max-width:780px){.workbench-daily{grid-template-columns:repeat(2,minmax(0,1fr))}.workbench-home .workspace-domains{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workbench-home .workspace-domain a{min-height:44px}.workbench-home .workbench-heading>span{display:none}.workbench-home .workbench-maintenance>summary{min-height:24px}}
@media(max-width:700px){.workbench-home .workbench-preview{padding:12px}.workbench-preview .section-heading{gap:10px;flex-wrap:wrap;font-size:12px}.workbench-home .workbench-queue-tabs{gap:12px}.workbench-home .workbench-queue-tabs a{font-size:13px}.workbench-preview.workflow-queue-panel .workflow-item{min-height:64px;padding-top:10px;padding-bottom:10px}}

/* Search and project work: results take precedence over descriptive banners. */
.live-search{display:block;position:relative;min-width:0;width:100%}.live-search>input{width:100%}.live-search .select-option-results{top:calc(100% + 3px);max-height:330px}.live-search .select-option-results strong{display:block;font-size:13px;font-weight:600}.live-search .select-option-results small{display:block;color:#627887;font-size:12px;margin-top:2px;overflow-wrap:anywhere}.live-search .select-option-results button{padding:8px 10px}.shortcut-definition{display:block;padding:4px 10px 8px;font-size:11px;color:#7790a0}.context-shortcuts[data-collapsed=true] .shortcut-definition{display:none}
.project-register-toolbar{padding:10px 14px!important;gap:12px!important;background:#fff;border-radius:6px}.project-register-toolbar form{flex:1;justify-content:flex-end;gap:8px}.project-register-toolbar .project-search-label{flex:1;max-width:640px;min-width:200px}.project-list-scope{position:relative;white-space:nowrap;font-size:12px}.project-list-scope>label{position:absolute;top:28px;right:0;z-index:50;background:#fff;padding:12px;box-shadow:0 5px 18px #1233;border:1px solid #cbdbe6;min-width:240px}.project-register{padding:12px 14px!important;border-radius:6px}.project-register table{min-width:1050px}.project-register th{padding:8px 10px;white-space:nowrap}.project-register td{padding:7px 10px;font-size:13px;line-height:1.45}.project-register :is(th,td):is(:nth-child(1),:nth-child(5),:nth-child(6),:nth-child(7),:nth-child(8),:nth-child(9)){white-space:nowrap}.project-register td:nth-child(2){min-width:170px;max-width:310px}.project-register td:nth-child(2)>span{display:block;max-width:310px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-register td:nth-child(3),.project-register td:nth-child(4){max-width:220px}.project-register .project-view-link{font-size:12px;padding:5px 8px;white-space:nowrap}.project-register .table-wrap{max-height:65vh;overflow:auto}.project-register thead{position:sticky;top:0;z-index:2}.project-register .project-list-heading{margin-bottom:8px}.project-register .completed-projects{margin-top:16px;padding-top:12px}
.business-task-panel .task-list-filter{display:flex;gap:8px;align-items:center;margin:8px 0}.task-list-filter label:first-child{flex:1;max-width:580px}.task-list-filter label{margin:0}.task-list-filter input,.task-list-filter select{font-size:13px;padding:7px 9px}.task-person-context{font-size:12px;color:#6a7c88}.business-task-panel table{min-width:820px;font-size:13px}.business-task-panel :is(th,td){padding:8px 10px;vertical-align:top}.business-task-panel th,.business-task-panel td:first-child,.business-task-panel td:nth-child(3){white-space:nowrap}.business-task-panel td:nth-child(2){width:40%;min-width:240px;max-width:450px}.business-task-panel td:nth-child(2)>a{font-weight:600}.business-task-panel td small{display:block;font-size:11px;color:#69808d;margin-top:4px}.business-task-panel td details{font-size:12px;margin-top:3px}.business-task-panel td details>div{margin-top:8px}.business-task-panel td details summary{font-weight:400;color:#607787}.business-task-panel .project-task-create{position:relative}.business-task-panel .project-task-create[open]>form{min-width:300px}.business-task-panel [data-task-count]{font-size:12px;color:#657887}.business-task-panel tr[hidden]{display:none}
@media(max-width:780px){.project-register-toolbar form{width:100%;flex-wrap:wrap}.project-register-toolbar .project-search-label{width:100%;max-width:none;flex-basis:100%}.business-task-panel .task-list-filter{flex-wrap:wrap}.task-list-filter label:first-child{flex-basis:100%;max-width:none}}
.settings-member-section { margin:14px 0; }
.settings-member-section h3 { font-size:14px; margin:0 0 10px; }
.settings-members { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px 8px; max-height:280px; overflow:auto; }
.settings-member { display:flex; flex-direction:column; align-items:center; gap:4px; min-width:0; text-align:center; }
.settings-member .chat-avatar { width:40px; height:40px; flex:none; }
.settings-member b { font-size:13px; font-weight:500; overflow-wrap:anywhere; }
.settings-member small { font-size:11px; color:var(--muted); }
@media(max-width:600px) { .settings-members { grid-template-columns:repeat(4,minmax(0,1fr)); } }
time[data-local-time] { font-variant-numeric:tabular-nums; white-space:nowrap; }
/* Conversation list follows the familiar WeChat/DingTalk scan pattern. */
.room-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#718492; font-size:12px; font-weight:400; }
.room-row-title { display:flex; min-width:0; align-items:center; gap:6px; }
.room-row-title b { min-width:0; }
.room-row-title .contact-presence { flex:none; }
.room-row-tail { display:grid; align-self:stretch; justify-items:end; align-content:center; gap:5px; color:#82939e; }
.room-row-tail time { font-size:10px; font-variant-numeric:tabular-nums; white-space:nowrap; }
body.communication-compact .room-row-tail,body.communication-embedded .room-row-tail { display:none; }
@media(min-width:781px){body.communication-page:not(.communication-embedded) .communication-shell{grid-template-columns:300px minmax(0,1fr)}}
.contact-presence { display:flex!important; align-items:center; gap:4px; font-size:11px; line-height:16px; font-weight:400; color:#74818b; }
.contact-presence i { display:inline-block; width:6px; height:6px; border-radius:50%; background:#99a3ad; flex-shrink:0; }
.contact-presence.is-online { color:#247346; }
.contact-presence.is-online i { background:#25844c; }
/* Keep archived support outside the daily contact list. */
.communication-quick-tools{display:flex;flex-wrap:wrap;gap:4px;padding:0 8px 8px}
.communication-quick-tools .icon-action{width:32px;height:32px;padding:6px;min-height:32px}
.support-history-clock{fill:#fff}
.business-unread[data-business-unread="approvals"]{background:#b45309!important}
.business-unread[data-business-unread="total"]{background:#2563a6!important}
@media(pointer:coarse){.communication-quick-tools .icon-action{width:44px;height:44px}}
.chat-history-bar{text-align:center;padding:6px 0 14px;font-size:12px}
.chat-history-sessions{margin:8px auto;max-width:600px}.chat-history-sessions button{display:block;width:100%;margin:5px 0;font-size:12px;white-space:normal}
.chat-message-search:not([hidden]){display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:12px}
.chat-message-search input{min-width:0;flex:1}
.support-history-dialog{width:min(880px,96vw)}
.support-history-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.support-history-record{display:flex;flex-direction:column;gap:5px;width:100%;text-align:left;margin-bottom:10px;white-space:normal}
.support-history-record small{font-weight:400}
@media(max-width:520px){.support-history-filters{grid-template-columns:1fr}.chat-message-search:not([hidden]){flex-wrap:wrap}}
.mention-menu{position:fixed;z-index:250;width:min(280px,calc(100vw - 16px));max-height:240px;overflow:auto;background:white;border:1px solid #adc5d7;border-radius:10px;box-shadow:0 5px 22px #183c5b33;padding:5px}
.mention-menu button{display:flex;justify-content:space-between;gap:8px;width:100%;border:0;background:transparent;color:#163d57;padding:9px;text-align:left;border-radius:5px}
.mention-menu button[aria-selected=true]{background:#e5f3fc}
.mention-menu small{color:#60788a;font-weight:400}
.order-source-scope{white-space:pre-wrap;font-size:13px;line-height:1.55;margin:10px 0;overflow-wrap:anywhere}
.message-mention-alert{display:block;color:#176d9f;background:#e0f3ff;padding:4px 8px;border-radius:5px;margin-bottom:5px;font-weight:600}
.room-file-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.room-file-filters p{grid-column:1/-1;margin:0;font-size:12px}
.room-file-filters input,.room-file-filters select{width:100%;min-width:0}
.files-dialog{width:min(1080px,calc(100vw - 24px));max-height:92vh}.files-dialog>.dialog-panel{gap:12px}.files-dialog .files-toolbar{grid-template-columns:1fr}.history-type-tabs{display:flex;gap:4px;border-bottom:1px solid #dce6ef;overflow-x:auto}.history-type-tabs button{flex:0 0 auto;padding:9px 12px;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:#607586;font-size:13px}.history-type-tabs button[aria-selected=true]{color:#146eaa;border-bottom-color:#237dad;background:#f1f7fb}.chat-history-body{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:16px;min-height:0}.chat-history-body.drive-mode{grid-template-columns:1fr}.chat-history-body .file-center-list{max-height:53vh;min-height:300px;border-radius:5px}.chat-history-body .room-file-filters{display:flex;flex-direction:column;gap:13px;margin:0;padding:4px 0 4px 14px;border-left:1px solid #e3ebf2;font-size:12px}.room-file-filters .section-heading{margin:0}.room-file-filters p{font-size:11px;line-height:1.6}.file-center-row{gap:9px;padding:11px 12px}.file-kind{border-radius:5px;font-size:10px;color:white;background:#4686b8}.file-kind[data-kind=image]{background:#9374b4}.file-kind[data-kind=audio]{background:#26998e}.file-kind[data-kind=video]{background:#dc9161}.file-center-row b{font-size:13px}.file-center-row small{font-size:11px}.file-center-row .file-cloud-state{color:#94732c}.file-center-row .file-cloud-state.saved{color:#36816e}.files-dialog .file-row-actions{max-width:200px;flex-wrap:wrap;justify-content:flex-end}.files-dialog .file-row-actions button{font-size:11px;padding:5px 7px}.history-record{padding:13px 15px;border-bottom:1px solid #e6edf1}.history-record header{display:flex;gap:12px;justify-content:space-between;font-size:12px;color:#456072}.history-record time{font-size:11px;color:#82909b}.history-record p{margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.history-record>a{display:block;margin:9px 0;overflow-wrap:anywhere}.history-record>button{display:block;margin-left:auto}.readers-dialog{width:min(480px,calc(100vw - 20px))}.reader-people{display:flex;flex-wrap:wrap;gap:8px}.reader-person{padding:9px 12px;background:#edf5fa;border-radius:6px;color:#294b62}.readers-dialog h3{font-size:14px}.readers-dialog small{color:#6d7e8a}button.message-read{background:transparent;border:0;padding:3px 0;min-height:22px;margin-left:auto;font-size:11px;text-decoration:underline;text-underline-offset:3px}button.message-read:hover{color:#146fa8}button.message-read:focus-visible{outline:2px solid #277daa;outline-offset:2px}
@media(max-width:700px){.files-dialog>.dialog-panel{padding:12px;gap:10px}.chat-history-body{display:flex;flex-direction:column}.chat-history-body .room-file-filters{order:-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0;border:0}.room-file-filters .section-heading{grid-column:1/-1}.room-file-filters [data-archive-status]{display:none}.room-file-filters label{font-size:11px}.room-file-filters button,.room-file-filters a{font-size:11px}.chat-history-body .file-center-list{max-height:42vh;min-height:180px}.files-dialog .file-center-row{grid-template-columns:30px minmax(0,1fr);padding:10px}.files-dialog .file-row-actions{grid-column:2;max-width:none;justify-content:flex-start}.files-dialog .file-row-actions button{min-height:30px}.files-dialog .file-center-footer{flex-wrap:wrap}.history-type-tabs button{font-size:12px;padding:8px 10px}}
@media(max-width:600px){.room-file-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.file-center-row{grid-template-columns:28px minmax(0,1fr)}.file-center-row .file-row-actions{grid-column:2;flex-wrap:wrap}}
/* Account-scoped business notifications, independent of task completion. */
.business-unread{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#d63847!important;color:#fff!important;font-size:11px;line-height:1;font-weight:700;font-style:normal;flex-shrink:0}
.business-unread[hidden]{display:none!important}
.workspace-notifications{white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.agent-download-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0}
.agent-download-card{border:1px solid #ccdeeb;border-radius:12px;padding:24px;background:linear-gradient(145deg,#f2f8fc,#fff);display:flex;flex-direction:column;align-items:flex-start}
.agent-download-card h3{font-size:23px;margin:10px 0 0}.agent-platform-tag{font-size:11px;font-weight:750;letter-spacing:1px;color:#397396}
.agent-download-card ol{padding-left:22px;flex:1;line-height:1.9;margin:8px 0 22px}.agent-download-card small{display:block;color:#66819a;margin-top:12px}
@media(max-width:700px){.agent-download-grid{grid-template-columns:1fr;gap:12px}.agent-download-card{padding:18px}.workspace-location-actions{flex-wrap:wrap}}
.production-actions{display:grid;gap:18px}.production-action{display:grid;gap:12px;max-width:760px}.production-action button{justify-self:start}.production-action input[type=checkbox]{width:auto;margin-right:8px}
/* Read-only paginated documents also work inside the existing sandboxed chat. */
.pdf-preview-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}.pdf-preview-toolbar input{width:64px;min-width:0}.pdf-preview-toolbar select{width:auto;min-width:0}.pdf-preview-toolbar button{width:auto}.pdf-preview-pages{width:100%;overflow:auto;max-height:65vh;min-height:180px;background:#e9eef3;padding:10px;box-sizing:border-box}.pdf-preview-pages canvas{display:block;background:white;max-width:none;margin:0 auto;box-shadow:0 1px 5px #18344c26}
/* Compact business commands: text stays visible; icons are decorative. */
.panel { box-shadow:none; border-radius:5px; }
.avatar-photo-picker { position:relative; }.avatar-photo-picker input { display:block; position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }.avatar-photo-picker:focus-within { outline:2px solid #2f6f9f; outline-offset:2px; }
.command-action { display:inline-flex; align-items:center; justify-content:center; gap:6px; width:fit-content; max-width:100%; justify-self:start; min-height:34px; padding:7px 11px; border-radius:4px; font-size:13px; line-height:1.35; font-weight:600; vertical-align:middle; }
.command-action::before { content:""; display:inline-block; flex:0 0 16px; width:16px; height:16px; background:currentColor; mask:var(--command-icon) center/contain no-repeat; -webkit-mask:var(--command-icon) center/contain no-repeat; pointer-events:none; }
.command-action:is(.secondary,.subtle) { border:1px solid #cad8e2; color:#315e7c; background:#fff; box-shadow:none; }
:is(td,.workspace-location-actions) .command-action { min-height:30px; padding:5px 8px; background:transparent; color:#315e7c; }
.command-action[data-command-icon=trash] { color:#b83434; background:#fff; }
.command-action:focus-visible { outline:2px solid #2f6f9f; outline-offset:2px; }
.command-action:disabled { cursor:not-allowed; }
/* Record actions share one compact, accessible icon treatment. Status is not a button. */
.record-icon-action { display:inline-flex; align-items:center; justify-content:center; flex:0 0 34px; width:34px; min-width:34px; height:34px; min-height:34px; padding:7px; border:1px solid transparent; border-radius:6px; color:#386983; background:transparent; vertical-align:middle; cursor:pointer; }
.record-icon-action svg { width:18px; height:18px; flex:none; pointer-events:none; }
.record-icon-action:hover { color:#145f92; border-color:#bbd3e3; background:#e9f3fa; text-decoration:none; }
.record-icon-action:focus-visible { outline:2px solid #2f6f9f; outline-offset:2px; }
.record-icon-action.record-cancel-trigger { color:#a84646; }
.editable-record-name { display:flex; align-items:center; gap:6px; max-width:330px; }
.editable-record-name>span { min-width:0; overflow-wrap:anywhere; }
.editable-record-name>details { margin:0; }
.purchase-actions { display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; margin:4px 0; }
.purchase-actions form { margin:0; }
.purchase-actions [hidden] { display:none!important; }
.purchase-owner { display:inline-flex; align-items:center; gap:6px; color:#526c7c; font-size:12px; line-height:1.5; }
.purchase-owner svg { width:19px; height:19px; flex:none; color:#438271; }
.purchase-take { min-height:34px; padding:7px 11px; font-size:13px; white-space:nowrap; }
.purchase-detail { border-color:#d2e1eb; background:#fff; }
.purchase-progress { display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border-radius:5px; background:#f1f4f6; color:#536c7c; font-size:12px; line-height:1.4; white-space:nowrap; }
.purchase-progress::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; flex:none; }
.purchase-progress[data-stage=submitted],.purchase-progress[data-stage=approved] { color:#856018; background:#fff6e2; }
.purchase-progress[data-stage=claimed],.purchase-progress[data-stage=processing],.purchase-progress[data-stage=ordered] { color:#256694; background:#eaf3fb; }
.purchase-progress[data-stage=received] { color:#2d7664; background:#e9f5ef; }
.purchasing-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.purchasing-heading h2 { margin:0 0 6px; font-size:18px; }.purchasing-heading p { margin:0; font-size:13px; color:#647c8b; }
.purchase-filter,.project-people-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,260px) auto; gap:12px; align-items:end; margin:18px 0; }
.purchase-filter label,.project-people-form label { display:grid; gap:6px; min-width:0; font-size:12px; color:#557081; }
.purchase-filter button,.project-people-form button { white-space:nowrap; flex-shrink:0; min-height:38px; }
.purchasing-center table { min-width:920px; }
.purchasing-center :is(th,td) { padding:14px 12px; vertical-align:middle; }
.purchasing-center th { font-size:12px; color:#536e80; }
.purchasing-center td { font-size:13px; background:#fff; border-bottom:1px solid #e6edf2; }
.purchasing-center tbody tr:hover td { background:#f7fafc; }
.purchasing-center td:first-child { width:25%; }.purchasing-center td:nth-child(2) { width:29%; overflow-wrap:anywhere; }
.purchasing-center td:last-child { min-width:200px; }.purchasing-center .purchase-actions { flex-wrap:nowrap; }
.purchase-source { font-size:11px; color:#6b8291; }.purchase-project { margin-top:5px; font-weight:500; }
.purchase-money { white-space:nowrap; font-variant-numeric:tabular-nums; }.purchase-note { display:block; max-width:200px; margin-top:7px; line-height:1.5; color:#617786; }
.purchase-detail-panel>.purchase-actions { padding:12px 0; border-top:1px solid #e6edf2; border-bottom:1px solid #e6edf2; }
.purchase-detail-panel>.purchase-actions .purchase-detail { display:none; }
.project-role-help { margin:0 0 15px; padding:12px 14px; border-left:3px solid #8bb1c9; background:#f3f8fb; color:#536d7d; font-size:13px; line-height:1.7; }
@media(max-width:700px) { .record-icon-action { flex-basis:44px; width:44px; min-width:44px; height:44px; min-height:44px; }.purchase-filter { grid-template-columns:minmax(0,1fr) auto; }.purchase-filter>label:first-child { grid-column:1/-1; }.project-people-form { grid-template-columns:minmax(0,1fr); }.project-people-form button { justify-self:start; }.purchasing-center :is(th,td) { padding:10px; } }
@media(max-width:700px) {
  .purchasing-center .table-wrap { border:0; background:transparent; overflow:visible; }
  .purchasing-center table,.purchasing-center tbody { display:block; min-width:0; width:100%; }
  .purchasing-center thead { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); }
  .purchasing-center tbody tr { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:14px; margin-bottom:12px; border:1px solid #dce6ee; border-radius:8px; background:white; }
  .purchasing-center tbody td { display:block; width:auto!important; min-width:0!important; padding:0; border:0; background:transparent!important; }
  .purchasing-center tbody td:is(:first-child,:nth-child(2),:last-child) { grid-column:1/-1; }
  .purchasing-center tbody td:last-child { border-top:1px solid #e6edf2; padding-top:10px; }
  .purchasing-center td:nth-child(3)::before { content:'提出人'; }.purchasing-center td:nth-child(4)::before { content:'预估金额'; }
  .purchasing-center td:nth-child(3)::before,.purchasing-center td:nth-child(4)::before { display:block; margin-bottom:4px; color:#69808e; font-size:11px; }
  .purchasing-center .purchase-actions { justify-content:space-between; }.purchasing-center .purchase-take { min-height:44px; }
}
.ui-help { margin:6px 0; color:#526b7c; font-size:12px; }
.ui-help>summary { cursor:pointer; font-size:12px; font-weight:500; }
.ui-help p { max-width:1000px; margin:8px 0; line-height:1.6; }
.drive-page { gap:10px; }.drive-hero { padding:12px 16px; border-radius:5px; border-left-width:1px; background:#fff; }.drive-hero .eyebrow { display:none; }.drive-hero h2 { margin:0; font-size:22px; }.drive-capacity { padding:7px 10px; font-size:12px; border-radius:4px; }
.drive-layout { display:flex; flex-direction:column; gap:8px; }.drive-browser { width:100%; }.drive-connect { order:-1; position:static; align-self:flex-end; width:min(520px,100%); }.drive-connect:not([open]) { width:auto; padding:0; border:0; box-shadow:none; background:transparent; }.drive-connect>summary { color:#526b7c; font-size:12px; cursor:pointer; }.drive-connect[open]>summary { margin-bottom:12px; }
.workspace-location-actions { gap:4px; }.workspace-location-actions .command-action { font-size:12px; }.workspace-location-actions .command-action::before { width:14px; height:14px; flex-basis:14px; }
@media(max-width:780px) { .command-action { min-height:44px; }.workspace-location-actions .command-action { min-height:36px; }.drive-hero { flex-direction:row; align-items:center; padding:10px; }.drive-capacity { max-width:48%; }.drive-actions { flex-wrap:wrap; } }
@media print { .command-action::before { display:none; }.ui-help:not([open]),.drive-connect:not([open]) { display:none; } }
/* Attachments must not be squeezed behind the fixed-height text composer. */
body.communication-page .message-composer.has-attachments:not([hidden]){height:min(320px,48dvh);min-height:min(220px,42dvh);max-height:min(320px,48dvh);grid-template-rows:minmax(0,1fr) 44px}
body.communication-page .message-composer.has-attachments .message-entry{min-width:0;min-height:0;overflow:hidden}
body.communication-page .message-composer.has-attachments textarea{flex:0 0 44px;height:44px;min-height:36px;max-height:80px}
.message-composer.has-attachments .pending-attachments{flex:1 1 auto;min-height:70px;max-height:none;align-content:flex-start;overflow:auto}
.pending-attachment.pending-folder{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;padding:10px 40px 10px 12px;font-size:13px}
.pending-folder b{order:-1;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.pending-folder [data-preview-pending-folder]{font-size:12px;line-height:1.5;color:#176da4;text-align:left;text-decoration:underline;white-space:normal}
.pending-folder [data-remove-pending-file]{position:absolute;right:6px;top:6px;width:28px;height:28px}
/* One mobile composer row. Reuse the same send/menu controls; previews occupy
   their own full-width rows above it, never a toolbar row above the keyboard. */
@media (max-width:560px), (max-height:560px) and (pointer:coarse) {
  body.workspace-chat-open.workspace-chat-room-open .mobile-app-nav {display:none!important}
  body.workspace-chat-room-open .communication-dock.workspace-chat-full {top:var(--workspace-chat-top,0px);bottom:auto;height:var(--workspace-chat-height,100dvh)}
  body.communication-page:not(.communication-embedded) .message-composer:not([hidden]) {
    display:grid;grid-template-columns:36px minmax(0,1fr) 36px 58px;grid-template-rows:auto auto auto;
    height:auto;min-height:0;max-height:none;gap:0 4px;align-items:end;
    padding:6px max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
  }
  body.communication-page:not(.communication-embedded) .message-composer>.message-entry,
  body.communication-page:not(.communication-embedded) .message-composer>.composer-footer,
  body.communication-page:not(.communication-embedded) .message-composer .composer-tools {display:contents}
  body.communication-page:not(.communication-embedded) .message-composer .composer-voice-toggle {grid-area:3/1;width:36px}
  body.communication-page:not(.communication-embedded) .message-composer .composer-emoji-toggle {grid-area:3/3;width:36px}
  body.communication-page:not(.communication-embedded) .message-composer textarea,
  body.communication-page:not(.communication-embedded) .message-composer .composer-hold-voice {
    grid-area:3/2;width:100%;min-width:0;min-height:44px;max-height:112px;margin:0;scrollbar-gutter:auto;
  }
  body.communication-page:not(.communication-embedded) .message-composer .composer-action-menu,
  body.communication-page:not(.communication-embedded) .message-composer [data-message-send] {grid-area:3/4;align-self:end;margin:0}
  body.communication-page:not(.communication-embedded) .message-composer [data-message-send] {min-width:0;width:58px;height:40px;padding:0;font-size:15px;margin-bottom:2px}
  body.communication-page:not(.communication-embedded) .message-composer:not(.has-content) [data-message-send],
  body.communication-page:not(.communication-embedded) .message-composer.has-content .composer-action-menu,
  body.communication-page:not(.communication-embedded) .message-composer [data-capture-screen] {display:none!important}
  body.communication-page:not(.communication-embedded) .message-composer .composer-action-sheet {left:auto;right:0;bottom:50px;width:240px;max-height:55dvh}
  body.communication-page:not(.communication-embedded) .message-composer .pending-attachments {grid-area:2/1/auto/-1;min-height:0;max-height:min(140px,25dvh);margin:0 0 6px;overflow:auto}
  body.communication-page:not(.communication-embedded) .message-composer .message-reply-preview {grid-area:1/1/auto/-1;margin:0 0 6px}
}
.responsibility-field {display:grid;gap:8px;min-width:0}
.responsibility-field label {min-width:0}
[data-attachment-status]{flex-basis:100%;margin:2px 0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.folder-preview-dialog{width:min(760px,calc(100vw - 24px))}.folder-entry-list{max-height:60dvh;overflow:auto;list-style:none;padding:0;margin:8px 0;font-size:13px}
.folder-entry-list li{display:flex;justify-content:space-between;gap:12px;padding:9px 6px;border-bottom:1px solid #e0e8ef}.folder-entry-list span{overflow-wrap:anywhere;min-width:0}.folder-entry-list small{flex-shrink:0;color:#617989}
.drive-page .drive-transfer{position:static;max-width:none;max-height:180px;overflow:auto;overflow-wrap:anywhere;margin:10px 0;box-shadow:none;color:#18567b;background:#eef7fc;font-size:13px}
.invoice-document-state{padding:8px 12px;margin-bottom:18px;border:1px solid #a8bfce;color:#34566a;font-size:12px;letter-spacing:.04em;text-align:center}
.invoice-lines th,.invoice-lines td:nth-child(1),.invoice-lines td:nth-child(3),.invoice-lines td:nth-child(4){text-align:center;vertical-align:middle}
@media print{.invoice-sheet+.invoice-sheet{break-before:page}.invoice-document-state{display:block!important}}
@media print{body:has(.invoice-sheet) .workspace-location,body:has(.invoice-sheet) .communication-dock,body:has(.invoice-sheet) .mobile-app-nav,body:has(.invoice-sheet) .page-guide-toggle,body:has(.invoice-sheet) .page-guide-panel{display:none!important}html:not(.workspace-child)>body:has(.invoice-sheet)>.app-shell{margin:0!important}body:has(.invoice-sheet) .app-content{padding:0!important}}
