.btn{border:none;padding:12px 18px;border-radius:14px;font-weight:600;
  cursor:pointer;font-size:.9rem;transition:all .15s;}
.btn-primary{background:var(--primary);color:#fff;width:100%;}
.btn-primary:hover{background:#155a3c;}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.btn-secondary{background:#eef3f9;color:var(--text);}
.compact-btn{width:auto!important;padding:8px 16px!important;margin:0!important;}

.content-card{background:var(--surface);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:24px;}
.badge{background:var(--primary-soft);color:var(--primary);
  font-size:.72rem;padding:3px 10px;border-radius:30px;font-weight:600;}

.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px;}
.search-box{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;
  background:#f3f7fc;border-radius:14px;padding:8px 14px;
  border:1px solid transparent;}
.search-box:focus-within{border-color:var(--primary);background:#fff;}
.search-box input{border:none;background:transparent;outline:none;
  font-size:.9rem;width:100%;}
.toolbar select{padding:8px 14px;border-radius:14px;border:1px solid var(--border);
  background:#f3f7fc;font-size:.88rem;}

.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  z-index:1000;padding:20px;}
.modal.hidden{display:none;}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,20,30,.3);
  backdrop-filter:blur(3px);}
.modal-card{position:relative;background:#fff;border-radius:24px;padding:28px;
  max-width:520px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.15);
  max-height:90vh;overflow-y:auto;}
.modal-header{display:flex;justify-content:space-between;align-items:flex-start;
  margin-bottom:18px;}
.icon-btn{background:transparent;border:none;font-size:1.6rem;cursor:pointer;
  color:var(--text-soft);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-grid .full{grid-column:1/-1;}
.form-grid label{font-size:.8rem;font-weight:500;color:var(--text-soft);
  display:flex;flex-direction:column;gap:4px;}
.form-grid input,.form-grid select{padding:10px 12px;border-radius:12px;
  border:1px solid var(--border);font-size:.9rem;background:#fafdff;outline:none;}
.form-grid input:focus,.form-grid select:focus{border-color:var(--primary);background:#fff;}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;}

.toast{position:fixed;bottom:28px;left:50%;
  transform:translateX(-50%) translateY(80px);
  background:#1d3a4b;color:#fff;padding:12px 24px;border-radius:30px;
  font-size:.88rem;font-weight:500;opacity:0;transition:all .25s;
  pointer-events:none;z-index:2000;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

.empty-state{text-align:center;padding:32px 16px;color:var(--text-soft);}
.empty-state div{font-size:2.4rem;margin-bottom:8px;}
.loading{text-align:center;padding:28px;color:var(--text-soft);}