.app-shell{min-height:calc(100vh - 46px);display:grid;grid-template-columns:245px 1fr;background:#f6f3f1}.app-sidebar{position:sticky;top:46px;height:calc(100vh - 46px);display:flex;flex-direction:column;padding:26px 18px 18px;border-right:1px solid var(--line);background:#fff;z-index:40}.app-sidebar .brand{padding:0 10px 24px}.app-nav{display:flex;flex-direction:column;gap:4px;overflow:auto}.app-nav button{display:flex;align-items:center;gap:11px;min-height:42px;padding:0 12px;border:0;border-radius:10px;background:transparent;text-align:left;color:var(--muted);font-size:10px;font-weight:650}.app-nav button>span{width:20px;text-align:center;font-size:14px}.app-nav button>i{margin-left:auto;min-width:20px;height:20px;display:grid;place-items:center;border-radius:999px;background:var(--rose-100);color:var(--wine-600);font-size:8px;font-style:normal}.app-nav button:hover,.app-nav button.is-active{background:var(--rose-100);color:var(--wine-700)}.nav-group-label{padding:18px 12px 8px;font-size:7px;font-weight:800;letter-spacing:.16em;color:#aaa1a3}.sidebar-help{display:flex;align-items:center;gap:10px;margin-top:auto;padding:13px;border-radius:12px;background:var(--beige-100)}.sidebar-help>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--wine-600)}.sidebar-help strong,.sidebar-help small{display:block}.sidebar-help strong{font-family:var(--font-display);font-size:12px;font-weight:400}.sidebar-help small{font-size:7px;color:var(--muted)}.sidebar-logout{margin-top:11px;padding:12px;border:0;background:transparent;text-align:left;color:var(--muted);font-size:9px}.admin-user{display:grid;grid-template-columns:36px 1fr 24px;align-items:center;gap:9px;margin-top:auto;padding:13px 10px;border-top:1px solid var(--line)}.admin-user>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--wine-600);color:#fff;font-size:9px}.admin-user strong,.admin-user small{display:block}.admin-user strong{font-family:var(--font-display);font-size:12px;font-weight:400}.admin-user small{font-size:7px;color:var(--muted)}.admin-user button{border:0;background:none}.app-main{min-width:0}.app-header{position:sticky;top:46px;z-index:30;min-height:91px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 28px;border-bottom:1px solid var(--line);background:rgba(246,243,241,.92);backdrop-filter:blur(15px)}.app-header h1{margin:2px 0 0;font-size:30px}.app-menu-btn{display:none;width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff}.app-header-actions{display:flex;align-items:center;gap:10px}.global-search{width:260px;height:42px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted)}.global-search input{min-width:0;flex:1;border:0;background:transparent;font-size:10px}.user-chip{display:flex;align-items:center;gap:9px}.user-chip>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--rose-100);color:var(--wine-600);font-size:9px;font-weight:800}.user-chip strong,.user-chip small{display:block}.user-chip strong{font-family:var(--font-display);font-size:12px;font-weight:400}.user-chip small{font-size:7px;color:var(--muted)}.app-content{padding:25px 28px 45px}.dashboard-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:18px;margin-top:18px}.dashboard-stack{display:grid;gap:18px}.welcome-card{position:relative;min-height:250px;display:grid;grid-template-columns:1.25fr .75fr;gap:25px;overflow:hidden;padding:34px;border-radius:24px;background:linear-gradient(135deg,var(--wine-700),var(--wine-950));color:#fff}.welcome-card:after{content:"";position:absolute;width:340px;height:340px;right:-120px;top:-150px;border:1px solid rgba(255,255,255,.12);border-radius:50%}.welcome-card h2{margin:8px 0 12px;font-size:43px}.welcome-card p{max-width:520px;color:rgba(255,255,255,.62);font-size:11px}.appointment-ticket{position:relative;z-index:2;align-self:center;padding:20px;border-radius:17px;background:#fff;color:var(--ink);box-shadow:0 18px 40px rgba(0,0,0,.16)}.ticket-label{font-size:8px;font-weight:800;letter-spacing:.15em;color:var(--wine-600)}.ticket-date{display:flex;align-items:center;gap:9px;margin:10px 0}.ticket-date strong{font-family:var(--font-display);font-size:45px;font-weight:400;line-height:1}.ticket-date span{font-size:8px;font-weight:800;color:var(--muted)}.appointment-ticket h3{margin:13px 0 4px;font-family:var(--font-display);font-size:18px;font-weight:400}.appointment-ticket p{margin:0;color:var(--muted)}.portal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.portal-stats article{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.stat-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--rose-100);color:var(--wine-600)}.portal-stats small,.portal-stats strong,.portal-stats a{display:block}.portal-stats small{font-size:8px;color:var(--muted)}.portal-stats strong{font-family:var(--font-display);font-size:22px;font-weight:400}.portal-stats a{font-size:8px;color:var(--wine-600)}.routine-list{display:grid;gap:8px}.routine-step{display:grid;grid-template-columns:28px 42px 1fr 34px;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.routine-step:last-child{border-bottom:0}.routine-step>span{font-family:var(--font-display);color:var(--wine-500)}.product-thumb{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,var(--rose-100),var(--rose-300));font-family:var(--font-display);color:var(--wine-700)}.routine-step strong,.routine-step small{display:block}.routine-step strong{font-family:var(--font-display);font-size:13px;font-weight:400}.routine-step small{font-size:8px;color:var(--muted)}.step-check{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:#fff}.step-check.is-done{background:var(--success);border-color:var(--success);color:#fff}.progress-ring-wrap{display:flex;align-items:center;gap:18px}.progress-ring{--value:82;width:92px;height:92px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--wine-600) calc(var(--value)*1%),var(--beige-200) 0)}.progress-ring:before{content:"";position:absolute;width:70px;height:70px;border-radius:50%;background:#fff}.progress-ring span{position:relative;font-family:var(--font-display);font-size:25px}.progress-ring small{font-size:11px}.week-row{display:flex;justify-content:space-between;margin-top:22px}.week-row span{display:grid;gap:7px;text-align:center;font-size:8px;color:var(--muted)}.week-row i{width:11px;height:11px;border-radius:50%;background:var(--beige-200)}.week-row i.done{background:var(--success)}.week-row i.today{box-shadow:inset 0 0 0 3px var(--wine-600)}.recommendation-card{display:grid;grid-template-columns:115px 1fr auto;align-items:center;gap:22px;margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff}.recommendation-art{height:95px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,var(--wine-700),var(--rose-300));color:#fff;font-family:var(--font-display);text-align:center}.recommendation-card h3{margin:4px 0;font-family:var(--font-display);font-size:24px;font-weight:400}.recommendation-card p{margin:0;color:var(--muted);font-size:10px}.appointment-list{display:grid;gap:10px}.appointment-row{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:18px;padding:17px;border:1px solid var(--line);border-radius:15px;background:#fff}.appointment-date{padding-right:18px;border-right:1px solid var(--line);text-align:center}.appointment-date strong,.appointment-date span{display:block}.appointment-date strong{font-family:var(--font-display);font-size:27px;font-weight:400;color:var(--wine-600)}.appointment-date span{font-size:8px;color:var(--muted)}.appointment-copy h3{margin:0 0 4px;font-family:var(--font-display);font-size:18px;font-weight:400}.appointment-copy p{margin:0;color:var(--muted);font-size:9px}.appointment-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.timeline{position:relative;padding-left:28px}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:1px;background:var(--line)}.timeline-item{position:relative;padding:0 0 22px}.timeline-item:before{content:"";position:absolute;left:-25px;top:6px;width:9px;height:9px;border:3px solid #fff;border-radius:50%;background:var(--wine-500);box-shadow:0 0 0 1px var(--wine-500)}.timeline-item time{font-size:8px;color:var(--muted)}.timeline-card{margin-top:5px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.timeline-card h3{margin:0 0 5px;font-family:var(--font-display);font-size:18px;font-weight:400}.timeline-card p{margin:0;color:var(--muted);font-size:10px}.benefit-hero{display:grid;grid-template-columns:1fr 250px;align-items:center;gap:25px;padding:30px;border-radius:22px;background:linear-gradient(135deg,var(--wine-700),var(--wine-950));color:#fff}.benefit-hero h2{margin:7px 0;font-size:46px}.benefit-hero p{color:rgba(255,255,255,.6);font-size:10px}.points-orbit{width:180px;height:180px;display:grid;place-items:center;margin:auto;border:1px solid rgba(255,255,255,.2);border-radius:50%;box-shadow:inset 0 0 0 18px rgba(255,255,255,.04)}.points-orbit strong,.points-orbit small{display:block;text-align:center}.points-orbit strong{font-family:var(--font-display);font-size:36px;font-weight:400}.points-orbit small{font-size:8px;color:var(--rose-300)}.benefit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.benefit-card{padding:22px;border:1px solid var(--line);border-radius:17px;background:#fff}.benefit-card>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--rose-100);color:var(--wine-600)}.benefit-card h3{margin:15px 0 6px;font-family:var(--font-display);font-size:19px;font-weight:400}.benefit-card p{color:var(--muted);font-size:9px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile-summary{display:flex;align-items:center;gap:16px}.profile-avatar{width:74px;height:74px;display:grid;place-items:center;border-radius:50%;background:var(--rose-100);color:var(--wine-600);font-family:var(--font-display);font-size:25px}.profile-summary h2{margin:0;font-size:28px}.profile-summary p{margin:3px 0;color:var(--muted);font-size:10px}.consent-list{display:grid;gap:10px}.consent-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px;border:1px solid var(--line);border-radius:12px}.consent-row strong,.consent-row small{display:block}.consent-row strong{font-family:var(--font-display);font-size:14px;font-weight:400}.consent-row small{font-size:8px;color:var(--muted)}.admin-layout{display:grid;grid-template-columns:1.45fr .75fr;gap:18px;margin-top:18px}.schedule-list{display:grid}.schedule-item{display:grid;grid-template-columns:52px 5px 36px 1fr auto 25px;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}.schedule-item:last-child{border-bottom:0}.schedule-item time{font-family:var(--font-display);font-size:13px}.schedule-line{width:4px;height:38px;border-radius:99px;background:var(--beige-300)}.schedule-item.active .schedule-line{background:var(--wine-600)}.patient-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--rose-100);color:var(--wine-600);font-size:8px;font-weight:800}.schedule-copy strong,.schedule-copy span{display:block}.schedule-copy strong{font-family:var(--font-display);font-size:13px;font-weight:400}.schedule-copy span{font-size:8px;color:var(--muted)}.schedule-item>button{border:0;background:none}.pending-list{display:grid}.pending-item{display:grid;grid-template-columns:38px 1fr 25px;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}.pending-item:last-child{border-bottom:0}.pending-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;background:var(--rose-100);color:var(--wine-600)}.pending-item strong,.pending-item small{display:block}.pending-item strong{font-family:var(--font-display);font-size:13px;font-weight:400}.pending-item small{font-size:8px;color:var(--muted)}.pending-item button{border:0;background:none}.chart-bars{height:170px;display:flex;align-items:end;gap:10px;padding-top:20px}.chart-bars span{position:relative;flex:1;min-width:18px;border-radius:7px 7px 2px 2px;background:linear-gradient(var(--wine-500),var(--rose-300))}.chart-bars span:after{content:attr(data-label);position:absolute;left:50%;bottom:-22px;transform:translateX(-50%);font-size:7px;color:var(--muted)}.chart-footer{display:flex;justify-content:space-between;margin-top:32px;font-size:9px;color:var(--muted)}.calendar-board{display:grid;grid-template-columns:68px repeat(5,minmax(130px,1fr));overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}.calendar-head,.calendar-time,.calendar-cell{min-height:58px;padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-head{background:var(--beige-100);text-align:center;font-size:8px;font-weight:800}.calendar-time{color:var(--muted);font-size:9px}.calendar-cell{position:relative;min-height:72px}.calendar-event{padding:8px;border-left:3px solid var(--wine-500);border-radius:7px;background:var(--rose-100);font-size:8px}.calendar-event strong,.calendar-event small{display:block}.calendar-event small{color:var(--muted)}.patient-detail-grid{display:grid;grid-template-columns:240px 1fr;gap:18px}.patient-sidebar-card{padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff}.patient-sidebar-card .profile-avatar{margin:0 auto 12px}.patient-sidebar-card h2{text-align:center;font-size:27px}.patient-sidebar-card>p{text-align:center;color:var(--muted);font-size:9px}.patient-facts{display:grid;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.patient-facts div{display:flex;justify-content:space-between;gap:10px;font-size:9px}.patient-facts span{color:var(--muted)}.tabs{display:flex;gap:5px;margin-bottom:14px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#fff}.tabs button{flex:1;min-height:36px;border:0;border-radius:8px;background:transparent;font-size:9px}.tabs button.is-active{background:var(--wine-600);color:#fff}.clinical-records{display:grid;gap:10px}.clinical-record{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.clinical-record__head{display:flex;justify-content:space-between;gap:15px}.clinical-record h3{margin:0;font-family:var(--font-display);font-size:18px;font-weight:400}.clinical-record time{font-size:8px;color:var(--muted)}.clinical-record p{margin:9px 0 0;color:var(--muted);font-size:10px}.clinical-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.inventory-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.inventory-card__top{display:flex;justify-content:space-between}.inventory-card h3{margin:14px 0 6px;font-family:var(--font-display);font-size:18px;font-weight:400}.inventory-card p{margin:0;color:var(--muted);font-size:9px}.stock-line{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:13px;border-top:1px solid var(--line)}.stock-line strong{font-family:var(--font-display);font-size:20px;font-weight:400}.cash-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cash-total{padding:28px;border-radius:20px;background:linear-gradient(135deg,var(--wine-700),var(--wine-950));color:#fff}.cash-total>span{font-size:8px;letter-spacing:.14em;color:var(--rose-300)}.cash-total>strong{display:block;margin:10px 0;font-family:var(--font-display);font-size:42px;font-weight:400}.cash-total p{margin:0;color:rgba(255,255,255,.55);font-size:9px}.cash-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cash-breakdown div{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.cash-breakdown span,.cash-breakdown strong{display:block}.cash-breakdown span{font-size:8px;color:var(--muted)}.cash-breakdown strong{font-family:var(--font-display);font-size:22px;font-weight:400}.automation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.automation-card{display:grid;grid-template-columns:44px 1fr auto;align-items:start;gap:12px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.automation-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--rose-100);color:var(--wine-600)}.automation-card h3{margin:0 0 5px;font-family:var(--font-display);font-size:17px;font-weight:400}.automation-card p{margin:0;color:var(--muted);font-size:9px}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.content-list{display:grid;gap:9px}.content-item{display:grid;grid-template-columns:55px 1fr auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.content-thumb{width:54px;height:44px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,var(--wine-700),var(--rose-300));color:#fff;font-size:8px}.content-item h3{margin:0;font-family:var(--font-display);font-size:14px;font-weight:400}.content-item small{color:var(--muted);font-size:8px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.settings-list{display:grid;gap:10px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.setting-row strong,.setting-row small{display:block}.setting-row strong{font-family:var(--font-display);font-size:14px;font-weight:400}.setting-row small{font-size:8px;color:var(--muted)}.backup-actions{display:flex;flex-wrap:wrap;gap:9px}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.audit-list{display:grid;gap:8px}.audit-row{display:grid;grid-template-columns:110px 1fr auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:9px}.audit-row time{color:var(--muted)}.audit-row small{color:var(--muted)}
@media(max-width:1100px){.app-shell{grid-template-columns:215px 1fr}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.admin-layout{grid-template-columns:1fr}.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-header-actions .global-search{display:none}}
@media(max-width:820px){.app-shell{display:block}.app-sidebar{position:fixed;top:84px;left:0;width:260px;height:calc(100vh - 84px);transform:translateX(-105%);transition:.25s;box-shadow:var(--shadow-lg)}.app-sidebar.is-open{transform:translateX(0)}.app-menu-btn{display:block}.app-header{top:84px;padding:14px 16px}.app-header h1{font-size:25px}.app-content{padding:18px 16px 35px}.welcome-card{grid-template-columns:1fr}.appointment-ticket{max-width:300px}.portal-stats{grid-template-columns:1fr}.recommendation-card{grid-template-columns:80px 1fr}.recommendation-card .btn{grid-column:1/-1}.benefit-hero{grid-template-columns:1fr}.benefit-grid,.profile-grid,.cash-summary,.content-grid,.settings-grid{grid-template-columns:1fr}.patient-detail-grid{grid-template-columns:1fr}.automation-grid{grid-template-columns:1fr}.app-header-actions .user-chip div{display:none}}
@media(max-width:600px){.app-header-actions .btn{display:none}.cards-grid,.inventory-grid{grid-template-columns:1fr}.appointment-row{grid-template-columns:65px 1fr}.appointment-actions{grid-column:1/-1;justify-content:flex-start}.welcome-card{padding:25px}.welcome-card h2{font-size:36px}.recommendation-card{grid-template-columns:1fr}.recommendation-art{height:75px}.benefit-grid{grid-template-columns:1fr}.cash-breakdown{grid-template-columns:1fr}.schedule-item{grid-template-columns:45px 4px 32px 1fr}.schedule-item .status-pill,.schedule-item>button{display:none}.automation-card{grid-template-columns:40px 1fr}.automation-card>.switch{grid-column:2}.app-sidebar{top:84px;height:calc(100vh - 84px)}}
