*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}:root{--bg: #F2F2F7;--card: #FFFFFF;--primary: #1E3A5F;--text: #1C1C1E;--text2: #6E6E73;--text3: #AEAEB2;--sep: #D1D1D6;--sep-light: #E5E5EA;--slot-green: #34C759;--open-yellow: #1C1C1E;--no-su-red: #FF3B30;--today-blue: #007AFF;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 20px)}html{height:100%;overflow:hidden;background:var(--primary)}body{height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text);background:var(--bg);overscroll-behavior:none;user-select:none;-webkit-user-select:none}button{font-family:inherit;color:inherit;cursor:pointer;border:none;background:none;-webkit-appearance:none}#root{height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--primary);padding-top:var(--safe-t)}.screen{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.scroll-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(24px + var(--safe-b))}.app-header{background:var(--primary);color:#fff;padding:12px 16px;display:flex;align-items:center;min-height:52px;gap:8px;flex-shrink:0}.header-title{font-size:17px;font-weight:600;flex:1;text-align:center}.back-btn{display:flex;align-items:center;gap:3px;color:#fff;font-size:15px;min-width:44px;min-height:44px;padding:8px 4px;flex-shrink:0}.back-btn:active{opacity:.6}.week-section{margin-top:20px}.week-section:first-child{margin-top:10px}.week-hdr{padding:0 16px 5px;font-size:12px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.07em}.week-days-card{margin:0 16px;background:var(--card);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #00000017}.day-row-container{border-bottom:1px solid var(--sep-light)}.day-row-container:last-child{border-bottom:none}.day-row-btn{display:flex;align-items:center;padding:0 14px;min-height:52px;width:100%;background:var(--card);text-align:left;gap:10px;transition:background .12s ease}.day-row-btn:not([disabled]):active{background:#f0f0f5}.day-row-btn.day-row-expanded{background:#f4f7ff}.dr-dow{font-size:12px;font-weight:700;color:var(--text2);width:30px;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}.dr-date{font-size:15px;font-weight:500;color:var(--text);width:52px;flex-shrink:0}.dr-date-today{color:var(--today-blue);font-weight:700}.dr-right{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:6px;overflow:hidden}.dr-count{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;flex-shrink:0}.dr-slots{font-size:12px;font-weight:600;color:var(--slot-green);white-space:nowrap;flex-shrink:0}.dr-no-su{font-size:11px;font-weight:800;color:var(--no-su-red);letter-spacing:.05em}.dr-dots{display:flex;gap:4px;flex-shrink:0}.dr-dot{width:8px;height:8px;border-radius:50%}.dr-chevron{flex-shrink:0;color:var(--text3);transition:transform .2s ease}.dr-chevron.dr-chevron-open{transform:rotate(90deg)}.day-expand-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .22s ease}.day-expand-wrap.open{grid-template-rows:1fr}.day-expand-inner{overflow:hidden}.wsb-block{border-top:1px solid var(--sep-light)}.wsb-block:first-child{border-top:1px solid var(--sep)}.wsb-header{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#fafafa;border-left:3px solid}.wsb-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.wsb-name{font-size:13px;font-weight:600;color:var(--text)}.wsb-row{display:flex;align-items:center;padding:0 14px 0 26px;min-height:46px;width:100%;background:var(--card);border-bottom:1px solid var(--sep-light);text-align:left;gap:8px}.wsb-row:last-child{border-bottom:none}.wsb-row:not(.wsb-slot):not([disabled]):active{background:#eef3ff}.wsb-slot{opacity:.55;pointer-events:none}.wsb-time{font-size:13px;font-weight:500;color:var(--text2);width:68px;flex-shrink:0;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.wsb-sep{font-size:12px;color:var(--text3);flex-shrink:0}.wsb-proc{flex:1;font-size:14px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wsb-slot .wsb-proc{color:var(--slot-green);font-weight:400;font-style:italic}.wsb-chevron{color:var(--text3);flex-shrink:0}.pub-footer{display:flex;flex-direction:column;align-items:center;gap:2px;padding:18px 16px 4px}.pub-label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}.pub-time{font-size:13px;color:var(--text2)}.detail-phys-banner{display:flex;align-items:center;gap:14px;padding:16px}.detail-phys-avatar{width:50px;height:50px;border-radius:50%;background:#ffffff38;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:.02em}.detail-phys-info{display:flex;flex-direction:column;gap:3px}.detail-phys-name{font-size:17px;font-weight:600;color:#fff}.detail-phys-date{font-size:13px;color:#ffffffc7}.detail-card{background:var(--card);border-radius:12px;margin:12px 16px 0;overflow:hidden;box-shadow:0 1px 3px #00000014}.detail-row{display:flex;justify-content:space-between;align-items:flex-start;padding:13px 16px;border-bottom:1px solid var(--sep-light);gap:16px}.detail-row:last-child{border-bottom:none}.detail-label{font-size:15px;color:var(--text2);flex-shrink:0;min-width:76px}.detail-value{font-size:15px;color:var(--text);font-weight:500;text-align:right;flex:1}.detail-mono{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-weight:400;color:var(--text2)}.detail-disclaimer{margin:10px 16px 0;padding:8px 0;text-align:center;font-size:11px;color:var(--text3);letter-spacing:.02em}.day-empty{padding:56px 24px;text-align:center;color:var(--text2)}.day-empty p{font-size:17px;font-weight:500}.month-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:0 1px}.month-dow-row{display:flex;flex-shrink:0;padding:3px 0 2px;border-bottom:1px solid var(--sep-light)}.month-dow{flex:1;text-align:center;font-size:10px;font-weight:700;color:var(--text2);letter-spacing:.04em;text-transform:uppercase}.month-grid{flex:1;display:flex;flex-direction:column;overflow:hidden}.month-week{flex:1;display:flex;border-top:1px solid var(--sep-light);min-height:0}.month-cell{flex:1;display:flex;flex-direction:column;padding:2px 1px 1px 2px;border-right:1px solid var(--sep-light);overflow:hidden;min-width:0;min-height:0;background:var(--bg)}.month-cell:last-child{border-right:none}.month-cell-empty{background:var(--bg);opacity:.4}.month-cell-surgery{background:var(--card);cursor:pointer}.month-cell-surgery:active{background:#eef3ff}.month-cell-nosu{background:#fff5f5}.month-day-num{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:10px;font-weight:500;color:var(--text2);font-variant-numeric:tabular-nums;margin-bottom:1px;line-height:1}.month-day-today{background:var(--today-blue);color:#fff;font-weight:700}.month-nosu-label{font-size:7.5px;font-weight:800;color:var(--no-su-red);letter-spacing:.05em;line-height:1.3}.month-event{display:block;font-size:9px;font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:clip}.sched-today-badge{font-size:11px;font-weight:500;color:#ffffffb3}.sched-nav-pair{display:flex;align-items:center;min-width:52px;justify-content:flex-end}.sched-nav-btn{color:#fff;display:flex;align-items:center;justify-content:center;min-width:26px;min-height:44px;opacity:.9}.sched-nav-btn:disabled{opacity:.28}.sched-nav-btn:active{opacity:.55}.sched-summary{background:var(--card);display:flex;align-items:center;padding:7px 16px;border-bottom:1px solid var(--sep-light);flex-shrink:0;font-size:13px}.summary-cases{font-weight:600;color:var(--text)}.summary-slots{color:var(--slot-green);font-weight:500}.summary-surgeons{display:flex;align-items:center;gap:4px}.summary-dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle}.banner-no-su{margin:16px;padding:12px 14px;background:#fff0f0;border-radius:10px;color:var(--no-su-red);font-size:14px;font-weight:700;letter-spacing:.03em;text-align:center}.banner-out{margin:10px 16px 0;padding:9px 14px;background:var(--card);border-radius:10px;border-left:3px solid;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text)}.out-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.surgeon-group{margin-top:10px;background:var(--card);border-radius:12px;margin-left:16px;margin-right:16px;overflow:hidden;box-shadow:0 1px 3px #00000012}.surgeon-header{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#fafafa;border-left:3px solid}.surgeon-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.surgeon-name{font-size:13px;font-weight:600;color:var(--text)}.sched-row{display:flex;flex-direction:column;padding:8px 14px 7px;width:100%;background:var(--card);border-top:1px solid var(--sep-light);gap:2px}.slot-row{opacity:.55}.sched-row-top{display:flex;align-items:baseline;gap:8px}.sched-row-bot{display:flex;align-items:baseline;padding-left:76px;gap:5px;overflow:hidden}.sched-time{font-size:13px;font-weight:500;color:var(--text2);width:68px;flex-shrink:0;font-variant-numeric:tabular-nums}.sched-slot-name{font-size:15px;font-weight:600;color:var(--open-yellow)}.sched-pt-name{flex:1;font-size:15px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sched-pt-phone{font-size:13px;color:var(--text2);font-variant-numeric:tabular-nums;flex-shrink:0;white-space:nowrap}.sched-pt-dob{font-size:12px;color:var(--text3);font-variant-numeric:tabular-nums;flex-shrink:0;white-space:nowrap}.sched-row-sep{font-size:11px;color:var(--text3);flex-shrink:0}.sched-pt-proc{font-size:12px;font-weight:500;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.cal-header-title{font-size:15px;font-weight:700;color:#fff;flex-shrink:0;white-space:nowrap}.cal-filter-pills{flex:1;display:flex;flex-direction:row;gap:5px;margin-left:10px}.cal-filter-bar{display:flex;flex-direction:row;gap:6px;padding:5px 12px 7px;flex-shrink:0;background:var(--primary)}.cal-filter-pill{flex:1;height:28px;border-radius:14px;font-size:12px;font-weight:600;color:#ffffffb3;background:#ffffff21;border:none;display:flex;align-items:center;justify-content:center;letter-spacing:.03em;transition:none;-webkit-tap-highlight-color:transparent}.cal-filter-pill:active{opacity:.7}.cal-filter-pill-active{font-weight:700}.cal-nav-bar{display:flex;flex-direction:row;align-items:center;padding:4px 10px;flex-shrink:0;background:var(--primary);gap:6px;border-bottom:1px solid rgba(255,255,255,.08)}.cal-nav-btn{color:#ffffffd9;display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;flex-shrink:0;border-radius:8px;-webkit-tap-highlight-color:transparent}.cal-nav-btn:active{background:#ffffff1f}.cal-today-btn{font-size:13px;font-weight:600;color:#ffffffd9;padding:0 10px;min-height:32px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;-webkit-tap-highlight-color:transparent}.cal-today-btn:active{background:#ffffff1f}.cal-nav-spacer{flex:1}.cal-toggle-wrap{display:flex;border-radius:7px;overflow:hidden;border:1.5px solid rgba(255,255,255,.28);flex-shrink:0}.cal-toggle-btn{font-size:12px;font-weight:600;color:#fff9;padding:0 11px;min-height:26px;letter-spacing:.03em;-webkit-tap-highlight-color:transparent}.cal-toggle-btn+.cal-toggle-btn{border-left:1.5px solid rgba(255,255,255,.28)}.cal-toggle-active{background:#ffffffe6;color:var(--primary);font-weight:700}.cal-body{flex:1;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--bg);gap:1px}.cal-week{flex:1;display:flex;flex-direction:column;min-height:100px;background:var(--bg)}.cal-week-label{flex-shrink:0;height:20px;display:flex;align-items:center;padding:0 10px;font-size:10.5px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.06em}.cal-days-row{flex:1;display:flex;flex-direction:row;min-height:0;margin:0 8px 4px;border-radius:11px;overflow:hidden;box-shadow:0 1px 3px #00000017}.cal-day{flex:1;display:flex;flex-direction:column;align-items:stretch;padding:6px 4px 4px;min-width:0;background:var(--card);border-right:1px solid var(--sep-light);cursor:pointer;-webkit-tap-highlight-color:transparent;overflow:hidden}.cal-day:last-child{border-right:none}.cal-day:active{background:#eef3ff}.cal-day-empty{cursor:default;background:#f7f7fb;opacity:.55}.cal-day-nosu{cursor:default;background:#fff5f5}.cal-day-today{background:#edf5ff}.cal-day-dow{font-size:9px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.cal-day-num{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0}.cal-day-num-today{background:var(--today-blue);color:#fff;font-weight:700}.cal-badges{display:flex;flex-direction:row;flex-wrap:wrap;gap:3px;justify-content:center;flex-shrink:0;margin-bottom:3px;max-width:100%}.cal-badge{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:7.5px;font-weight:800;color:#fff;letter-spacing:-.01em;flex-shrink:0}.cal-day-count{font-size:10px;font-weight:600;color:var(--text);flex-shrink:0;line-height:1.4}.cal-day-slots{font-size:9.5px;font-weight:600;color:var(--slot-green);flex-shrink:0;line-height:1.4}.cal-day-nosu-label{font-size:8px;font-weight:800;color:var(--no-su-red);letter-spacing:.06em;flex-shrink:0;margin-top:2px}.cal-day-hdr{display:flex;align-items:center;gap:3px;flex-shrink:0;margin-bottom:3px}.cal-case-list{flex:1;position:relative;overflow:hidden;min-height:0}.cal-case-line{position:absolute;left:0;right:0;display:block;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dl-card{margin:8px 14px 0;background:var(--card);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #00000017}.dl-row-wrap{border-bottom:1px solid var(--sep-light)}.dl-row-wrap:last-child{border-bottom:none}.dl-summary{display:flex;align-items:center;padding:0 12px;min-height:44px;width:100%;background:var(--card);text-align:left;gap:7px;transition:background .1s ease}.dl-summary:not([disabled]):active{background:#f0f0f5}.dl-summary-open{background:#f4f7ff}.dl-summary-nosu{pointer-events:none}.dl-dow{font-size:10px;font-weight:700;color:var(--text2);width:24px;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}.dl-date{font-size:13px;font-weight:500;color:var(--text);width:44px;flex-shrink:0;font-variant-numeric:tabular-nums}.dl-date-today{color:var(--today-blue);font-weight:700}.dl-nosu-badge{font-size:9.5px;font-weight:800;color:var(--no-su-red);letter-spacing:.06em}.dl-count{font-size:12px;font-weight:600;color:var(--text);flex-shrink:0;min-width:20px}.dl-slot-ct{font-size:10px;font-weight:600;color:var(--slot-green)}.dl-dots{display:flex;gap:3px;flex-shrink:0}.dl-dot{width:7px;height:7px;border-radius:50%}.dl-preview{flex:1;display:flex;flex-wrap:nowrap;gap:5px;overflow:hidden;align-items:center;min-width:0}.dl-prev-item{font-size:10px;font-weight:500;white-space:nowrap;flex-shrink:0}.dl-chevron{flex-shrink:0;color:var(--text3);transition:transform .2s ease}.dl-chevron-open{transform:rotate(90deg)}.dl-expand-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .22s ease}.dl-expand-wrap.open{grid-template-rows:1fr}.dl-expand-inner{overflow:hidden}.dl-phys-block{border-top:1px solid var(--sep-light)}.dl-phys-block:first-child{border-top:1px solid var(--sep)}.dl-phys-hdr{display:flex;align-items:center;gap:7px;padding:5px 12px;background:#fafafa;border-left:3px solid}.dl-phys-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dl-phys-name{font-size:12px;font-weight:600;color:var(--text);flex:1}.dl-open-slots{font-size:10px;color:var(--slot-green);font-weight:600}.dl-pt-row{display:flex;align-items:flex-start;padding:5px 12px 5px 18px;border-top:1px solid var(--sep-light);gap:8px;background:var(--card)}.dl-pt-time{font-size:11px;font-weight:500;color:var(--text2);flex-shrink:0;width:56px;font-variant-numeric:tabular-nums;padding-top:1px;line-height:1.4}.dl-pt-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.dl-pt-top{display:flex;justify-content:space-between;align-items:baseline;gap:6px}.dl-pt-name{font-size:13px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dl-pt-phone{font-size:11px;color:var(--text2);flex-shrink:0;font-variant-numeric:tabular-nums;white-space:nowrap}.dl-pt-bot{display:flex;align-items:baseline;gap:7px}.dl-pt-dob{font-size:11px;color:var(--text3);flex-shrink:0;font-variant-numeric:tabular-nums;white-space:nowrap}.dl-pt-proc{font-size:11px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
