*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f7f8fa;color:#1a1a1a;line-height:1.5}a{color:#0066cc}button{font-family:inherit}.container{max-width:480px;margin:0 auto;padding:48px 24px}.card{background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.08);padding:32px}.card h1{margin:0 0 24px;font-size:24px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:#4a4a4a}.field input{width:100%;padding:10px 12px;font-size:14px;border:1px solid #d0d4dc;border-radius:6px;outline:none;transition:border-color .15s}.field input:focus{border-color:#0066cc}.btn-primary{width:100%;padding:10px 16px;background:#0066cc;color:white;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.btn-primary:hover{background:#0052a3}.btn-primary:disabled{background:#999;cursor:not-allowed}.error{background:#fef0f0;color:#c92a2a;padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:16px}.status-pill{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-pill.ok{background:#d3f4e7;color:#1a7a48}.status-pill.error{background:#fdd;color:#c00}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;background:#1a2238;color:#cdd5e3;display:flex;flex-direction:column;flex-shrink:0}.sidebar-brand{padding:20px 24px;font-size:20px;font-weight:700;letter-spacing:1px;border-bottom:1px solid #2a3450}.sidebar-brand a{color:#fff;text-decoration:none}.sidebar-nav{flex:1 1;padding:8px 0}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 24px;color:#cdd5e3;text-decoration:none;font-size:14px;transition:background .15s}.sidebar-link:hover{background:#2a3450;color:#fff}.sidebar-link.active{background:#0066cc;color:#fff}.sidebar-icon{width:18px;display:inline-block;text-align:center}.sidebar-footer{padding:16px 24px;border-top:1px solid #2a3450}.sidebar-logout{width:100%;background:transparent;color:#cdd5e3;border:1px solid #2a3450;padding:8px;border-radius:6px;cursor:pointer;font-size:13px}.sidebar-logout:hover{background:#2a3450}.app-main{flex:1 1;padding:24px 32px;max-width:calc(100% - 220px);overflow-x:auto}.page{max-width:1100px}.page-narrow{max-width:640px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.page-header h1{margin:0;font-size:22px}.page-subtitle{color:#777;font-size:13px;margin:4px 0 0}.page-actions{display:flex;gap:8px;align-items:center}.search-input{padding:8px 12px;font-size:14px;width:240px}.btn-secondary,.search-input{border:1px solid #d0d4dc;border-radius:6px}.btn-secondary{padding:8px 14px;background:white;color:#333;cursor:pointer;text-decoration:none;font-size:13px}.btn-secondary:hover{background:#f7f8fa}.btn-danger{padding:8px 14px;background:#fff;color:#c92a2a;border:1px solid #f3c1c1;border-radius:6px;cursor:pointer;font-size:13px}.btn-danger:hover{background:#fef0f0}.table-wrap{background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06);overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table td,.table th{padding:10px 16px;text-align:left;border-bottom:1px solid #eef0f3}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#888;background:#fafbfc;font-weight:600}.table tbody tr:hover{background:#f9fbfd}.table tbody tr:last-child td{border-bottom:none}.cell-link{color:#0066cc;text-decoration:none;font-weight:500}.cell-link:hover{text-decoration:underline}.cell-mono{font-family:SF Mono,Menlo,monospace;font-size:12px}.cell-muted{color:#888;font-size:12px}.empty{text-align:center;padding:32px;color:#888;font-style:italic}.badge{display:inline-block;margin-left:8px;padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-primary{background:#d3f4e7;color:#1a7a48}.badge-warn{background:#fef3c7;color:#92400e}.badge-muted{background:#f1f5f9;color:#64748b}.pagination{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:12px 0}.pagination button{padding:6px 12px;background:white;border:1px solid #d0d4dc;border-radius:6px;cursor:pointer;font-size:13px}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination-info{color:#888;font-size:13px;margin-right:8px}.form-card{background:white;padding:24px;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.form-card .field{margin-bottom:16px}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.field textarea{width:100%;padding:10px 12px;font-size:14px;border:1px solid #d0d4dc;border-radius:6px;font-family:inherit;resize:vertical}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px;margin-bottom:24px}.detail-block{background:white;padding:20px;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.detail-block-wide{grid-column:1/-1}.detail-block h2{margin:0 0 12px;font-size:13px;text-transform:uppercase;color:#888;letter-spacing:.5px}.kv-list{display:grid;grid-template-columns:1fr 2fr;grid-gap:6px 16px;gap:6px 16px;margin:0}.kv-list>div{display:contents}.kv-list dt{font-size:13px;color:#777}.kv-list dd{font-size:13px;margin:0}.contact-list{list-style:none;padding:0;margin:0}.contact-list li{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:14px}.contact-icon{color:#888}.contact-label{color:#888;font-size:12px}.link-back{font-size:13px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:16px;gap:16px}.kpi-card{background:white;padding:20px;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.kpi-label{font-size:12px;text-transform:uppercase;color:#888;letter-spacing:.5px}.kpi-value{font-size:28px;font-weight:700;margin-top:4px}.kpi-card-placeholder{opacity:.55}.kpi-hint{font-size:11px;color:#999;margin-top:6px}.kanban-board{display:flex;gap:12px;overflow-x:auto;padding:4px 4px 24px}.kanban-col{flex:0 0 280px;background:#f0f3f7;border-radius:6px;display:flex;flex-direction:column;min-height:200px}.kanban-col-head{padding:10px 12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#555;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e0e4ea}.kanban-count{background:#ddd;color:#555;padding:1px 6px;border-radius:9px;font-size:11px}.kanban-col-body{padding:8px;display:flex;flex-direction:column;gap:6px;flex:1 1}.kanban-card{display:block;background:white;border-radius:4px;padding:10px;text-decoration:none;color:inherit;font-size:13px;box-shadow:0 1px 2px rgba(0,0,0,.06);border:1px solid transparent;transition:border-color .1s}.kanban-card:hover{border-color:#0066cc}.kanban-card-title{font-weight:500}.kanban-card-sub{font-size:11px;color:#777;margin-top:4px}.kanban-card-amount{font-size:12px;font-weight:600;color:#1a7a48;margin-top:4px}.kanban-empty{color:#aaa;font-size:12px;text-align:center;padding:16px 0}