
:root{
  --bg:#f5f6f7; --card:#fff; --line:#e5e8eb; --text:#202124; --muted:#6b737b;
  --primary:#03c75a; --primary2:#21d46b; --dark:#00a94f; --soft:#eaf8ef;
  --warn:#b87332; --danger:#b95353; --blue:#4b7191;
}
.income-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.income-print{border:1px solid #b9ebcf;border-radius:10px;background:#f1fcf5;color:var(--primary);padding:8px 10px;font-size:11px;font-weight:850}.record-list-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 100px auto;gap:7px;align-items:center}.record-list-toolbar .search{margin-bottom:10px}.record-list-toolbar select{border:1px solid var(--line);border-radius:10px;padding:11px 7px;background:#fff;color:var(--text);margin-bottom:10px}.income-year-row{cursor:pointer}.income-year-row:hover{background:#f7fcf9}.income-year-row button{border:0;background:transparent;color:var(--primary);font-weight:850;padding:0}.income-hint{font-size:11px;color:var(--muted);font-weight:500}

.center-switch-entry{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:4px}.center-switch-entry.current{border-color:var(--primary);background:#f1fcf5}.center-switch-entry .center-switch-item{flex:1;border:0;background:transparent;padding:10px;text-align:left}.center-switch-entry .center-switch-actions{display:flex;align-items:center;gap:6px;padding-right:5px}.center-switch-entry .center-switch-actions em{border-radius:999px;background:var(--soft);padding:7px 9px;color:var(--primary);font-size:11px;font-style:normal;font-weight:850;white-space:nowrap}.center-switch-entry.current .center-switch-actions em{background:var(--primary);color:#fff}.center-inline-delete{border:1px solid #ffd1cd;border-radius:999px;background:#fff5f4;padding:7px 9px;color:#d93025;font-size:11px;font-weight:850;white-space:nowrap}

@media (min-width:900px){
  .desktop-schedule-tabs{display:flex;gap:8px;margin:0 0 14px}.desktop-schedule-tabs button{min-width:92px;border:1px solid var(--primary);border-radius:8px;background:#fff;padding:10px 14px;color:var(--dark);font-weight:850}.desktop-schedule-tabs button.active{background:var(--primary);color:#fff}.desktop-week-calendar .desktop-calendar-day{min-height:360px}.desktop-week-calendar .desktop-calendar-events span{white-space:normal}.desktop-week-calendar .desktop-calendar-events{gap:5px}
  .desktop-record-list{display:grid;gap:7px}.desktop-record-row{display:grid;grid-template-columns:210px minmax(0,1fr) auto;align-items:center;gap:18px;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:13px;text-align:left;color:var(--text)}.desktop-record-row:hover{border-color:#9cdec0;background:#f8fdf9}.desktop-record-row span,.desktop-record-row b,.desktop-record-row small{display:block}.desktop-record-row b{font-size:14px}.desktop-record-row small{margin-top:4px;color:var(--muted);font-size:12px}.desktop-record-row em{overflow:hidden;color:var(--muted);font-size:13px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.desktop-record-row i{border-radius:999px;background:#eff8f2;padding:6px 9px;color:var(--primary);font-size:12px;font-style:normal;font-weight:850}.desktop-record-editor{max-width:940px}.desktop-record-content-label{display:grid;gap:7px;margin-top:18px;color:var(--muted);font-size:13px}.desktop-record-text{width:100%;min-height:260px;resize:vertical;border:1px solid var(--line);border-radius:8px;background:#fbfcfc;padding:12px;color:var(--text);line-height:1.65}.desktop-guardian-text{min-height:130px}.desktop-record-actions{display:flex;gap:8px;margin-top:18px}.desktop-record-actions button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 13px;color:var(--dark);font-weight:850}.desktop-guardian-summary{margin-top:8px;border:1px solid #b9ebcf;border-radius:8px;background:#f6fcf8;padding:14px;white-space:pre-wrap;line-height:1.7}
  .desktop-calendar-filter{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:12px}.desktop-calendar-filter label{color:var(--muted);font-size:13px;font-weight:750}.desktop-calendar-filter select{min-width:220px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px 11px;color:var(--text)}
  .desktop-calendar-panel{padding:20px}.desktop-calendar-head{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:17px}.desktop-calendar-head strong{min-width:180px;text-align:center;font-size:20px}.desktop-calendar-head button{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--dark);font-size:25px;line-height:1}.desktop-weekdays,.desktop-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.desktop-weekdays{margin:0 2px 6px}.desktop-weekdays span{text-align:right;padding:0 8px;color:var(--muted);font-size:12px;font-weight:750}.desktop-weekdays .sun{color:#df5d65}.desktop-weekdays .sat{color:#4c82bd}.desktop-calendar{border-top:1px solid var(--line);border-left:1px solid var(--line);gap:0}.desktop-calendar-blank{min-height:122px;background:#fafcfb;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.desktop-calendar-day{position:relative;min-width:0;min-height:122px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:9px;text-align:left;vertical-align:top;color:var(--text)}.desktop-calendar-day:hover{background:#f6fcf8}.desktop-calendar-day.selected{box-shadow:inset 0 0 0 2px var(--primary);background:#f4fcf6}.desktop-calendar-day.holiday .desktop-day-number{color:#df5d65}.desktop-calendar-day.today .desktop-day-number{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:var(--primary);color:#fff}.desktop-day-number{display:block;font-size:14px;font-weight:850}.desktop-calendar-day>small{display:block;overflow:hidden;margin-top:2px;color:#df5d65;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.desktop-calendar-events{display:grid;gap:3px;margin-top:7px}.desktop-calendar-events span{display:block;overflow:hidden;border-left:3px solid var(--therapist);border-radius:4px;background:var(--therapist-soft);padding:3px 4px;color:#33413a;font-size:11px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.desktop-calendar-events span b{margin-right:4px;color:var(--therapist);font-size:10px}.desktop-calendar-events em{color:var(--muted);font-size:10px;font-style:normal}.desktop-calendar-loading{grid-column:1/-1;padding:40px;text-align:center;color:var(--muted)}.desktop-therapist-legend{display:flex;flex-wrap:wrap;gap:8px 15px;margin-top:16px}.desktop-therapist-legend span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.desktop-therapist-legend i{display:inline-block;width:9px;height:9px;border-radius:999px;background:var(--therapist)}.desktop-therapist-legend .desktop-legend-muted{color:var(--muted)}.desktop-day-panel{margin-top:18px}.desktop-agenda-count{border-radius:999px;background:#eff8f2;padding:5px 8px;color:var(--primary);font-size:12px;font-weight:850}.desktop-day-schedule-list{display:grid;gap:7px}.desktop-day-schedule{display:flex;align-items:stretch;min-height:58px;border:1px solid var(--line);border-left:4px solid var(--therapist);border-radius:8px;background:#fff;padding:0;text-align:left;color:var(--text);overflow:hidden}.desktop-day-schedule:hover{background:var(--therapist-soft)}.desktop-day-time{display:grid;place-content:center;min-width:83px;background:var(--therapist-soft);color:var(--therapist);text-align:center}.desktop-day-time b,.desktop-day-time small,.desktop-day-client b,.desktop-day-client small{display:block}.desktop-day-time b{font-size:14px}.desktop-day-time small{margin-top:3px;font-size:11px}.desktop-day-client{display:grid;align-content:center;gap:4px;padding:8px 12px}.desktop-day-client b{font-size:14px}.desktop-day-client small{color:var(--muted);font-size:12px}.desktop-empty-day{padding:24px 8px;color:var(--muted);font-size:13px}
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Noto Sans KR","Malgun Gothic",sans-serif}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.app-shell{max-width:600px;margin:0 auto;min-height:100vh;padding-bottom:78px}
.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:17px 16px;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top-actions{display:flex;align-items:center;gap:8px}.top-add-btn{border:0;background:var(--primary);color:#fff;border-radius:16px;width:40px;height:40px;font-size:22px;font-weight:900;line-height:1;box-shadow:0 5px 14px rgba(3,199,90,.18)}
.brand{font-size:19px;font-weight:850}
.subtitle{font-size:12px;color:var(--muted);margin-top:3px}
.role-btn{border:0;background:var(--primary);color:#fff;border-radius:18px;padding:8px 13px;font-weight:800}
main{padding:14px}
.hero{background:linear-gradient(135deg,#00a94f,#03c75a);color:white;border-radius:20px;padding:18px;box-shadow:0 8px 24px rgba(3,199,90,.18)}
.hero h2{margin:0 0 6px;font-size:21px}
.hero p{margin:0;opacity:.9;font-size:13px;line-height:1.55}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:17px;padding:15px}
.metric .label{font-size:12px;color:var(--muted)}
.metric .num{font-size:24px;font-weight:850;margin-top:5px}
.metric-button{border:1px solid var(--line);text-align:left;color:inherit;width:100%;box-shadow:0 2px 8px rgba(0,0,0,.025)}
.metric-button:active{background:var(--soft);border-color:#bceacc}
.section-title{font-size:15px;font-weight:850;margin:20px 2px 9px}
.list{display:flex;flex-direction:column;gap:9px}
.row{background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.row .main{font-weight:800}
.row .sub{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.45}
.badge{padding:5px 8px;border-radius:10px;background:var(--soft);color:var(--dark);font-size:11px;font-weight:850;white-space:nowrap}
.badge.warn{background:#fff2e6;color:var(--warn)}
.badge.danger{background:#fdecec;color:var(--danger)}
.badge.blue{background:#e9f1f7;color:var(--blue)}
.actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.action{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;text-align:left}
.action strong{display:block;margin-bottom:4px}
.action span{font-size:12px;color:var(--muted);line-height:1.4}
.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(600px,100%);display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-top:1px solid var(--line);padding:8px 5px calc(8px + env(safe-area-inset-bottom));z-index:9}
.bottom-nav button{border:0;background:transparent;color:var(--muted);padding:8px 2px;font-size:12px}
.bottom-nav button.active{color:var(--dark);font-weight:850}
.form-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px}
.form-card label{display:block;font-size:12px;color:var(--muted);margin:11px 0 5px}
.form-card input,.form-card textarea,.form-card select{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px;background:#fbfcfc}
.form-card textarea{min-height:120px;resize:vertical}
.repeat-options{margin-top:8px;padding:12px;border:1px solid #b9ebcf;border-radius:14px;background:#f6fcf8}.weekday-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.weekday-picker label{margin:0}.weekday-picker input{position:absolute;opacity:0;pointer-events:none}.weekday-picker span{display:grid;place-items:center;aspect-ratio:1;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--muted);font-size:12px;font-weight:800}.weekday-picker input:checked+span{background:var(--primary);border-color:var(--primary);color:#fff}.teacher-invite-result{display:grid;gap:7px;margin-top:12px;padding:12px;border:1px solid #b9ebcf;border-radius:14px;background:#f1fcf5}.teacher-invite-result b,.teacher-invite-result span{display:block}.teacher-invite-result span{font-size:11px;color:var(--muted)}.teacher-invite-result button{border:0;border-radius:10px;padding:10px;background:var(--primary);color:#fff;font-weight:850}
.primary,.secondary{width:100%;border:0;border-radius:12px;padding:12px;font-weight:850;margin-top:12px}
.primary{background:var(--primary);color:#fff}
.secondary{background:var(--soft);color:var(--dark)}
.filebox{border:1px dashed #9eb2ad;border-radius:15px;padding:16px;background:#fbfdfc;text-align:center}
.filebox input{margin-top:10px}
.notice{font-size:12px;color:var(--muted);line-height:1.55;margin-top:8px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:grid;place-items:center;z-index:20;padding:20px}
.modal.hidden{display:none}
.hidden{display:none!important}
.modal-card{width:min(360px,100%);background:#fff;border-radius:20px;padding:18px;display:grid;gap:9px}
.modal-card h3{margin:0 0 6px}
.modal-card button{border:0;border-radius:11px;padding:12px;background:var(--soft);font-weight:850}
.modal-card .ghost{background:#f2f2f2;color:#666}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#23322f;color:#fff;padding:10px 14px;border-radius:10px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:30}
.toast.show{opacity:1}
.plan{border:1px solid var(--line);border-radius:17px;background:#fff;padding:15px}
.plan .price{font-size:23px;font-weight:850;margin:6px 0}
.plan ul{margin:8px 0 0;padding-left:18px;color:var(--muted);font-size:12px;line-height:1.65}
.onboarding{display:grid;gap:12px}
.choice{border:1px solid var(--line);background:#fff;border-radius:18px;padding:18px;text-align:left}
.choice strong{font-size:17px;display:block;margin-bottom:6px}
.choice span{font-size:12px;color:var(--muted);line-height:1.5}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f3f6f5;padding:8px 10px;border-radius:10px;font-size:12px}
.small{font-size:12px;color:var(--muted)}
.schedule-link{width:100%;color:inherit;text-align:left;font:inherit;cursor:pointer}
.schedule-link:active{background:var(--soft)}
.calendar-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin:4px 0 12px;text-align:center}
.calendar-head strong{font-size:19px}
.calendar-head button{border:0;background:var(--soft);color:var(--dark);border-radius:12px;padding:8px;font-size:22px}
.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px}
.weekday{text-align:center;font-size:11px;color:var(--muted);padding:4px 0}.weekday.sun{color:#b95353}.weekday.sat{color:#4b7191}
.calendar-blank{min-height:48px}
.calendar-day{min-width:0;min-height:52px;border:1px solid transparent;background:#f8faf9;border-radius:11px;padding:5px 2px;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:2px}.calendar-day.holiday span{color:#d93025;font-weight:850}
.calendar-day b{font-size:10px;color:var(--primary);white-space:nowrap}.calendar-day i{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;color:#d93025;font-style:normal}.calendar-day.today{border-color:var(--primary2)}.calendar-day.selected{background:var(--primary);color:#fff}.calendar-day.selected b,.calendar-day.selected i,.calendar-day.selected span{color:#fff}
.detail-line{display:grid;grid-template-columns:75px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.detail-line span{font-size:12px;color:var(--muted)}.detail-line strong{font-size:14px}
.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.detail-actions button{background:var(--primary);color:#fff}.detail-actions .secondary-action{background:var(--soft);color:var(--dark)}.record-actions{padding:5px;border:1px solid var(--line);border-radius:13px;background:#f7f9f8}.record-actions button{border:0;border-radius:9px;padding:11px 8px;font-weight:850;box-shadow:0 1px 3px rgba(0,0,0,.06)}.record-actions #previewRecord{background:#eaf8ef;color:var(--dark)}
.detail-actions .danger-action{grid-column:1/-1;background:#fff0f0;color:#d93025;border:1px solid #ffd1cd}
.view-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;background:transparent;padding:0;margin-bottom:12px}.view-tabs button{border:1.5px solid var(--primary);background:#fff;padding:9px;border-radius:10px;color:var(--dark);font-weight:800}.view-tabs button.active{background:var(--primary);color:#fff;box-shadow:0 2px 7px rgba(3,199,90,.18)}
.view-tabs.three-tabs{grid-template-columns:repeat(3,minmax(0,1fr));white-space:nowrap}.view-tabs.three-tabs button{min-width:0;padding-left:4px;padding-right:4px}
.teacher-filter-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;margin-bottom:12px}.teacher-filter-card label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.teacher-filter-card select{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px;background:#fbfcfc}.sub-view-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.sub-view-tabs button{border:1.5px solid var(--primary);background:#fff;color:var(--dark);border-radius:12px;padding:10px;font-weight:850}.sub-view-tabs button.active{background:var(--primary);color:#fff}
.week-board{display:grid;grid-template-columns:repeat(7,130px);gap:8px;overflow-x:auto;padding:4px 1px 12px}.week-col{background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;min-height:150px}.week-col>strong{display:block;color:var(--dark);font-size:12px;margin-bottom:6px}.week-col>small{color:var(--muted)}.week-col button{display:flex;flex-direction:column;width:100%;border:0;background:var(--soft);border-radius:9px;padding:6px;text-align:left;margin-top:5px;color:var(--text)}.week-col button b{font-size:10px;color:var(--dark)}.week-col button .week-person{display:flex;align-items:center;gap:4px;width:100%;min-width:0;margin-top:3px;white-space:nowrap}.week-col button .week-person span{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:850}.week-col button .week-person small{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:9px;color:var(--muted)}
.inline-form{display:grid;grid-template-columns:1fr 105px;gap:7px;margin-top:10px}.inline-form input,.inline-form select{min-width:0;border:1px solid var(--line);border-radius:10px;padding:9px}.inline-form button{grid-column:1/-1;border:0;border-radius:10px;padding:10px;background:var(--primary);color:#fff;font-weight:800}
.search{width:100%;border:1px solid var(--line);border-radius:13px;padding:12px;margin-bottom:10px;background:#fff}.dim{opacity:.58}.mini-list{display:grid;gap:6px;max-height:180px;overflow:auto;font-size:12px;color:var(--muted)}.mini-list div{background:#f7f8f8;border-radius:9px;padding:8px}.modal-card{max-height:86vh;overflow:auto}.modal-card input,.modal-card select,.modal-card textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px}.modal-card textarea{min-height:110px;resize:vertical}.record-summary{white-space:pre-wrap;margin-top:8px;line-height:1.6}.back-link{border:0;background:var(--soft);color:var(--dark);border-radius:10px;padding:8px 12px;font-weight:800}
.invite-head{display:flex;align-items:center;gap:12px}.invite-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--soft);color:var(--primary);font-size:25px;font-weight:800}.invite-head h3{margin:0}.invite-head p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.invite-form{display:grid;gap:9px;margin:5px 0}.invite-field{border:1px solid var(--line);background:#fafbfb;border-radius:14px;padding:11px}.invite-field span{display:block;font-size:11px;font-weight:800;color:var(--muted);margin-bottom:6px}.invite-field input,.invite-field select{border:0;background:transparent;padding:3px 0;border-radius:0;outline:none}.invite-primary,.invite-secondary{width:100%;border:0;border-radius:13px;padding:13px;font-weight:850}.invite-primary{background:var(--primary)!important;color:#fff}.invite-secondary{background:var(--soft)!important;color:var(--dark)}.invite-result{text-align:center}.invite-check{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 10px;border-radius:18px;background:var(--primary);color:#fff;font-size:28px;font-weight:900}.invite-result h3{margin:0}.invite-result>p{color:var(--muted)}.invite-link-box{text-align:left;border:1px solid #b9ebcf;background:#f1fcf5;border-radius:16px;padding:14px;margin:14px 0}.invite-link-box span,.invite-link-box small{display:block;color:var(--muted);font-size:11px}.invite-link-box strong{display:block;color:var(--dark);font-size:22px;letter-spacing:2px;margin:3px 0 10px}.invite-link-box input{background:#fff;font-size:12px;margin-bottom:8px}.recent-invite{display:flex;align-items:center;justify-content:space-between;gap:10px}.recent-invite div{min-width:0}.recent-invite b,.recent-invite span{display:block}.recent-invite span{font-size:11px;color:var(--muted);margin-top:5px}.recent-invite button{border:0;background:var(--primary);color:#fff;border-radius:10px;padding:9px;white-space:nowrap}
.week-placeholder{min-height:150px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(90deg,#f7f8f8 25%,#eef1f0 50%,#f7f8f8 75%);background-size:200% 100%;animation:calendarPulse 1.2s infinite}
.ai-record-box{display:grid;grid-template-columns:1fr auto;align-items:center;gap:9px;margin-top:10px;padding:12px;border:1px solid #b9ebcf;border-radius:14px;background:#f1fcf5}.ai-record-box strong,.ai-record-box span,.ai-record-box small{display:block}.ai-record-box strong{font-size:13px;color:var(--dark)}.ai-record-box span,.ai-record-box small{font-size:11px;color:var(--muted);line-height:1.45;margin-top:3px}.ai-record-box small{grid-column:1/-1}.ai-record-box button{border:0;border-radius:10px;padding:10px 12px;background:var(--primary);color:#fff;font-weight:850;white-space:nowrap}.ai-record-box button:disabled,.primary:disabled{opacity:.62;cursor:wait}.save-status{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding:11px;border-radius:12px;background:var(--soft);color:var(--dark);font-size:13px;font-weight:850}.save-status span{width:16px;height:16px;border:2px solid #9de2b9;border-top-color:var(--primary);border-radius:50%;animation:recordSpin .7s linear infinite}.save-status b{font-size:17px}@keyframes recordSpin{to{transform:rotate(360deg)}}@keyframes calendarPulse{to{background-position:-200% 0}}
.ai-management-card{background:linear-gradient(135deg,#f1fcf5,#fff);border:1px solid #b9ebcf;border-radius:18px;padding:15px}.ai-management-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ai-management-head strong,.ai-management-head span{display:block}.ai-management-head strong{color:var(--dark);font-size:15px}.ai-management-head span{color:var(--muted);font-size:11px;line-height:1.45;margin-top:4px}.ai-management-head button,.guardian-ai-button{border:0;border-radius:11px;padding:9px 11px;background:var(--primary);color:#fff;font-size:12px;font-weight:850;white-space:nowrap}.ai-management-head button:disabled,.guardian-ai-button:disabled{opacity:.62;cursor:wait}.ai-management-text{white-space:pre-wrap;margin-top:13px;padding-top:12px;border-top:1px solid #d8f2e2;font-size:13px;line-height:1.7;color:#34413d}.guardian-summary-input{min-height:100px!important;background:#f7fcf9!important}.guardian-ai-button{width:100%;margin-top:8px;padding:12px}
.install-app-card{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:11px;margin-top:12px;padding:12px;background:#fff;border:1px solid #b9ebcf;border-radius:17px;box-shadow:0 5px 18px rgba(3,199,90,.08)}.install-app-card img{width:46px;height:46px;border-radius:13px}.install-app-card strong,.install-app-card span{display:block}.install-app-card strong{font-size:14px}.install-app-card span{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.4}.install-app-card button{border:0;border-radius:11px;padding:10px 14px;background:var(--primary);color:#fff;font-weight:850}.install-guide{text-align:center}.install-guide img{width:72px;height:72px;border-radius:20px}.install-guide h3{margin:8px 0}.install-guide p{text-align:left;background:#f6f8f7;border-radius:12px;padding:12px;margin:7px 0;color:var(--muted);font-size:12px;line-height:1.65}.install-guide p b{color:var(--text)}
.directory-actions{display:flex;align-items:center;gap:7px}.list-delete{border:1px solid #ffd1cd!important;background:#fff0f0!important;color:#d93025!important;border-radius:9px!important;padding:7px 9px!important;font-size:11px;font-weight:850}.directory-main{min-width:0;flex:1;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;background:transparent;padding:0;text-align:left;color:inherit}.directory-row{padding:13px}.client-directory-row{padding:8px 10px}.client-directory-row .directory-main{min-height:34px}.client-list-main{min-width:0}.client-contact-meta{margin-top:2px;color:var(--muted);font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory-row>.list-delete{flex:0 0 auto}.record-list{gap:4px}.compact-record-row{min-width:0;width:100%;overflow:hidden;padding:8px 10px;min-height:48px}.compact-record-row .record-row-text{min-width:0;flex:1;overflow:hidden}.compact-record-row .main,.compact-record-row .sub{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-record-row .sub{margin-top:1px}.compact-record-row .badge{flex:0 0 auto}.catalog-form{display:grid;gap:8px;margin-bottom:12px}.catalog-form h3{margin:0 0 2px;font-size:15px}.catalog-list{display:grid;gap:7px;margin-top:8px}.catalog-row{padding:10px 12px}.catalog-row>div{min-width:0}.catalog-row .main,.catalog-row .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.one-line-meta{display:flex;align-items:baseline;gap:7px;min-width:0}.one-line-meta .main{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.one-line-meta .sub{margin-top:0;white-space:nowrap}
.content-tabs{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:15px}.content-tabs.three-tabs,.content-tabs.user-tabs.three-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}.content-tabs button{min-width:0;border:1.5px solid var(--primary);background:#fff;color:var(--dark);border-radius:14px;padding:12px;font-weight:850;white-space:nowrap}.content-tabs button.active{background:var(--primary);color:#fff;box-shadow:0 5px 14px rgba(3,199,90,.18)}
.schedule-list{gap:3px}.schedule-row{justify-content:flex-start;gap:7px;padding:3px 7px;border-radius:12px}.schedule-time-box{position:relative;overflow:hidden;flex:0 0 50px!important;display:grid;place-content:center;gap:0;width:50px;height:54px!important;min-height:54px!important;max-height:54px!important;padding:0 2px 5px!important;border:1px solid #e4e8e6;border-radius:10px;background:#fff;color:#171a19;font-weight:900;letter-spacing:-.2px;box-shadow:0 2px 6px rgba(27,42,37,.1)}.schedule-time-box::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--therapist)}.schedule-time-box b,.schedule-time-box small{display:block;line-height:14px;color:inherit;text-align:center}.schedule-time-box b,.schedule-time-box small{font-size:14px;font-weight:900}.schedule-time-divider{display:block;width:2px;height:6px;margin:1px auto;background:#aeb5b2;border-radius:2px}.schedule-row-content{min-width:0;flex:1}.schedule-row-content .main{line-height:1.15}.schedule-row-content .sub{margin-top:2px;line-height:1.2}.schedule-row>.badge{margin-left:auto}.therapist-color-0{--therapist:#03a9f4;--therapist-soft:#e9f7fe}.therapist-color-1{--therapist:#8e67d5;--therapist-soft:#f2edfb}.therapist-color-2{--therapist:#ed8a34;--therapist-soft:#fff3e8}.therapist-color-3{--therapist:#e05277;--therapist-soft:#fdeef2}.therapist-color-4{--therapist:#14a58c;--therapist-soft:#e8f8f5}.therapist-color-5{--therapist:#607d8b;--therapist-soft:#edf2f4}.week-col button.therapist-color-0,.week-col button.therapist-color-1,.week-col button.therapist-color-2,.week-col button.therapist-color-3,.week-col button.therapist-color-4,.week-col button.therapist-color-5{background:var(--therapist-soft);border-left:4px solid var(--therapist)}.week-col button.therapist-color-0 b,.week-col button.therapist-color-1 b,.week-col button.therapist-color-2 b,.week-col button.therapist-color-3 b,.week-col button.therapist-color-4 b,.week-col button.therapist-color-5 b{color:var(--therapist)}
.form-card .record-content-input{min-height:360px;line-height:1.7}.record-content-input::placeholder{color:#a5aca9;white-space:pre-line}@media(max-width:600px){.form-card .record-content-input{min-height:55vh}}
.center-switch-head h3{margin:0}.center-switch-head p{margin:6px 0 16px;color:var(--muted);font-size:12px}.center-switch-list{display:grid;gap:9px}.center-switch-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:14px;text-align:left;color:var(--text)}.center-switch-item.current{border-color:var(--primary);background:#f1fcf5}.center-switch-item span,.center-switch-item b,.center-switch-item small{display:block}.center-switch-item b{font-size:14px}.center-switch-item small{margin-top:5px;color:var(--muted);font-size:11px}.center-switch-item em{flex:0 0 auto;border-radius:999px;background:var(--soft);padding:7px 9px;color:var(--primary);font-size:11px;font-style:normal;font-weight:850}.center-switch-item.current em{background:var(--primary);color:#fff}.center-create-button{width:100%;display:block;margin-top:12px;border:1.5px dashed var(--primary);border-radius:15px;background:#f7fdf9;padding:14px;color:var(--primary);text-align:center}.center-create-button b,.center-create-button span{display:block}.center-create-button span{margin-top:5px;font-size:11px;color:var(--muted)}.center-create-button:disabled{border-color:var(--line);background:#f7f8f8;color:#9aa29f}
.center-delete-button{width:100%;display:block;margin-top:8px;border:1px solid #ffd1cd;border-radius:15px;background:#fff5f4;padding:13px;color:#d93025;font-weight:850;text-align:center}.fullscreen-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.fullscreen-head h3{margin:0;font-size:19px}.fullscreen-close{border:0;border-radius:12px;background:#f1f3f4;color:var(--muted);padding:10px 12px;font-weight:850}.record-close-bottom{display:block;width:100%;margin-top:10px;background:#f1fcf5;color:var(--primary)}.fullscreen-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px}.record-full-content{white-space:pre-wrap;line-height:1.75;font-size:14px}.schedule-add-screen .form-card{margin-bottom:18px}.client-picker-button{width:100%;border:1px solid var(--line);border-radius:12px;background:#fbfcfc;padding:11px;text-align:left;color:var(--text)}.client-picker-button span,.client-picker-button small{display:block}.client-picker-button span{font-weight:800}.client-picker-button small{margin-top:3px;font-size:11px;color:var(--muted)}.client-picker-list{gap:7px}.client-picker-row{width:100%;border:1px solid var(--line);border-radius:13px;background:#fff;padding:12px;text-align:left;color:var(--text)}.client-picker-row b,.client-picker-row span{display:block}.client-picker-row span{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.35}
.payment-estimate-button{width:100%;border:1.5px solid var(--primary);border-radius:13px;background:#f1fcf5;color:var(--dark);padding:13px;font-weight:850;margin-bottom:12px}.payment-plan-row{align-items:center}.payment-plan-row b{white-space:nowrap;color:var(--dark);font-size:14px}.expected-cost-card{margin-bottom:18px}.estimate-result{display:grid;gap:0;margin-top:16px;border:1px solid #b9ebcf;border-radius:14px;overflow:hidden}.estimate-result>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid #d8f2e2}.estimate-result>div:last-child{border-bottom:0}.estimate-result span{font-size:12px;color:var(--muted)}.estimate-result b{font-size:14px}.estimate-result .estimate-self{background:#f1fcf5}.estimate-result .estimate-self strong{font-size:19px;color:var(--dark)}
.income-filter{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.income-filter label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.income-filter select{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;color:var(--text)}.income-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #b9ebcf;border-radius:14px;overflow:hidden;margin-bottom:16px}.income-summary>div{padding:12px;border-right:1px solid #d8f2e2;background:#f7fcf9}.income-summary>div:last-child{border-right:0}.income-summary span,.income-summary b{display:block}.income-summary span{font-size:11px;color:var(--muted)}.income-summary b{margin-top:5px;font-size:15px;color:var(--dark)}.income-table-wrap{overflow-x:auto;margin-bottom:16px;background:#fff;border:1px solid var(--line);border-radius:14px}.income-table-wrap table{width:100%;border-collapse:collapse;min-width:430px;font-size:12px}.income-table-wrap th,.income-table-wrap td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.income-table-wrap th:first-child,.income-table-wrap td:first-child{text-align:left}.income-table-wrap thead th{background:#f7f8f8;color:var(--muted);font-size:11px}.income-table-wrap tbody tr:last-child th,.income-table-wrap tbody tr:last-child td{border-bottom:0}.income-table-wrap tbody th{color:var(--dark)}

@media (min-width:900px){
  body{background:#f3f6f5}.app-shell{max-width:none;margin:0;padding:0;min-height:100vh}.topbar,.bottom-nav{display:none!important}main{padding:0}.desktop-app{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.desktop-sidebar{position:sticky;top:0;height:100vh;background:#123d2a;color:#fff;padding:28px 18px;display:flex;flex-direction:column}.desktop-brand{font-size:22px;font-weight:900}.desktop-center-name{margin-top:6px;color:#b9d7c8;font-size:13px;line-height:1.4}.desktop-sidebar nav{display:grid;gap:5px;margin-top:40px}.desktop-sidebar nav button{border:0;border-radius:8px;background:transparent;color:#c3d7cb;text-align:left;padding:12px;font-weight:750}.desktop-sidebar nav button:hover,.desktop-sidebar nav button.active{background:#03c75a;color:#fff}.desktop-sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.14);padding:16px 10px 0}.desktop-sidebar-home,.desktop-sidebar-mobile{display:block;width:100%;border-radius:8px;padding:10px;text-align:left;font-weight:850}.desktop-sidebar-home{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#fff}.desktop-sidebar-mobile{margin-top:8px;border:0;background:transparent;color:#b9d7c8}.desktop-member{margin-top:17px}.desktop-member b,.desktop-member span{display:block}.desktop-member span{margin-top:5px;font-size:12px;color:#b9d7c8}.desktop-main{min-width:0;padding:34px 42px 50px}.desktop-main-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.desktop-main-head h1{margin:0;font-size:28px}.desktop-main-head p{margin:7px 0 0;color:var(--muted)}.desktop-main-head button,.desktop-panel-head button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px 12px;color:var(--dark);font-weight:800}.desktop-header-home{border-color:#b9ebcf!important;background:#f1fcf5!important;color:var(--primary)!important}.desktop-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.desktop-metrics>div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px}.desktop-metrics span,.desktop-metrics b{display:block}.desktop-metrics span{font-size:13px;color:var(--muted)}.desktop-metrics b{margin-top:9px;font-size:25px}.desktop-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.desktop-panel{min-width:0;background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px}.desktop-panel-head,.desktop-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.desktop-panel-head h2{margin:0;font-size:17px}.desktop-toolbar{background:#fff;border:1px solid var(--line);border-radius:10px;padding:15px}.desktop-toolbar b,.desktop-toolbar span{display:block}.desktop-toolbar span{margin-top:4px;font-size:12px;color:var(--muted)}.desktop-primary,.desktop-inline-form button{border:0;border-radius:8px;background:var(--primary);color:#fff;padding:10px 13px;font-weight:850}.desktop-table{overflow:auto;font-size:13px}.desktop-table table{border-collapse:collapse;width:100%}.desktop-table td{padding:11px 10px;border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:240px}.desktop-table tr:last-child td{border-bottom:0}.desktop-table.empty{color:var(--muted);padding:10px 0}.desktop-quick{display:grid;gap:8px}.desktop-quick button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:13px;text-align:left;color:var(--text);font-weight:800}.desktop-quick button:hover{border-color:var(--primary);background:#f1fcf5}.desktop-inline-form{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:8px;margin-bottom:15px}.desktop-inline-form input{min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfc}.desktop-estimate{max-width:900px}.desktop-estimate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.desktop-estimate-grid label{display:grid;gap:6px;font-size:13px;color:var(--muted)}.desktop-estimate-grid input,.desktop-estimate-grid select{border:1px solid var(--line);border-radius:8px;padding:11px;background:#fbfcfc;color:var(--text)}.desktop-estimate-summary{display:grid;grid-template-columns:repeat(3,1fr);margin:22px 0;border:1px solid #b9ebcf;border-radius:9px;overflow:hidden}.desktop-estimate-summary>div{padding:16px;border-right:1px solid #d8f2e2}.desktop-estimate-summary>div:last-child{border-right:0;background:#f1fcf5}.desktop-estimate-summary span,.desktop-estimate-summary b,.desktop-estimate-summary strong{display:block}.desktop-estimate-summary span{font-size:12px;color:var(--muted)}.desktop-estimate-summary b,.desktop-estimate-summary strong{margin-top:7px;font-size:18px}.desktop-estimate-summary strong{color:var(--dark)}.desktop-mode-switch{position:fixed;right:24px;bottom:24px;z-index:80;border:0;border-radius:999px;background:#123d2a;color:#fff;padding:12px 16px;font-weight:850;box-shadow:0 8px 22px rgba(18,61,42,.22)}body.desktop-mobile-preview{background:var(--bg)}body.desktop-mobile-preview .app-shell{max-width:560px;margin:0 auto;padding:0 16px;min-height:100vh}body.desktop-mobile-preview .topbar{display:flex!important}body.desktop-mobile-preview .bottom-nav{display:grid!important}body.desktop-mobile-preview main{padding:0 0 92px}
}
