*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f4f6f9;--surface: #ffffff;--primary: #2fc6f6;--primary-dark: #1a9fd4;--text: #333;--text-muted: #6b7280;--border: #e5e7eb;--danger: #ef4444;--success: #22c55e;--warning: #f59e0b}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--primary-dark);text-decoration:none}a:hover{text-decoration:underline}.layout{display:flex;min-height:100vh}.sidebar{width:240px;background:#1e293b;color:#fff;padding:1.5rem 0;flex-shrink:0}.sidebar h1{font-size:1.1rem;padding:0 1.25rem 1.5rem;border-bottom:1px solid #334155;margin-bottom:1rem}.sidebar nav a{display:block;padding:.6rem 1.25rem;color:#cbd5e1;text-decoration:none;transition:background .15s}.sidebar nav a:hover,.sidebar nav a.active{background:#334155;color:#fff;text-decoration:none}.main{flex:1;padding:2rem;overflow:auto}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.header h2{font-size:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.5rem;margin-bottom:1rem}.btn{display:inline-block;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;cursor:pointer;transition:background .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:#e5e7eb;color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:.25rem .6rem;font-size:.8rem}.template-link-input{flex:1;min-width:0;padding:.35rem .5rem;font-size:.75rem;font-family:ui-monospace,monospace;border:1px solid var(--border);border-radius:4px;background:#f9fafb}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.35rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;font-size:.875rem}.form-group textarea{min-height:80px;resize:vertical}.budget-amount-field input[aria-invalid=true],.budget-amount-field--over input{border-color:var(--danger);background:#fef2f2}.budget-amount-hint{margin-top:.4rem;font-size:.8rem;color:var(--text-muted)}.budget-amount-hint--ok{color:#15803d}.budget-amount-hint--over{color:var(--danger);font-weight:500}.form-group--muted input:disabled,.form-group--muted select:disabled{background:#f3f4f6;color:#9ca3af}.form-field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,180px);gap:.75rem;align-items:start}.form-field-row-part label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.35rem}.form-field-row-part input,.form-field-row-part select,.form-field-row-part textarea{width:100%}.basis-document-controls{display:flex;gap:.5rem;align-items:center}.basis-document-controls select{flex:1;min-width:0}.basis-document-hint{margin-top:.4rem;font-size:.8rem;color:var(--text-muted)}.file-upload-field input[type=file]{width:100%}.file-upload-hint{margin-top:.35rem;font-size:.8rem;color:var(--text-muted)}.file-upload-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.file-upload-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;background:#f9fafb}.file-upload-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.file-upload-size{font-size:.8rem;color:var(--text-muted);white-space:nowrap}@media (max-width: 640px){.form-field-row{grid-template-columns:1fr}}.company-search{position:relative}.company-search-selected{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;background:#f9fafb}.company-search-hint{font-size:.8rem;color:#6b7280;margin:.35rem 0 0}.company-search-results{position:absolute;z-index:20;left:0;right:0;margin:.25rem 0 0;padding:0;list-style:none;max-height:240px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;background:#fff;box-shadow:0 4px 12px #00000014}.company-search-results li button{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:.5rem .75rem;border:none;background:none;text-align:left;cursor:pointer}.company-search-results li button:hover{background:#f3f4f6}.company-search-title{font-size:.875rem}.company-search-inn{font-size:.75rem;color:#6b7280;margin-top:.15rem}.company-search-hidden{position:absolute;opacity:0;height:0;width:0;padding:0;border:none;pointer-events:none}.date-range-inputs{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.date-range-part{display:flex;align-items:center;gap:.35rem;flex:1;min-width:10rem}.date-range-part input{flex:1;min-width:0}.date-range-label{font-size:.8rem;color:#6b7280;min-width:1.25rem}.date-range-sep{color:#9ca3af;padding:0 .15rem}.date-range-preview{font-size:.8rem;color:#6b7280;margin:.35rem 0 0}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.table th{font-size:.8rem;text-transform:uppercase;color:var(--text-muted);font-weight:600}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:500}.badge-synced{background:#dcfce7;color:#166534}.badge-pending{background:#fef3c7;color:#92400e}.badge-failed{background:#fee2e2;color:#991b1b}.badge-closed{background:#e5e7eb;color:#374151}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{width:100%;max-width:400px}.error{color:var(--danger);font-size:.875rem;margin-top:.5rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 768px){.layout{flex-direction:column}.sidebar{width:100%}.grid-2{grid-template-columns:1fr}}.mapping-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;align-items:end;margin-bottom:.5rem}.preview-box{background:#f8fafc;border:1px solid var(--border);border-radius:6px;padding:1rem;font-family:monospace;font-size:.8rem;white-space:pre-wrap;max-height:300px;overflow:auto}
