:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #eefbff; background: #11111f; --omsorg-turquoise: #68d2df; --omsorg-turquoise-light: #9ce7ee; --omsorg-turquoise-dark: #35aebb; --omsorg-navy: #11111f; --omsorg-navy-soft: #18182a; --omsorg-petrol: #123a43; --omsorg-petrol-dark: #0c272e; --omsorg-text-primary: #f7fbfc; --omsorg-text-secondary: #b7c9ce; --omsorg-text-muted: #82979d; --omsorg-border: rgba(255, 255, 255, 0.09); --omsorg-border-active: rgba(104, 210, 223, 0.55); --omsorg-surface: rgba(24, 32, 45, 0.78); --omsorg-surface-strong: rgba(19, 26, 38, 0.94); --omsorg-surface-hover: rgba(104, 210, 223, 0.12); --omsorg-radius-small: 10px; --omsorg-radius-medium: 16px; --omsorg-radius-large: 22px; --omsorg-shadow-small: 0 8px 24px rgba(0, 0, 0, 0.18); --omsorg-shadow-medium: 0 18px 45px rgba(0, 0, 0, 0.28); --omsorg-transition: 180ms ease; } *, *::before, *::after { box-sizing: border-box; } html, body, #root { min-height: 100%; margin: 0; } body { color: var(--omsorg-text-primary); background: radial-gradient( circle at 15% 10%, rgba(104, 210, 223, 0.22), transparent 33% ), radial-gradient( circle at 85% 85%, rgba(18, 88, 99, 0.32), transparent 38% ), linear-gradient( 135deg, #11111f 0%, #10242d 38%, #123a43 68%, #11111f 100% ); background-attachment: fixed; -webkit-font-smoothing: antialiased; } button, input, select, textarea { font: inherit; } button { cursor: pointer; } .layout { display: flex; min-height: 100vh; } .layout-content { flex: 1; min-width: 0; padding: 28px 34px; } .page-content { padding-top: 8px; } .sidebar { width: 285px; padding: 24px; background: rgba(5, 15, 26, 0.72); backdrop-filter: blur(18px); border-right: 1px solid rgba(104, 210, 223, 0.16); } .sidebar-logo { display: flex; gap: 12px; align-items: center; margin-bottom: 28px; } .sidebar-logo img { width: 86px; height: auto; } .sidebar-logo h2 { margin: 0; font-size: 18px; } .sidebar-logo p { margin: 2px 0 0; color: var(--omsorg-text-muted); font-size: 13px; } .sidebar nav { display: grid; gap: 8px; } .menu-button { width: 100%; display: flex; align-items: center; gap: 10px; padding: 12px 14px; color: var(--omsorg-text-primary); border: 0; border-radius: 14px; background: rgba(255, 255, 255, 0.06); transition: background var(--omsorg-transition), transform var(--omsorg-transition), box-shadow var(--omsorg-transition); } .menu-button:hover { background: linear-gradient( 135deg, rgba(104, 210, 223, 0.3), rgba(104, 210, 223, 0.1) ); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18); transform: translateY(-1px); } .menu-button.active { background: linear-gradient( 135deg, rgba(104, 210, 223, 0.22), rgba(104, 210, 223, 0.08) ); border: 1px solid var(--omsorg-border-active); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12); } .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; } .header h1, .header h2, .header h3 { margin: 0 0 8px; } .header h1 { font-size: 34px; line-height: 1.15; } .header p { margin: 0; color: var(--omsorg-text-secondary); } .header-right { display: flex; align-items: center; gap: 10px; } .header-username { color: var(--omsorg-text-secondary); font-size: 0.9rem; margin-right: 4px; } .icon-button { position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; color: var(--omsorg-text-primary); border: 1px solid var(--omsorg-border); border-radius: 14px; background: rgba(255, 255, 255, 0.06); transition: background var(--omsorg-transition), border-color var(--omsorg-transition), transform var(--omsorg-transition); } .icon-button:hover { border-color: var(--omsorg-border-active); background: var(--omsorg-surface-hover); transform: translateY(-1px); } .notification-dot { position: absolute; top: -6px; right: -6px; min-width: 20px; padding: 2px 6px; color: #11111f; border-radius: 999px; background: var(--omsorg-turquoise); font-size: 11px; font-weight: 800; } .welcome-card, .dashboard-card { border: 1px solid var(--omsorg-border); border-radius: var(--omsorg-radius-large); background: linear-gradient( 145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018) ), var(--omsorg-surface); box-shadow: var(--omsorg-shadow-small); backdrop-filter: blur(18px); } .welcome-card { padding: 28px; margin-bottom: 18px; } .welcome-card h2 { margin: 0 0 10px; font-size: 28px; } .welcome-card p { margin: 0; color: var(--omsorg-text-secondary); } .accent { color: var(--omsorg-turquoise); } .dashboard-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; } .dashboard-card { padding: 22px; } .dashboard-card h3 { margin: 0 0 16px; } .dashboard-card ul { margin: 0; padding-left: 20px; color: var(--omsorg-text-secondary); } .dashboard-card li { margin-bottom: 10px; } .dashboard-card button { display: inline-flex; align-items: center; margin: 0 8px 8px 0; padding: 12px 14px; color: #11111f; border: 0; border-radius: 14px; background: linear-gradient( 135deg, var(--omsorg-turquoise-light), var(--omsorg-turquoise) ); font-weight: 700; transition: transform var(--omsorg-transition), box-shadow var(--omsorg-transition); } .dashboard-card button:hover { box-shadow: 0 14px 34px rgba(104, 210, 223, 0.28); transform: translateY(-1px); } @media (max-width: 980px) { .sidebar { width: 230px; } .dashboard-grid { grid-template-columns: 1fr; } }/* ========================================================== OMSORG CARD ========================================================== */ .omsorg-card{ padding:28px; border-radius:22px; background: linear-gradient( 180deg, rgba(255,255,255,.08), rgba(255,255,255,.03) ); border:1px solid rgba(104,210,223,.12); backdrop-filter:blur(16px); transition:.25s ease; box-shadow: 0 18px 50px rgba(0,0,0,.25); } .omsorg-card:hover{ transform:translateY(-3px); border-color:#68d2df; box-shadow: 0 25px 60px rgba(0,0,0,.35); } .omsorg-card-header{ margin-bottom:18px; } .omsorg-card-header h3{ margin:0; font-size:18px; color:#ffffff; } .omsorg-card-value{ font-size:42px; font-weight:700; color:#68d2df; margin-bottom:10px; } .omsorg-card-subtitle{ margin:0; color:#A9C9D3; }/* ========================================================== HOME PAGE ========================================================== */ .home-grid { margin-top: 18px; } .home-task-list { margin: 0; padding-left: 20px; color: var(--omsorg-text-secondary); } .home-task-list li { margin-bottom: 12px; } .home-actions { display: flex; flex-wrap: wrap; gap: 10px; }/* ========================================================== OMSORG BUTTON – FINAL OVERRIDE ========================================================== */ button.omsorg-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 0 17px; color: #11111f; border: 1px solid transparent; border-radius: 14px; background: linear-gradient( 135deg, var(--omsorg-turquoise-light), var(--omsorg-turquoise) ); box-shadow: 0 10px 28px rgba(104, 210, 223, 0.18); font-family: inherit; font-size: 14px; font-weight: 700; cursor: pointer; appearance: none; -webkit-appearance: none; transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease, border-color 180ms ease; } button.omsorg-button:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(104, 210, 223, 0.3); } button.omsorg-button--secondary { color: var(--omsorg-text-primary); border-color: var(--omsorg-border); background: rgba(255, 255, 255, 0.07); box-shadow: none; } button.omsorg-button--secondary:hover:not(:disabled) { border-color: var(--omsorg-border-active); background: var(--omsorg-surface-hover); } button.omsorg-button--danger { color: #ffffff; background: linear-gradient(135deg, #ef7f87, #c94d58); }/* ========================================================== OMSORG STAT CARD ========================================================== */ .omsorg-stat-card { min-height: 168px; padding: 22px; border: 1px solid var(--omsorg-border); border-radius: var(--omsorg-radius-large); background: linear-gradient( 145deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.02) ), var(--omsorg-surface); box-shadow: var(--omsorg-shadow-small); backdrop-filter: blur(18px); transition: transform var(--omsorg-transition), border-color var(--omsorg-transition), box-shadow var(--omsorg-transition); } .omsorg-stat-card:hover { transform: translateY(-3px); border-color: var(--omsorg-border-active); box-shadow: var(--omsorg-shadow-medium); } .omsorg-stat-card__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; } .omsorg-stat-card__title { margin: 0 0 12px; color: var(--omsorg-text-secondary); font-size: 14px; font-weight: 600; } .omsorg-stat-card__value { display: block; color: var(--omsorg-text-primary); font-size: 32px; line-height: 1.1; } .omsorg-stat-card__icon { display: grid; place-items: center; width: 46px; height: 46px; color: var(--omsorg-turquoise); border: 1px solid rgba(104, 210, 223, 0.2); border-radius: 15px; background: rgba(104, 210, 223, 0.1); } .omsorg-stat-card__trend { display: inline-flex; align-items: center; gap: 6px; margin-top: 22px; font-size: 13px; font-weight: 700; } .omsorg-stat-card__trend--up { color: #71dda2; } .omsorg-stat-card__trend--down { color: #ef7f87; } .omsorg-stat-card__trend--neutral { color: var(--omsorg-text-muted); } .home-stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 18px 0; } @media (max-width: 1100px) { .home-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 720px) { .home-stats-grid { grid-template-columns: 1fr; } }/* ========================================================== OMSORG BADGE ========================================================== */ .omsorg-badge{ display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:999px; font-size:13px; font-weight:700; border:1px solid transparent; } .omsorg-badge svg{ flex-shrink:0; } .omsorg-badge--success{ color:#71dda2; background:rgba(113,221,162,.12); border-color:rgba(113,221,162,.25); } .omsorg-badge--info{ color:#68d2df; background:rgba(104,210,223,.12); border-color:rgba(104,210,223,.25); } .omsorg-badge--warning{ color:#f6d36b; background:rgba(246,211,107,.12); border-color:rgba(246,211,107,.25); } .omsorg-badge--danger{ color:#ef7f87; background:rgba(239,127,135,.12); border-color:rgba(239,127,135,.25); } .omsorg-badge--neutral{ color:var(--omsorg-text-secondary); background:rgba(255,255,255,.06); border-color:var(--omsorg-border); }.badge-test-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }/* ========================================================== EMPLOYEES PAGE ========================================================== */ .employees-page { display: grid; gap: 18px; } .page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; } .page-heading h1 { margin: 4px 0 8px; font-size: 34px; line-height: 1.1; } .page-eyebrow { margin: 0; color: var(--omsorg-turquoise); font-size: 13px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; } .page-description { margin: 0; color: var(--omsorg-text-secondary); } .employees-toolbar { display: flex; align-items: center; gap: 14px; } .employees-search { display: flex; align-items: center; gap: 10px; flex: 1; min-height: 46px; padding: 0 14px; color: var(--omsorg-text-muted); border: 1px solid var(--omsorg-border); border-radius: 14px; background: rgba(255, 255, 255, 0.045); } .employees-search:focus-within { border-color: var(--omsorg-border-active); box-shadow: 0 0 0 3px rgba(104, 210, 223, 0.1); } .employees-search input { width: 100%; color: var(--omsorg-text-primary); border: 0; outline: 0; background: transparent; font: inherit; } .employees-search input::placeholder { color: var(--omsorg-text-muted); } .employees-filter-panel { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--omsorg-border); } .employees-filter-panel .form-field { min-width: 200px; } .omsorg-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 4px; } .omsorg-pagination-status { color: var(--omsorg-text-muted); font-size: 0.85rem; } .modal-overlay { position: fixed; inset: 0; z-index: 50; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(4, 9, 18, 0.6); } .modal-panel { width: 100%; max-width: 760px; max-height: 90vh; overflow-y: auto; padding: 28px; border: 1px solid var(--omsorg-border); border-radius: 18px; background: var(--omsorg-surface-strong, #0f1b2e); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4); } .modal-panel h2 { margin: 0 0 18px; } .modal-panel--wide { max-width: 1100px; } .modal-panel--viewer { max-width: 95vw; width: 95vw; height: 90vh; max-height: 90vh; overflow: hidden; display: flex; flex-direction: column; position: relative; } .modal-panel--viewer h2 { padding-right: 40px; flex-shrink: 0; } .document-viewer-body { flex: 1; min-height: 0; overflow: hidden; display: flex; align-items: center; justify-content: center; } .document-viewer-content { width: 100%; height: 100%; border: none; } .document-viewer-content--image { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; } .modal-close-button { position: absolute; top: 20px; right: 20px; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 1px solid var(--omsorg-border); border-radius: 999px; background: transparent; color: inherit; cursor: pointer; } .modal-close-button:hover { background: rgba(255, 255, 255, 0.08); } .form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; } .form-field { display: flex; flex-direction: column; gap: 6px; } .form-field span { color: var(--omsorg-text-muted); font-size: 0.85rem; } .form-field input, .form-field select { min-height: 42px; padding: 0 12px; color: var(--omsorg-text-primary); border: 1px solid var(--omsorg-border); border-radius: 10px; background: rgba(255, 255, 255, 0.045); font: inherit; } .form-field input:focus, .form-field select:focus { outline: 0; border-color: var(--omsorg-border-active); box-shadow: 0 0 0 3px rgba(104, 210, 223, 0.1); } .form-field select option { color: var(--omsorg-text-primary); background: var(--omsorg-surface-strong, #0f1b2e); } .form-field--fieldset { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 12px; padding: 12px; border: 1px solid var(--omsorg-border); border-radius: 10px; } .form-field--fieldset legend { padding: 0 4px; color: var(--omsorg-text-muted); font-size: 0.85rem; } .form-row { display: grid; grid-template-columns: minmax(90px, 0.6fr) 1fr; gap: 12px; } .input-with-action { display: flex; align-items: center; gap: 8px; } .input-with-action input { flex: 1; } .form-error { grid-column: 1 / -1; } .form-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 12px; margin-top: 4px; } @media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } } .employees-list { display: grid; gap: 12px; } .employee-row { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px 14px; } .employee-avatar { display: grid; place-items: center; width: 48px; height: 48px; color: var(--omsorg-turquoise); border: 1px solid rgba(104, 210, 223, 0.2); border-radius: 15px; background: rgba(104, 210, 223, 0.1); font-weight: 800; } .employee-main { display: grid; gap: 5px; min-width: 0; } .employee-main strong { display: block; overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; } .employee-main span, .employee-status > span { color: var(--omsorg-text-secondary); font-size: 13px; } .employee-status { display: flex; grid-column: 2; align-items: center; gap: 10px; } @media (max-width: 680px) { .page-heading, .employees-toolbar { align-items: stretch; flex-direction: column; } .employee-row { grid-template-columns: 1fr; } .employee-status { grid-column: auto; } }/* ========================================================== EMPLOYEE LAYOUT ========================================================== */ .employees-layout{ display:grid; grid-template-columns:380px 1fr; gap:20px; align-items:start; } .employee-detail{ display:grid; gap:24px; } .employee-detail-header{ display:flex; gap:20px; align-items:center; } .employee-detail-header > .omsorg-button--danger { margin-left: auto; } .employee-detail-avatar{ width:78px; height:78px; display:grid; place-items:center; border-radius:22px; background:rgba(104,210,223,.12); border:1px solid rgba(104,210,223,.22); color:var(--omsorg-turquoise); font-size:28px; font-weight:800; } .employee-detail-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; } .employee-detail-grid strong{ display:block; margin-bottom:6px; } .employee-detail-grid p{ margin:0; color:var(--omsorg-text-secondary); } @media(max-width:1100px){ .employees-layout{ grid-template-columns:1fr; } }/* ========================================================== EMPLOYEE INTERACTION ========================================================== */ .employee-row-wrapper { display: flex; flex-direction: column; gap: 8px; } .employee-row-wrapper .omsorg-button { align-self: flex-end; } .employee-list-button { display: block; width: 100%; padding: 0; color: inherit; text-align: left; border: 0; background: transparent; cursor: pointer; } .employee-list-button .omsorg-card { transition: border-color var(--omsorg-transition), background var(--omsorg-transition), transform var(--omsorg-transition); } .employee-list-button:hover .omsorg-card { transform: translateY(-2px); border-color: var(--omsorg-border-active); } .employee-list-button--active .omsorg-card { border-color: rgba(104, 210, 223, 0.55); background: linear-gradient( 145deg, rgba(104, 210, 223, 0.13), rgba(255, 255, 255, 0.025) ), var(--omsorg-surface); } .employee-list-button:focus-visible { outline: 3px solid rgba(104, 210, 223, 0.35); outline-offset: 4px; border-radius: var(--omsorg-radius-large); } .employee-detail-header h2 { margin: 0 0 6px; } .employee-detail-header p { margin: 0 0 12px; color: var(--omsorg-text-secondary); } .employee-detail-empty, .employees-empty-state { display: grid; gap: 8px; padding: 12px 0; } .employee-detail-empty h2, .employee-detail-empty p, .employees-empty-state span { margin: 0; } .employee-detail-empty p, .employees-empty-state span { color: var(--omsorg-text-secondary); }/* ========================================================== EMPLOYEE TABS ========================================================== */ .employee-tabs { display: flex; flex-wrap: wrap; gap: 8px; padding: 6px; border: 1px solid var(--omsorg-border); border-radius: 16px; background: rgba(255, 255, 255, 0.035); } .employee-tab { min-height: 38px; padding: 0 14px; color: var(--omsorg-text-secondary); border: 1px solid transparent; border-radius: 11px; background: transparent; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; transition: color var(--omsorg-transition), border-color var(--omsorg-transition), background var(--omsorg-transition); } .employee-tab:hover { color: var(--omsorg-text-primary); background: rgba(255, 255, 255, 0.05); } .employee-tab--active { color: var(--omsorg-turquoise); border-color: rgba(104, 210, 223, 0.28); background: rgba(104, 210, 223, 0.11); } .employee-tab:focus-visible { outline: 3px solid rgba(104, 210, 223, 0.3); outline-offset: 2px; }/* ========================================================== EMPLOYEE TAB CONTENT ========================================================== */ .employee-tab-content { display: grid; gap: 10px; min-height: 150px; padding: 18px; border: 1px solid var(--omsorg-border); border-radius: 16px; background: rgba(255, 255, 255, 0.025); } .employee-tab-content h3, .employee-tab-content p { margin: 0; } .employee-tab-content p { color: var(--omsorg-text-secondary); line-height: 1.6; } .facility-contacts-list { display: grid; gap: 10px; } .facility-contact-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 12px 14px; border: 1px solid var(--omsorg-border); border-radius: 12px; } .facility-contact-row p { margin: 4px 0 0; color: var(--omsorg-text-secondary); } /* ========================================================== EMPLOYEE TAB CONTENT ========================================================== */ .employee-tab-content { display: grid; gap: 10px; min-height: 150px; padding: 18px; border: 1px solid var(--omsorg-border); border-radius: 16px; background: rgba(255, 255, 255, 0.025); } .employee-tab-content h3, .employee-tab-content p { margin: 0; } .employee-tab-content p { color: var(--omsorg-text-secondary); line-height: 1.6; }/* ========================================================== CONTRACT WIDGET ========================================================== */ .contract-widget { display: grid; gap: 18px; } .contract-widget__intro { display: flex; align-items: center; gap: 10px; color: var(--omsorg-text-secondary); } .contract-widget__intro svg { flex-shrink: 0; color: var(--omsorg-turquoise); } .contract-widget__intro p { margin: 0; } .contract-widget__list { display: grid; gap: 12px; } .contract-item { display: grid; gap: 15px; padding: 18px; border: 1px solid var(--omsorg-border); border-left-width: 4px; border-radius: 16px; background: rgba(255, 255, 255, 0.025); } .contract-item--danger { border-left-color: #ef7f87; } .contract-item--warning { border-left-color: #f6d36b; } .contract-item--info { border-left-color: var(--omsorg-turquoise); } .contract-item__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; } .contract-item__header > div { display: grid; gap: 5px; } .contract-item__header strong { font-size: 16px; } .contract-item__header span, .contract-item__meta span, .contract-item__meta small { color: var(--omsorg-text-secondary); } .contract-item__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; font-size: 13px; } .contract-item__meta strong { color: var(--omsorg-text-primary); } .contract-item__meta small { font-size: 12px; } .contract-item__actions { display: flex; flex-wrap: wrap; gap: 9px; } .contract-action { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 0 12px; color: var(--omsorg-text-primary); text-decoration: none; border: 1px solid var(--omsorg-border); border-radius: 11px; background: rgba(255, 255, 255, 0.045); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; } .contract-action:hover { border-color: var(--omsorg-border-active); background: rgba(104, 210, 223, 0.09); } .contract-action:focus-visible { outline: 3px solid rgba(104, 210, 223, 0.3); outline-offset: 2px; } @media (max-width: 680px) { .contract-item__header { flex-direction: column; } .contract-action { width: 100%; } }/* ========================================================== CONTRACT WIDGET ========================================================== */ .contract-widget { display: grid; gap: 18px; } .contract-widget__intro { display: flex; align-items: center; gap: 10px; color: var(--omsorg-text-secondary); } .contract-widget__intro svg { flex-shrink: 0; color: var(--omsorg-turquoise); } .contract-widget__intro p { margin: 0; } .contract-widget__list { display: grid; gap: 12px; } .contract-item { display: grid; gap: 15px; padding: 18px; border: 1px solid var(--omsorg-border); border-left-width: 4px; border-radius: 16px; background: rgba(255, 255, 255, 0.025); } .contract-item--danger { border-left-color: #ef7f87; } .contract-item--warning { border-left-color: #f6d36b; } .contract-item--info { border-left-color: var(--omsorg-turquoise); } .contract-item__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; } .contract-item__header > div { display: grid; gap: 5px; } .contract-item__header strong { font-size: 16px; } .contract-item__header span, .contract-item__meta span, .contract-item__meta small { color: var(--omsorg-text-secondary); } .contract-item__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; font-size: 13px; } .contract-item__meta strong { color: var(--omsorg-text-primary); } .contract-item__meta small { font-size: 12px; } .contract-item__actions { display: flex; flex-wrap: wrap; gap: 9px; } .contract-action { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 0 12px; color: var(--omsorg-text-primary); text-decoration: none; border: 1px solid var(--omsorg-border); border-radius: 11px; background: rgba(255, 255, 255, 0.045); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; } .contract-action:hover { border-color: var(--omsorg-border-active); background: rgba(104, 210, 223, 0.09); } .contract-action:focus-visible { outline: 3px solid rgba(104, 210, 223, 0.3); outline-offset: 2px; } @media (max-width: 680px) { .contract-item__header { flex-direction: column; } .contract-action { width: 100%; } } .login-screen { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px; } .login-screen .omsorg-card { width: 100%; max-width: 380px; } .login-form { display: flex; flex-direction: column; gap: 16px; margin-top: 20px; } .login-form label { display: flex; flex-direction: column; gap: 6px; color: var(--omsorg-text-secondary); font-size: 0.9rem; } .login-form input { background: var(--omsorg-navy); border: 1px solid var(--omsorg-border); border-radius: 8px; padding: 10px 12px; color: var(--omsorg-text-primary); font-size: 1rem; } .login-form input:focus-visible { outline: none; border-color: var(--omsorg-border-active); } .login-error { color: #f28b8b; font-size: 0.9rem; margin: 0; } .login-info { color: var(--omsorg-text-secondary); font-size: 0.9rem; margin: 0; } .login-form-links { display: flex; justify-content: space-between; margin-top: 8px; } .login-form-links button { background: none; border: none; padding: 0; color: var(--omsorg-text-secondary); font-size: 0.85rem; cursor: pointer; text-decoration: underline; } .login-form-links button:hover { color: var(--omsorg-text-primary); } .debug-sessions-actions { display: flex; gap: 12px; margin: 16px 0; } .debug-sessions-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; } .debug-sessions-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid var(--omsorg-border); border-radius: 12px; background: rgba(255, 255, 255, 0.03); } .debug-sessions-meta { color: var(--omsorg-text-muted); font-size: 0.85rem; margin: 2px 0 0; } .debug-sessions-divider { border: none; border-top: 1px solid var(--omsorg-border); margin: 24px 0; } .debug-sessions-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; } .debug-sessions-field label { font-size: 0.85rem; color: var(--omsorg-text-muted); } .debug-sessions-field textarea { font-family: inherit; resize: vertical; } .audit-log-details { font-family: monospace; font-size: 0.8rem; color: var(--omsorg-text-muted); margin: 6px 0 0; word-break: break-word; white-space: pre-wrap; } .settings-tabs { display: flex; gap: 8px; margin-bottom: 16px; border-bottom: 1px solid var(--omsorg-border); } .settings-tab { background: none; border: none; padding: 10px 4px; margin-bottom: -1px; color: var(--omsorg-text-muted); cursor: pointer; border-bottom: 2px solid transparent; } .settings-tab--active { color: var(--omsorg-text-primary); border-bottom-color: var(--omsorg-primary, currentColor); } .settings-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 16px; } .settings-panel-heading h4 { margin: 0; } .settings-roles-layout { display: flex; gap: 24px; align-items: flex-start; } .settings-roles-list { flex: 0 0 220px; display: flex; flex-direction: column; gap: 12px; } .settings-roles-list ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; } .settings-role-item { width: 100%; text-align: left; padding: 8px 12px; border: 1px solid var(--omsorg-border); border-radius: 10px; background: rgba(255, 255, 255, 0.03); color: var(--omsorg-text-primary); cursor: pointer; } .settings-role-item--active { border-color: var(--omsorg-primary, currentColor); } .settings-role-item-row { display: flex; align-items: stretch; gap: 6px; } .settings-role-item-row .settings-role-item { flex: 1; min-width: 0; } .settings-role-item-row .omsorg-button span:empty { display: none; } .settings-new-role-form { display: flex; gap: 8px; } .settings-sort-order-controls { display: flex; gap: 4px; } .settings-roles-detail { flex: 1; min-width: 0; } .settings-permission-matrix-scroll { overflow-x: auto; } .settings-permission-matrix table { border-collapse: collapse; width: 100%; } .settings-permission-matrix th, .settings-permission-matrix td { padding: 8px 10px; text-align: center; border-bottom: 1px solid var(--omsorg-border); white-space: nowrap; } .settings-permission-matrix td:first-child, .settings-permission-matrix th:first-child { text-align: left; } .settings-permission-matrix-actions { display: flex; align-items: center; gap: 12px; margin-top: 16px; } .settings-new-override-form { display: flex; gap: 8px; margin-top: 16px; flex-wrap: wrap; }