| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- /* Invoice detail page. Shared theme rules live in app.css. */
- .gc-page.gc-detail-page {
- --primary: #526b7e;
- --primary-light: #72889b;
- --text-light: #52616f;
- --border: #dce2e7;
- --cui-primary: #72889b;
- --gc-button-orange: #c45500;
- --gc-button-orange-hover: #a74700;
- --gc-button-orange-active: #8f3e00;
- font-size: 1.0625rem;
- width: 100%;
- padding: 0 0 2rem;
- gap: 1.25rem;
- overflow: visible;
- color: var(--gc-brand-ink);
- }
- body:has(.gc-detail-page) { max-width: 1840px; }
- .gc-detail-page *, .gc-app-header * { min-width: 0; }
- .gc-case-context {
- position: sticky;
- top: var(--gc-header-height);
- z-index: 1020;
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- justify-content: space-between;
- gap: .75rem 1.5rem;
- padding: 1rem 1.25rem;
- background: #f4f6f8;
- border-bottom: 1px solid var(--gc-brand-border);
- }
- .gc-context-heading { flex: 1 1 24rem; }
- .gc-context-heading h1 { margin: .25rem 0; font-size: clamp(1.325rem, 1.6vw, 1.75rem); line-height: 1.4; font-weight: 700; overflow-wrap: anywhere; }
- .gc-context-heading p { margin: 0; font-size: 1.0625rem; }
- .gc-context-heading p span { color: #52616f; }
- .gc-detail-page .gc-back-link { font-size: 1rem; text-decoration: none; }
- .gc-context-metrics { display: flex; gap: .65rem; flex-wrap: wrap; }
- .gc-metric { display: flex; flex-direction: column; gap: .15rem; padding: .6rem .85rem; border-radius: 8px; }
- .gc-metric span { font-size: 1rem; }
- .gc-metric strong { font-size: 1.275rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
- .gc-metric-balance { background: #c7dee7; }
- .gc-metric-level { background: #ffe97e; }
- .gc-metric-clear { background: #b6cb9b; }
- .gc-case-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 5fr) minmax(0, 4fr); gap: 1.25rem; align-items: start; padding: 0 1.25rem; }
- .gc-case-data, .gc-case-conversation, .gc-case-actions { display: flex; flex-direction: column; gap: 1rem; }
- .gc-detail-card, .gc-detail-page .chat-container { background: #fff; border: 1px solid #dce2e7; border-radius: 10px; box-shadow: 0 2px 6px #18263004; }
- .gc-detail-page :is(#comments-title, #actions-title) { background: var(--gc-brand-action); color: #fff; }
- .gc-data-fields { margin: 0; padding: .4rem 1rem; }
- .gc-data-field { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: .65rem; padding: .5rem 0; border-bottom: 1px solid #edf0f2; font-size: 1.0625rem; line-height: 1.5; }
- .gc-data-field:last-child { border-bottom: 0; }
- .gc-data-field dt { color: #52616f; font-weight: 500; overflow-wrap: anywhere; }
- .gc-data-field dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
- .gc-data-field a { color: #354f63; }
- .gc-data-field.gc-field-money dd { font-variant-numeric: tabular-nums; }
- .gc-field-total dd, .gc-field-age dd { justify-self: start; align-self: start; padding: 0 .3rem; border-radius: 3px; }
- .gc-field-total dd { background: #d3d3d3; }
- .gc-field-age dd { background: #e98751; }
- .gc-data-more { border-top: 1px solid #edf0f2; }
- .gc-data-more summary { cursor: pointer; padding: .65rem 1rem; font-size: 1rem; font-weight: 600; color: #354f63; }
- .gc-data-more[open] summary { background: #f4f6f8; }
- .gc-detail-page .btn { white-space: normal !important; border-radius: 6px; font-size: 1.0625rem; padding: .5rem .75rem; }
- /* Orange gives the main action a clear emphasis against the blue-grey panels. */
- .gc-detail-page .btn-primary {
- --cui-btn-bg: var(--gc-button-orange);
- --cui-btn-border-color: var(--gc-button-orange);
- --cui-btn-color: #fff;
- --cui-btn-hover-bg: var(--gc-button-orange-hover);
- --cui-btn-hover-border-color: var(--gc-button-orange-hover);
- --cui-btn-hover-color: #fff;
- --cui-btn-active-bg: var(--gc-button-orange-active);
- --cui-btn-active-border-color: var(--gc-button-orange-active);
- --cui-btn-active-color: #fff;
- --cui-btn-disabled-bg: var(--gc-button-orange);
- --cui-btn-disabled-border-color: var(--gc-button-orange);
- --cui-btn-disabled-color: #fff;
- --cui-btn-focus-shadow-rgb: 196, 85, 0;
- }
- .gc-detail-page .btn-outline-primary {
- --cui-btn-color: var(--gc-button-orange);
- --cui-btn-bg: #fff;
- --cui-btn-border-color: var(--gc-button-orange);
- --cui-btn-hover-bg: #fff1e6;
- --cui-btn-hover-border-color: var(--gc-button-orange-hover);
- --cui-btn-hover-color: var(--gc-button-orange-hover);
- --cui-btn-active-bg: #ffe1c7;
- --cui-btn-active-border-color: var(--gc-button-orange-active);
- --cui-btn-active-color: var(--gc-button-orange-active);
- --cui-btn-disabled-color: var(--gc-button-orange);
- --cui-btn-disabled-border-color: var(--gc-button-orange);
- --cui-btn-focus-shadow-rgb: 196, 85, 0;
- }
- .gc-detail-page :is(.gc-back-link, .gc-form-actions > a) { --cui-btn-bg: #fff; }
- .gc-detail-page .btn-outline-secondary { --cui-btn-color: #354f63; --cui-btn-border-color: #b1bcc7; --cui-btn-hover-bg: #cdd4da; --cui-btn-hover-color: #182630; --cui-btn-hover-border-color: #72889b; }
- .gc-detail-page .btn-link { color: #354f63; }
- .gc-detail-page .gc-workflow-form { margin: 0; padding: 1rem; --cui-gutter-x: 0; --cui-gutter-y: .75rem; }
- .gc-workflow-form > .col-12 { padding: 0; }
- .gc-workflow-form .form-check { padding: .65rem .75rem .65rem 2.25rem; border-radius: 6px; background: #f4f6f8; }
- .gc-workflow-form .form-check-input:checked { background-color: #526b7e; border-color: #526b7e; }
- .gc-workflow-form .form-check-label { font-size: 1.0625rem; }
- .gc-workflow-form .card-body { padding: .85rem; background: #fafbfc; border-color: #dce2e7; box-shadow: none; }
- .gc-workflow-form .card-body .row, .gc-workflow-form .gc-follow-up .row { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 .85rem; }
- .gc-workflow-form .row > .col-form-label { flex: 0 0 100%; padding: 0; font-size: 1rem; color: #52616f; }
- .gc-workflow-form .row > div { flex: 1 1 7rem; padding: 0; }
- .gc-workflow-form .card-body > .col-3 { width: auto; }
- .gc-workflow-form :is(.form-control, .form-select) { width: 100%; font-size: 1.0625rem; min-height: 38px; border-color: #b1bcc7; }
- .gc-detail-page input[type="date"]::-webkit-datetime-edit-year-field,
- .gc-detail-page input[type="date"]::-webkit-datetime-edit-month-field,
- .gc-detail-page input[type="date"]::-webkit-datetime-edit-day-field,
- .gc-detail-page input[type="date"]::-webkit-datetime-edit-text { color: var(--gc-brand-ink); }
- .gc-workflow-form .form-control:focus, .gc-workflow-form .form-select:focus { border-color: #526b7e; box-shadow: 0 0 0 3px #72889b33; }
- .gc-workflow-form .gc-form-actions { display: flex; flex-wrap: wrap; gap: .5rem; border-top: 1px solid #dce2e7; padding-top: 1rem; }
- .gc-workflow-form .gc-follow-up { border-top: 1px solid #dce2e7; padding-top: 1rem; }
- .gc-detail-page .chat-container { height: clamp(32rem, calc(100dvh - var(--gc-header-height) - var(--gc-context-height) - 2rem), 58rem); }
- .gc-detail-page .chat-container > .gc-section-title { flex: 0 0 auto; }
- .gc-detail-page .chat-container > .gc-section-description { flex: 0 0 auto; padding-bottom: .75rem; overflow-wrap: anywhere; }
- .gc-detail-page .chat-content { padding: 1rem; min-height: 0; gap: 1rem; }
- .gc-detail-page .chat-container .message { max-width: 92%; flex-shrink: 0; }
- .gc-detail-page .chat-container .message-header { flex-wrap: wrap; gap: .3rem .5rem; }
- .gc-detail-page .chat-container .message-bubble {
- padding: .65rem .85rem;
- border-radius: 10px;
- overflow-wrap: anywhere;
- font-size: 1.0625rem;
- line-height: 1.55;
- color: #182630;
- background: #f3f4f6;
- background: color-mix(in srgb, var(--gc-role-accent, #72889b) 7%, #f3f4f6);
- border-inline-start: 3px solid color-mix(in srgb, var(--gc-role-accent, #72889b) 45%, #dce2e7);
- }
- .gc-detail-page .chat-container .avatar { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 7px; }
- .gc-detail-page .chat-container .sender-name { font-size: 1rem; }
- .gc-detail-page .chat-container .timestamp, .gc-detail-page .comment-invoice { font-size: 0.9375rem; }
- .gc-detail-page .chat-container .message-input { font-size: 1.0625rem; }
- .gc-detail-page .chat-container .FIBU { --gc-role-accent: #dc3545; }
- .gc-detail-page .chat-container .GSL { --gc-role-accent: #6e131c; }
- .gc-detail-page .chat-container .GWL { --gc-role-accent: #fd7e14; }
- .gc-detail-page .chat-container .ZD { --gc-role-accent: #6f42c1; }
- .gc-detail-page .chat-container .ALV { --gc-role-accent: #0c408f; }
- .gc-detail-page .chat-container .NAGA { --gc-role-accent: #0d6efd; }
- .gc-detail-page .chat-container .Serviceleiter { --gc-role-accent: #198754; }
- .gc-detail-page .chat-container .SC { --gc-role-accent: #20c997; }
- .gc-detail-page .chat-container .TUZ { --gc-role-accent: #5b6067; }
- .gc-detail-page .chat-container .input-area { padding: .85rem 1rem; flex: 0 0 auto; }
- .gc-detail-page .chat-container .toolbar { margin: 0; }
- .gc-detail-page #comment-form { display: flex; align-items: center; gap: .5rem; }
- .gc-detail-page .chat-container .message-input { min-width: 0; width: 100%; height: 42px; padding: .6rem .75rem; }
- .gc-detail-page .chat-container .message-input:focus { border-color: #526b7e; box-shadow: 0 0 0 3px #72889b33; }
- .gc-detail-page .history-tabs { padding: .25rem .5rem 0; gap: 0; }
- .gc-detail-page .history-tab { font-size: 1rem; padding: .65rem .5rem; white-space: normal; }
- .gc-detail-page .history-tab.active { color: #354f63; border-color: #526b7e; background: #edf2f5; }
- .gc-detail-page .gc-table-scroll { overflow-x: auto; max-width: 100%; }
- .gc-detail-page .table { margin: 0; font-size: 1.0625rem; }
- .gc-detail-page .table :is(th, td) { padding: .6rem .8rem; vertical-align: top; }
- .gc-detail-page .table th { background: #eef1f4; font-size: 1rem; }
- .gc-detail-page .table thead { position: static; }
- .gc-detail-page .table td { overflow-wrap: anywhere; }
- .gc-detail-page .table .text-end { white-space: nowrap; font-variant-numeric: tabular-nums; }
- .gc-case-history { margin: 0 1.25rem; }
- .gc-detail-page #bookings-history > p { margin: .75rem 1rem; }
- .gc-detail-page [role="status"] { color: #52616f; }
- /* Keep booking text black, including reminders; only the type badge is colored. */
- .gc-detail-page .gc-history-content { padding: .75rem 1rem 1rem; }
- .gc-detail-page .gc-history-content .history-tabs { padding-left: 0; padding-right: 0; margin-bottom: .75rem; }
- .gc-detail-page .gc-history-content .table { --cui-table-color: #000; --cui-table-striped-color: #000; }
- .gc-detail-page .gc-history-content .table td { color: #000; }
- .gc-detail-page .gc-files-table { --cui-table-bg: #fff; }
- .gc-detail-page .gc-files-table :is(th, td) { background: #fff; box-shadow: none; }
- @media (max-width: 1199.98px) {
- .gc-case-grid { grid-template-columns: minmax(0, 1fr); }
- .gc-detail-page .chat-container { height: 38rem; }
- }
- @media (max-width: 575.98px) {
- .gc-case-context { padding: .65rem .75rem; gap: .5rem; }
- .gc-context-heading { flex-basis: 100%; }
- .gc-context-heading h1 { font-size: 1.25rem; }
- .gc-context-metrics { width: 100%; }
- .gc-metric { flex-direction: row; align-items: center; gap: .5rem; padding: .35rem .6rem; }
- .gc-metric strong { font-size: 1.075rem; }
- .gc-case-grid { padding: 0 .5rem; gap: 1rem; }
- .gc-case-history { margin: 0 .5rem; }
- }
- /* Pending attachments stay local until the comment form is submitted. */
- .gc-detail-page #comment-form { flex-direction: column; align-items: stretch; }
- .gc-detail-page .gc-comment-compose { display: flex; gap: .5rem; align-items: center; }
- .gc-detail-page .gc-comment-compose button { flex-shrink: 0; }
- .gc-detail-page .gc-upload-hint { margin: 0; color: #4b6072; font-size: .9rem; }
- .gc-detail-page .gc-upload-queue { list-style: none; padding: 0; margin: 0; max-height: 14rem; overflow: auto; }
- .gc-detail-page .gc-upload-queue li { display: flex; align-items: center; justify-content: space-between; gap: .5rem; border-top: 1px solid #dce2e7; padding: .5rem 0; }
- .gc-detail-page .gc-upload-queue li > span { min-width: 0; overflow-wrap: anywhere; }
- .gc-detail-page .gc-upload-error { display: block; color: #b30808; }
- .gc-detail-page .gc-upload-status { margin: 0; overflow-wrap: anywhere; }
- .gc-detail-page .gc-upload-status:empty, .gc-detail-page .gc-upload-queue:empty { display: none; }
- .gc-detail-page .gc-assignee-field { border-top: 1px solid #dce2e7; padding-top: 1rem; }
- .gc-detail-page .gc-assignee-label { display: block; color: #52616f; margin-bottom: .5rem; }
- .gc-detail-page .gc-assignee-value { align-items: center; }
- .gc-detail-page .gc-assignee-value > span { flex: 1; }
- .gc-detail-page .gc-verursacher-edit { padding: .25rem; }
- .gc-detail-page .message-input.gc-drop-active { outline: 3px solid #72889b; background: #edf1f4; }
|