:root{--brand:#0f4c4c;--brand-soft:#0f766e;--action:#0f766e;--action-hover:#115e59;--bg:#f4f7f6;--bg-accent:#e8efed;--panel:#fff;--text:#172b2a;--muted:#5f7472;--border:#d7e2df;--status-scheduled-bg:#eff6ff;--status-scheduled-fg:#1d4ed8;--status-scheduled-edge:#3b82f6;--status-confirmed-bg:#ecfdf5;--status-confirmed-fg:#047857;--status-confirmed-edge:#10b981;--status-completed-bg:#ecfdf5;--status-completed-fg:#065f46;--status-completed-edge:#059669;--status-pending-bg:#fffbeb;--status-pending-fg:#b45309;--status-pending-edge:#f59e0b;--status-cancelled-bg:#fef2f2;--status-cancelled-fg:#b91c1c;--status-cancelled-edge:#ef4444;--danger:#b91c1c;--saturday:#f0f6ff;--saturday-edge:#60a5fa;--sunday:#fff7f0;--sunday-edge:#f0a060;--holiday:#fff5f0;--holiday-edge:#e07a5f;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow:0 1px 2px #0f4c4c0f, 0 4px 12px #0f4c4c0f;--shadow-sm:0 1px 2px #0f4c4c0d;--control-h:2.5rem;--touch-min:2.75rem;--content-max:1440px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);color:var(--text);background:var(--bg);font-family:Manrope,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.45}*{box-sizing:border-box}[hidden],#authPanel[hidden],#appShell[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{min-height:100dvh;padding-bottom:var(--safe-bottom);background:linear-gradient(180deg, #eaf1ef 0%, var(--bg) 28%, var(--bg) 100%);background-attachment:fixed;margin:0}button,input,select,textarea,a.button-link,a.ghost-link{font:inherit}button,a.button-link{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);min-height:var(--control-h);color:var(--text);justify-content:center;align-items:center;gap:.35rem;padding:.5rem .85rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,color .12s;display:inline-flex}button:hover:not(:disabled),a.button-link:hover{background:#f0f5f4;border-color:#c5d4d0}button:disabled{opacity:.4;cursor:not-allowed}button.primary,a.button-link.primary{background:var(--action);border-color:var(--action);color:#fff;font-weight:700}button.primary:hover:not(:disabled){background:var(--action-hover);border-color:var(--action-hover)}button.danger{color:var(--danger);background:#fff5f4;border-color:#f0c4c0}button.danger:hover:not(:disabled){background:#fee4e2}button.secondary{background:0 0}button.logout-btn{color:var(--muted);font-weight:600}:focus-visible{outline:2px solid var(--action);outline-offset:2px}button:focus:not(:focus-visible),a:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible){outline:none}.brand-mark,.brand-link{letter-spacing:-.02em;font-family:inherit;font-weight:800}.brand-mark{color:var(--brand);margin:0 0 .35rem;font-size:1.05rem}.brand-link{color:inherit;font-size:1.05rem;text-decoration:none}.auth-card{background:var(--panel);width:min(420px,100% - 2rem);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);margin:max(8vh,2rem) auto}.auth-card:not([hidden]){gap:.85rem;display:grid}.auth-card form{gap:.9rem}.auth-card #googleLoginBtn,.auth-card button.primary,.auth-card button.secondary{box-sizing:border-box;width:100%}.auth-card h1,.page-intro h1,.toolbar h1,.date-controls h1,.modal h2{letter-spacing:-.02em;color:var(--text);font-family:inherit;font-weight:800}.auth-card h1{margin:0 0 .35rem;font-size:1.45rem}.auth-card>p{color:var(--muted);margin:0 0 1.25rem;font-size:.92rem}.auth-card form,.modal form{gap:.9rem;display:grid}label{color:var(--text);gap:.3rem;font-size:.84rem;font-weight:600;display:grid}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:var(--control-h);color:var(--text);background:#fff;padding:.55rem .75rem}textarea{resize:vertical;min-height:92px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--action)}.message,.sync-status,.privacy-note,.patients-count,.phone-preview{color:var(--muted);font-size:.875rem}.topbar{justify-content:space-between;gap:var(--space-3);background:var(--brand);color:#fff;padding:calc(.7rem + var(--safe-top)) max(1rem, calc((100vw - var(--content-max)) / 2)) .7rem;box-shadow:var(--shadow-sm);z-index:40;align-items:center;display:flex;position:sticky;top:0}.brand-block{flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;display:flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.role-badge,.page-chip{white-space:nowrap;background:#ffffff1a;border:1px solid #ffffff47;border-radius:999px;margin-left:.1rem;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.ghost-link{color:#fff;border-radius:var(--radius-sm);min-height:var(--touch-min);border:1px solid #ffffff47;align-items:center;padding:.4rem .75rem;font-size:.84rem;font-weight:600;text-decoration:none;display:inline-flex}.ghost-link:hover{background:#ffffff1f}.topbar button{color:#fff;min-height:var(--touch-min);background:#ffffff1a;border-color:#ffffff38}.topbar button:hover:not(:disabled){background:#ffffff2e}.topbar .logout-btn{color:#ffffffd9;background:0 0;border-color:#ffffff2e;font-weight:500}.more-menu{position:relative}.more-menu-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:11rem;box-shadow:var(--shadow);z-index:50;flex-direction:column;gap:.35rem;padding:.45rem;display:none;position:absolute;top:calc(100% + .35rem);right:0}.more-menu.is-open .more-menu-panel{display:flex}.more-menu-panel button{border-color:var(--border);width:100%;color:var(--text);min-height:var(--touch-min);background:#fff;justify-content:flex-start}.more-menu-panel button:hover:not(:disabled){background:#f0f5f4}.more-menu-panel .logout-btn{color:var(--muted);background:0 0;border-color:#0000}@media (width>=960px){.more-menu-btn{display:none}.more-menu-panel{min-width:0;box-shadow:none;background:0 0;border:0;flex-direction:row;gap:.45rem;padding:0;display:flex;position:static}.more-menu-panel button{color:#fff;background:#ffffff1a;border-color:#ffffff38;width:auto}.more-menu-panel button:hover:not(:disabled){background:#ffffff2e}.more-menu-panel .logout-btn{color:#ffffffd9;background:0 0;border-color:#ffffff2e}}.toolbar,.filters-shell,.sync-status,.calendar-scroll,.legend,.page-intro,.patients-table-wrap,.patients-count,.work-briefing{width:min(var(--content-max), calc(100% - 2rem));margin-left:auto;margin-right:auto}.toolbar{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.toolbar-row{gap:var(--space-3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.date-controls{flex-wrap:wrap;flex:1;align-items:center;gap:.45rem;min-width:0;display:flex}.date-controls h1{flex:10rem;min-width:0;margin:0;font-size:clamp(1.05rem,2.2vw,1.35rem);line-height:1.25}.date-nav{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.date-nav button{min-width:var(--touch-min);min-height:var(--touch-min);padding:.4rem .65rem}.jump-date-field{color:var(--muted);gap:.1rem;font-size:.72rem;font-weight:600;display:grid}.jump-date-field input[type=date]{min-width:9.25rem;min-height:var(--touch-min);font-size:.875rem}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.toolbar-actions .primary{order:10}.view-switcher{border:1px solid var(--border);border-radius:var(--radius);background:#e4ecea;gap:.15rem;padding:.2rem;display:inline-flex}.view-switcher button{border-radius:var(--radius-sm);min-height:2.35rem;color:var(--muted);box-shadow:none;background:0 0;border:0;padding:.4rem .85rem;font-weight:600}.view-switcher button:hover:not(:disabled){color:var(--text);background:#ffffff8c}.view-switcher button.is-active{box-shadow:var(--shadow-sm);font-weight:700;background:var(--panel)!important;color:var(--brand)!important}.is-active:not(.view-switcher button){background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important}.page-intro{justify-content:space-between;gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;align-items:end;display:flex}.page-intro h1{margin:0;font-size:1.4rem}.page-intro p{color:var(--muted);margin:.3rem 0 0;font-size:.9rem}.legend{margin-top:var(--space-3);flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.legend-item{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.legend-item:before{content:"";border-radius:999px;width:.55rem;height:.55rem}.legend-item.saturday:before{background:var(--saturday-edge)}.legend-item.sunday:before{background:var(--sunday-edge)}.legend-item.holiday:before{background:var(--holiday-edge)}.work-briefing{gap:var(--space-2);margin-top:var(--space-3);margin-bottom:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.briefing-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);gap:.35rem;padding:.65rem .85rem;display:grid}.briefing-card.has-issues{background:#fffbf5;border-color:#f0c48a}.briefing-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.briefing-head strong{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:700}.briefing-metrics{flex-wrap:wrap;align-items:baseline;gap:1rem;display:flex}.briefing-metric{color:var(--muted);align-items:baseline;gap:.3rem;font-size:.82rem;display:inline-flex}.briefing-metric em{color:var(--text);letter-spacing:-.02em;font-size:1.25rem;font-style:normal;font-weight:800}.briefing-card ul{color:#9a3412;margin:.15rem 0 0;padding-left:1.05rem;font-size:.8rem}.briefing-card p{color:var(--muted);margin:0;font-size:.8rem}.filters-shell{margin-top:var(--space-3)}.filters-toggle{width:100%;margin-bottom:var(--space-2);justify-content:space-between;display:none}.filters-toggle .filters-count{color:var(--action);font-size:.8rem;font-weight:700}.filters{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;padding:.75rem;display:grid}.filters label{min-width:0}.search-field-lg{min-width:min(420px,100%)}.sync-status{min-height:1.25rem;margin-top:.55rem;margin-bottom:0}.calendar-scroll{padding-bottom:var(--space-8);margin-top:.75rem}.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;display:grid}.calendar.single-day{grid-template-columns:1fr}.calendar.week-view{grid-template-columns:repeat(7,minmax(0,1fr))}.day{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-height:9.5rem;box-shadow:var(--shadow-sm);border-top:3px solid #0000;flex-direction:column;gap:.25rem;padding:.55rem;display:flex}.day.saturday{background:linear-gradient(180deg, var(--saturday), #fff 42%);border-top-color:var(--saturday-edge)}.day.sunday{background:linear-gradient(180deg, var(--sunday), #fff 42%);border-top-color:var(--sunday-edge)}.day.holiday{background:linear-gradient(180deg, var(--holiday), #fff 42%);border-top-color:var(--holiday-edge)}.day.is-other-month{opacity:.5}.day-heading{justify-content:space-between;align-items:flex-start;gap:.4rem;margin-bottom:.2rem;display:flex}.day-heading-meta{gap:.1rem;min-width:0;display:grid}.day-heading time{color:var(--text);font-size:.84rem;font-weight:700}.day-tag{color:var(--muted);font-size:.68rem;font-weight:600}.day-capacity{color:var(--muted);letter-spacing:.01em;font-size:.7rem;font-weight:600}.day-full .day-capacity{color:#9a3412}.day-heading>button{min-width:var(--touch-min);min-height:var(--touch-min);color:var(--action);border-radius:var(--radius-sm);flex-shrink:0;padding:0;font-size:1.15rem;font-weight:700}.day-heading>button:disabled{opacity:.3;color:var(--muted)}.appointment{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border);border-left:3px solid var(--status-scheduled-edge);background:#fafcfb;gap:.15rem;width:100%;min-width:0;margin:.2rem 0 0;padding:.45rem .55rem;font-size:.8rem;display:grid;overflow:hidden}.appointment-name{color:var(--text);overflow-wrap:anywhere;word-break:break-word;font-size:.84rem;font-weight:700;line-height:1.25}.appointment-side{color:var(--muted);font-size:.75rem;font-weight:600}.appointment-procedure{color:var(--text);overflow-wrap:anywhere;font-size:.75rem}.status-badge{letter-spacing:.01em;border:1px solid #0000;border-radius:999px;align-self:start;width:fit-content;max-width:100%;margin-top:.1rem;padding:.12rem .45rem;font-size:.68rem;font-weight:700;line-height:1.3;display:inline-flex}.status-badge.status-scheduled{background:var(--status-scheduled-bg);color:var(--status-scheduled-fg);border-color:#bfdbfe}.status-badge.status-confirmed{background:var(--status-confirmed-bg);color:var(--status-confirmed-fg);border-color:#a7f3d0}.status-badge.status-completed{background:var(--status-completed-bg);color:var(--status-completed-fg);border-color:#a7f3d0}.status-badge.status-cancelled,.status-badge.status-no_show{background:var(--status-cancelled-bg);color:var(--status-cancelled-fg);border-color:#fecaca}.appointment[data-status=scheduled]{border-left-color:var(--status-scheduled-edge)}.appointment[data-status=confirmed]{border-left-color:var(--status-confirmed-edge);background:#f7fcf9}.appointment[data-status=completed]{border-left-color:var(--status-completed-edge);background:#f5faf7}.appointment[data-status=cancelled],.appointment[data-status=no_show]{border-left-color:var(--status-cancelled-edge);opacity:.9;background:#fff8f7}.appointment-phone,.appointment-author{color:var(--muted);overflow-wrap:anywhere;font-size:.74rem}.appointment-author{font-weight:500}.appointment-phone a{color:var(--brand-soft);font-weight:600;text-decoration:none}.appointment-phone a:hover{text-decoration:underline}.appointment-actions{margin-top:.1rem}button.linkish{color:var(--brand-soft);background:0 0;border:0;min-height:auto;padding:.15rem 0;font-size:.74rem;font-weight:600;text-decoration:underline}.appointment-phone.is-missing,.history-phone.is-missing{color:#9a3412;font-weight:600}.appointment-meta{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--muted);background:#f4f8f7;margin:0;padding:.6rem .75rem;font-size:.875rem}.day-slots{gap:.45rem;margin-top:.3rem;display:grid}.slot-empty,.slot-filled{text-align:left;border-radius:var(--radius);width:100%;min-height:var(--touch-min);gap:.15rem;padding:.65rem .75rem;display:grid}.slot-empty{color:var(--muted);background:#ffffff8c;border:1px dashed #a8c2bc}.slot-filled.appointment{margin:0}.slot-index{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:700}.side-field{border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:.65rem .8rem}.side-field legend{padding:0 .3rem;font-size:.84rem;font-weight:700}.required-mark{color:var(--danger)}.side-options{flex-wrap:wrap;gap:.65rem;display:flex}.side-option{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:var(--touch-min);background:#fff;align-items:center;gap:.35rem;padding:.4rem .7rem;font-weight:600;display:inline-flex}.modal{border-radius:var(--radius-lg);width:min(560px,100% - 1.5rem);max-height:calc(100dvh - 1.5rem);box-shadow:var(--shadow);background:#fff;border:0;padding:0;overflow:auto}.modal-wide{width:min(680px,100% - 1.5rem)}.modal::backdrop{background:#0f4c4c6b}.modal form{padding:1.1rem}.modal header,.modal footer,.modal-footer,.footer-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.modal-footer{width:100%}.footer-actions{margin-left:auto}.modal h2{margin:0;font-size:1.15rem}.modal header button[aria-label=Zamknij]{min-width:var(--touch-min);min-height:var(--touch-min);border-radius:var(--radius-sm);padding:0;font-size:1.25rem}.two-columns{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.phone-preview{border-radius:var(--radius-sm);color:var(--brand);background:#eef7f4;border:1px solid #c9e0d9;margin:-.25rem 0 0;padding:.55rem .7rem;font-weight:700}.referral-preview{gap:.9rem;margin-top:.4rem;display:grid}.referral-upload-row{grid-template-columns:1fr auto;align-items:end;gap:.65rem;display:grid}.referral-file-label{min-width:0}.referral-upload-row .primary{white-space:nowrap;height:fit-content}.referral-match,.referral-confidence{border-radius:var(--radius-sm);color:var(--brand);background:#eef7f4;margin:0;padding:.6rem .75rem;font-size:.875rem}.patient-picker{gap:.4rem;width:100%;display:grid}.patient-picker-controls{align-items:center;gap:.4rem;display:flex}.patient-picker-controls input[type=search]{flex:1;min-width:0}.patient-search-results{border:1px solid var(--border);border-radius:var(--radius);max-height:220px;box-shadow:var(--shadow);background:#fff;overflow:auto}.patient-search-item{border:0;border-bottom:1px solid var(--border);text-align:left;width:100%;min-height:var(--touch-min);background:#fff;border-radius:0;gap:.1rem;padding:.65rem .75rem;display:grid}.patient-search-item:last-child{border-bottom:0}.patient-search-item:hover,.patient-search-item.is-active{background:#eef7f4}.patient-search-item strong{font-weight:700}.patient-search-item span{color:var(--muted);font-size:.78rem}.patient-search-empty{color:var(--muted);gap:.5rem;padding:.75rem;font-size:.875rem;display:grid}.patient-search-empty button{justify-self:start}.selected-patient-label{color:var(--brand-soft);margin:0;font-size:.875rem;font-weight:600}.patients-table-wrap{margin-top:var(--space-4);background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border);-webkit-overflow-scrolling:touch;overflow:auto}.patients-table{border-collapse:collapse;width:100%}.patients-table th,.patients-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:.75rem .9rem}.patients-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f4f8f7;font-size:.75rem;font-weight:700}.patients-table tr:last-child td{border-bottom:0}.patients-empty{color:var(--muted);padding:1.25rem}.phone-link{color:var(--brand-soft);font-weight:600;text-decoration:none}.patients-count{margin:.45rem auto 0;font-weight:600}.history-body{padding:0 1.1rem 1rem}.history-list{gap:.4rem;margin:.45rem 0 0;padding-left:1.05rem;display:grid}.field-with-action,.row-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}@media (width<=1100px){.calendar-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.calendar.week-view{grid-template-columns:repeat(7,minmax(9.5rem,1fr));min-width:46rem}}@media (width<=960px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filters-toggle{display:inline-flex}.filters-shell:not(.is-open) .filters{display:none}.work-briefing{grid-template-columns:1fr 1fr}.calendar:not(.week-view):not(.single-day){grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.toolbar-row{align-items:stretch}.date-controls{width:100%}.date-controls h1{flex:100%;order:-1;font-size:1.1rem}.toolbar-actions{width:100%}.toolbar-actions button,.toolbar-actions a.button-link{min-height:var(--touch-min);flex:auto}.toolbar-actions .primary{flex:100%}.work-briefing,.filters,.two-columns,.calendar:not(.week-view),.calendar.single-day,.referral-upload-row{grid-template-columns:1fr}.topbar{align-items:flex-start}.page-intro{flex-direction:column;align-items:stretch}body{overflow-x:hidden}}@media (width<=400px){.view-switcher{width:100%}.view-switcher button{flex:1;padding-inline:.5rem}.ghost-link{padding-inline:.55rem;font-size:.78rem}}@media print{.topbar,.toolbar-actions,.filters-shell,.filters-toggle,.more-menu-btn,.legend,.work-briefing,.sync-status{display:none!important}body{background:#fff}.day{break-inside:avoid;box-shadow:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
