:root{--bg: #f1f5f9;--surface: #ffffff;--surface-muted: #f8fafc;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--accent: #0f766e;--accent-hover: #115e59;--accent-soft: #ccfbf1;--accent-soft-border: #99f6e4;--accent-text: #134e4a;--accent-ring: rgba(15, 118, 110, .25);--danger: #b42318;--danger-hover: #912018;--danger-soft: #fef3f2;--danger-soft-border: #fecdca;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 1px 3px rgba(15, 23, 42, .08), 0 8px 24px -12px rgba(15, 23, 42, .18);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: .9375rem;--text-lg: 1.125rem;--text-xl: 1.5rem;font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:var(--text-base)}h1,h2,h3{margin:0;line-height:1.25;letter-spacing:-.01em;font-weight:650}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:1rem}p{margin:0}.muted{color:var(--text-muted);font-size:var(--text-sm)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.layout{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);grid-template-areas:"header header" "catalog program";gap:var(--space-5);padding:var(--space-5) var(--space-5) var(--space-6);max-width:1280px;margin:0 auto}@media (max-width: 900px){.layout{grid-template-columns:1fr;grid-template-areas:"header" "program" "catalog";gap:var(--space-4);padding:var(--space-4)}}.header{grid-area:header;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-4)}.brand{display:flex;align-items:center;gap:var(--space-3)}.brand-mark{flex:none;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--accent) 0%,#14b8a6 100%);color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-sm)}.brand-mark svg{width:26px;height:26px}.brand-tagline{color:var(--text-secondary);font-size:var(--text-sm);margin-top:2px}.header-tools{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.status{display:inline-flex;align-items:center;gap:.45rem;font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);padding:.3rem .7rem;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface)}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--border-strong)}.status-firestore:before{background:#16a34a}.status-bundled:before{background:#f59e0b}.language-switcher{display:inline-flex;flex-direction:row;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.language-switcher select{padding-block:.35rem}.catalog{grid-area:catalog}.program{grid-area:program}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5)}@media (min-width: 901px){.catalog{position:sticky;top:var(--space-5);max-height:calc(100vh - var(--space-5) * 2);display:flex;flex-direction:column}}.panel-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.count{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.15rem .6rem;white-space:nowrap;font-variant-numeric:tabular-nums}label{display:flex;flex-direction:column;gap:.35rem;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}input,select,textarea,button{font:inherit;color:var(--text)}input,select,textarea{padding:.5rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);transition:border-color .12s ease,box-shadow .12s ease}input::placeholder,textarea::placeholder{color:#94a3b8}input:hover,select:hover,textarea:hover{border-color:#94a3b8}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center}textarea{resize:vertical;min-height:2.6rem;line-height:1.45}input[type=number]{width:5rem;font-variant-numeric:tabular-nums}.input-unit{display:inline-flex;align-items:center;gap:.4rem}.input-unit small{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem .9rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-weight:500;line-height:1.25;cursor:pointer;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}button:hover{background:var(--surface-muted);border-color:#94a3b8}button:disabled{opacity:.4;cursor:default}button:disabled:hover{background:var(--surface);border-color:var(--border-strong)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.subtle{border-color:transparent;color:var(--text-secondary)}button.subtle:hover{background:var(--surface-muted);border-color:transparent;color:var(--text)}button.danger{color:var(--danger)}button.danger:hover{background:var(--danger-soft);border-color:var(--danger-soft-border);color:var(--danger-hover)}button.icon{width:2rem;height:2rem;padding:0}button svg{width:16px;height:16px;flex:none}.filters{display:grid;grid-template-columns:1fr;gap:var(--space-2);margin-bottom:var(--space-3)}.filters select{width:100%}.search{position:relative;display:flex}.search svg{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--text-muted);pointer-events:none}.search input{width:100%;padding-left:2.1rem}.catalog-list{list-style:none;margin:0;padding:0;overflow-y:auto;min-height:0;flex:1;border-top:1px solid var(--border)}.catalog-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:.7rem .25rem;border-bottom:1px solid var(--border);transition:background-color .12s ease}.catalog-item:hover{background:var(--surface-muted)}.catalog-item-text{min-width:0}.catalog-item strong{display:block;font-weight:600;overflow-wrap:anywhere}.catalog-item .category{display:inline-block;font-size:var(--text-xs);font-weight:500;color:var(--accent-text);background:var(--accent-soft);border-radius:var(--radius-pill);padding:.05rem .5rem;margin:.2rem 0 .3rem}.catalog-item .muted{font-size:var(--text-xs)}.patient-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);padding:var(--space-4);margin-bottom:var(--space-5);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-md)}@media (max-width: 640px){.patient-form{grid-template-columns:1fr}}.patient-form .wide,.item-card .wide{grid-column:1 / -1}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius-md)}.empty svg{width:32px;height:32px;color:var(--border-strong)}.items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.item-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);background:var(--surface);box-shadow:var(--shadow-sm)}.item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.item-title{display:flex;align-items:flex-start;gap:var(--space-3);min-width:0}.item-number{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:var(--text-sm);font-weight:650;font-variant-numeric:tabular-nums}.item-title h3{padding-top:3px}.item-title .category{display:block;font-size:var(--text-xs);color:var(--text-muted);margin-top:1px}.item-controls{display:flex;gap:var(--space-1);flex:none}.item-description{margin:var(--space-3) 0;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.55}.params{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);background:var(--surface-muted);border-radius:var(--radius-sm)}.params label{font-size:var(--text-xs)}.dosage{display:inline-flex;align-items:flex-start;gap:.4rem;max-width:100%;font-weight:600;font-size:var(--text-sm);color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft-border);border-radius:var(--radius-pill);padding:.25rem .75rem;margin-bottom:var(--space-3)}.dosage svg{width:14px;height:14px;flex:none;margin-top:.2rem}.dosage.none{color:var(--text-muted);background:var(--surface-muted);border-color:var(--border)}.errors{display:flex;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--danger-soft);border:1px solid var(--danger-soft-border);border-radius:var(--radius-md);color:var(--danger);font-size:var(--text-sm)}.errors svg{width:18px;height:18px;flex:none;margin-top:2px}.errors ul{margin:0;padding-left:1.1rem}.errors li+li{margin-top:.2rem}.actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border)}.actions .spacer{flex:1}
