:root {
    color-scheme: light;
    --tilky-navy: #172554;
    --tilky-navy-strong: #0f172a;
    --tilky-ink: #172033;
    --tilky-muted: #64748b;
    --tilky-surface: #ffffff;
    --tilky-canvas: #f4f7fb;
    --tilky-line: #e2e8f0;
    --tilky-turquoise: #14b8a6;
    --tilky-blue: #2563eb;
    --tilky-primary-bg: #1e3a5f;
    --tilky-primary-fg: #ffffff;
    --tilky-secondary-bg: #ffffff;
    --tilky-secondary-fg: #172554;
    --tilky-danger-bg: #dc2626;
    --tilky-danger-fg: #ffffff;
    --tilky-table-head: #f8fafc;
    --tilky-disabled-bg: #e2e8f0;
    --tilky-disabled-fg: #64748b;
    --tilky-radius: 16px;
    --tilky-shadow: 0 12px 30px rgb(15 23 42 / 7%);
}

html, body { min-width: 320px; }
body { background: var(--tilky-canvas); color: var(--tilky-ink); font-size: 15px; }
a { color: var(--tilky-blue); }
.public-shell { min-height: 100vh; }
.public-shell .navbar { background: var(--tilky-navy); border-bottom: 1px solid rgb(255 255 255 / 10%); }
.public-shell .navbar-inner { max-width: 1280px; }
.public-shell .brand { letter-spacing: -.02em; }

.app-layout { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0, 1fr); }
.app-sidebar { position: sticky; top: 0; z-index: 20; height: 100vh; min-height: 0; overflow: hidden; background: var(--tilky-navy-strong); color: #dbeafe; padding: 1.5rem 1rem; display: flex; flex-direction: column; gap: 2rem; }
.sidebar-primary { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.app-brand { display: flex; align-items: center; gap: .7rem; color: #fff; text-decoration: none; font-size: 1.2rem; font-weight: 800; padding: .5rem .7rem; }
.app-brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; color: var(--tilky-navy-strong); background: linear-gradient(135deg, #5eead4, #38bdf8); font-weight: 900; }
.sidebar-label { color: #94a3b8; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 0 .7rem; }
.sidebar-nav { display: grid; gap: .35rem; }
.sidebar-nav a { display: flex; align-items: center; gap: .7rem; border-radius: 11px; color: #cbd5e1; padding: .7rem .75rem; text-decoration: none; font-size: .92rem; }
.sidebar-nav a:hover, .sidebar-nav a:focus-visible, .sidebar-nav a[aria-current="page"] { background: rgb(20 184 166 / 18%); color: #fff; }
.sidebar-label + .sidebar-nav { margin-top: 1rem; }
.sidebar-nav .nav-icon { display: inline-grid; flex: 0 0 1.9rem; place-items: center; width: 1.9rem; height: 1.9rem; color: #5eead4; }
.sidebar-nav .nav-icon svg { display: block; width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sidebar-footer { flex: 0 0 auto; margin-top: 0; padding-top: .75rem; border-top: 1px solid rgb(203 213 225 / 18%); background: var(--tilky-navy-strong); }
.sidebar-footer button { width: 100%; }
.app-content { min-width: 0; }
.app-topbar { height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0 2.5rem; background: var(--tilky-surface); border-bottom: 1px solid var(--tilky-line); }
.app-topbar h1 { margin: 0; font-size: 1.25rem; letter-spacing: -.02em; }
.app-topbar .topbar-caption { color: var(--tilky-muted); font-size: .85rem; }
.app-topbar-account-link { display: inline-flex; flex: 0 0 auto; flex-direction: column; align-items: center; justify-content: center; gap: .15rem; margin-left: auto; color: inherit; line-height: 1; text-decoration: none; }
.app-topbar-account-caption { color: var(--tilky-muted); font-size: .65rem; white-space: nowrap; }
.app-topbar-account-link img { display: block; width: auto; height: 30px; max-width: 140px; object-fit: contain; }
.app-main .main { padding: 2rem 2.25rem; }
.app-main .container { width: min(1280px, 100%); }
.app-main .page-title { font-size: clamp(1.45rem, 1.8vw, 1.8rem); letter-spacing: -.04em; }
.app-main .card { border: 1px solid var(--tilky-line); border-radius: var(--tilky-radius); box-shadow: var(--tilky-shadow); }
.app-main .card-value { color: var(--tilky-navy); }
.dashboard-quota-card { display: flex; flex-direction: column; align-items: flex-start; }
.dashboard-summary-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.dashboard-card-link { color: inherit; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }
.app-main .dashboard-card-link, .app-main .dashboard-card-link * { text-decoration: none; }
.dashboard-card-link:hover, .dashboard-card-link:focus-visible { color: inherit; transform: translateY(-2px); box-shadow: 0 16px 34px rgb(15 23 42 / 12%); }
.dashboard-card-link:focus-visible { outline: 3px solid rgb(20 184 166 / 45%); outline-offset: 2px; }
.security-explainer { margin-top: 2rem; padding: 2rem; border: 1px solid var(--tilky-line); border-radius: var(--tilky-radius); background: linear-gradient(135deg, #ffffff 0%, #f0fdfa 100%); box-shadow: var(--tilky-shadow); }
.security-explainer-header { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 1rem; }
.security-shield { display: grid; place-items: center; width: 4.25rem; height: 4.25rem; border-radius: 20px; background: #ccfbf1; color: #0f766e; }
.security-shield svg { width: 2.6rem; height: 2.6rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.security-explainer h2 { margin: 0; color: var(--tilky-navy); font-size: clamp(1.35rem, 2.2vw, 2rem); letter-spacing: -.035em; }
.security-explainer-lead { max-width: 760px; margin: .55rem 0 0; color: var(--tilky-muted); white-space: nowrap; }
.security-flow { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: .7rem; margin-top: 2rem; }
.security-step { min-width: 0; padding: 1.1rem; border: 1px solid var(--tilky-line); border-radius: 14px; background: var(--tilky-surface); }
.security-step-highlight { border-color: rgb(20 184 166 / 45%); background: #ecfdf9; }
.security-step-number { display: inline-grid; place-items: center; width: 2rem; height: 2rem; margin-bottom: .8rem; border-radius: 9px; background: var(--tilky-navy); color: #fff; font-size: .72rem; font-weight: 800; }
.security-step h3 { margin: 0 0 .45rem; color: var(--tilky-navy); font-size: 1rem; letter-spacing: -.02em; }
.security-step p { margin: 0; color: var(--tilky-muted); font-size: .84rem; line-height: 1.5; }
.security-flow-arrow { display: grid; place-items: center; color: var(--tilky-turquoise); font-size: 1.5rem; font-weight: 800; }
.security-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--tilky-line); }
.security-details > div { padding: .2rem .4rem; }
.security-details strong { color: var(--tilky-navy); font-size: .9rem; }
.security-details p { margin: .35rem 0 0; color: var(--tilky-muted); font-size: .8rem; line-height: 1.5; }
.quota-gauge { display: block; flex: 0 0 auto; width: 100%; height: 8px; margin-top: .8rem; overflow: hidden; appearance: none; border: 0; border-radius: 999px; background: #e8eef5; }
.quota-gauge::-webkit-progress-bar { border-radius: 999px; background: #e8eef5; }
.quota-gauge::-webkit-progress-value { border-radius: 999px; background: linear-gradient(90deg, var(--tilky-turquoise), var(--tilky-blue)); transition: width .25s ease; }
.quota-gauge::-moz-progress-bar { border-radius: 999px; background: linear-gradient(90deg, var(--tilky-turquoise), var(--tilky-blue)); }
.app-main .badge { color: #0f766e; background: #ccfbf1; font-weight: 700; }
.app-main button:not(.btn), .app-main .btn-primary { border: 0; border-radius: 8px; background: var(--tilky-primary-bg); color: var(--tilky-primary-fg); padding: .48rem .76rem; font-size: .82rem; font-weight: 700; }
.app-main button:not(.btn):hover, .app-main .btn-primary:hover { filter: brightness(.92); }
.app-main input:focus, .app-main select:focus, .app-main textarea:focus { border-color: var(--tilky-turquoise); box-shadow: 0 0 0 3px rgb(20 184 166 / 16%); outline: none; }
.app-main input, .app-main select, .app-main textarea { background:var(--tilky-surface); color:var(--tilky-ink); border-color:var(--tilky-line); }
.app-main .card, .app-main .modal-content, .app-main .filter-bar { background:var(--tilky-surface); }
.app-main .data-table th { background:var(--tilky-table-head); }
.app-main .data-table td, .app-main .data-table td strong { color:var(--tilky-ink); }
.app-main .data-table td a { color:var(--tilky-blue); }
.app-main .btn-secondary, .app-main .btn-small { background:var(--tilky-secondary-bg); color:var(--tilky-secondary-fg); border-color:var(--tilky-line); }
.app-main .page-lead { font-size:.84rem; }
.app-main .dropzone { background:var(--tilky-surface); }
.app-main .notice { border: 0; border-radius: 10px; }

.login-main { background: var(--tilky-canvas); }
.login-brand-panel { display: grid; align-content: space-between; min-height: 460px; padding: clamp(2rem, 6vw, 5rem); border-radius: 24px; color: #fff; background: linear-gradient(145deg, #172554, #1e3a8a); box-shadow: var(--tilky-shadow); }
.login-brand-panel h2 { max-width: 520px; margin: 0; font-size: clamp(1.8rem, 3vw, 3.4rem); line-height: 1.05; letter-spacing: -.05em; }
.login-brand-panel p { color: #bfdbfe; max-width: 460px; }
.login-brand-stats { display: flex; gap: clamp(1rem, 4vw, 3rem); }
.login-brand-stats strong { display: block; font-size: 1.45rem; }
.login-brand-stats span { color: #bfdbfe; font-size: .8rem; }
.login-card { align-self: center; width: min(440px, 100%); margin: auto; }
.login-card .card { border-radius: 18px; box-shadow: var(--tilky-shadow); }
.login-card .btn-primary { background: var(--tilky-navy); border-color: var(--tilky-navy); }
.public-brand { display:inline-flex; align-items:center; gap:.5rem; color:#fff; font-size:1.1rem; font-weight:800; text-decoration:none; }
.public-brand:hover, .public-brand:focus-visible { color:#fff; text-decoration:none; }
.public-brand .app-brand-mark { width:32px; height:32px; border-radius:10px; }
.public-brand-wordmark { letter-spacing:.02em; }
.login-brand-panel .app-brand > span:last-child { text-transform:uppercase; }
.login-totp-panel { display:grid; place-items:center; min-height:460px; overflow:hidden; border-radius:24px; background:var(--tilky-surface); box-shadow:var(--tilky-shadow); }
.login-totp-panel img { display:block; width:100%; height:460px; object-fit:contain; }
.login-totp-logout { display:flex; justify-content:center; margin-top:1rem; }

.page-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:1.25rem; margin-bottom:1.5rem; }
.eyebrow { margin:0 0 .35rem; color:var(--tilky-turquoise); font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.page-lead { margin:.35rem 0 0; color:var(--tilky-muted); }
.filter-bar { display:flex; align-items:flex-end; gap:.75rem; padding:1rem; margin-bottom:1.25rem; }
.field-grow { flex:1; }
.filter-bar label, .form-stack label { display:grid; gap:.4rem; color:var(--tilky-ink); font-weight:650; }
.filter-bar input, .form-stack input, .form-stack select, .form-stack textarea { width:100%; border:1px solid var(--tilky-line); border-radius:10px; padding:.7rem .8rem; background:var(--tilky-surface); color:var(--tilky-ink); }
.projects-search { display:flex; align-items:center; justify-content:flex-start; gap:.65rem; margin:0 0 1.25rem; }
.projects-search label { color:var(--tilky-ink); font-weight:650; white-space:nowrap; }
.projects-search input { flex:0 1 360px; min-width:180px; border:1px solid var(--tilky-line); border-radius:10px; padding:.62rem .75rem; background:var(--tilky-surface); color:var(--tilky-ink); }
.project-open-link { display:inline-flex; flex-direction:row; align-items:center; gap:.5rem; width:max-content; max-width:100%; color:var(--tilky-ink); text-decoration:none; line-height:1.25; }
.project-open-link svg { flex:0 0 auto; color:var(--tilky-turquoise); }
.project-open-link strong, .project-open-link span { text-decoration:none; }
.project-open-link:hover, .project-open-link:focus-visible { color:var(--tilky-turquoise); text-decoration:none; }
.project-open-link span { color:var(--tilky-muted); font-size:.72rem; font-weight:500; }
.app-main button.project-edit-icon { display:inline-flex; align-items:center; justify-content:center; padding:.3rem; border:0; border-radius:6px; background:transparent; color:var(--tilky-turquoise); line-height:1; box-shadow:none; }
.app-main button.project-edit-icon:hover, .app-main button.project-edit-icon:focus-visible { background:rgb(20 184 166 / 12%); color:var(--tilky-turquoise); filter:none; }
.app-main button.project-edit-icon:focus-visible { outline:2px solid var(--tilky-turquoise); outline-offset:2px; }
.worksite-open-link { display:inline-flex; align-items:center; gap:.5rem; color:var(--tilky-ink); text-decoration:none; }
.worksite-open-link svg { display:block; width:1.1rem; height:1.1rem; flex:0 0 auto; fill:none; stroke:var(--tilky-turquoise); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.worksite-open-link:hover, .worksite-open-link:focus-visible { color:var(--tilky-turquoise); text-decoration:none; }
.app-main .worksite-documents-modal .modal-dialog { width:90vw; max-width:90vw; height:90vh; }
.worksite-documents-modal .modal-content { height:100%; max-height:90vh; }
.worksite-documents-modal .modal-body { display:flex; min-height:0; overflow:hidden; }
.worksite-documents-layout { display:grid; flex:1; grid-template-columns:minmax(0, 3fr) minmax(0, 7fr); gap:1rem; min-height:0; }
.worksite-invoice-pane, .worksite-pdf-pane { min-width:0; display:flex; flex-direction:column; }
.worksite-invoice-pane h3, .worksite-pdf-pane h3 { margin:0 0 .75rem; font-size:1rem; }
.worksite-invoice-pane, .worksite-pdf-pane { min-height:0; }
.worksite-document-list { flex:1; overflow:auto; min-height:0; max-height:none; border:1px solid var(--tilky-line); border-radius:10px; }
.worksite-invoice-table { width:100%; border-collapse:collapse; font-size:.84rem; }
.worksite-invoice-table th, .worksite-invoice-table td { padding:.38rem .6rem; border-bottom:1px solid color-mix(in srgb, var(--tilky-line) 72%, transparent); text-align:left; vertical-align:middle; }
.worksite-invoice-table thead th, .worksite-invoice-table tfoot th { background:var(--tilky-table-head); font-size:.76rem; }
.worksite-invoice-table .worksite-document-date { white-space:nowrap; color:var(--tilky-muted); font-size:.78rem; text-align:center; }
.worksite-invoice-table .worksite-document-amount { text-align:right; white-space:nowrap; }
.worksite-invoice-table tfoot tr:last-child th, .worksite-invoice-table tfoot tr:last-child td { border-bottom:0; }
.worksite-invoice-total, .worksite-invoice-difference { font-weight:750; }
.worksite-invoice-difference th, .worksite-invoice-difference td { color:var(--tilky-navy); }
.worksite-invoice-difference.is-positive th, .worksite-invoice-difference.is-positive td { color:#15803d; }
.worksite-invoice-difference.is-negative th, .worksite-invoice-difference.is-negative td { color:var(--tilky-danger-bg); }
.worksite-currency-note { margin:.5rem 0 0; color:var(--tilky-muted); font-size:.74rem; }
.app-main .worksite-invoice-table .worksite-document-item { appearance:none; display:flex; align-items:center; gap:.45rem; width:100%; margin:0; padding:.18rem 0; border:0; border-radius:0; background:none; box-shadow:none; color:var(--tilky-ink); font:inherit; font-weight:400; text-align:left; overflow-wrap:anywhere; cursor:pointer; }
.app-main .worksite-invoice-table .worksite-document-item:hover, .app-main .worksite-invoice-table .worksite-document-item:focus-visible, .app-main .worksite-invoice-table .worksite-document-item.is-selected { background:none; box-shadow:none; color:var(--tilky-ink); text-decoration:none; }
.app-main .worksite-invoice-table .worksite-document-item:focus-visible { outline:2px solid var(--tilky-turquoise); outline-offset:2px; border-radius:3px; }
.app-main .worksite-invoice-table .worksite-document-item.is-selected { font-weight:700; }
.worksite-document-icon { width:1rem; height:1rem; flex:0 0 auto; fill:none; stroke:var(--tilky-muted); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.worksite-documents-empty, .worksite-preview-hint { color:var(--tilky-muted); font-size:.82rem; }
.worksite-preview-heading { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-bottom:.75rem; }
.worksite-preview-actions { display:flex; align-items:center; gap:.4rem; }
.worksite-preview-action { display:inline-grid; place-items:center; width:2rem; height:2rem; border:1px solid var(--tilky-line); border-radius:8px; color:var(--tilky-turquoise); text-decoration:none; }
.worksite-preview-action:hover, .worksite-preview-action:focus-visible { background:var(--tilky-canvas); color:var(--tilky-navy); }
.worksite-preview-action svg { width:1.1rem; height:1.1rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.worksite-pdf-frame-viewport { flex:1; min-height:0; overflow:hidden; border:1px solid var(--tilky-line); border-radius:10px; background:#f5f7fa; }
.worksite-pdf-pane iframe { display:block; width:100%; height:calc(100% + 58px); min-height:518px; margin-top:-58px; border:0; background:#f5f7fa; }
.worksite-documents-empty { padding:.8rem; border:1px dashed var(--tilky-line); border-radius:10px; }
.project-detail-toolbar { align-items:center; }
.project-back-button { flex:0 0 auto; text-decoration:none; }
.project-budget-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:0 0 1.25rem; }
.project-budget-card { display:flex; flex-direction:column; gap:.45rem; }
.app-main .project-budget-card { min-width:0; padding:1.25rem; }
.project-budget-card .card-value { font-size:1.35rem; }
.project-budget-value-row { display:flex; align-items:center; gap:.55rem; }
.project-budget-value-row .card-value { margin:0; }
.project-edit-icon { display:inline-grid; place-items:center; width:2rem; height:2rem; padding:.35rem; border:0; border-radius:8px; background:transparent; color:var(--tilky-turquoise); cursor:pointer; }
.project-edit-icon svg { display:block; width:1.2rem; height:1.2rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.project-edit-icon:hover, .project-edit-icon:focus-visible { background:color-mix(in srgb, var(--tilky-turquoise) 12%, transparent); color:var(--tilky-turquoise); }
.project-budget-edit-icon { flex:0 0 auto; }
.worksite-edit-icon { vertical-align:middle; }
.project-budget-edit-field { width:100%; text-align:left; justify-items:start; }
.project-budget-edit-field input { width:min(100%, 7rem); }
.project-worksite-create input { min-width:0; border:1px solid var(--tilky-line); border-radius:8px; padding:.55rem .65rem; background:var(--tilky-surface); color:var(--tilky-ink); }
.project-worksites { overflow:hidden; padding:0; margin:0 0 1rem; }
.project-worksites .section-heading { align-items:center; }
.form-row.project-worksite-create { grid-template-columns:minmax(0,1fr) minmax(0,.4fr) minmax(0,.667fr) minmax(0,1.933fr); align-items:end; gap:.8rem; padding:1rem; margin:0; border-bottom:1px solid var(--tilky-line); }
.project-worksite-create label { display:grid; gap:.4rem; font-weight:650; }
.project-worksite-create button { width:100%; }
.project-worksite-table { min-width:680px; }
.worksite-budget-progress { display:grid; min-width:190px; gap:.1rem; }
.worksite-budget-values { display:flex; flex-wrap:wrap; gap:.25rem; align-items:baseline; font-size:.82rem; }
.worksite-budget-values span, .worksite-other-currencies { color:var(--tilky-muted); font-size:.72rem; }
.quota-gauge.worksite-budget-gauge { margin-top:.35rem; }
.worksite-edit-field { width:100%; text-align:left; justify-items:start; }
.worksite-edit-budget-field { max-width:300px; }
.worksite-edit-field input { width:100%; }
.modal-footer .worksite-delete-trigger { margin-right:auto; }
.worksite-delete-warning { margin:0; padding:.9rem 1rem; border:1px solid #fed7aa; border-radius:10px; background:#fff7ed; color:#9a3412; text-align:left; }
.modal[id^="delete-worksite-confirm-"] .modal-body { overflow-x:hidden; }
.worksite-delete-warning { min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.project-archived-worksites { margin:1rem; color:var(--tilky-muted); font-size:.82rem; }
.project-guide-budget { display:block; margin-top:.25rem; }
.configuration-tabs { display:flex; flex-wrap:wrap; gap:.25rem; border-bottom:1px solid var(--tilky-line); margin:0; }
.configuration-tabs a { padding:.62rem .8rem; border:1px solid transparent; border-bottom:0; border-radius:8px 8px 0 0; color:var(--tilky-muted); text-decoration:none; font-size:.8rem; }
.configuration-tabs a:hover, .configuration-tabs a:focus-visible, .configuration-tabs a[aria-current="page"] { color:var(--tilky-ink); background:var(--tilky-table-head); border-color:var(--tilky-line); }
.configuration-tabs a[aria-current="page"] { position:relative; z-index:1; margin-bottom:-1px; border-bottom-color:var(--tilky-surface); }
.app-main .configuration-panel { padding:1.1rem; border-radius:0; }
.configuration-tabs + .configuration-panel { border-radius:0; }
.configuration-tabs + .my-folders-filters { border-radius:0; }
.configuration-panel h2 { margin-top:0; font-size:1rem; }
.configuration-export-intro { display:flex; align-items:flex-start; gap:1rem; max-width:760px; margin-top:1.35rem; margin-bottom:1.25rem; }
.configuration-export-icon, .configuration-export-card-icon { display:grid; flex:0 0 auto; place-items:center; width:2.75rem; height:2.75rem; border-radius:12px; background:#ccfbf1; color:#0f766e; }
.configuration-export-icon svg, .configuration-export-card-icon svg { width:1.45rem; height:1.45rem; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.configuration-export-status { display:inline-block; margin-bottom:.35rem; color:#0f766e; font-size:.76rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.configuration-export-intro .page-lead { margin:0; }
.configuration-export-illustration { max-width:1080px; margin:0 0 1.25rem; padding:1rem; border:1px solid #b8e8e1; border-radius:16px; background:linear-gradient(145deg,#f0fffc,#fff); text-align:center; }
.configuration-export-illustration img { display:block; width:100%; height:auto; max-height:360px; object-fit:contain; margin:0 auto; }
.configuration-export-illustration figcaption { margin-top:.65rem; color:var(--tilky-muted); font-size:.78rem; }
.configuration-export-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; max-width:1080px; }
.configuration-export-card { display:grid; align-content:start; gap:.65rem; min-height:225px; padding:1.15rem; border:1px solid var(--tilky-line); border-radius:14px; background:var(--tilky-surface); box-shadow:0 8px 20px rgb(15 23 42 / 4%); }
.configuration-export-card h3 { margin:0; color:var(--tilky-ink); font-size:1rem; }
.configuration-export-card p { margin:0; color:var(--tilky-muted); font-size:.84rem; line-height:1.55; }
.configuration-export-card code { color:var(--tilky-ink); font-size:.82rem; font-weight:700; }
.configuration-export-card ol { margin:0; padding-left:1.15rem; color:var(--tilky-muted); font-size:.84rem; line-height:1.55; }
.configuration-export-unavailable { align-self:end; color:var(--tilky-muted); font-size:.76rem; font-style:italic; }
.configuration-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin-top:1rem; }
.configuration-grid > div { display:grid; gap:.2rem; padding:.8rem; border:1px solid var(--tilky-line); border-radius:10px; background:var(--tilky-surface); }
.configuration-grid strong { color:var(--tilky-ink); }
.configuration-grid span { color:var(--tilky-muted); font-size:.82rem; }
.configuration-options-form { display:grid; gap:1rem; }
.configuration-options-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; margin-top:1rem; }
.configuration-option-column { display:grid; gap:.15rem; align-content:start; }
.configuration-option { display:flex!important; align-items:center; gap:.55rem; padding:.45rem 0; color:var(--tilky-ink); font-weight:400; }
.configuration-option input { flex:0 0 auto; width:1.55rem!important; min-width:1.55rem!important; height:.78rem!important; min-height:0!important; padding:0!important; margin:0; appearance:none; border:1px solid #71869a; border-radius:999px; background:#344554; position:relative; cursor:pointer; line-height:1!important; }
.configuration-option input::before { content:""; position:absolute; width:.54rem; height:.54rem; left:.1rem; top:.06rem; border-radius:50%; background:#dce5ec; transition:transform .15s ease, background .15s ease; }
.configuration-option input:checked { border-color:#6486a1; background:#6486a1; }
.configuration-option input:checked::before { background:#fff; transform:translateX(.68rem); }
.configuration-options-form > .btn-primary { justify-self:start; }
.configuration-mail-address { display:grid; gap:.45rem; margin:1rem 0; padding:1rem; border:1px solid var(--tilky-line); border-radius:10px; background:var(--tilky-table-head); }
.configuration-mail-address span { color:var(--tilky-muted); font-size:.78rem; }
.configuration-mail-address code { color:var(--tilky-ink); font-size:1rem; font-weight:700; }
.configuration-help { color:var(--tilky-ink); font-size:.84rem; }
.configuration-help ol { margin:.5rem 0 1rem; padding-left:1.25rem; }
.reference-create-form { align-items:end; margin:1rem 0 1.1rem; }
.form-row.reference-create-form.folder-create-form { grid-template-columns:minmax(12rem, 28rem) auto; justify-content:start; }
.form-row.reference-create-form.supplier-create-form { grid-template-columns:minmax(14rem, 34rem) auto; justify-content:start; }
.form-row.reference-create-form.payment-method-create-form { grid-template-columns:minmax(12rem, 28rem) auto; justify-content:start; }
.form-row.reference-create-form.vat-rate-create-form { grid-template-columns:max-content max-content; justify-content:start; gap:.65rem; }
.reference-create-form .btn-compact { align-self:end; width:max-content; min-width:0; justify-self:start; padding:.45rem .72rem; white-space:nowrap; }
.reference-table-wrap { border:1px solid var(--tilky-line); border-radius:10px; background:var(--tilky-surface); }
.reference-table { min-width:620px; }
.reference-table th, .reference-table td { padding:.55rem .7rem; }
.reference-edit-form, .reference-archive-form { margin:0; }
.reference-edit-fields { display:grid; grid-template-columns:minmax(12rem,1fr) minmax(10rem,14rem) auto; align-items:center; gap:.45rem; }
.reference-table td:first-child { width:70%; }
.reference-table .form-control, .reference-table .form-select { min-height:2.1rem; padding:.35rem .5rem; font-size:.8rem; }
.vat-rate-create-form label { width:max-content; }
.vat-rate-input-group { display:inline-flex; align-items:stretch; width:max-content; min-height:2.1rem; overflow:hidden; vertical-align:middle; border:1px solid var(--tilky-line); border-radius:6px; background:var(--tilky-surface); }
.vat-rate-input-group:focus-within { border-color:var(--tilky-primary-bg); box-shadow:0 0 0 .15rem color-mix(in srgb, var(--tilky-primary-bg) 18%, transparent); }
.vat-rate-input-group .form-control { box-sizing:border-box; flex:none; width:7ch; min-width:7ch; max-width:7ch; min-height:2.1rem; padding:.35rem .5rem; border:0; border-radius:0; background:transparent; color:var(--tilky-ink); font-size:.8rem; line-height:1.25; box-shadow:none; }
.vat-rate-suffix { display:inline-grid; place-items:center; min-width:1.8rem; padding:0 .35rem; border-left:1px solid var(--tilky-line); background:var(--tilky-table-head); color:var(--tilky-muted); font-size:.8rem; }
.vat-rate-edit-form { display:flex; align-items:center; gap:.45rem; }
.reference-table .vat-rate-edit-form .form-control { flex:none; }
.reference-table .vat-rate-edit-form .btn-small { flex:0 0 auto; width:max-content; min-width:0; white-space:nowrap; }
.reference-table.vat-rate-table { table-layout:fixed; }
.reference-table.vat-rate-table th:nth-child(1), .reference-table.vat-rate-table td:nth-child(1) { width:55%; }
.reference-table.vat-rate-table th:nth-child(2), .reference-table.vat-rate-table td:nth-child(2) { width:20%; }
.reference-table.vat-rate-table th:nth-child(3), .reference-table.vat-rate-table td:nth-child(3) { width:25%; }
.reference-table .btn-small { padding:.35rem .6rem; font-size:.78rem; }
.reference-table .btn-archive { color:var(--tilky-danger-bg); background:transparent; }
.folder-name-with-action { display:flex; align-items:center; gap:.45rem; }
.folder-name-with-action .project-edit-icon { flex:0 0 auto; }
.reference-table .reference-archive-form { display:flex; width:100%; justify-content:center; margin:0; }
.folder-config-table th.folder-centered-column, .folder-config-table td.folder-centered-column { text-align:center; }
.folder-config-table th.actions-column, .folder-config-table td.actions-column { text-align:center !important; }
.folder-archives-empty { padding:1.25rem !important; color:var(--tilky-muted); text-align:center; }
.assignment-save-error { margin:0; padding:.55rem .7rem; border:1px solid var(--tilky-danger-bg); border-radius:7px; background:color-mix(in srgb, var(--tilky-danger-bg) 12%, var(--tilky-surface)); color:var(--tilky-danger-bg); font-size:.76rem; }
.assignment-field-error-message { display:block; margin-top:.2rem; color:var(--tilky-danger-bg); font-size:.68rem; }
.assignment-form-pane [aria-invalid="true"] { border-color:var(--tilky-danger-bg); }
.assignment-form-pane .assignment-worksite-required { border-color:var(--tilky-turquoise); box-shadow:0 0 0 .2rem rgb(20 184 166 / 22%); }
.btn-secondary, .btn-small { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--tilky-line); border-radius:10px; background:var(--tilky-secondary-bg); color:var(--tilky-secondary-fg); padding:.62rem .9rem; font-weight:700; text-decoration:none; cursor:pointer; }
.btn-small { padding:.4rem .65rem; font-size:.82rem; }
.btn-light { background:var(--tilky-table-head); }
.btn-danger { border:0; border-radius:10px; background:var(--tilky-danger-bg); color:var(--tilky-danger-fg); padding:.65rem 1rem; font-weight:700; }
.app-main button.btn-danger, .app-main .btn-danger { border:0; background:var(--tilky-danger-bg); color:var(--tilky-danger-fg); }
.app-main button.btn-danger:hover, .app-main .btn-danger:hover { background:var(--tilky-danger-bg); color:var(--tilky-danger-fg); filter:brightness(.92); }
.table-card { overflow:hidden; padding:0; }
.table-card + .project-guide { margin-top: 1.5rem; }
.project-guide {
  padding: 1.25rem 1.5rem;
  color: var(--tilky-ink);
}
.project-guide h2 {
  margin: 0 0 0.85rem;
  color: var(--tilky-navy);
  font-size: 1.1rem;
}
.project-guide p {
  margin: 0 0 0.8rem;
  line-height: 1.6;
}
.project-guide-example {
  margin: 1rem 0;
  padding: 1rem 1.15rem;
  border-left: 3px solid var(--tilky-turquoise);
  border-radius: 0 10px 10px 0;
  background: var(--tilky-canvas);
}
.project-guide-example > strong {
  display: block;
  margin-bottom: 0.35rem;
}
.project-guide-example ul {
  display: grid;
  gap: 0.25rem;
  margin: 0.6rem 0 0;
  padding-left: 1.25rem;
}
.project-guide-closing {
  margin-bottom: 0 !important;
  font-weight: 650;
}
.trash-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 1rem 0 0.75rem;
}
.trash-toolbar h2 {
  margin: 0;
  font-size: 1rem;
}
.documents-trash-table .actions-column {
  white-space: nowrap;
}
.documents-table-card { border-radius:0; }
.document-origin-icon { display:inline-block; margin-inline-end:.4rem; font-size:.84em; line-height:1; vertical-align:baseline; white-space:nowrap; cursor:help; }
.document-status-tabs + .documents-table-card { border-radius:0; }
.documents-table-card .table-scroll { border-radius:0; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.9rem 1.1rem; border-bottom:1px solid var(--tilky-line); }
.section-heading h2 { margin:0; font-size:.95rem; }
.section-heading p { margin:.25rem 0 0; color:var(--tilky-muted); font-size:.78rem; }
.table-scroll { overflow-x:auto; }
.data-table { width:100%; min-width:720px; border-collapse:collapse; }
.data-table th, .data-table td { padding:.72rem .9rem; border-bottom:1px solid var(--tilky-line); text-align:left; vertical-align:middle; font-size:.82rem; }
.data-table th { color:var(--tilky-muted); font-size:.75rem; letter-spacing:.05em; text-transform:uppercase; background:var(--tilky-table-head); }
.data-table tr:last-child td { border-bottom:0; }
.documents-treated-table .amount-column { text-align:right; white-space:nowrap; }
.documents-treated-table .status-badge { white-space:nowrap; }
.actions-column { text-align:right !important; white-space:nowrap; }
.inline-action { display:inline; margin-left:.35rem; }
.btn-link-danger { border:0; background:none; color:var(--tilky-danger-bg); font-weight:700; cursor:pointer; }
.status-badge { display:inline-flex; border-radius:999px; padding:.28rem .65rem; background:var(--tilky-disabled-bg); color:var(--tilky-disabled-fg); font-size:.75rem; font-weight:750; }
.status-active { background:#ccfbf1; color:#0f766e; }
.status-archived, .status-disabled { background:var(--tilky-disabled-bg); color:var(--tilky-disabled-fg); }
.empty-state { padding:3rem 1.5rem; text-align:center; }
.empty-icon { display:grid; place-items:center; width:2.5rem; height:2.5rem; margin:0 auto 1rem; border-radius:12px; background:#ccfbf1; color:#0f766e; font-size:1.5rem; }
.empty-state h3 { margin:.25rem 0; }
.empty-state p { max-width:420px; margin:.35rem auto 1.25rem; color:var(--tilky-muted); }
.modal-content { border:0; border-radius:18px; box-shadow:0 20px 60px rgb(15 23 42 / 18%); }
.app-main .modal-dialog { max-width:560px; margin:1.75rem auto; }
.app-main .modal-content { max-height:calc(100vh - 2rem); }
.modal-header, .modal-footer { border-color:var(--tilky-line); padding:1.1rem 1.35rem; }
.modal-header { align-items:center; }
.modal-title { font-size:1.2rem; }
.app-main .modal .btn-close { display:grid; place-items:center; width:2rem; height:2rem; padding:.25rem; border:0; border-radius:9px; opacity:1; background:transparent; color:var(--tilky-ink); font-size:1.5rem; line-height:1; }
.app-main .modal .btn-close::after { content:'×'; }
.app-main .modal .btn-close:hover, .app-main .modal .btn-close:focus-visible { background:transparent; color:var(--tilky-ink); opacity:1; }
.modal-body { padding:1.35rem; }
.modal-footer { gap:.65rem; justify-content:flex-end; }
.modal-footer .btn-secondary { min-width:6rem; }
.form-label { margin:0; }
.modal-body .form-stack { gap:1rem; }
.modal-body .form-control, .modal-body .form-select { min-height:2.75rem; }
.modal-body input[type="file"].form-control { padding:.55rem .65rem; }
.form-stack { display:grid; gap:1rem; }
.totp-security-container { padding-top:0; }
.totp-security-card > h2 { margin-top:0; font-size:1rem; }
.totp-security-card > .page-lead { font-size:.84rem; }
.totp-security-card .totp-operation { width:min(100%, 520px); }
.totp-security-card .totp-operation label { display:grid; gap:.4rem; color:var(--tilky-ink); font-size:.82rem; font-weight:650; }
.totp-security-card .totp-operation input { box-sizing:border-box; width:100%; min-height:2.4rem; }
.totp-security-card .totp-operation button { width:max-content; max-width:100%; justify-self:start; }
.totp-actions-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 520px)); align-items:start; gap:1rem; margin-top:1.2rem; }
.totp-actions-grid .totp-operation { width:100%; margin:0; }
.totp-actions-grid .totp-sensitive-zone { margin-top:0; }
.totp-recovery-form { margin-top:1.2rem; padding:1.1rem 1.2rem; border:1px solid var(--tilky-line); border-radius:var(--tilky-radius); background:var(--tilky-surface); }
.totp-sensitive-zone { width:min(100%, 520px); margin-top:1.25rem; padding:1.1rem 1.2rem; border:1px solid #fecaca; border-radius:var(--tilky-radius); background:#fff7f7; }
.totp-sensitive-zone h3 { margin:0 0 .35rem; color:#991b1b; font-size:.95rem; }
.totp-sensitive-zone > p { margin:0 0 1rem; color:#7f1d1d; font-size:.82rem; line-height:1.5; }
.totp-disable-form { margin:0; }
.totp-disable-form .btn-danger { background:#dc2626; border-color:#dc2626; }
.totp-disable-form .btn-danger:hover, .totp-disable-form .btn-danger:focus-visible { background:#b91c1c; border-color:#b91c1c; }
.totp-enable-form { display:grid; grid-template-columns:minmax(220px, 360px) auto; align-items:end; justify-content:start; gap:.75rem; }
.totp-enable-form label { display:grid; gap:.4rem; color:var(--tilky-ink); font-weight:650; }
.totp-enable-form input { box-sizing:border-box; width:100%; height:2.25rem; min-height:2.25rem; border:1px solid var(--tilky-line); border-radius:8px; padding:.45rem .72rem; background:var(--tilky-surface); color:var(--tilky-ink); font:inherit; font-size:.82rem; font-weight:400; line-height:1.2; }
.app-main .totp-enable-form button { box-sizing:border-box; width:max-content; height:2.25rem; min-height:2.25rem; justify-self:start; padding:.45rem .72rem; font-size:.82rem; line-height:1.2; white-space:nowrap; }
.totp-confirm-form { display:grid; grid-template-columns:max-content max-content; align-items:end; justify-content:start; gap:.75rem; margin:1rem 0; }
.totp-confirm-form label { display:grid; gap:.4rem; color:var(--tilky-ink); font-size:.82rem; font-weight:650; }
.totp-confirm-form label { white-space:nowrap; }
.totp-confirm-form input { box-sizing:border-box; width:100%; height:2.25rem; min-height:2.25rem; padding:.45rem .72rem; border:1px solid var(--tilky-line); border-radius:8px; background:var(--tilky-surface); color:var(--tilky-ink); font-size:.82rem; font-weight:400; line-height:1.2; }
.app-main .totp-confirm-form button { box-sizing:border-box; width:max-content; height:2.25rem; min-height:2.25rem; justify-self:start; padding:.45rem .72rem; font-size:.82rem; line-height:1.2; white-space:nowrap; }
.totp-setup-block { margin-top:1rem; padding:1rem; border:1px solid var(--tilky-line); border-radius:var(--tilky-radius); background:var(--tilky-surface); }
.totp-setup-block > p { margin:0 0 .75rem; }
.totp-setup-block .totp-confirm-form { margin:1rem 0 0; }
.totp-alternative-method { margin:1.1rem 0 0; padding:1rem; border:1px solid var(--tilky-line); border-radius:8px; background:var(--tilky-surface); }
.totp-alternative-method h3 { margin:0 0 .65rem; color:var(--tilky-ink); font-size:.92rem; }
.totp-alternative-method > p { margin:.5rem 0; }
.form-row { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; }
.form-row.currency-default-form { grid-template-columns:minmax(120px, 210px) auto; justify-content:start; align-items:end; }
.form-row.currency-default-form label { min-width:0; }
.form-row.currency-default-form button { width:auto; min-width:0; justify-self:start; }
  .users-reset-list-help { margin:.85rem 0 0; }
.modal-actions { display:flex; flex-wrap:wrap; gap:.65rem; }
.hint { color:var(--tilky-muted); font-size:.78rem; font-weight:400; }
.upload-card { padding:1rem; margin-bottom:1.25rem; }
.dropzone { display:grid; place-items:center; gap:.45rem; min-height:150px; padding:1.5rem; border:1px dashed var(--tilky-muted); border-radius:14px; background:var(--tilky-table-head); color:var(--tilky-muted); text-align:center; }
.dropzone strong { color:var(--tilky-ink); }
.dropzone-icon { display:grid; place-items:center; width:2.4rem; height:2.4rem; border-radius:50%; background:#dbeafe; color:var(--tilky-blue); font-size:1.5rem; }
.dropzone { cursor:pointer; transition:border-color .15s ease, background-color .15s ease, transform .15s ease; }
.dropzone.drag-over { border-color:var(--tilky-turquoise); background:#ecfeff; transform:translateY(-1px); }
.document-workspace { display:grid; grid-template-columns:minmax(0,1.72fr) minmax(430px,.88fr); gap:1rem; height:calc(100vh - 142px); min-height:650px; align-items:stretch; }
.document-preview, .assignment-panel { min-width:0; }
.document-preview { display:flex; min-height:0; flex-direction:column; padding:.85rem; }
.document-preview h2, .assignment-panel h2 { margin:0 0 .75rem; font-size:1.05rem; }
.document-preview iframe { display:block; width:100%; flex:1 1 auto; min-height:0; border:1px solid var(--tilky-line); border-radius:12px; background:#0f172a; }
.document-preview .preview-fallback { margin:.65rem 0 0; font-size:.82rem; }
.assignment-panel { min-height:0; overflow-y:auto; padding:1rem; }
.assignment-panel .assignment-form { display:grid; gap:.72rem; padding-right:.2rem; }
.assignment-panel .form-control, .assignment-panel .form-select { min-height:2.3rem; padding:.42rem .55rem; font-size:.82rem; }
.assignment-panel .form-label { font-size:.76rem; font-weight:700; }
.assignment-panel .assignment-field { display:grid; gap:.22rem; min-width:0; }
.assignment-panel .assignment-grid { display:grid; gap:.62rem; align-items:start; }
.assignment-panel .assignment-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.assignment-panel .assignment-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.assignment-panel .assignment-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.assignment-panel .assignment-fieldset { min-width:0; margin:0; padding:0; border:0; }
.assignment-panel .assignment-fieldset legend { float:none; width:auto; margin:0 0 .22rem; }
.assignment-radio-grid { display:flex; flex-wrap:wrap; gap:.3rem .65rem; }
.assignment-radio { display:inline-flex !important; grid-template-columns:none !important; align-items:center; gap:.28rem; color:var(--tilky-ink) !important; font-size:.78rem !important; font-weight:600 !important; }
.assignment-radio input, .assignment-check input { width:auto !important; min-height:auto !important; accent-color:var(--tilky-turquoise); }
.assignment-input-group { display:grid; grid-template-columns:minmax(0,1fr) 2.1rem; gap:.3rem; }
.assignment-input-group .btn-small { padding:.2rem; }
.assignment-money-input { display:grid; grid-template-columns:minmax(0,1fr) 2rem; }
.assignment-money-input .form-control { min-width:0; border-radius:6px 0 0 6px; }
.assignment-money-suffix { display:grid; place-items:center; border:1px solid var(--tilky-line); border-left:0; border-radius:0 6px 6px 0; background:var(--tilky-table-head); color:var(--tilky-muted); font-size:.75rem; }
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { margin:0; appearance:none; }
input[type="number"] { appearance:textfield; -moz-appearance:textfield; }
.supplier-create-dialog { width:min(28rem,calc(100vw - 2rem)); padding:0; border:1px solid var(--tilky-line); border-radius:10px; background:var(--tilky-surface); color:var(--tilky-ink); box-shadow:0 20px 60px rgb(15 23 42 / 35%); }
.supplier-create-dialog::backdrop { background:rgb(15 23 42 / 55%); }
.supplier-create-form { display:grid; gap:1rem; padding:0; }
.supplier-create-form header, .supplier-create-form footer { display:flex; align-items:center; justify-content:space-between; gap:.6rem; padding:.8rem 1rem; border-color:var(--tilky-line); }
.supplier-create-form header { border-bottom:1px solid var(--tilky-line); }
.supplier-create-form footer { justify-content:flex-end; border-top:1px solid var(--tilky-line); }
.supplier-create-form h2 { margin:0; font-size:1rem; }
.supplier-create-form .assignment-field { padding:0 1rem; }
.supplier-create-form .assignment-close { position:static; }
.supplier-create-form [data-supplier-create-name] { text-transform:uppercase; }
.supplier-create-dialog .btn-primary, .supplier-create-dialog .btn-secondary { appearance:none; display:inline-flex; align-items:center; justify-content:center; min-height:2.25rem; padding:.45rem .8rem; border:1px solid var(--tilky-line); border-radius:8px; font-size:.82rem; font-weight:700; line-height:1.2; cursor:pointer; }
.supplier-create-dialog .btn-primary { border-color:var(--tilky-primary-bg); background:var(--tilky-primary-bg); color:var(--tilky-primary-fg); }
.supplier-create-dialog .btn-primary:hover, .supplier-create-dialog .btn-primary:focus-visible { filter:brightness(.92); }
.supplier-create-dialog .btn-secondary { background:var(--tilky-secondary-bg); color:var(--tilky-secondary-fg); }
.supplier-history, .assignment-section { border:1px solid var(--tilky-line); border-radius:9px; padding:.62rem .7rem; }
.supplier-history h3, .assignment-section h3 { margin:0 0 .45rem; font-size:.78rem; }
.supplier-history .hint, .assignment-section .hint { margin:.1rem 0 0; font-size:.7rem; }
.assignment-check { display:flex !important; align-items:center; gap:.4rem; font-size:.78rem !important; }
.assignment-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem; padding-top:.15rem; }
.assignment-actions .btn-primary, .assignment-actions .btn-secondary { min-height:2.25rem; padding:.45rem .72rem; font-size:.8rem; }
.assignment-panel small.hint { font-size:.66rem; }
.assignment-standalone-page { overflow:hidden; background:var(--tilky-canvas); }
.assignment-standalone-workspace { display:grid; grid-template-columns:minmax(0,2fr) minmax(410px,1fr); gap:.75rem; width:100vw; height:100vh; padding:.65rem; }
.assignment-pdf-pane { display:flex; min-width:0; min-height:0; flex-direction:column; }
.assignment-pdf-pane iframe { display:block; width:100%; height:100%; min-height:0; flex:1 1 auto; border:1px solid var(--tilky-line); border-radius:8px; background:#0f172a; }
.assignment-pdf-pane .preview-fallback { margin:.35rem 0 0; font-size:.75rem; }
.assignment-form-pane { display:flex; min-width:0; min-height:0; flex-direction:column; overflow:hidden; padding:.8rem .85rem .65rem; border:1px solid var(--tilky-line); border-radius:8px; background:var(--tilky-surface); color:var(--tilky-ink); }
.assignment-form-header { display:flex; flex:0 0 auto; align-items:flex-start; justify-content:space-between; gap:.75rem; padding:0 0 .65rem; border-bottom:1px solid var(--tilky-line); }
.assignment-form-header h1 { margin:0; color:var(--tilky-ink); font-size:1.1rem; line-height:1.2; }
.assignment-form-header p { margin:.25rem 0 0; overflow:hidden; color:var(--tilky-muted); font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.assignment-close { display:grid; flex:0 0 auto; width:2rem; height:2rem; place-items:center; padding:0 !important; border:1px solid var(--tilky-line) !important; border-radius:6px !important; background:transparent !important; color:var(--tilky-ink) !important; font-size:1.45rem; line-height:1; }
.assignment-close:hover, .assignment-close:focus-visible { background:var(--tilky-line) !important; }
.assignment-form-pane .assignment-form { display:grid; min-height:0; overflow-y:auto; gap:.62rem; padding:.7rem .2rem .2rem 0; }
.assignment-form-pane .form-control, .assignment-form-pane .form-select { min-height:2.15rem; padding:.38rem .52rem; font-size:.78rem; }
.assignment-form-pane input, .assignment-form-pane select, .assignment-form-pane textarea { background:var(--tilky-surface); color:var(--tilky-ink); border-color:var(--tilky-line); }
.assignment-form-pane select option { background:var(--tilky-surface); color:var(--tilky-ink); }
.assignment-form-pane select option:checked, .assignment-form-pane select option:hover { background:var(--tilky-table-head); color:var(--tilky-ink); }
.assignment-form-pane select:focus-visible { border-color:var(--tilky-blue); outline:2px solid color-mix(in srgb, var(--tilky-blue) 35%, transparent); outline-offset:1px; }
.assignment-form-pane input:disabled, .assignment-form-pane select:disabled { background:#e2e8f0; color:#64748b; opacity:1; }
.assignment-form-pane .assignment-field { display:grid; min-width:0; gap:.2rem; }
.assignment-form-pane .assignment-field .form-label, .assignment-form-pane .assignment-fieldset .form-label { margin:0; color:var(--tilky-ink); font-size:.72rem; font-weight:700; }
.assignment-form-pane .assignment-grid { display:grid; gap:.55rem; align-items:start; }
.assignment-form-pane .assignment-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.assignment-form-pane .assignment-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.assignment-form-pane .assignment-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.assignment-form-pane .assignment-fieldset { min-width:0; margin:0; padding:0; border:0; }
.assignment-form-pane .assignment-fieldset legend { float:none; width:auto; margin:0 0 .2rem; }
.assignment-form-pane .assignment-radio-grid { display:flex; flex-wrap:wrap; gap:.25rem .55rem; }
.assignment-form-pane .assignment-radio { display:inline-flex !important; align-items:center; gap:.25rem; color:var(--tilky-ink) !important; font-size:.72rem !important; font-weight:600 !important; }
.assignment-form-pane .assignment-radio input, .assignment-form-pane .assignment-check input { width:auto !important; min-height:auto !important; accent-color:var(--tilky-turquoise); }
.assignment-form-pane .assignment-input-group { display:grid; grid-template-columns:minmax(0,1fr) 2rem; gap:.25rem; }
.assignment-form-pane .assignment-input-group .btn-small { padding:.1rem; }
.assignment-form-pane .supplier-history, .assignment-form-pane .assignment-section { border-color:var(--tilky-line); border-radius:7px; padding:.5rem .6rem; }
.assignment-form-pane .supplier-history h3, .assignment-form-pane .assignment-section h3 { margin:0 0 .35rem; color:var(--tilky-ink); font-size:.72rem; }
.assignment-form-pane .hint { color:var(--tilky-muted); font-size:.64rem; }
.assignment-form-pane .supplier-history { overflow:hidden; }
.supplier-history-table-wrap { overflow:hidden; border:1px solid var(--tilky-line); border-radius:5px; }
.supplier-history-table { width:100%; table-layout:fixed; border-collapse:collapse; color:var(--tilky-ink); font-size:.64rem; }
.supplier-history-table th, .supplier-history-table td { padding:.28rem .32rem; border-bottom:1px solid var(--tilky-line); text-align:left; vertical-align:middle; }
.supplier-history-table th { background:var(--tilky-table-head); color:var(--tilky-muted); font-size:.59rem; font-weight:700; text-transform:none; }
.supplier-history-table tr:last-child td { border-bottom:0; }
.supplier-history-table th:nth-child(1), .supplier-history-table td:nth-child(1) { width:4.7rem; }
.supplier-history-table th:nth-child(2), .supplier-history-table td:nth-child(2) { width:4rem; }
.supplier-history-table th:nth-child(3), .supplier-history-table td:nth-child(3) { width:4rem; }
.supplier-history-table th:nth-child(5), .supplier-history-table td:nth-child(5) { width:2.5rem; }
.supplier-history-row { cursor:pointer; }
.supplier-history-row:hover, .supplier-history-row:focus-within { background:var(--tilky-table-head); }
.supplier-history-amount { text-align:right !important; white-space:nowrap; }
.supplier-history-comment { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.supplier-history-open { text-align:center !important; }
.supplier-history-open a { display:inline-grid; width:1.1rem; height:1.1rem; place-items:center; color:var(--tilky-muted); font-size:.78rem; text-decoration:none; }
.supplier-history-open a:hover, .supplier-history-open a:focus-visible { color:var(--tilky-blue); }
.assignment-form-pane .assignment-comment-field { width:100%; }
.assignment-form-pane .assignment-comment-field input { width:100%; }
.assignment-form-pane .assignment-money-input input, .assignment-form-pane [data-assignment-amount="rate"] input { text-align:right; }
.assignment-form-pane .assignment-currency-select { width:7.5rem; max-width:100%; }
.assignment-form-pane .assignment-check { display:flex !important; align-items:center; gap:.35rem; color:var(--tilky-ink) !important; font-size:.72rem !important; }
.assignment-form-pane .assignment-actions { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:.4rem; padding-top:.1rem; }
.assignment-form-pane .assignment-actions .assignment-save-error { flex:0 0 100%; width:100%; }
.assignment-form-pane .assignment-actions .btn-primary, .assignment-form-pane .assignment-actions .btn-secondary { min-height:2.1rem; padding:.38rem .65rem; font-size:.76rem; }
.assignment-form-pane .assignment-actions .btn-primary { border:1px solid #2f855a; border-radius:6px; background:#2f855a; color:#fff; }
.assignment-form-pane .assignment-actions .btn-primary:hover, .assignment-form-pane .assignment-actions .btn-primary:focus-visible { filter:brightness(1.08); }
.assignment-form-pane .assignment-actions .btn-secondary { border:1px solid var(--tilky-line); background:var(--tilky-secondary-bg); color:var(--tilky-secondary-fg); }
.assignment-form-pane .assignment-actions .btn-secondary:hover, .assignment-form-pane .assignment-actions .btn-secondary:focus-visible { border-color:var(--tilky-primary-bg); }
.assignment-form-pane .assignment-suggested { border-color:#0dcaf0 !important; background:var(--tilky-surface) !important; box-shadow:0 0 0 .2rem rgb(13 202 240 / 22%); }
.assignment-form-pane .assignment-money-input:has(.assignment-suggested) .assignment-money-suffix { border-color:#0dcaf0; box-shadow:0 .2rem 0 -.1rem rgb(13 202 240 / 22%); }
.assignment-form-pane .assignment-suggested-box { border-radius:7px; outline:1px solid var(--tilky-blue); outline-offset:3px; }
.assignment-form-pane .assignment-suggestion-hint { display:none; }
.assignment-toast { position:fixed; top:50%; left:50%; z-index:20; width:min(22rem,calc(100vw - 2rem)); padding:.75rem 1rem; border:1px solid #14b8a6; border-radius:7px; background:#075766; color:#fff; box-shadow:0 8px 24px rgb(0 0 0 / 28%); font-size:.78rem; line-height:1.35; opacity:0; transform:translate(-50%,calc(-50% + .5rem)); transition:opacity .2s ease, transform .2s ease; }
.assignment-toast.is-visible { opacity:1; transform:translate(-50%,-50%); }
.assignment-form-pane .assignment-duplicate-alert { margin:.1rem 0; padding:.55rem .65rem; border:1px solid #d8a900; border-radius:7px; background:#fff4bf; color:#5c4300; font-size:.7rem; }
.assignment-form-pane .assignment-duplicate-alert strong { display:block; margin-bottom:.2rem; }
.assignment-form-pane .assignment-duplicate-alert ul { margin:.25rem 0; padding-left:1.1rem; }
.assignment-form-pane .assignment-duplicate-alert a { color:#5c4300; font-weight:700; }
.assignment-form-pane .assignment-delete-form { display:flex; justify-content:flex-end; margin-top:1.35rem; padding-top:.85rem; border-top:1px solid var(--tilky-line); }
.assignment-form-pane .assignment-delete { min-height:2.1rem; padding:.38rem .65rem; border:1px solid var(--tilky-danger-bg); border-radius:6px; background:var(--tilky-danger-bg); color:var(--tilky-danger-fg); font-size:.76rem; font-weight:700; }
.assignment-form-pane .assignment-delete:hover, .assignment-form-pane .assignment-delete:focus-visible { filter:brightness(1.08); }
.assignment-column { display:grid; gap:1rem; align-content:start; }
.assignment-form .form-row { align-items:start; }
.upload-status { display:grid; gap:.35rem; margin:.9rem 0 0; padding:0; list-style:none; }
.upload-status:empty { display:none; }
.upload-status-item { padding:.55rem .7rem; border-radius:9px; background:#f8fafc; color:var(--tilky-muted); font-size:.85rem; }
.upload-status-item.success { background:#ecfdf5; color:#047857; }
.upload-status-item.error { background:#fef2f2; color:#b91c1c; }
.document-status-tabs { display:flex; flex-wrap:wrap; gap:.15rem; margin:.7rem 0 0; padding:0 .25rem; border-bottom:0; }
.document-status-tab { display:inline-flex; align-items:center; gap:.25rem; padding:.46rem .68rem; border:1px solid transparent; border-bottom:0; border-radius:6px 6px 0 0; color:var(--tilky-muted); font-size:.74rem; font-weight:650; text-decoration:none; }
.document-status-tab:hover, .document-status-tab:focus-visible { color:var(--tilky-ink); background:var(--tilky-table-head); }
.document-status-tab.is-active { border-color:var(--tilky-line); background:var(--tilky-surface); color:var(--tilky-ink); }
.document-status-tab span { font-weight:600; opacity:.8; }
.stat-strip { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; margin-bottom:1.25rem; }
.stat-strip .card { padding:1rem 1.25rem; }
.stat-strip span { display:block; color:var(--tilky-muted); font-size:.82rem; }
.stat-strip strong { display:block; margin-top:.3rem; color:var(--tilky-navy); font-size:1.35rem; }

@media (max-width: 900px) {
    .app-layout { grid-template-columns: 82px minmax(0, 1fr); }
    .app-sidebar { padding-inline: .65rem; }
    .app-brand { justify-content: center; padding-inline: 0; }
    .app-sidebar .app-brand span, .sidebar-label, .sidebar-nav a span:not(.nav-icon) { display: none; }
    .sidebar-nav a { justify-content: center; }
    .sidebar-footer button { padding: .4rem .2rem; font-size: .72rem; line-height: 1.2; white-space: normal; }
    .app-topbar, .app-main .main { padding-inline: 1.5rem; }
    .security-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .security-flow-arrow { display: none; }
    .security-details { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .app-layout { display: block; }
    .app-sidebar { height: auto; min-height: 0; padding: .7rem 1rem; flex-direction: row; align-items: center; gap: .5rem; overflow: visible; }
    .sidebar-primary { min-width: 0; overflow: hidden; }
    .app-brand { flex: 0 0 auto; }
    .sidebar-nav { display: flex; min-width: 0; gap: .25rem; overflow-x: auto; }
    .sidebar-nav a { padding: .55rem .7rem; }
    .sidebar-nav a span:not(.nav-icon) { display: inline; white-space: nowrap; }
    .sidebar-footer { margin-left: auto; padding: 0 0 0 .45rem; border-top: 0; border-left: 1px solid rgb(203 213 225 / 18%); }
    .sidebar-footer button { width: auto; padding: .35rem .45rem; font-size: .68rem; white-space: nowrap; }
    .app-topbar { height: 64px; }
    .app-main .main { padding: 1.5rem 1rem; }
    .login-brand-panel, .login-totp-panel { display: none; }
    .login-main { padding-top: 1.5rem; }
    .security-explainer { padding: 1.25rem; }
    .security-explainer-header { grid-template-columns: 1fr; }
    .security-explainer-lead { white-space: normal; }
    .security-flow { grid-template-columns: 1fr; margin-top: 1.5rem; }
    .page-toolbar { align-items:stretch; flex-direction:column; }
    .project-detail-toolbar { align-items:stretch; }
    .project-back-button { align-self:flex-start; }
    .filter-bar { align-items:stretch; flex-direction:column; }
    .configuration-options-grid { grid-template-columns:1fr; gap:.15rem; }
    .projects-search { align-items:stretch; flex-wrap:wrap; }
    .projects-search input { flex:1 1 220px; }
    .project-budget-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .form-row.project-worksite-create { grid-template-columns:1fr; align-items:stretch; }
    .configuration-grid { grid-template-columns:1fr; }
    .form-row, .stat-strip { grid-template-columns:1fr; }
    .data-table { min-width:640px; }
    .app-main .modal-dialog { margin:.5rem; }
    .app-main .modal-content { max-height:calc(100vh - 1rem); }
    .modal-body { padding:1rem; }
    .document-workspace { grid-template-columns:1fr; height:auto; min-height:0; }
    .document-preview { min-height:65vh; }
    .document-preview iframe { min-height:55vh; }
    .app-main .worksite-documents-modal .modal-dialog { width:calc(100vw - 1rem); max-width:calc(100vw - 1rem); height:calc(100vh - 1rem); margin:.5rem; }
    .worksite-documents-modal .modal-content { max-height:calc(100vh - 1rem); }
    .worksite-documents-modal .modal-body { display:block; overflow:auto; }
    .worksite-documents-layout { grid-template-columns:1fr; min-height:0; }
    .worksite-document-list { flex:initial; max-height:24vh; }
    .worksite-pdf-frame-viewport { min-height:50vh; }
    .worksite-pdf-pane iframe { min-height:calc(50vh + 58px); }
    .assignment-panel { overflow:visible; }
    .assignment-grid { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
    .project-budget-grid { grid-template-columns:1fr; }
}
@media (max-width: 900px) {
    .assignment-standalone-page { overflow:auto; }
    .assignment-standalone-workspace { grid-template-columns:1fr; width:100%; height:auto; min-height:100vh; padding:.4rem; }
    .assignment-pdf-pane { min-height:65vh; }
    .assignment-form-pane { min-height:0; overflow:visible; }
    .assignment-form-pane .assignment-grid-2,
    .assignment-form-pane .assignment-grid-3,
    .assignment-form-pane .assignment-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 520px) {
    .form-row.reference-create-form { grid-template-columns:minmax(0, 1fr); }
    .form-row.currency-default-form { grid-template-columns:minmax(0, 1fr); }
    .totp-enable-form { grid-template-columns:1fr; }
    .totp-enable-form button { justify-self:start; }
    .totp-confirm-form { grid-template-columns:minmax(0, 1fr); }
    .totp-confirm-form button { justify-self:start; }
    .configuration-export-intro { display:grid; grid-template-columns:auto minmax(0,1fr); }
    .configuration-export-illustration { padding:.5rem; }
    .configuration-export-grid { grid-template-columns:1fr; }
    .totp-actions-grid { grid-template-columns:1fr; }
    .assignment-form-pane .assignment-grid-2,
    .assignment-form-pane .assignment-grid-3,
    .assignment-form-pane .assignment-grid-4 { grid-template-columns:1fr; }
    .reference-edit-fields { grid-template-columns:1fr; }
}
:where(.app-main, .main) .totp-qr { display: inline-block; max-width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; }
.totp-qr canvas { display: block; width: min(100%, 240px); height: auto; image-rendering: pixelated; }
#upload-document .modal-header .btn-close { display:grid; place-items:center; background-image:none; color:var(--tilky-ink); font-size:1.5rem; line-height:1; }
#upload-document .modal-header .btn-close::after { content:'×'; }
#upload-document .modal-header .modal-close-visible, #upload-document .modal-header .btn-close { display:none !important; }
.sidebar-nav a > span:not(.nav-icon) { display: flex; align-items: center; min-height: 1.9rem; line-height: 1.2; }

.app-main .dashboard-security-alert { grid-column:span 2; display:flex; align-items:center; gap:1rem; min-width:0; padding:1.15rem 1.3rem; border:1px solid #fdba74; border-radius:var(--tilky-radius); background:linear-gradient(120deg,#fff7ed,#ffedd5); box-shadow:var(--tilky-shadow); color:#7c2d12; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease; }
.app-main .dashboard-security-alert:hover, .app-main .dashboard-security-alert:focus-visible { color:#7c2d12; transform:translateY(-2px); box-shadow:0 16px 34px rgb(124 45 18 / 14%); }
.dashboard-security-alert:focus-visible { outline:3px solid rgb(249 115 22 / 45%); outline-offset:2px; }
.dashboard-security-alert-icon { display:grid; flex:0 0 2.6rem; width:2.6rem; height:2.6rem; place-items:center; border-radius:50%; background:#fed7aa; color:#9a3412; font-size:1.45rem; }
.dashboard-security-alert-copy { display:grid; gap:.2rem; }
.dashboard-security-alert-copy strong { color:#7c2d12; font-size:1rem; }
.dashboard-security-alert-copy > span { color:#9a3412; font-size:.9rem; }
.dashboard-security-alert-action { display:inline-flex; flex:0 0 auto; align-items:center; gap:.45rem; margin-left:auto; padding:.55rem .8rem; border-radius:9px; background:#c2410c; color:#fff; font-size:.82rem; font-weight:700; }
.app-main .dashboard-security-alert:hover .dashboard-security-alert-action, .app-main .dashboard-security-alert:focus-visible .dashboard-security-alert-action { background:#9a3412; color:#fff; }
@media (max-width:640px) { .app-main .dashboard-security-alert { grid-column:1 / -1; align-items:flex-start; flex-wrap:wrap; } .dashboard-security-alert-action { margin-left:3.6rem; } }

.app-main .dashboard-security-alert { grid-column:span 2; display:grid; grid-template-columns:2.6rem minmax(0,1fr); grid-template-rows:auto auto auto; column-gap:1rem; row-gap:.55rem; min-width:0; padding:1.15rem 1.3rem; border:1px solid #fdba74; border-radius:var(--tilky-radius); background:linear-gradient(120deg,#fff7ed,#ffedd5); box-shadow:var(--tilky-shadow); color:#7c2d12; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease; }
.app-main .dashboard-security-alert:hover, .app-main .dashboard-security-alert:focus-visible { color:#7c2d12; transform:translateY(-2px); box-shadow:0 16px 34px rgb(124 45 18 / 14%); }
.dashboard-security-alert:focus-visible { outline:3px solid rgb(249 115 22 / 45%); outline-offset:2px; }
.dashboard-security-alert-icon { grid-column:1; grid-row:1; display:grid; width:2.6rem; height:2.6rem; place-items:center; border-radius:50%; background:#fed7aa; color:#9a3412; font-size:1.45rem; }
.dashboard-security-alert-copy { display:grid; grid-column:2; grid-row:1 / span 2; align-self:start; gap:.2rem; }
.dashboard-security-alert-copy strong { color:#7c2d12; font-size:1rem; }
.dashboard-security-alert-copy > span { color:#9a3412; font-size:.9rem; }
.dashboard-security-alert-action { grid-column:1 / -1; grid-row:3; display:inline-flex; align-items:center; justify-self:end; gap:.45rem; margin:0; padding:.55rem .8rem; border-radius:9px; background:#c2410c; color:#fff; font-size:.82rem; font-weight:700; }
.app-main .dashboard-security-alert:hover .dashboard-security-alert-action, .app-main .dashboard-security-alert:focus-visible .dashboard-security-alert-action { background:#9a3412; color:#fff; }
@media (max-width:640px) { .app-main .dashboard-security-alert { grid-column:1 / -1; } }
.documents-page-toolbar { align-items: flex-start; }
.mail-fetch-form { flex: 0 0 auto; margin: 0; }
.mail-fetch-form .btn-primary { white-space: nowrap; }
.mail-fetch-toast {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 2000;
  width: max-content;
  max-width: min(28rem, calc(100vw - 2rem));
  padding: 0.8rem 1rem;
  border: 1px solid #14b8a6;
  border-radius: 10px;
  background: #075766;
  color: #fff;
  box-shadow: 0 8px 24px rgb(15 23 42 / 22%);
  font-size: 0.9rem;
  line-height: 1.4;
  opacity: 0;
  transform: translateY(-0.5rem);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.mail-fetch-toast.is-visible { opacity: 1; transform: translateY(0); }
.mail-fetch-toast[data-variant="pending"] { border-color: #93c5fd; background: #1e3a5f; }
.mail-fetch-toast[data-variant="warning"] { border-color: #fbbf24; background: #78350f; }
.mail-fetch-toast[data-variant="error"] { border-color: #fca5a5; background: #7f1d1d; }
.totp-app-links { margin: 1rem 0; }
.totp-app-links > p { margin-bottom: .5rem; }
.totp-app-link-list, .totp-app-platform-list { display: flex; flex-wrap: wrap; gap: .5rem; }
.totp-app-link { padding: 0; border: 0; background: none; color: var(--tilky-primary, #1e3a5f); text-decoration: underline; text-underline-offset: .15em; }
.totp-app-link:hover { color: var(--tilky-accent, #00a99d); }
.totp-app-panels[hidden], .totp-app-panel[hidden] { display: none !important; }
.totp-app-panel { text-align: center; }
.totp-app-panel img { display: block; width: min(192px, 65vw); height: auto; margin: 1rem auto; border: 1px solid var(--tilky-line); border-radius: .5rem; image-rendering: pixelated; }
.totp-app-panel > p { margin: .75rem 0; }
@media (max-width: 520px) {
  .mail-fetch-toast { top: 0.75rem; right: 0.75rem; max-width: calc(100vw - 1.5rem); }
}
.totp-app-platform-list { justify-content: center; }
.my-documents-filters { margin-bottom: 1rem; padding: 1rem; }
.my-folders-filters .my-documents-filter-grid { grid-template-columns: minmax(14rem, 1fr); }
.my-documents-filters h2 { margin: 0 0 .75rem; font-size: 1rem; }
.my-documents-filter-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; align-items: end; }
.my-documents-filter-grid > label { display: grid; gap: .3rem; min-width: 0; color: var(--tilky-ink); font-size: .8rem; font-weight: 700; }
.my-documents-filter-grid input, .my-documents-filter-grid select { width: 100%; min-width: 0; min-height: 2.5rem; padding: .5rem .65rem; border: 1px solid var(--tilky-line); border-radius: 8px; background: var(--tilky-surface); color: var(--tilky-ink); font: inherit; font-weight: 400; }
.my-documents-filter-grid > .my-documents-money-filter input { width: 33.333%; min-width: 5.5rem; }
.my-documents-filter-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.my-documents-table th a { color: inherit; text-decoration: none; }
.my-documents-table th a:hover, .my-documents-table th a:focus-visible { color: var(--tilky-turquoise); text-decoration: underline; }
.my-documents-table .actions-column { white-space: nowrap; }
.my-documents-table .project-edit-icon { width: 2rem; height: 2rem; margin-inline-start: .2rem; vertical-align: middle; }
.my-documents-table button.project-edit-icon { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 6px; background: transparent; color: var(--tilky-turquoise); line-height: 1; box-shadow: none; }
.my-documents-table button.project-edit-icon:hover, .my-documents-table button.project-edit-icon:focus-visible { background: rgb(20 184 166 / 12%); color: var(--tilky-turquoise); filter: none; }
.my-documents-table .my-documents-edit-action[aria-disabled="true"] { cursor: not-allowed; opacity: .45; }
.my-documents-pagination { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; border-top: 1px solid var(--tilky-line); background: linear-gradient(180deg, var(--tilky-surface), #f8fafc); }
.my-documents-page-size, .my-documents-page-controls { display: inline-flex; flex: 0 0 auto; flex-wrap: wrap; align-items: center; gap: .4rem; margin: 0; }
.my-documents-page-size label { margin: 0 .2rem 0 0; color: var(--tilky-muted); font-size: .82rem; white-space: nowrap; }
.my-documents-page-size select { width: auto; min-width: 4.7rem; max-width: 5.5rem; min-height: 2.3rem; padding: .35rem .55rem; border: 1px solid var(--tilky-line); border-radius: 8px; background: var(--tilky-surface); color: var(--tilky-ink); font-weight: 600; }
.my-documents-page-link { display: inline-flex; min-width: 2.2rem; min-height: 2.2rem; align-items: center; justify-content: center; padding: .35rem .6rem; border: 1px solid var(--tilky-line); border-radius: 8px; background: var(--tilky-surface); color: var(--tilky-navy); font-size: .84rem; font-weight: 600; text-decoration: none; transition: border-color .15s ease, background-color .15s ease, color .15s ease, transform .15s ease; }
.my-documents-page-link[href]:hover, .my-documents-page-link[href]:focus-visible { border-color: var(--tilky-turquoise); background: rgb(20 184 166 / 9%); color: var(--tilky-navy); transform: translateY(-1px); }
.my-documents-page-link.is-disabled { background: #eef2f7; color: #94a3b8; }
.my-documents-page-indicator { padding: 0 .35rem; color: var(--tilky-muted); font-size: .84rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.my-document-preview-panel { display: flex; width: 100%; height: 100%; min-width: 0; min-height: 0; flex-direction: column; gap: .5rem; }
.my-document-preview-heading { display: flex; flex: 0 0 auto; flex-flow: row nowrap; justify-content: space-between; align-items: center; gap: .75rem; width: 100%; }
.my-document-preview-heading h3 { flex: 0 1 auto; margin: 0; font-size: 1.5rem; font-weight: 400; white-space: nowrap; }
.my-document-preview-heading .worksite-preview-actions { display: flex; flex: 0 0 auto; align-items: center; gap: .4rem; margin-left: auto; }
.my-documents-preview-modal .modal-dialog { display: flex; width: min(96vw, 1800px); max-width: 96vw; height: min(92vh, 1100px); }
.my-documents-preview-modal .modal-content { display: flex; height: 100%; max-height: 100%; min-height: 0; flex: 1 1 auto; flex-direction: column; }
.my-documents-preview-modal .modal-header { flex: 0 0 auto; }
.my-documents-preview-modal .modal-body { display: grid; height: 0; min-height: 0; flex: 1 1 auto; grid-template-columns: minmax(260px, 28fr) minmax(0, 72fr); grid-template-rows: minmax(0, 1fr); gap: 1rem; overflow: hidden; }
.my-document-preview-details { display: flex; flex-direction: column; align-content: start; gap: .65rem; margin: 0; overflow: auto; }
.my-document-preview-group { padding: .65rem .75rem; border: 1px solid var(--tilky-line); border-radius: 10px; background: var(--tilky-surface); }
.my-document-preview-group h3 { margin: 0 0 .35rem; color: var(--tilky-navy); font-size: .85rem; font-weight: 700; }
.my-document-preview-group dl { display: grid; grid-template-columns: minmax(6rem, .8fr) minmax(0, 1.2fr); gap: .15rem .5rem; margin: 0; }
.my-document-preview-details dt, .my-document-preview-details dd { min-width: 0; margin: 0; padding: .35rem .45rem; border-bottom: 1px solid var(--tilky-line); overflow-wrap: anywhere; }
.my-document-preview-details dt { color: var(--tilky-muted); font-size: .8rem; font-weight: 700; }
.my-document-preview-details dd { color: var(--tilky-ink); font-size: .85rem; }
.my-document-preview-frame { width: 100%; height: 0; min-width: 0; min-height: 0; flex: 1 1 auto; overflow: hidden; border: 1px solid var(--tilky-line); border-radius: 10px; background: #f5f7fa; }
.my-document-preview-frame iframe { display: block; width: 100%; height: calc(100% + 58px); min-height: 0; margin-top: -58px; border: 0; background: #f5f7fa; }
@media (max-width: 900px) {
  .my-documents-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .my-folders-filters .my-documents-filter-grid { grid-template-columns: 1fr; }
  .my-documents-preview-modal .modal-dialog { height: 94vh; }
  .my-documents-preview-modal .modal-content { height: 100%; }
  .my-documents-preview-modal .modal-body { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 32vh) minmax(0, 1fr); overflow: auto; }
  .my-document-preview-details { max-height: 32vh; }
  .my-document-preview-frame { min-height: 0; }
  .my-document-preview-frame iframe { min-height: 0; }
}
@media (max-width: 640px) {
  .my-documents-filter-grid { grid-template-columns: 1fr; }
  .my-folders-filters .my-documents-filter-grid { grid-template-columns: 1fr; }
  .my-documents-edit-action { display: none; }
  .my-documents-preview-modal .modal-dialog { width: calc(100vw - 1rem); max-width: calc(100vw - 1rem); height: calc(100vh - 1rem); margin: .5rem; }
  .my-documents-preview-modal .modal-content { max-height: calc(100vh - 1rem); }
  .my-documents-preview-modal .modal-body { padding: .65rem; }
  .my-documents-preview-modal .modal-body { grid-template-rows: minmax(0, 28vh) minmax(0, 1fr); }
  .my-document-preview-details { max-height: 28vh; }
  .my-document-preview-frame { min-height: 0; }
  .my-document-preview-frame iframe { min-height: 0; }
  .my-documents-pagination { justify-content: center; }
  .my-documents-pagination { gap: .7rem; }
  .my-documents-page-size, .my-documents-page-controls { justify-content: center; }
}
