:root{--bg: #0f172a;--panel: #111827;--muted: #1f2937;--card: #0b1224;--text: #e5e7eb;--accent: #38bdf8;--ok: #10b981;--warn: #f59e0b;--hot: #ef4444;--full: #831843;--border: #243147}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:linear-gradient(120deg,#0b1224,#0f172a 60%,#131a30);color:var(--text);font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Helvetica Neue,Arial}header.top{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:16px 20px;position:sticky;top:0;background:#0b1224b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);z-index:5}.title{display:flex;align-items:center;gap:10px;font-weight:800}.title .logo{width:12px;height:12px;border-radius:3px;background:var(--accent);box-shadow:0 0 0 3px #38bdf840}.muted{opacity:.7}button,.btn{background:var(--muted);color:var(--text);border:1px solid var(--border);padding:8px 10px;border-radius:10px;cursor:pointer;transition:.2s}button:hover,.btn:hover{transform:translateY(-1px);border-color:#33507a}.btn-accent{background:var(--accent);color:#00111a;border-color:#7bd9ff;font-weight:700}.btn-danger{background:#3b0b13;border-color:#5a1320;color:#ffd9df}.btn-reset-icon{background:transparent;border:1px solid var(--border);color:var(--text);width:34px;height:34px;padding:0;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;opacity:.3;filter:grayscale(1);transition:opacity .2s ease,background .2s ease,border-color .2s ease,filter .2s ease}.btn-reset-icon:hover{opacity:1;filter:grayscale(0);background:#ef444424;border-color:#ef444473}.btn-changelog{background:transparent;border:1px solid var(--border);color:var(--text);width:34px;height:34px;padding:0;border-radius:50%;cursor:pointer;font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center;opacity:.55;transition:opacity .2s ease,background .2s ease,transform .2s ease;position:relative;overflow:hidden}.btn-changelog:hover{opacity:1;background:#ffffff0f}.btn-changelog.has-updates:before{content:"";position:absolute;top:2px;right:2px;width:7px;height:7px;background:#ef4444;border-radius:50%;animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 10px #667eea80}50%{box-shadow:0 0 25px #667eeacc,0 0 40px #764ba299}}@keyframes pulse-dot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.8}}.btn-sm{padding:6px 8px;border-radius:8px;font-size:12px;line-height:1.1;white-space:nowrap}input,select{background:#0a1121;color:var(--text);border:1px solid var(--border);padding:8px 10px;border-radius:10px;outline:none}.controls{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.btn-group{display:inline-flex;gap:6px;align-items:center;padding-right:18px;border-right:1px solid var(--border)}.btn-group+.btn-group{padding-left:0}.btn-import{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.layout{display:grid;grid-template-columns:360px 1fr;gap:16px;padding:16px;height:calc(100vh - 70px)}.panel{background:#10172a99;border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;min-height:0}.panel>header{padding:12px 14px;border-bottom:1px solid var(--border);flex:0 0 auto}.panel .content{padding:12px;overflow:auto;flex:1 1 auto}.hint{opacity:.5;font-size:12px}.panel>header strong{font-weight:600;opacity:.75;letter-spacing:.01em}.filterbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.filterbar2{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:10px}.btn-new-client{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 14px;margin-bottom:14px;font-size:15px;font-weight:700;letter-spacing:.01em;border-radius:12px;box-shadow:0 4px 14px #38bdf840,inset 0 1px #ffffff59;transition:transform .12s ease,box-shadow .2s ease,filter .2s ease}.btn-new-client .plus{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#00111a2e;font-size:16px;font-weight:900;line-height:1}.btn-new-client:hover{filter:brightness(1.05);box-shadow:0 6px 18px #38bdf859,inset 0 1px #fff6}.btn-new-client:active{transform:translateY(1px);box-shadow:0 2px 8px #38bdf840,inset 0 1px #ffffff4d}.filterbar input,.filterbar2 input{width:100%;background-color:#ffffff0b;border:1px solid rgba(255,255,255,.09);color:var(--text);font-size:12px;padding:9px 10px 9px 30px;border-radius:10px;background-repeat:no-repeat;background-position:10px center;background-size:14px 14px;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.filterbar input::placeholder,.filterbar2 input::placeholder{color:#e5e7eb6b}.filterbar input:hover,.filterbar2 input:hover{background-color:#fff1;border-color:#ffffff29}.filterbar input:focus,.filterbar2 input:focus{background-color:#ffffff12;border-color:var(--accent);box-shadow:0 0 0 3px #38bdf82e}#filterName{font-size:15px;font-weight:500;padding:14px 14px 14px 46px;background-color:#38bdf80f;border-color:#38bdf84d;background-size:18px 18px;background-position:16px center;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2338bdf8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3'/></svg>");box-shadow:0 0 0 1px #38bdf814,0 4px 14px #38bdf812}#filterName::placeholder{color:#e5e7eb8c;font-weight:400}#filterName:hover{background-color:#38bdf817;border-color:#38bdf873}#filterName:focus{background-color:#38bdf81a;border-color:var(--accent);box-shadow:0 0 0 4px #38bdf838}#filterMed,#filterAlerg{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 3H2l8 9.46V19l4 2v-8.54L22 3z'/></svg>")}#filterMed:focus,#filterAlerg:focus{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2338bdf8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 3H2l8 9.46V19l4 2v-8.54L22 3z'/></svg>")}.client-list{display:flex;flex-direction:column;gap:10px}.client-card{background:linear-gradient(180deg,#0d162ce6,#0a1121e6);border:1px solid var(--border);border-radius:14px;padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.client-main{min-width:0;display:flex;flex-direction:column;gap:4px}.client-name{font-weight:800;font-size:14px;line-height:1.25;word-break:break-word}.meta-label{opacity:.6;font-weight:600;margin-right:3px}.client-id-badge{display:inline-block;background:var(--accent);color:#00111a;font-size:10px;font-weight:800;padding:2px 6px;border-radius:4px;margin-right:6px;vertical-align:middle}.notes-icon{display:inline-block;margin-left:6px;font-size:14px;opacity:.9;vertical-align:baseline;line-height:1}.tag-draggable .notes-icon{vertical-align:baseline;margin-left:4px}.client-meta{font-size:12px;opacity:.8}.client-notes{color:#ff9800;opacity:.8;font-size:12px}.tag-draggable{display:inline-block;padding:4px 8px;border-radius:8px;font-weight:700;background:#0b1630;border:1px dashed #33507a;cursor:grab;-webkit-user-select:none;user-select:none;font-size:12px;margin-top:6px}.tag-draggable:active{cursor:grabbing}.client-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch;align-self:center;min-width:100px}.client-actions .btn{width:100%;padding:6px 12px;font-size:13px}@media (max-width: 1100px){.client-card{grid-template-columns:1fr}.client-actions{grid-column:1 / -1;flex-direction:row;gap:8px}.client-actions .btn{flex:1}}.calendar{display:flex;flex-direction:column;min-width:760px;min-height:0}.weekbar{display:contents}.mini-cal{position:fixed;bottom:18px;right:18px;z-index:100;width:180px;padding:8px 10px;border-radius:12px;background:#0c142af0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.09);box-shadow:0 10px 30px #00000073,0 0 0 1px #ffffff0a;-webkit-user-select:none;user-select:none}@media (max-width: 720px){.mini-cal{position:static;width:100%;margin:8px 0}}.mini-cal-head{display:flex;align-items:center;gap:6px;margin-bottom:6px;cursor:grab;touch-action:none}.mini-cal-head:active{cursor:grabbing}.mini-cal.is-dragging{box-shadow:0 20px 50px #0000008c,0 0 0 1px #38bdf859;transform:scale(1.02);transition:none}.mini-cal{transition:box-shadow .2s ease,transform .15s ease}.mini-cal-nav{width:22px;height:22px;padding:0;border-radius:6px;background:transparent;border:1px solid rgba(255,255,255,.08);color:var(--text);font-size:13px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:.75;transition:background .15s ease,opacity .15s ease,border-color .15s ease}.mini-cal-nav:hover{opacity:1;background:#ffffff0f;border-color:#ffffff2e}.mini-cal-title{flex:1;display:flex;flex-direction:column;gap:1px;align-items:center;min-width:0}.mini-cal-month{font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--text)}.mini-cal-range{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);opacity:.7}.mini-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:2px}.mini-cal-weekdays span{text-align:center;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#e8eefc66;padding:1px 0}.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.mini-cal-day{position:relative;padding:0;border:0;background:transparent;color:var(--text);font-size:11px;font-weight:600;cursor:pointer;border-radius:6px;transition:background .15s ease,color .15s ease;display:flex;align-items:center;justify-content:center;min-height:19px}.mini-cal-day:hover{background:#ffffff0f}.mini-cal-day.other-month{color:#e8eefc40}.mini-cal-day.today{color:var(--accent);font-weight:800}.mini-cal-day.today:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:3px;height:3px;border-radius:50%;background:var(--accent)}.mini-cal-day.active-workday{background:#38bdf833;color:#e0f2fe;border-radius:0}.mini-cal-day.active-workday.active-start{border-top-left-radius:999px;border-bottom-left-radius:999px}.mini-cal-day.active-workday.active-end{border-top-right-radius:999px;border-bottom-right-radius:999px}.mini-cal-day.active-workday:hover{background:#38bdf84d}.mini-cal-day.active-workday.today{color:#fff}.mini-cal-day.active-workday.today:after{background:#fff}.mini-cal-day.in-active-week:not(.active-workday){color:#e8eefc8c}.calendar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:12px;overflow:auto;min-height:0;flex:1 1 auto}.day{background:#080e1c99;border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;min-width:200px}.day>header{padding:14px 16px 12px;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--border)}.day-name{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.day-date{display:flex;align-items:baseline;gap:8px}.day-num{font-size:44px;font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--text);font-variant-numeric:tabular-nums}.day-month{font-size:15px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text);opacity:.55}.day>footer{padding:8px 12px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);margin-top:auto}.day .capacity-label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;opacity:.6}.badge{font-size:12px;padding:3px 8px;border-radius:999px;border:1px solid transparent;background:#0e1a34}.badge.ok{background:#10b98126;border-color:#10b98159;color:#9bf7cf}.badge.warn{background:#f59e0b26;border-color:#f59e0b59;color:#ffd58e}.badge.hot{background:#ef444426;border-color:#ef444459;color:#ffb3b3}.badge.full{background:#83184340;border-color:#83184380;color:#ffd1ea}.dropzone{flex:1;padding:10px;display:flex;flex-direction:column;gap:6px}.dropzone.over{outline:2px dashed var(--accent);outline-offset:-6px;background:#38bdf80f}.slot{font-size:12px;font-weight:800;background:#0c142a;border:1px solid #213155;border-radius:8px;padding:6px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.slot .handle{cursor:grab;-webkit-user-select:none;user-select:none}.slot .remove{border:none;background:#2a0e14;color:#ffc6cd;border:1px solid #4a1822;padding:4px 6px;border-radius:6px;cursor:pointer}.slot-notes{font-size:10px;color:#ff9800;opacity:.85;margin-top:3px;font-weight:400;line-height:1.3}.slot-generated{background:linear-gradient(135deg,#0c142a,#0e1730);border:1px dashed #2a4a7a;opacity:.85}.slot-generated .pattern-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:#38bdf826;border:1px solid rgba(56,189,248,.3);border-radius:4px;color:var(--accent);font-size:11px;font-weight:700}.shake{animation:shake .35s}@keyframes shake{10%{transform:translate(-2px)}20%{transform:translate(2px)}30%{transform:translate(-2px)}40%{transform:translate(2px)}50%{transform:translate(-1px)}60%{transform:translate(1px)}}#tenantScreen,#authScreen{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(1200px 600px at 20% -10%,#163055,transparent),linear-gradient(140deg,#0b1224,#0f172a 60%,#131a30);display:flex;align-items:center;justify-content:center;z-index:9999;color:#eaf6ff;border-bottom:1px solid rgba(255,255,255,.06)}.tenant-card{width:min(440px,92vw);background:#0c142a;border:1px solid var(--border);border-radius:16px;box-shadow:0 20px 80px #00000073;padding:24px;text-align:center}.tenant-card h1{margin:0 0 18px;font-size:20px}.tenant-buttons{display:flex;flex-direction:column;gap:12px}.tenant-btn{display:flex;align-items:center;gap:14px;width:100%;padding:18px 20px;background:#122042;border:1px solid var(--border);border-radius:12px;color:#eaf6ff;font-size:16px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,transform .05s}.tenant-btn:hover{background:#18305a;border-color:#3b82f6}.tenant-btn:active{transform:scale(.98)}.tenant-icon{font-size:28px}.tenant-name{flex:1;text-align:left}.auth-card{width:min(380px,92vw);background:#0c142a;border:1px solid var(--border);border-radius:16px;box-shadow:0 20px 80px #00000073;padding:18px}.auth-card h1{margin:0 0 10px;font-size:18px}.auth-card .row{display:flex;flex-direction:column;gap:6px;margin:10px 0}.auth-card input{width:100%}.auth-foot{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:10px}.auth-msg{min-height:18px;font-size:12px;opacity:.9}dialog{border:none;padding:0;overflow:hidden;width:min(860px,96vw);background:#0c142a;color:var(--text);box-shadow:0 10px 60px #00000073;border:1px solid var(--border);max-height:86vh}dialog::backdrop{background:#00000080}#clientForm{display:flex;flex-direction:column;background:#0c142a;color:var(--text)}.modal-head{position:sticky;top:0;background:#0c142a;z-index:2;padding:20px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.modal-title-wrap{display:flex;flex-direction:column;gap:2px;min-width:0}.modal-eyebrow{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);opacity:.85}.modal-head #modalTitle{font-size:22px;font-weight:700;letter-spacing:-.01em;line-height:1.2}.btn-close{width:34px;height:34px;padding:0;border-radius:50%;background:transparent;border:1px solid var(--border);color:var(--text);font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:.6;transition:opacity .2s ease,background .2s ease,border-color .2s ease}.btn-close:hover{opacity:1;background:#ffffff0f;border-color:#fff3}.modal-body{padding:24px;gap:24px;overflow:auto;max-height:calc(86vh - 140px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start}.modal-section{display:flex;flex-direction:column;gap:14px}.modal-section+.modal-section{padding-top:20px;border-top:1px solid rgba(42,63,99,.4)}.modal-right{display:flex;flex-direction:column;gap:0}.modal-right .modal-section+.modal-section{margin-top:20px}.section-title{margin:0;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);opacity:.8}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.section-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.btn-link{align-self:flex-start;background:transparent;border:none;color:var(--accent);padding:4px 0;font-size:13px;cursor:pointer;opacity:.8;transition:opacity .15s ease;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#38bdf866}.btn-link:hover{opacity:1;text-decoration-color:var(--accent)}.pattern-fields{display:flex;flex-direction:column;gap:18px;margin-top:4px}.pattern-field{display:flex;flex-direction:column;gap:10px}.field-label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#e8eefcb3}.pill-group{display:flex;gap:8px;flex-wrap:wrap}.modal-body .pill{position:relative;display:inline-flex;flex-direction:row;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);color:var(--text);font-size:13px;font-weight:600;letter-spacing:.01em;text-transform:none;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.pill input[type=checkbox],.pill input[type=radio]{position:absolute;opacity:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;pointer-events:none}.pill:hover{background:#ffffff12;border-color:#fff3}.pill:has(input:checked){background:#38bdf829;border-color:#38bdf899;color:#7dd3fc;box-shadow:0 0 0 1px #38bdf82e,0 4px 12px #38bdf81f}.pill:has(input:focus-visible){box-shadow:0 0 0 3px #38bdf859}.pill-custom{padding-left:8px}.modal-body .pill-custom input[type=number]{all:unset;width:42px;text-align:center;font-size:13px;font-weight:700;color:inherit;padding:2px 4px;border-radius:6px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);text-transform:none;letter-spacing:normal}.pill-custom input[type=number]::-webkit-outer-spin-button,.pill-custom input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pill-custom input[type=number]:focus{background:#38bdf829;border-color:#38bdf899;outline:none}.pill-custom:has(input[type=radio]:checked) input[type=number]{background:#ffffff1f;border-color:#38bdf880}.pattern-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 560px){.pattern-dates{grid-template-columns:1fr}}@media (max-width: 880px){.modal-body{grid-template-columns:1fr;gap:18px}}.modal-foot{position:sticky;bottom:0;background:#0c142a;z-index:2;padding:12px 16px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}.modal-body label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#e8eefcb3}.modal-body input,.modal-body select,.modal-body textarea{width:100%;background:#ffffff0a;color:#e5e7eb;border:1px solid rgba(255,255,255,.09);border-radius:10px;padding:11px 14px;font-size:14px;font-weight:400;text-transform:none;letter-spacing:normal;line-height:1.3;outline:none;transition:background-color .15s,border-color .15s,box-shadow .15s;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Helvetica Neue,Arial}.modal-body input:hover,.modal-body select:hover,.modal-body textarea:hover{background:#ffffff0f;border-color:#ffffff29}.modal-body input::placeholder,.modal-body textarea::placeholder{color:#e5e7eb66}.modal-body textarea{resize:vertical;min-height:80px}.modal-body input:focus,.modal-body select:focus,.modal-body textarea:focus{background:#ffffff12;border-color:var(--accent);box-shadow:0 0 0 3px #38bdf838}.modal-body input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(1.2);cursor:pointer;opacity:.9}.modal-body input[type=date]:hover::-webkit-calendar-picker-indicator{opacity:1;filter:invert(1) brightness(1.4)}.modal-body input[type=date]::-webkit-calendar-picker-indicator:active{filter:invert(1) brightness(1.5)}.meds{display:flex;flex-direction:column;gap:10px}.meds-header,.med-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) 72px;gap:8px;align-items:center}.meds-header{padding:4px 10px 0;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#e8eefc73}.med-row{background:#ffffff06;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:6px 8px}.modal-body .med-row input{padding:9px 12px;font-size:13px}.med-actions{display:flex;gap:4px;justify-content:flex-end}.med-btn{width:32px;height:32px;padding:0;border-radius:8px;background:transparent;border:1px solid rgba(255,255,255,.09);color:var(--text);font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:.6;transition:opacity .2s ease,background .2s ease,border-color .2s ease,color .2s ease}.med-btn:hover{opacity:1;background:#ffffff0f;border-color:#fff3}.med-btn-remove:hover{background:#ef44441f;border-color:#ef444466;color:#ffb3b3}@media (max-width: 900px){.meds-header{display:none}.med-row{grid-template-columns:1fr 1fr}.med-row>:nth-child(3){grid-column:1 / -1}.med-actions{grid-column:1 / -1;justify-content:flex-end}}.modal-foot{padding:16px 24px;gap:16px;justify-content:space-between}.modal-foot-left,.modal-foot-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.modal-foot .btn,.modal-foot .btn-accent{padding:10px 18px;border-radius:10px;font-size:14px}.modal-foot .btn-accent{font-weight:700;padding:10px 22px;box-shadow:0 4px 14px #38bdf840,inset 0 1px #ffffff59;transition:filter .2s ease,box-shadow .2s ease,transform .12s ease}.modal-foot .btn-accent:hover{filter:brightness(1.05);box-shadow:0 6px 18px #38bdf859,inset 0 1px #fff6}.modal-foot .btn-accent:active{transform:translateY(1px)}.btn-delete-muted{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;background:transparent;border:1px solid rgba(255,255,255,.09);color:#ffffff73;font-size:13px;font-weight:600;cursor:pointer;filter:grayscale(.8);transition:color .2s ease,background .2s ease,border-color .2s ease,filter .2s ease}.btn-delete-muted:hover{color:#ffb3b3;background:#ef44441a;border-color:#ef444459;filter:grayscale(0)}.btn-delete-muted:disabled{opacity:.4;cursor:not-allowed}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,80px);background:#141c34f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);border:1px solid var(--border);border-left:3px solid var(--accent);padding:12px 20px;border-radius:10px;font-size:14px;font-weight:600;letter-spacing:.01em;box-shadow:0 10px 30px #0006,0 0 0 1px #ffffff0a;z-index:9999;opacity:0;pointer-events:none;transition:transform .3s ease,opacity .25s ease;max-width:min(90vw,440px)}.toast-visible{opacity:1;transform:translate(-50%)}.toast-error{border-left-color:#ef4444;color:#ffd1d1}.modal-foot .btn-danger{margin-right:auto}.bulk-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;margin-top:8px;max-height:60vh;overflow-y:auto}.bulk-table{width:100%;border-collapse:collapse;font-size:13px}.bulk-table thead th{position:sticky;top:0;background:#0f1a33;color:#ffffffd9;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.4px;padding:10px 8px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;z-index:1}.bulk-table tbody tr{border-bottom:1px solid rgba(255,255,255,.04);transition:background .12s ease}.bulk-table tbody tr:nth-child(2n){background:#ffffff04}.bulk-table tbody tr.has-error{background:#50141e2e}.bulk-cell{padding:4px 6px;vertical-align:middle}.bulk-cell-num{width:36px;text-align:center;color:#fff6;font-variant-numeric:tabular-nums;font-size:12px;-webkit-user-select:none;user-select:none}.bulk-table .bulk-cell input[type=text],.bulk-table .bulk-cell input:not([type]),.bulk-table .bulk-cell input.bulk-nombre,.bulk-table .bulk-cell input.bulk-alergias,.bulk-table .bulk-cell input.bulk-notas,.bulk-table .bulk-cell input[type=number],.bulk-table .bulk-cell input[type=date]{width:100%;padding:6px 8px;background:#ffffff0a;border:1px solid transparent;border-radius:6px;color:var(--text);font-size:13px}.bulk-table .bulk-cell input:focus{outline:none;border-color:var(--accent);background:#38bdf80f}.bulk-cell.has-error input,.bulk-cell.has-error .bulk-days{border-color:#ef4444b3!important;background:#ef444414}.bulk-col-nombre{min-width:160px}.bulk-col-alergias,.bulk-col-notas{min-width:130px}.bulk-col-days{width:170px;min-width:170px}.bulk-col-repeat{width:80px}.bulk-col-date{width:140px}.bulk-col-actions{width:36px}.bulk-days{display:flex;gap:2px;background:#ffffff0a;border:1px solid transparent;border-radius:6px;padding:2px}.bulk-day-pill{flex:1;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none}.bulk-day-pill input{position:absolute;opacity:0;pointer-events:none}.bulk-day-pill span{display:block;text-align:center;padding:4px 0;border-radius:4px;font-size:12px;font-weight:700;color:#ffffff80;transition:background .12s ease,color .12s ease}.bulk-day-pill input:checked+span{background:var(--accent);color:#001a26}.bulk-day-pill:hover span{color:#ffffffd9}.bulk-row-remove{background:transparent;border:1px solid rgba(255,255,255,.08);color:#fff6;width:28px;height:28px;padding:0;border-radius:6px;cursor:pointer;font-size:13px;line-height:1}.bulk-row-remove:hover{color:#ffb3b3;background:#ef44441f;border-color:#ef444466}.bulk-row-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.bulk-summary{font-size:13px;color:#ffb3b3;margin-top:10px;min-height:18px}.bulk-summary.success{color:#86efac}.add-client-row{display:flex;gap:8px;margin-bottom:10px}.add-client-row .btn-new-client,.add-client-row .btn-bulk-add{flex:1;margin-bottom:0}.btn-bulk-add{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 14px;font-size:15px;font-weight:700;letter-spacing:.01em;border-radius:12px;border:1px solid transparent;cursor:pointer;background:#f59e0b;color:#1a1306;box-shadow:0 4px 14px #f59e0b40,inset 0 1px #ffffff59;transition:transform .12s ease,box-shadow .2s ease,filter .2s ease;white-space:nowrap}.btn-bulk-add .plus{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#0000002e;font-size:16px;font-weight:900;line-height:1}.btn-bulk-add:hover{filter:brightness(1.05);box-shadow:0 6px 18px #f59e0b59,inset 0 1px #fff6}.btn-bulk-add:active{transform:translateY(1px);box-shadow:0 2px 8px #f59e0b40,inset 0 1px #ffffff4d}.btn-preferences,.btn-logout{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer;font-size:14px;padding:7px 12px;border-radius:8px;white-space:nowrap}.btn-preferences:hover{background:#3b82f61f;border-color:#3b82f673}.btn-logout:hover{background:#ef44441f;border-color:#ef444473;color:#ffb3b3}.prefs-section+.prefs-section{margin-top:14px}.prefs-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.prefs-actions .btn,.prefs-actions .btn-import{display:inline-flex;align-items:center;gap:6px}dialog.dialog-wide{width:min(1100px,96vw);max-height:92vh}dialog.dialog-wide .modal-body{display:block;grid-template-columns:none}.cc-grid-wrapper{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:10px}.cc-month{background:#0d162c99;border:1px solid var(--border);border-radius:12px;padding:10px 12px 12px}.cc-month-head{font-weight:700;font-size:14px;color:var(--accent);letter-spacing:.3px;text-align:center;margin-bottom:8px}.cc-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:10px;color:#ffffff73;text-align:center;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.cc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cc-day{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;font-size:12px;font-variant-numeric:tabular-nums;border-radius:6px;color:#ffffffd9}.cc-day.cc-empty{visibility:hidden}.cc-day.cc-weekend{color:#ffffff4d}.cc-day.cc-past{opacity:.5}.cc-day.cc-dose{background:var(--accent);color:#fff;font-weight:700}.cc-day.cc-dose.cc-past{opacity:.55}.cc-day.cc-today{outline:2px solid #fbbf24;outline-offset:-2px}.cc-legend{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#ffffffb3}.cc-legend-dot{width:12px;height:12px;border-radius:3px;display:inline-block}.cc-legend-dot.cc-dose{background:var(--accent)}.cc-legend-dot.cc-today{background:transparent;outline:2px solid #fbbf24;outline-offset:-2px}.btn-theme{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text);font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s ease,transform .15s ease}.btn-theme:hover{background:#38bdf81f;border-color:#38bdf873;transform:scale(1.05)}.btn-theme:active{transform:scale(.95)}[data-theme=light]{--bg: #f5f7fb;--panel: #ffffff;--muted: #f3f4f6;--card: #ffffff;--text: #1f2937;--text-muted: #6b7280;--border: #e2e8f0;--surface-elevated: #ffffff;--surface-soft: #f8fafc;color-scheme:light}[data-theme=light] body{background:linear-gradient(120deg,#eef2f7,#f5f7fb 60%,#fff);color:var(--text)}[data-theme=light] header.top{background:#ffffffe6;border-bottom:1px solid var(--border)}[data-theme=light] .panel{background:var(--surface-elevated);border:1px solid var(--border);box-shadow:0 1px 3px #0f172a0a}[data-theme=light] #tenantScreen,[data-theme=light] #authScreen{background:linear-gradient(140deg,#eef2f7,#f5f7fb 60%,#fff);color:var(--text)}[data-theme=light] .tenant-card,[data-theme=light] .auth-card{background:#fff;border:1px solid var(--border);box-shadow:0 10px 40px #0f172a1a;color:var(--text)}[data-theme=light] .tenant-btn{background-color:#f8fafc;border-color:var(--border);color:var(--text)}[data-theme=light] .tenant-btn:hover{background-color:#eff6ff;border-color:var(--accent)}[data-theme=light] dialog,[data-theme=light] dialog #clientForm,[data-theme=light] dialog form{background:#fff;color:var(--text)}[data-theme=light] dialog::backdrop{background:#0f172a73}[data-theme=light] .modal-head,[data-theme=light] .modal-foot{background:#f8fafc;border-color:var(--border)}[data-theme=light] .modal-section+.modal-section{border-top-color:var(--border)}[data-theme=light] .section-title,[data-theme=light] .modal-eyebrow,[data-theme=light] .field-label{color:#475569;opacity:1}[data-theme=light] input,[data-theme=light] textarea,[data-theme=light] select{background-color:#fff;color:var(--text);border-color:var(--border)}[data-theme=light] input::placeholder,[data-theme=light] textarea::placeholder{color:#1f293766}[data-theme=light] input:focus,[data-theme=light] textarea:focus,[data-theme=light] select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #38bdf82e}[data-theme=light] .filterbar input,[data-theme=light] .filterbar2 input{background-color:#f8fafc;border-color:var(--border);color:var(--text)}[data-theme=light] .filterbar input::placeholder,[data-theme=light] .filterbar2 input::placeholder{color:#1f293773}[data-theme=light] #filterName{background-color:#eff6ff;border-color:#38bdf866}[data-theme=light] #filterName:focus{background-color:#dbeafe}[data-theme=light] button,[data-theme=light] .btn{background-color:#fff;color:var(--text);border-color:var(--border)}[data-theme=light] button:hover:not(.btn-accent):not(.btn-bulk-add):not(.btn-theme):not(.btn-close):not(.tenant-btn),[data-theme=light] .btn:hover{background-color:#f1f5f9;border-color:#cbd5e1}[data-theme=light] .btn-accent{background-color:var(--accent);color:#00111a;border-color:transparent}[data-theme=light] .btn-accent:hover{background-color:#0ea5e9}[data-theme=light] .btn-close{background-color:transparent;color:var(--text)}[data-theme=light] .btn-close:hover{background-color:#f1f5f9}[data-theme=light] .btn-bulk-add{color:#5a3c00}[data-theme=light] .btn-logout,[data-theme=light] .btn-preferences{color:var(--text);background-color:#fff}[data-theme=light] .muted,[data-theme=light] .hint{color:#64748b}[data-theme=light] .pill{background-color:#f1f5f9;border-color:var(--border);color:var(--text)}[data-theme=light] .pill input:checked+span{color:#00111a}[data-theme=light] .pill:has(input:checked){background-color:#38bdf82e;border-color:var(--accent)}[data-theme=light] .client-card{background:#fff;background-image:none;border-color:var(--border);color:var(--text);box-shadow:0 1px 3px #0f172a0a}[data-theme=light] .client-card:hover{background:#f8fafc;border-color:#cbd5e1}[data-theme=light] .client-name{color:var(--text)}[data-theme=light] .client-id-badge{background:var(--accent);color:#00111a}[data-theme=light] .client-meta,[data-theme=light] .meta-label{color:#475569}[data-theme=light] .day,[data-theme=light] .dropzone{background-color:#fff;border-color:var(--border);color:var(--text)}[data-theme=light] .slot{background-color:#f1f5f9;border-color:var(--border);color:var(--text)}[data-theme=light] .slot-generated{background:#dbeafe;background-image:none;border-color:#93c5fd;opacity:1;color:var(--text)}[data-theme=light] .day .day-name,[data-theme=light] .day .day-date{color:var(--text)}[data-theme=light] .mini-cal{background-color:#fff;border-color:var(--border)}[data-theme=light] .mini-cal button,[data-theme=light] .mini-cal-grid>*{color:var(--text)}[data-theme=light] .bulk-table-wrap{border-color:var(--border);background-color:#fff}[data-theme=light] .bulk-table thead th{background-color:#f1f5f9;color:var(--text);border-color:var(--border)}[data-theme=light] .bulk-table tbody tr:nth-child(2n){background-color:#f8fafc}[data-theme=light] .bulk-table tbody tr{border-color:#f1f5f9}[data-theme=light] .bulk-table .bulk-cell input{background-color:#fff;color:var(--text);border-color:transparent}[data-theme=light] .bulk-table .bulk-cell input:focus{background-color:#eff6ff;border-color:var(--accent)}[data-theme=light] .bulk-days{background-color:#f1f5f9}[data-theme=light] .bulk-day-pill span{color:#1f293780}[data-theme=light] .bulk-day-pill:hover span{color:var(--text)}[data-theme=light] .bulk-cell-num{color:#1f293773}[data-theme=light] .cc-month{background-color:#f8fafc;border-color:var(--border)}[data-theme=light] .cc-day{color:var(--text)}[data-theme=light] .cc-day.cc-weekend{color:#1f29374d}[data-theme=light] .cc-day.cc-dose{color:#fff}[data-theme=light] .cc-weekdays,[data-theme=light] .cc-legend{color:#1f293799}[data-theme=light] #sync-indicator{color:#475569}[data-theme=light] .btn-theme{background:transparent;border-color:var(--border);color:var(--text)}[data-theme=light] .btn-theme:hover{background-color:#eff6ff}@media print{@page{size:A4 landscape;margin:8mm}#tenantScreen,#authScreen,.btn-theme,header.top,.layout>.panel:first-child{display:none!important}body{background:#fff;color:#111}.layout{display:block;padding:0;margin:0}.changelog-entry{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}.changelog-entry:last-child{border-bottom:none;margin-bottom:0}.changelog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.changelog-header strong{font-size:16px;color:var(--accent)}.changelog-date{font-size:12px;color:#94a3b8}.changelog-list{list-style:none;padding:0;margin:0}.changelog-list li{padding:8px 0 8px 24px;position:relative;line-height:1.6}.changelog-list li:before{content:"";position:absolute;left:0;top:14px;width:6px;height:6px;background:var(--accent);border-radius:50%}.calendar{border:none}.weekbar{border:none;padding:0 0 6mm}.mini-cal{display:none!important}.calendar-grid{gap:4mm;padding:0;grid-template-columns:repeat(5,1fr)}.day{border:1px solid #bbb;background:#fff;break-inside:avoid}.day>header{background:#f5f5f5;color:#111;border-bottom:1px solid #bbb;padding:6px 8px;gap:2px}.day-name{color:#111;font-size:11px;letter-spacing:.1em}.day-num{color:#111;font-size:24px}.day-month{color:#111;opacity:1;font-size:12px}.slot{border:1px solid #ddd;background:#fff;font-weight:600;font-size:9px;padding:2px 6px;line-height:1.25;gap:4px}.slot-generated{border:1px dashed #999;background:#f9f9f9;opacity:1}.slot .handle,.slot .remove,.slot .pattern-badge,.slot .notes-icon{display:none!important}.dropzone{padding:4px;gap:2px}.badge{border:none;background:none;color:#111}}
