.page-loading{height:100vh;color:var(--color-muted);place-items:center;display:grid}.auth-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-form{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:28px;display:flex;box-shadow:0 2px 8px #141e3c0a}.auth-form h1{margin:0;font-size:22px}.auth-brand{align-self:center;margin-bottom:6px}.auth-brand .brand-mark{width:46px;height:46px}.auth-sub{color:var(--color-muted);margin:0}.auth-form label{color:var(--color-muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.auth-form input{border:1px solid var(--color-border);color:var(--color-text);background:#fff;border-radius:8px;padding:10px 12px}.auth-form input:focus{outline:2px solid var(--color-primary);outline-offset:-1px;border-color:var(--color-primary)}.auth-form button[type=submit],.btn-primary{background:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:10px 16px;font-weight:600}.btn-primary.small{padding:4px 10px;font-size:13px}.auth-form button[type=submit]:disabled,.btn-primary:disabled{opacity:.6;cursor:not-allowed}.auth-error,.error-text{color:var(--color-error);background:#fee2e2;border-radius:8px;padding:10px 12px;font-size:14px}.error-text.small{padding:4px 8px;font-size:12px}.auth-hint{color:var(--color-muted);text-align:center;font-size:13px}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-header{background:var(--color-card);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.brand{color:var(--color-primary);font-size:18px;font-weight:700}.brand-ze{color:var(--color-primary);align-items:center;gap:8px;text-decoration:none;display:inline-flex}.brand-ze:hover{text-decoration:none}.brand-mark{color:var(--color-primary);flex:none;display:block}.brand-stack{flex-direction:column;align-items:flex-start;line-height:1;display:inline-flex}.brand-word{letter-spacing:1px;color:var(--color-primary);font-family:Georgia,Times New Roman,serif;font-size:22px;font-style:italic;font-weight:700}.brand-signature{letter-spacing:2px;text-transform:uppercase;color:var(--color-muted);margin-top:3px;font-family:Georgia,Times New Roman,serif;font-size:11px;font-style:italic;font-weight:400}.who{align-items:center;gap:12px;font-size:14px;display:flex}.role-tag{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-muted);border-radius:999px;padding:2px 10px;font-size:12px}button.link{color:var(--color-primary);background:0 0;border:none;padding:4px 8px}.app-main{flex-direction:column;flex:auto;width:100%;max-width:1200px;min-height:0;margin:0 auto;padding:24px;display:flex;overflow-y:auto}.dashboard h1{margin:0 0 8px}.muted{color:var(--color-muted)}.small{font-size:12px}.placeholder-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:24px;display:grid}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;margin-bottom:16px;padding:16px}.card h3{margin:0 0 8px;font-size:16px}.card p{color:var(--color-muted);margin:0;font-size:14px}.role-shell{flex-direction:column;flex:auto;gap:16px;min-height:0;display:flex}.role-nav{border-bottom:1px solid var(--color-border);flex:none;gap:8px;margin-bottom:8px;padding-bottom:8px;display:flex}.role-nav a{color:var(--color-muted);white-space:nowrap;border-radius:6px;padding:6px 12px;font-size:14px}.role-nav a.active{background:var(--color-primary);color:#fff;text-decoration:none}.role-nav a.nav-chat{position:relative;overflow:visible}.nav-badge{box-sizing:border-box;color:#fff;border:2px solid var(--color-bg);background:#e14f6a;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-6px;right:-6px}.search-input{border:1px solid var(--color-border);border-radius:8px;width:100%;max-width:360px;margin:8px 0 16px;padding:8px 12px}.patient-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.patient-row{background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:8px;padding:10px 14px;display:flex}.patient-link{color:var(--color-text);flex-direction:column;flex:1;text-decoration:none;display:flex}.patient-name{font-weight:600}.patient-email{color:var(--color-muted);font-size:12px}.status-pill{color:#4338ca;background:#eef2ff;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.status-pill.ok{color:#166534;background:#dcfce7}.status-pill.off{color:#854d0e;background:#fef9c3}.status-pill.route{color:#075985;background:#e0f2fe}.status-pill.draft{color:#374151;background:#f3f4f6}.status-pill.active{color:#166534;background:#dcfce7}.status-pill.paused{color:#854d0e;background:#fef9c3}.status-pill.completed{color:#3730a3;background:#e0e7ff}.status-pill.cancelled,.status-pill.needs_correction_pain,.status-pill.needs_correction_difficulty{color:var(--color-error);background:#fee2e2}.status-pill.no_pain_reduce_load{color:#6d28d9;background:#ede9fe}.status-pill.success{color:#166534;background:#dcfce7}.status-pill.pending{color:#374151;background:#f3f4f6}.triage-legend{flex-wrap:wrap;gap:16px;margin:4px 0 12px;display:flex}.legend-item{align-items:center;gap:6px;font-size:14px;display:inline-flex}.triage-row{align-items:flex-start;gap:10px}.triage-row-clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform 50ms}.triage-row-clickable:hover{border-color:var(--color-primary,#c08497);box-shadow:0 2px 10px #00000012}.triage-row-clickable:active{transform:translateY(1px)}.triage-row-clickable:focus-visible{outline:2px solid var(--color-primary,#c08497);outline-offset:2px}.triage-row-clickable .patient-name{transition:color .15s}.triage-row-clickable:hover .patient-name{color:var(--color-primary,#c08497)}.triage-row>span:first-child{margin-top:4px}.triage-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.triage-main .patient-link{flex:none}.triage-sub{flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;display:flex}.triage-reason{font-weight:600}.triage-procedure{color:var(--color-text);margin-top:2px;font-size:13px}.triage-engagement{color:var(--color-muted)}.triage-stage{text-align:right;flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.stage-badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-block}.stage-recovery{color:#b42318;background:#fee2e2}.stage-maintenance{color:#075985;background:#e0f2fe}.stage-maintenance_longevity{color:#6d28d9;background:#ede9fe}.stage-day{color:var(--color-muted);font-size:12px}.row-action{color:var(--color-primary,#c08497);font-size:12px;font-weight:600;text-decoration:none}@media (width<=560px){.triage-stage{text-align:left;align-items:flex-start;width:100%;margin-top:4px;padding-left:22px}.triage-row{flex-wrap:wrap}}.stage-card>summary.stage-summary{cursor:pointer;align-items:center;gap:10px;padding:4px 0;font-size:17px;font-weight:700;list-style:none;display:flex}.stage-card>summary.stage-summary::-webkit-details-marker{display:none}.stage-card>summary.stage-summary:before{content:"▸";color:var(--color-muted);transition:transform .15s}.stage-card[open]>summary.stage-summary:before{transform:rotate(90deg)}.stage-card.stage-active{background:#f0faf4;border:2px solid #30a46c}.stage-now{color:#fff;background:#30a46c;border-radius:8px;padding:1px 8px;font-size:11px;font-weight:700}.appt-green{color:#1a7f43;background:#e9f7ef;border:1px solid #b7e4c7;border-radius:8px;padding:4px 10px;display:inline-block}.appt-edit-trigger{cursor:pointer;font:inherit;align-items:center;gap:8px;transition:border-color .15s,box-shadow .15s;display:inline-flex}.appt-edit-trigger:hover{border-color:#7fce9e;box-shadow:0 1px 6px #1a7f432e}.appt-edit-pencil{opacity:.55;font-size:12px}.appt-edit-trigger:hover .appt-edit-pencil{opacity:1}.appt-editor{border:1px solid var(--color-border);background:var(--color-surface,#fff);border-radius:10px;flex-direction:column;gap:10px;max-width:360px;padding:12px;display:flex}.appt-editor-fields{flex-wrap:wrap;gap:12px;display:flex}.field-inline{color:var(--color-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.field-inline input[type=date],.field-inline input[type=time]{border:1px solid var(--color-border);color:var(--color-text);font-variant-numeric:tabular-nums;background:#fff;border-radius:8px;padding:8px 10px;font-size:15px;transition:border-color .15s,box-shadow .15s}.field-inline input[type=date]:focus,.field-inline input[type=time]:focus{border-color:var(--color-primary,#1a7f43);outline:none;box-shadow:0 0 0 3px #1a7f4324}.field-inline input:disabled{color:var(--color-muted);background:#f4f5f6}.field-inline input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}.field-inline input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}.field-inline input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.field-inline input[type=time]::-webkit-calendar-picker-indicator:hover{opacity:1}.link.danger{color:#c0392b}.procedures-field{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.procedure-blocks{flex-direction:column;gap:8px;width:100%;margin:0;padding:0;list-style:none;display:flex}.procedure-block{border-left:3px solid var(--color-primary,#c08497);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.procedure-add{flex-direction:column;gap:12px;width:100%;max-width:460px;padding:14px;display:flex}.procedure-suggest{border:1px solid var(--color-border);z-index:20;background:#fff;border-radius:8px;max-height:240px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 6px 16px #0000001f}.procedure-suggest li button{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--color-text);background:0 0;border:none;border-radius:6px;padding:8px 10px;display:block}.procedure-suggest li button:hover{background:var(--color-bg,#f4f5f6)}.diary-entry{border-top:1px solid var(--color-border);padding:8px 0}.diary-entry:first-of-type{border-top:none}.sym-red{color:#b42318;background:#fdecec;border-radius:6px;padding:0 7px;font-weight:700}.sym-yellow{color:#b7791f;background:#fef7e6;border-radius:6px;padding:0 7px;font-weight:700}.care-stage-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 10px;display:flex}.stage-foot{border-top:1px dashed var(--color-border);flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;padding-top:10px;display:flex}.care-manage{margin-top:12px}.care-manage>summary{cursor:pointer;color:var(--color-muted);padding:6px 0;font-size:14px}.scroll-top{z-index:50;background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;line-height:1;display:flex;position:fixed;bottom:18px;right:18px;box-shadow:0 4px 12px #0000002e}.scroll-top:hover{filter:brightness(1.05)}.tab-switch{background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;gap:4px;margin:8px 0 14px;padding:3px;display:inline-flex}.tab-switch button{color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:6px 16px;font-size:14px}.tab-switch button.active{background:var(--color-primary);color:#fff}.domain-switch{margin-top:4px}.domain-switch button{font-weight:600}.protocol-list{flex-direction:column;gap:10px;margin:12px 0 0;padding:0;list-style:none;display:flex}.protocol-card .protocol-body{white-space:pre-wrap;margin:8px 0 4px;font-size:14px;line-height:1.5}.protocol-card-head{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.protocol-title-btn{cursor:pointer;font:inherit;color:var(--color-text);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:0;display:inline-flex}.protocol-title-btn strong{font-size:15px}.protocol-title-btn:hover strong{color:var(--color-primary,#c08497)}.protocol-caret{color:var(--color-muted);flex:none;width:12px;font-size:12px}.protocol-pdf-chip .chat-doc-chip{padding:3px 8px;font-size:12px}.protocol-card-actions{flex:none}.protocol-card-body{border-top:1px solid var(--color-border);margin-top:12px;padding-top:12px}.protocol-structure{flex-direction:column;gap:16px;display:flex}.protocol-phase h4{margin:0 0 8px;padding-left:8px;font-size:14px}.protocol-days{flex-direction:column;gap:6px;display:flex}.protocol-day{border:1px solid var(--color-border);background:#fff;border-radius:10px;padding:0 12px}.protocol-day>summary{cursor:pointer;padding:9px 0;font-size:14px;font-weight:600;list-style:none}.protocol-day>summary::-webkit-details-marker{display:none}.protocol-day>summary:before{content:"▸ ";color:var(--color-muted)}.protocol-day[open]>summary:before{content:"▾ "}.protocol-day ul{margin:0 0 10px;padding-left:20px}.protocol-day li{margin:3px 0;font-size:14px;line-height:1.45}.protocol-fulltext{margin-top:4px}.protocol-fulltext>summary{cursor:pointer;color:var(--color-muted);font-size:13px}.structure-editor{flex-direction:column;gap:16px;display:flex}.phase-editor h4{margin:0 0 8px;padding-left:8px;font-size:14px}.phase-editor-block{border:1px solid var(--color-border);background:var(--color-surface,#fafafa);border-radius:10px;flex-direction:column;gap:6px;margin-bottom:8px;padding:10px;display:flex}.phase-block-label{flex:1;font-weight:600}.protocol-attachments{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.protocol-attach-editor{border-top:1px dashed var(--color-border);margin-top:14px;padding-top:10px}.attach-with-remove{align-items:center;gap:4px;display:inline-flex}.voice-dictate{margin:4px 0}.btn-ghost{border:1px solid var(--color-primary);color:var(--color-primary);cursor:pointer;background:0 0;border-radius:8px;padding:7px 14px;font-size:14px}.btn-recording{color:#b42318;cursor:pointer;background:#fdecef;border:1px solid #e14f6a;border-radius:8px;align-items:center;gap:8px;padding:7px 14px;font-size:14px;display:inline-flex}.rec-dot{background:#e14f6a;border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite rec-pulse}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.25}}.stack-form{flex-direction:column;gap:12px;max-width:460px;display:flex}.stack-form label{color:var(--color-muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.stack-form .field-block{flex-direction:column;gap:4px;display:flex}.stack-form .field-block>.field-label{color:var(--color-muted);font-size:13px}.stack-form input,.stack-form textarea,.stack-form select{border:1px solid var(--color-border);color:var(--color-text);background:#fff;border-radius:8px;padding:8px 10px}.stack-form button[type=submit]{background:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:10px;font-weight:600}.invite-result code{background:var(--color-bg);border-radius:6px;margin:8px 0;padding:8px;font-size:12px;display:block;overflow-x:auto}.invite-link{align-items:center;gap:8px;display:flex}.kv{grid-template-columns:200px 1fr;gap:4px 12px;margin:8px 0;display:grid}.kv dt{color:var(--color-muted);font-size:13px}.kv dd{margin:0}.stage-card{padding:16px}.stage-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.stage-name{border:1px solid var(--color-border);border-radius:6px;flex:1;min-width:200px;padding:6px 10px;font-size:16px;font-weight:600}.week-block{margin:16px 0}.week-block h4{margin:0 0 8px;font-size:14px}.day-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.day-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:10px}.day-head{margin-bottom:8px;font-weight:600}.day-card ul{flex-direction:column;gap:4px;margin:0 0 8px;padding:0;list-style:none;display:flex}.day-card li{background:#fff;border-radius:6px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:13px;display:flex}.day-card select{border:1px solid var(--color-border);border-radius:6px;width:100%;padding:6px}.actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.actions button.danger,button.danger{color:var(--color-error);background:#fee2e2;border:1px solid #fecaca;border-radius:6px;padding:4px 10px}.form-actions{align-items:center;gap:12px;margin-top:24px;display:flex}.route-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.exercise-meta{flex-direction:column;display:flex}.exec-screen .card{max-width:540px}.exec-screen label{color:var(--color-muted);flex-direction:column;margin-bottom:12px;font-size:13px;display:flex}.pain-scale{flex-direction:column;align-items:center;display:flex}.pain-value{color:var(--color-primary);font-size:48px;font-weight:700}.scale-marks{width:100%;color:var(--color-muted);justify-content:space-between;font-size:11px;display:flex}.exercise-video{border-radius:8px;width:100%;max-width:540px;margin:12px 0}.success-card{background:#ecfccb;border-color:#84cc16}.question-block{border-top:1px solid var(--color-border);margin-top:8px;padding-top:12px}.question-text{color:var(--color-text);margin-bottom:6px;font-weight:500}.required-mark{color:var(--color-error)}.choice-list{flex-direction:column;gap:4px;display:flex}.radio-row{align-items:center;gap:8px;color:var(--color-text)!important;flex-direction:row!important;display:flex!important}.notif-list{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.notif-list li{background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;padding:10px 14px}.notif-list li.unread{border-left:3px solid var(--color-primary)}.notif-list li.read{opacity:.65}.notif-main{justify-content:space-between;margin-bottom:4px;display:flex}.notif-body{color:var(--color-muted);align-items:center;gap:8px;font-size:14px;display:flex}.push-toggle{background:var(--color-bg);flex-direction:column;gap:6px;display:flex}.push-toggle .row{align-items:center;gap:8px;display:flex}.results-table{border-collapse:collapse;background:var(--color-card);border-radius:8px;width:100%;overflow:hidden}.results-table th,.results-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:8px 10px;font-size:13px}.results-table th{background:var(--color-bg);color:var(--color-muted);font-weight:600}.route-card .actions{margin-top:12px}.route-card header{align-items:center;gap:12px;margin-bottom:8px;display:flex}.chat-shell{flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:260px 1fr;gap:16px;min-height:0;display:grid}.chat-shell.single{grid-template-columns:1fr}.thread-list{border:1px solid var(--color-border);background:var(--color-card);border-radius:10px;padding:12px;overflow-y:auto}.thread-list h3{color:var(--color-muted);margin:0 0 8px;font-size:14px}.thread-list ul{margin:0;padding:0;list-style:none}.thread-list li{cursor:pointer;border-radius:8px;flex-direction:column;padding:8px 10px;display:flex}.thread-list li:hover{background:var(--color-bg)}.thread-list li.active{background:var(--color-bg);border:1px solid var(--color-primary)}.thread-name{font-size:14px;font-weight:600}.patient-search-results{border-bottom:1px solid var(--color-border);margin-bottom:8px;padding-bottom:8px}.patient-search-results li{cursor:pointer;flex-direction:column;gap:2px;display:flex}.thread-meta{color:var(--color-muted);align-items:center;gap:8px;font-size:11px;display:flex}.unread-badge{background:var(--color-primary);color:#fff;border-radius:999px;padding:1px 8px;font-size:11px}.btn-with-badge{align-items:center;gap:6px;display:inline-flex}.btn-count-badge{min-width:18px;height:18px;color:var(--color-primary,#c08497);background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.chat-window{border:1px solid var(--color-border);background:var(--color-card);border-radius:10px;grid-template-rows:auto 1fr auto;display:grid;overflow:hidden}.chat-header{border-bottom:1px solid var(--color-border);padding:12px 16px;font-weight:600}.chat-scroll{flex-direction:column;gap:8px;padding:12px 16px;display:flex;overflow-y:auto}.chat-bubble{white-space:pre-wrap;word-wrap:break-word;border-radius:12px;width:fit-content;max-width:min(70%,34rem);padding:8px 10px;font-size:14px}.chat-msg{flex-direction:column;max-width:100%;display:flex}.chat-msg.mine{align-items:flex-end}.chat-msg.ai,.chat-msg.peer{align-items:flex-start}.chat-author{color:var(--color-muted);margin:0 6px 2px;font-size:11px}.chat-msg.ai .chat-author{color:#5b6b9a;font-weight:600}.chat-msg.peer .chat-author{color:#8f5e70;font-weight:600}.chat-bubble.mine{background:var(--color-primary);color:#fff;align-self:flex-end}.chat-bubble.peer{background:#faf3f5;border:1px solid #ecd7de;align-self:flex-start}.chat-bubble.ai{background:#eef1f8;border:1px solid #dde3f1;align-self:flex-start}.chat-meta{opacity:.7;text-align:right;margin-top:4px;font-size:10px}.chat-window{height:100%;min-height:360px;max-height:none;position:relative}.chat-input{border-top:1px solid var(--color-border);align-items:flex-end;gap:8px;padding:10px 12px 12px;display:flex}.chat-composer{border:1px solid var(--color-border);background:var(--color-card);border-radius:18px;flex:1;align-items:flex-end;gap:2px;padding:3px 4px 3px 6px;transition:border-color .15s,box-shadow .15s;display:flex}.chat-composer:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 16%, transparent)}.chat-input textarea{resize:none;background:0 0;border:none;outline:none;flex:1;max-height:128px;padding:8px 6px;font-family:inherit;font-size:14px;line-height:1.4}.chat-input textarea::placeholder{color:var(--color-muted)}.chat-icon-btn{width:36px;height:36px;color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.chat-icon-btn:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.chat-icon-btn:disabled{opacity:.5;cursor:default}.chat-send-btn{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:42px;height:42px;transition:transform .1s,opacity .15s,background .15s;display:inline-flex}.chat-send-btn:active:not(:disabled){transform:scale(.93)}.chat-send-btn:disabled{opacity:.4;cursor:default}.chat-attach-preview{border:1px solid var(--color-border);background:var(--color-bg);border-radius:14px;align-items:center;gap:10px;margin:8px 12px 0;padding:8px 10px;display:flex}.chat-attach-preview .thumb{object-fit:cover;border:1px solid var(--color-border);border-radius:10px;flex:none;width:46px;height:46px}.chat-attach-preview .file-ic{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;font-size:22px;display:inline-flex}.chat-attach-preview .meta{flex:1;min-width:0}.chat-attach-preview .meta .fname{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.chat-attach-preview .meta .fsize{color:var(--color-muted);font-size:12px}.chat-attach-remove{border:1px solid var(--color-border);background:var(--color-card);width:28px;height:28px;color:var(--color-muted);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.chat-attach-remove:hover{color:var(--color-error);border-color:var(--color-error)}.chat-attach-error{color:var(--color-error);margin:8px 12px 0;font-size:12px}.chat-dropzone{z-index:5;background:color-mix(in srgb, var(--color-primary) 8%, var(--color-card));border:2px dashed var(--color-primary);color:var(--color-primary);pointer-events:none;border-radius:10px;justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}.chat-attach-img{border:1px solid var(--color-border);cursor:zoom-in;border-radius:12px;width:100%;max-width:240px;display:block}.chat-attach-skeleton{background:linear-gradient(100deg, var(--color-bg) 30%, #eef0f6 50%, var(--color-bg) 70%);background-size:200% 100%;border-radius:12px;width:200px;height:140px;animation:1.2s linear infinite chat-shimmer}@keyframes chat-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.chat-doc-chip{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text);border-radius:12px;align-items:center;gap:8px;max-width:240px;padding:8px 12px;font-size:13px;text-decoration:none;display:inline-flex}.chat-doc-chip .doc-ic{background:var(--color-bg);border-radius:8px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;display:inline-flex}.chat-doc-chip .doc-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-doc-chip:hover{border-color:var(--color-primary);text-decoration:none}@media (width<=640px){.app-header{padding:10px 14px}.app-main{padding:12px}.role-shell{gap:12px}.role-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.role-nav::-webkit-scrollbar{display:none}.chat-bubble{max-width:85%}.chat-attach-img{max-width:200px}.chat-shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.chat-shell.single{grid-template-rows:minmax(0,1fr)}.thread-list{max-height:32dvh}}@media (width>=1400px){.app-main{max-width:1320px}}.anthro-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:12px 0;display:grid}.anthro-cell{flex-direction:column;gap:4px;display:flex}.anthro-cell input{border:1px solid var(--color-border);border-radius:6px;padding:6px 8px}.anthro-table{border-collapse:collapse;background:var(--color-card);border-radius:8px;width:100%;font-size:13px;overflow:hidden}.anthro-table th,.anthro-table td{border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap;padding:6px 8px}.anthro-table th{background:var(--color-bg);color:var(--color-muted)}.verify-banner{color:#92400e;background:#fef3c7;border-bottom:1px solid #fde68a;justify-content:space-between;align-items:center;padding:8px 16px;font-size:14px;display:flex}.pwa-prompt{background:var(--color-card);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.pwa-prompt strong{display:block}.pwa-prompt .row,.brand{align-items:center;gap:8px;display:flex}.brand-logo{height:28px}.exercise-list{flex-direction:column;gap:12px;padding:0;list-style:none;display:flex}.exercise-list .row{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.template-list{flex-direction:column;gap:4px;padding:0;font-size:13px;list-style:none;display:flex}.template-list li{background:var(--color-bg);border-radius:6px;justify-content:space-between;align-items:center;padding:4px 8px;display:flex}button.danger.link{color:var(--color-error)}.route-stage-mini{border-top:1px dashed var(--color-border);margin-top:6px;padding:6px 0}.route-stage-mini:first-child{border-top:none;margin-top:0}details summary{cursor:pointer;padding:6px 0}.field-hint{color:var(--color-muted);margin-top:2px;font-size:11px;display:block}.auth-form .field-hint{margin-top:0}.combobox{position:relative}.combobox input{border:1px solid var(--color-border);background:#fff;border-radius:6px;width:100%;padding:6px 8px}.combobox-list{z-index:10;border:1px solid var(--color-border);background:#fff;border-radius:6px;max-height:260px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #141e3c1a}.combobox-list li{cursor:pointer;flex-direction:column;padding:6px 10px;font-size:13px;display:flex}.combobox-list li.active,.combobox-list li:hover{background:var(--color-bg)}.combobox-main{font-weight:500}.combobox-meta{color:var(--color-muted);font-size:11px}.diagnosis-list{flex-direction:column;gap:12px;margin:16px 0;padding:0;list-style:none;display:flex}.scale-row{margin:16px 0}.scale-head{margin-bottom:6px;font-weight:600}.diary-stats{flex-wrap:wrap;gap:10px;margin:10px 0;display:flex}.diary-stat{border:1px solid var(--color-border);background:var(--color-bg);border-radius:12px;flex-direction:column;align-items:center;gap:2px;min-width:78px;padding:8px 12px;display:flex}.diary-stat-label{color:var(--color-muted);font-size:12px}.diary-stat-val{color:var(--color-primary);font-size:24px;font-weight:700;line-height:1.1}.num-scale{flex-wrap:wrap;gap:6px;display:flex}.num-chip{border:1px solid var(--color-border);background:var(--color-bg);width:34px;height:34px;color:var(--color-muted);cursor:pointer;border-radius:9px;font-size:14px;font-weight:600;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.num-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.num-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 2px 6px #c0849766}.diary-textarea{border:1px solid var(--color-border);background:var(--color-bg);width:100%;font:inherit;color:inherit;resize:vertical;border-radius:12px;margin-top:6px;padding:12px 14px;transition:border-color .12s,box-shadow .12s,background .12s;display:block}.diary-textarea::placeholder{color:var(--color-muted)}.diary-textarea:focus{border-color:var(--color-primary);background:var(--color-card);outline:none;box-shadow:0 0 0 3px #c084972e}.attach-btn{border:1px dashed var(--color-primary);color:#8f5e70;cursor:pointer;background:#faf3f5;border-radius:10px;align-items:center;gap:8px;padding:9px 14px;font-size:14px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.attach-btn:hover{background:#f4e6ea}.attach-btn:disabled{opacity:.6;cursor:default}.attach-btn svg{flex:none}.diary-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.diary-edit-btn{border:1px solid var(--color-primary);color:var(--color-primary);cursor:pointer;background:0 0;border-radius:999px;align-self:flex-start;margin-top:8px;padding:6px 14px;font-size:13px;font-weight:600;transition:background .12s,color .12s}.diary-edit-btn:hover{background:var(--color-primary);color:#fff}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary:#c08497;--color-bg:#f6f7fb;--color-card:#fff;--color-border:#e3e6ee;--color-text:#1d2330;--color-muted:#6b7280;--color-error:#b91c1c;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}input{font:inherit}
