:root{--color-page:#f0f0f0;--color-surface:white;--color-surface-muted:#d8eaff;--color-text:#1f2937;--color-text-muted:#6b7280;--color-border:#d9dee7;--color-primary:#2563eb;--color-primary-contrast:#fff;--color-danger:#dc2626;--color-danger-contrast:#fff;--color-success-bg:#d1fae5;--color-success-text:#065f46;--color-warning-bg:#fef3c7;--color-warning-text:#92400e;--color-danger-bg:#fee2e2;--color-danger-text:#991b1b;--color-neutral-bg:#dddee0;--color-neutral-text:var(--color-text);--color-shadow:#1f293714;--color-table-header-bg:#cfd0d2;--color-table-header-text:var(--color-text);--color-table-row-hover-bg:var(--color-surface-muted);--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem}*{box-sizing:border-box}body{margin:var(--space-0);min-width:320px;color:var(--color-text);background:var(--color-page);font-family:Avenir,Montserrat,sans-serif;font-size:16px;line-height:1.5}a{color:var(--color-primary)}h1,h2,p,dl,ul{margin-top:0}h1{margin-bottom:var(--space-6);color:var(--color-text);font-size:2rem;line-height:1.2}h2{margin-bottom:var(--space-4);color:var(--color-text);font-size:1.25rem}h3{margin-top:var(--space-0);margin-bottom:var(--space-3);color:var(--color-text);font-size:1rem}.text-muted{color:var(--color-text-muted);font-style:italic}button,.btn-primary{padding:var(--space-1) var(--space-2);border:var(--space-0);border-radius:var(--space-1);color:var(--color-primary-contrast);background:var(--color-primary);font:inherit;cursor:pointer;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}button:disabled{opacity:.6;cursor:not-allowed}input,select,textarea{width:100%;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--space-1);color:var(--color-text);background:var(--color-surface);font:inherit}textarea{resize:vertical;min-height:6rem}label{gap:var(--space-1);color:var(--color-text-muted);flex-direction:column;font-size:.9rem;font-weight:600;display:flex}.date-picker-wrapper{align-items:center;width:100%;display:flex;position:relative}.date-picker-wrapper input[type=text]{padding-right:2.2rem}.date-picker-btn{right:var(--space-1);padding:var(--space-1);color:var(--color-text-muted);cursor:pointer;box-shadow:none;background:0 0;border:none;font-size:1rem;position:absolute}.date-picker-btn:hover{opacity:.8;background:0 0}.hidden-date-picker{opacity:0;pointer-events:none;width:0;height:0;position:absolute;top:0;left:0}#app{height:100vh}.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.navbar{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);color:var(--color-primary-contrast);background:var(--color-text);flex-shrink:0;display:flex}.navbar a{color:var(--color-primary-contrast);font-weight:600;text-decoration:none}.navbar a.router-link-exact-active{text-decoration:underline}.spacer{flex:1}.user{color:var(--color-surface-muted)}.content{width:100%;padding:var(--space-6);flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.list-view,.contracts-view{flex-direction:column;flex:1;min-height:0;display:flex}.list-view-header,.contracts-header-section{flex-shrink:0}.header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.filters,.actions,.form-actions,.import-form,.header-actions,.upload{align-items:center;gap:var(--space-2);display:flex}.import-form,.filters{margin-bottom:var(--space-4)}.import-form{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--space-1);background:var(--color-surface)}.table-container{border-radius:var(--space-1);min-height:150px;box-shadow:var(--space-0) var(--space-1) var(--space-6) var(--color-shadow);flex:1;overflow-y:auto}.table{border-collapse:collapse;background:var(--color-surface);width:100%}.table thead{z-index:10;background:var(--color-table-header-bg);color:var(--color-table-header-text);position:sticky;top:0}.table th,.table td{padding:var(--space-2);border-bottom:1px solid var(--color-border);text-align:left}.table th{z-index:10;background:var(--color-table-header-bg);box-shadow:inset 0 -1px 0 var(--color-border);text-transform:uppercase;font-size:.75rem;position:sticky;top:0}.table-sort{padding:var(--space-0);color:var(--color-table-header-text);font-size:inherit;text-align:left;text-transform:inherit;background:0 0;justify-content:flex-start}.table-sort:hover,.table-sort:focus-visible{color:var(--color-primary)}.row{cursor:pointer}.row:hover{background:var(--color-table-row-hover-bg)}.badge{padding:var(--space-1) var(--space-3);border-radius:var(--space-3);background:var(--color-neutral-bg);color:var(--color-text);font-size:.8rem;font-weight:700;display:inline-flex}.badge.active{background:var(--color-success-bg);color:var(--color-success-text)}.badge.draft{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge.expired{background:var(--color-danger-bg);color:var(--color-danger-text)}.badge.terminated{background:var(--color-neutral-bg);color:var(--color-neutral-text)}.login-card{max-width:500px}.form-page{max-width:900px}form,.login-card{gap:var(--space-3);flex-direction:column;display:flex}.login-page{padding:var(--space-6);flex:1;justify-content:center;align-items:center;display:flex}.login-card{width:100%;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--space-2);background:var(--color-surface);box-shadow:var(--space-0) var(--space-1) var(--space-6) var(--color-shadow);max-width:320px}.checkbox{align-items:center;gap:var(--space-2);flex-direction:row}.checkbox input{width:auto}.modal-overlay{z-index:1000;padding:var(--space-4);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--space-2);width:100%;max-width:520px;padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex;box-shadow:0 10px 25px #00000026}.btn-close{color:var(--color-text-muted);padding:var(--space-1);cursor:pointer;box-shadow:none;background:0 0;border:none;font-size:1.2rem}.btn-close:hover{color:var(--color-text);background:0 0}.export-section{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--space-1);background:var(--color-surface-muted);flex-direction:column;display:flex}.radio-group{gap:var(--space-2);margin-left:var(--space-6);flex-direction:column;display:flex}.radio-option{align-items:center;gap:var(--space-2);color:var(--color-text);cursor:pointer;font-size:.9rem;font-weight:400;display:flex}.radio-option input[type=radio]{width:auto}.radio-option.disabled{opacity:.5;cursor:not-allowed}.tp-row{align-items:center;gap:var(--space-4);margin-bottom:var(--space-2);display:flex}fieldset{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--space-1)}.third-party-picker{gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(260px,1fr);align-items:start;display:grid}.picker-results,.selected-parties,.picker-search-panel{gap:var(--space-2);flex-direction:column;display:flex}.picker-results{max-height:calc(var(--space-8) * 8);overflow-y:auto}.picker-option,.selected-party-row{align-items:center;gap:var(--space-3);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--space-1);background:var(--color-surface);color:var(--color-text);text-align:left;grid-template-columns:minmax(0,1fr) auto;display:grid}.picker-option:hover,.picker-option:focus-visible{background:var(--color-surface-muted)}.selected-party-row{grid-template-columns:minmax(0,1fr)}.picker-option small,.selected-party-row small,.muted{color:var(--color-text-muted)}.picker-option small,.selected-party-row small{display:block}.details{row-gap:var(--space-2);margin:var(--space-6) var(--space-0);grid-template-columns:150px 1fr;display:grid}.details dt{color:var(--color-text-muted);font-weight:700}.details dd{margin:var(--space-0)}.pdf-section{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.upload{margin-top:var(--space-3)}.import-status{margin-bottom:var(--space-4);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--space-1);background:var(--color-surface-muted)}.contract-detail,.third-party-detail{margin-bottom:var(--space-6);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--space-2);background:var(--color-surface);box-shadow:var(--space-0) var(--space-1) var(--space-6) var(--color-shadow)}.third-party-detail-content,.contracts-detail-content{gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(260px,1fr);display:grid}.third-party-detail .details{margin:var(--space-0)}.related-contracts,.related-third-parties{padding-left:var(--space-6);border-left:1px solid var(--color-border)}.contract-links,.third-parties-links{gap:var(--space-2);margin-bottom:var(--space-0);padding:var(--space-0);flex-direction:column;list-style:none;display:flex}.contract-links li,.third-parties-links li{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.import-status p{margin-bottom:var(--space-2)}.import-errors{margin-bottom:var(--space-0);padding-left:var(--space-6);color:var(--color-danger)}.tp-list{padding:var(--space-0);list-style:none}.tp-list li{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-0);border-bottom:1px solid var(--color-border);cursor:pointer;display:flex}.tp-list li:hover,.tp-list li:focus-visible,.tp-list li.selected,.table .row.selected{background:var(--color-surface-muted)}.danger{background:var(--color-danger)}.error{color:var(--color-danger);font-size:.9rem}@media (width<=700px){.navbar,.header,.header-actions,.filters,.actions,.form-actions,.import-form,.upload,.tp-list li,.tp-row{flex-direction:column;align-items:stretch}.content{padding:var(--space-4)}.details,.third-party-picker,.picker-option,.selected-party-row,.third-party-detail-content{grid-template-columns:1fr}.related-contracts{padding-top:var(--space-4);padding-left:var(--space-0);border-top:1px solid var(--color-border);border-left:var(--space-0)}}
