.card,.ui-card{background:var(--planner-surface,var(--surface));border:1px solid var(--planner-border,var(--border));border-radius:var(--planner-radius-md);padding:var(--planner-card-padding);margin-bottom:12px;box-shadow:var(--planner-shadow-sm);color:var(--planner-text,var(--text))}
.card-title{font-size:15px;font-weight:600;margin-bottom:14px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px}
.field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:110px}
.field label{font-size:11px;font-weight:500;color:var(--planner-text-muted,var(--text2));text-transform:uppercase;letter-spacing:.04em}
input[type=text],input[type=password],input[type=date],input[type=number],input[type=time],select,textarea,.form-control,.input,.select,.ui-control{min-height:var(--planner-control-height);font-family:var(--planner-font-family);font-size:var(--planner-control-font-size);padding:0 12px;border:1px solid var(--planner-control-border);border-radius:var(--planner-control-radius);background:var(--planner-control-bg);color:var(--planner-control-text);width:100%;outline:none;box-shadow:var(--planner-control-shadow);transition:border-color var(--planner-transition),box-shadow var(--planner-transition),background var(--planner-transition)}
textarea,.ui-control:is(textarea){height:auto;min-height:82px;padding:10px 12px;resize:vertical}
input::placeholder,textarea::placeholder,.form-control::placeholder,.input::placeholder,.ui-control::placeholder{color:var(--planner-text-muted,var(--text2))}
input:focus,select:focus,textarea:focus,.form-control:focus,.input:focus,.select:focus,.ui-control:focus{border-color:var(--planner-primary-border);box-shadow:var(--planner-control-shadow)}
input:focus-visible,select:focus-visible,textarea:focus-visible,.form-control:focus-visible,.input:focus-visible,.select:focus-visible,.ui-control:focus-visible{outline:var(--planner-control-focus);outline-offset:2px;border-color:var(--planner-primary-border);box-shadow:var(--planner-control-shadow)}
input:disabled,select:disabled,textarea:disabled,.form-control:disabled,.input:disabled,.select:disabled,.ui-control:disabled{background:var(--planner-surface-muted,var(--surface2));color:var(--planner-text-muted,var(--text2));border-color:var(--planner-control-border);opacity:.65}
input:read-only,textarea:read-only,.form-control:read-only,.input:read-only,.ui-control:read-only{background:var(--planner-surface-muted,var(--surface2));color:var(--planner-text,var(--text));border-color:var(--planner-control-border)}
input[type=file]{min-height:var(--planner-control-height);width:100%;font-family:var(--planner-font-family);font-size:var(--planner-control-font-size);color:var(--planner-text-muted,var(--text2));background:var(--planner-control-bg);border:1px solid var(--planner-control-border);border-radius:var(--planner-control-radius);box-shadow:var(--planner-control-shadow);padding:4px;cursor:pointer;transition:border-color var(--planner-transition),box-shadow var(--planner-transition),background var(--planner-transition)}
input[type=file]:hover{background:var(--planner-control-bg-hover);border-color:var(--planner-primary-border)}
input[type=file]:focus-visible{outline:var(--planner-control-focus);outline-offset:2px;border-color:var(--planner-primary-border);box-shadow:var(--planner-control-shadow-hover)}
input[type=file]::file-selector-button{min-height:calc(var(--planner-control-height) - 10px);margin:0 10px 0 0;padding:0 12px;border:1px solid var(--planner-primary-border);border-radius:calc(var(--planner-control-radius) - 2px);background:var(--planner-primary-soft);color:var(--planner-primary);font-family:var(--planner-font-family);font-size:var(--planner-font-sm);font-weight:650;cursor:pointer;transition:background var(--planner-transition),border-color var(--planner-transition),color var(--planner-transition),box-shadow var(--planner-transition)}
input[type=file]::file-selector-button:hover{background:var(--planner-primary);border-color:var(--planner-primary);color:#fff;box-shadow:var(--planner-control-shadow-hover)}
input[type=checkbox],input[type=radio]{accent-color:var(--planner-primary)}
.btn,.ui-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--planner-control-height);padding:0 14px;font-size:var(--planner-control-font-size);font-weight:600;line-height:1;font-family:var(--planner-font-family);border:1px solid var(--planner-control-border);border-radius:var(--planner-control-radius);background:var(--planner-control-bg);color:var(--planner-control-text);cursor:pointer;transition:background var(--planner-transition),border-color var(--planner-transition),box-shadow var(--planner-transition),transform var(--planner-transition),color var(--planner-transition),opacity var(--planner-transition);white-space:nowrap;box-shadow:var(--planner-control-shadow)}
.btn:hover,.ui-btn:hover{background:var(--planner-control-bg-hover);border-color:var(--planner-primary-border);box-shadow:var(--planner-control-shadow-hover)}
.btn:focus-visible,.ui-btn:focus-visible{outline:var(--planner-control-focus);outline-offset:2px;border-color:var(--planner-primary-border);box-shadow:var(--planner-control-shadow-hover)}
.btn:disabled,.ui-btn:disabled{background:var(--surface2);color:var(--text2);border-color:var(--planner-control-border);opacity:.55}
.btn-primary,.ui-btn-primary{background:var(--planner-primary);color:#fff;border-color:var(--planner-primary)}.btn-primary:hover,.ui-btn-primary:hover{background:var(--planner-primary-hover);border-color:var(--planner-primary-hover);box-shadow:var(--planner-control-shadow-hover)}.btn-primary:disabled,.ui-btn-primary:disabled{background:var(--planner-primary);color:#fff;border-color:var(--planner-primary);opacity:.45}
.btn-sm,.ui-btn-sm{min-height:var(--planner-control-height-sm);padding:0 10px;font-size:var(--planner-font-sm)}
.btn-danger,.ui-btn-danger{background:#fff;color:var(--red);border-color:#fecaca}.btn-danger:hover,.ui-btn-danger:hover{background:var(--red-bg);border-color:#fca5a5;box-shadow:var(--planner-control-shadow-hover)}.btn-danger:disabled,.ui-btn-danger:disabled{background:var(--red-bg);color:var(--red-text);border-color:#fecaca;opacity:.55}
.btn-green{background:var(--green);color:#fff;border-color:var(--green)}.btn-green:hover{background:#15803d;border-color:#15803d;box-shadow:var(--planner-control-shadow-hover)}.btn-green:disabled{background:var(--green);color:#fff;border-color:var(--green);opacity:.45}
.badge,.ui-badge{display:inline-flex;align-items:center;min-height:24px;font-size:var(--planner-font-sm);font-weight:600;line-height:1;padding:3px 9px;border-radius:var(--planner-badge-radius)}
.b-blue{background:var(--blue-bg);color:var(--blue-text)}
.b-amber{background:var(--amber-bg);color:var(--amber-text)}
.b-green{background:var(--green-bg);color:var(--green-text)}
.b-gray{background:var(--surface2);color:var(--text2)}
.b-red{background:var(--red-bg);color:var(--red-text)}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:18px}
.metric,.ui-kpi{background:var(--planner-surface);border:1px solid var(--planner-border);border-radius:var(--planner-radius-md);padding:12px 14px;box-shadow:var(--planner-shadow-sm);color:var(--planner-text)}
.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.52);z-index:1000;display:flex;align-items:center;justify-content:center;padding:18px}
.modal,.ui-modal{background:var(--planner-surface);border:1px solid var(--planner-border);border-radius:var(--planner-radius-lg);padding:var(--planner-modal-padding);min-width:320px;max-width:420px;width:90%;box-shadow:var(--planner-shadow-md);color:var(--planner-text)}
.ui-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ui-modal-body{display:grid;gap:16px}
.ui-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
/* Table */
table,.ui-table{width:100%;border-collapse:collapse;font-family:var(--planner-font-family);font-size:var(--planner-font-md);background:var(--planner-surface);color:var(--planner-text)}
.ui-table th,th{text-align:left;padding:var(--planner-table-cell-padding);font-weight:500;font-size:var(--planner-font-xs);color:var(--planner-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--planner-border);background:var(--planner-surface-muted)}
.ui-table td,td{padding:var(--planner-table-cell-padding);border-bottom:1px solid var(--planner-border);vertical-align:middle;color:var(--planner-text);background:var(--planner-surface)}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--planner-surface-muted,var(--surface2))}
.hint{font-size:12px;padding:7px 11px;border-radius:var(--radius-sm);margin-bottom:10px}
.hint-ok{background:var(--blue-bg);color:var(--blue-text)}
.hint-err{background:var(--red-bg);color:var(--red-text)}
.empty{color:var(--text2);font-size:14px;padding:20px 0;text-align:center}
.loading{text-align:center;padding:30px;color:var(--text2)}
.warn{color:var(--amber);font-size:11px;margin-top:2px}
/* Planner UI-system normalization: shared visual contract for all screens */
:where(body, body *){font-family:var(--planner-font-family)}
:where(input,select,textarea,.form-control,.field-control){font-family:var(--planner-font-family);font-size:var(--planner-control-font-size)}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="color"]),select,textarea){
  min-height:var(--planner-control-height);
  padding:0 12px;
  color:var(--planner-control-text);
  background:var(--planner-control-bg);
  border:1px solid var(--planner-control-border);
  border-radius:var(--planner-control-radius);
  box-shadow:var(--planner-control-shadow);
  transition:border-color var(--planner-transition),box-shadow var(--planner-transition),background var(--planner-transition);
}
:where(textarea){min-height:96px;padding:10px 12px}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="color"]),select,textarea):hover{background:var(--planner-control-bg-hover)}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="color"]),select,textarea):focus-visible{outline:var(--planner-control-focus);outline-offset:2px;border-color:var(--planner-primary);box-shadow:var(--planner-control-shadow-hover)}
:where(input:disabled,select:disabled,textarea:disabled,[aria-disabled="true"]){opacity:.65;cursor:not-allowed;background:var(--planner-surface-muted);box-shadow:none}
:where(input[readonly],textarea[readonly]){background:var(--planner-surface-muted)}
:where(button,.btn,.button):focus-visible{outline:var(--planner-control-focus);outline-offset:2px}
:where(button,.btn,.button){font-family:var(--planner-font-family)}
:where(button.ui-btn,.btn.ui-btn,.ui-btn){min-height:var(--planner-control-height);border-radius:var(--planner-control-radius)}
:where(button.ui-btn-sm,.btn.ui-btn-sm,.ui-btn-sm){min-height:var(--planner-control-height-sm)}
:where(.card,.panel,.section-card,.content-card,.workspace-search-card,.manager-select-item,.modal-card,.dialog-card){border-radius:var(--planner-radius-md);border-color:var(--planner-border);box-shadow:var(--planner-shadow-sm)}
:where(.card,.panel,.section-card,.content-card):not(.ui-kpi){padding:var(--planner-card-padding)}
:where(.ui-kpi,.kpi-card,.kpi,.stat-card){border-radius:var(--planner-radius-md);border:1px solid var(--planner-border);box-shadow:var(--planner-shadow-sm);padding:var(--planner-card-padding)}
:where(.ui-kpi,.kpi-card,.kpi,.stat-card):hover{box-shadow:var(--planner-shadow-md)}
:where(table,.ui-table){font-family:var(--planner-font-family);font-size:var(--planner-font-md);border-color:var(--planner-border)}
:where(table th,.ui-table th){font-size:var(--planner-font-sm);font-weight:600;background:var(--planner-surface-muted);color:var(--planner-text-muted);border-color:var(--planner-border);padding:var(--planner-table-cell-padding)}
:where(table td,.ui-table td){font-size:var(--planner-font-md);border-color:var(--planner-border);padding:var(--planner-table-cell-padding)}
:where(table tbody tr:hover,.ui-table tbody tr:hover){background:var(--planner-primary-soft)}
:where(table input,table select,table textarea,.ui-table input,.ui-table select,.ui-table textarea){min-height:var(--planner-control-height-sm);font-size:var(--planner-font-sm);padding:0 8px;border-radius:var(--planner-radius-sm)}
:where(label,.field-label,.filter-label,.form-label){font-family:var(--planner-font-family);font-size:var(--planner-font-sm);font-weight:600;color:var(--planner-text-muted)}
:where(.filters,.filter-bar,.filters-panel,.filter-row){gap:var(--planner-space-3)}
:where(.filters label,.filter-bar label,.filters-panel label,.filter-row label){display:flex;flex-direction:column;gap:var(--planner-space-1)}
:where(.ui-badge,.badge,.status-badge,.status-pill){font-family:var(--planner-font-family);border-radius:var(--planner-badge-radius)}
:where(.ui-modal,.modal,.modal-overlay .modal-content,.dialog,.dialog-card){border-radius:var(--planner-radius-lg);box-shadow:var(--planner-shadow-md);border:1px solid var(--planner-border);background:var(--planner-surface)}
:where(.ui-modal-header,.modal-header,.dialog-header){padding:var(--planner-space-5) var(--planner-space-5) var(--planner-space-4);font-size:var(--planner-font-lg);font-weight:600;border-bottom:1px solid var(--planner-border)}
:where(.ui-modal-body,.modal-body,.dialog-body){padding:var(--planner-space-5)}
:where(.ui-modal-footer,.modal-footer,.dialog-footer){padding:var(--planner-space-4) var(--planner-space-5);border-top:1px solid var(--planner-border);gap:var(--planner-space-2)}
:where(.loading,.empty,.error,.empty-state,.loading-state,.error-state){font-family:var(--planner-font-family);color:var(--planner-text-muted)}
