:root{--bg:#f6f9fc;--surface:#fff;--surface-alt:#f0f5fa;--border:#dde7ef;--border-strong:#b5c8d8;--text:#0f2942;--text-muted:#5a7088;--primary:#0a4f7c;--primary-hover:#073d61;--primary-light:#e6f1fb;--accent:#5ec3f5;--success:#1d9e75;--success-light:#e1f5ee;--danger:#a32d2d;--danger-light:#fceaea;--warning:#854f0b;--warning-light:#fff8ec;--radius:10px;--radius-lg:14px;--shadow-sm:0 1px 2px rgba(15,41,66,.04);--shadow:0 4px 16px rgba(15,41,66,.06);--shadow-lg:0 12px 36px rgba(15,41,66,.08)}*{box-sizing:border-box;margin:0;padding:0}body,html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none;background:none;font-size:inherit;color:inherit}input,select,textarea{font-family:inherit;font-size:15px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}textarea{min-height:80px;resize:vertical}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius);font-weight:500;font-size:14px;transition:background .15s,border-color .15s,transform .05s;border:1px solid transparent;cursor:pointer}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{background:var(--border-strong);cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--surface-alt);border-color:var(--border-strong)}.btn-danger{background:var(--surface);color:var(--danger);border-color:var(--border)}.btn-danger:hover{background:var(--danger-light);border-color:var(--danger)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover{background:var(--surface-alt);color:var(--text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-info{background:var(--primary-light);color:var(--primary)}.badge-muted{background:var(--surface-alt);color:var(--text-muted)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state h3{color:var(--text);margin-bottom:8px;font-weight:500}.spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:700px){.btn{padding:12px 18px}}