:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color-scheme:light;--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-border: #e2e8f0;--color-text: #0f172a;--color-text-muted: #475569;--color-text-faint: #94a3b8;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-soft: #dbeafe;--color-success: #15803d;--color-warning: #b45309;--color-danger: #b91c1c;--color-info: #0f766e;--color-border: #e5e9f0;--color-border-soft: #eef2f7;--color-primary-soft: #eff6ff;--color-primary-border: #bfdbfe;--color-food: #16a34a;--color-food-soft: #dcfce7;--color-food-ink: #15803d;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 6px 18px rgba(15, 23, 42, .08);--shadow-lg: 0 20px 45px rgba(15, 23, 42, .1);--sidebar-width: 244px;--topbar-height: 64px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select,textarea{font-family:inherit;font-size:13.5px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:9px 12px;transition:border-color .12s ease,box-shadow .12s ease}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}select{cursor:pointer}::placeholder{color:var(--color-text-faint)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--topbar-height) 1fr;grid-template-areas:"brand topbar" "sidebar main";height:100vh;overflow:hidden}.app-shell__brand{grid-area:brand;background:var(--color-surface);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:11px;padding:0 16px}.app-shell__sidebar{grid-area:sidebar;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden;min-height:0}.sidebar-scroll{flex:1;overflow-y:auto;min-height:0;padding:10px 12px 8px}.nav-collapse-btn{flex:none;display:flex;align-items:center;gap:10px;margin:6px 12px 12px;padding:9px 11px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);font-size:13px;font-weight:600}.nav-collapse-btn:hover{background:var(--color-surface-muted);color:var(--color-text)}.nav-collapse-btn .nav-ico{font-size:15px;width:20px;text-align:center;flex:none}@media (min-width: 901px){.app-shell.is-collapsed{--sidebar-width: 66px}.app-shell.is-collapsed .app-shell__brand{padding:0;justify-content:center}.app-shell.is-collapsed .brand__name,.app-shell.is-collapsed .brand__tier{display:none}.app-shell.is-collapsed .sidebar-scroll{padding:10px 8px 8px}.app-shell.is-collapsed .sidebar-nav__group{height:0;padding:6px 0 0;margin:6px 8px 0;overflow:hidden;border-top:1px solid var(--color-border-soft)}.app-shell.is-collapsed .sidebar-nav__item{justify-content:center;padding:9px 0;gap:0}.app-shell.is-collapsed .sidebar-nav__item>span:not(.nav-ico){display:none}.app-shell.is-collapsed .nav-collapse-btn{justify-content:center;margin:6px 8px 12px}.app-shell.is-collapsed .nav-collapse-btn>span:not(.nav-ico){display:none}}.app-shell__topbar{grid-area:topbar;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 20px;gap:14px}.app-shell__main{grid-area:main;padding:22px 26px;overflow-y:auto;min-height:0}.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand__logo{width:38px;height:38px;border-radius:10px;object-fit:cover;flex:none}.brand__mark{width:38px;height:38px;border-radius:10px;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}.brand__name{font-weight:800;font-size:15.5px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand__tier{font-size:10.5px;font-weight:700;background:var(--color-primary-soft);color:var(--color-primary);padding:1px 7px;border-radius:var(--radius-pill);border:1px solid var(--color-primary-border)}.sidebar-nav{padding:2px 0 8px;list-style:none;margin:0}.sidebar-nav__group{padding:12px 10px 5px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-faint)}.sidebar-nav__item{display:flex;align-items:center;padding:8px 11px;color:var(--color-text-muted);font-size:13.5px;font-weight:500;gap:10px;border-radius:var(--radius-md);margin-bottom:1px}.sidebar-nav__item .nav-ico{font-size:16px;width:20px;text-align:center;flex:none}.sidebar-nav__item:hover{background:var(--color-surface-muted);color:var(--color-text);text-decoration:none}.sidebar-nav__item.is-active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.topbar__room{display:flex;align-items:center;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 13px;font-weight:700;font-size:13.5px;background:var(--color-surface);cursor:pointer}.topbar__search{flex:1;max-width:520px;display:flex;align-items:center;gap:9px;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 13px;color:var(--color-text-faint)}.topbar__search input{border:none;background:none;outline:none;flex:1;font-size:13px;color:var(--color-text);font-family:inherit}.topbar__kbd{background:var(--color-surface);border:1px solid var(--color-border);border-radius:5px;padding:1px 7px;font-size:11px;color:var(--color-text-muted)}.topbar__spacer{flex:1}.topbar__actions{display:flex;gap:12px;align-items:center;position:relative}.topbar__clock{text-align:center;background:var(--color-surface-muted);border-radius:var(--radius-md);padding:5px 12px;line-height:1.15}.topbar__clock .h{font-weight:800;font-size:14.5px}.topbar__clock .d{color:var(--color-text-muted);font-size:11px}.user-chip{display:flex;align-items:center;gap:9px;padding:5px 10px 5px 6px;border-radius:var(--radius-md);background:var(--color-surface);font-size:13px}.user-chip__avatar{width:34px;height:34px;border-radius:50%;background:var(--color-primary-soft);display:flex;align-items:center;justify-content:center;font-size:16px;flex:none}.user-chip__name{font-weight:700;font-size:13px;line-height:1.1}.user-chip__role{color:var(--color-text-muted);font-size:11.5px}.user-chip--button{border:1px solid var(--color-border);cursor:pointer;font-family:inherit;color:var(--color-text)}.user-chip--button:hover{background:var(--color-surface-muted)}.user-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:240px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:8px 0;z-index:100}.user-menu__header{padding:8px 16px 12px;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:2px;margin-bottom:4px}.user-menu__header strong{font-size:14px}.user-menu__header span{font-size:12px;color:var(--color-text-muted)}.user-menu__item{display:block;padding:8px 16px;font-size:13px;color:var(--color-text)}.user-menu__item:hover{background:var(--color-surface-muted);text-decoration:none}.user-menu__item--danger{color:var(--color-danger)}.user-menu__divider{height:1px;background:var(--color-border);margin:4px 0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:16px;flex-wrap:wrap}.page-header__title-block h1{margin:0 0 4px;font-size:22px;font-weight:800;letter-spacing:-.01em}.page-header__title-block p{margin:0;color:var(--color-text-muted);font-size:14px;max-width:640px}.page-header__actions{display:flex;gap:8px}.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.badge--neutral{background:var(--color-surface-muted);color:var(--color-text-muted)}.badge--lite{background:var(--color-primary-soft);color:var(--color-primary)}.badge--pro{background:#fef3c7;color:#92400e}.badge--skeleton{background:#e2e8f0;color:#475569}.badge--wip{background:#fef3c7;color:#92400e}.badge--demo{background:#dcfce7;color:#166534}.badge--prod{background:#dbeafe;color:#1d4ed8}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}.empty-state{display:flex;flex-direction:column;align-items:flex-start;padding:32px;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-md);text-align:left;gap:12px}.empty-state h2{margin:0;font-size:18px;font-weight:600}.empty-state p{margin:0;color:var(--color-text-muted);font-size:14px;max-width:640px}.empty-state__plan{margin:8px 0;padding:12px 16px;background:var(--color-surface-muted);border-radius:var(--radius-sm);font-size:13px;color:var(--color-text-muted);width:100%}.empty-state__plan ul{margin:4px 0 0;padding-left:18px}.empty-state__plan li{margin:2px 0}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:var(--radius-md);border:1px solid transparent;background:var(--color-primary);color:#fff;font-size:13px;font-weight:600;transition:background .12s ease,box-shadow .12s ease}.btn:hover{background:var(--color-primary-hover);text-decoration:none}.btn--ghost{background:transparent;border-color:var(--color-border);color:var(--color-text)}.btn--ghost:hover{background:var(--color-surface-muted)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#eff6ff,#f8fafc);padding:24px}.auth-card{width:100%;max-width:420px;background:var(--color-surface);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-md)}.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--color-surface)}.auth-layout__brand{background:radial-gradient(circle at 0% 0%,#1e40af,#0f3787 35%,#0b2864 80%);color:#fff;padding:56px 64px;display:flex;align-items:center;position:relative;overflow:hidden}.auth-layout__brand:before{content:"";position:absolute;inset:-20% -10% auto auto;width:70%;height:70%;background:radial-gradient(circle,rgba(59,130,246,.35) 0%,transparent 70%);pointer-events:none}.auth-layout__brand-inner{position:relative;max-width:480px;display:flex;flex-direction:column;gap:32px}.auth-layout__logo{display:flex;align-items:center;gap:12px}.auth-layout__logo-mark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:#ffffff2e;border:1px solid rgba(255,255,255,.25);font-size:22px;font-weight:700;letter-spacing:-.5px}.auth-layout__logo-name{font-size:20px;font-weight:700;letter-spacing:-.2px}.auth-layout__logo-tag{font-size:12px;color:#ffffffb3;text-transform:uppercase;letter-spacing:.08em}.auth-layout__headline{font-size:30px;font-weight:600;line-height:1.25;margin:0;letter-spacing:-.5px}.auth-layout__props{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}.auth-layout__props li{display:flex;align-items:flex-start;gap:12px}.auth-layout__props strong{display:block;font-size:14px;font-weight:600;margin-bottom:2px}.auth-layout__props span{font-size:13px;color:#ffffffbf;line-height:1.45}.auth-layout__check{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#22c55e;color:#052e16;font-size:12px;font-weight:700;margin-top:1px}.auth-layout__quote{margin:0;padding:20px 22px;border-left:3px solid rgba(255,255,255,.4);background:#ffffff0f;border-radius:0 var(--radius-md) var(--radius-md) 0}.auth-layout__quote p{margin:0 0 10px;font-size:14px;font-style:italic;color:#ffffffe6;line-height:1.55}.auth-layout__quote cite{font-size:12px;color:#ffffffb3;font-style:normal}.auth-layout__badges{display:flex;flex-wrap:wrap;gap:6px}.auth-layout__badge{font-size:11px;font-weight:500;padding:4px 10px;border-radius:999px;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);color:#ffffffd9}.auth-layout__form{display:flex;flex-direction:column;background:var(--color-surface)}.auth-layout__form-inner{flex:1;display:flex;align-items:center;justify-content:center;padding:64px 56px}.auth-layout__footer{padding:20px 56px;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--color-text-muted)}.auth-layout__footer a{color:var(--color-text-muted)}.auth-layout__footer a:hover{color:var(--color-primary)}@media (max-width: 960px){.auth-layout{grid-template-columns:1fr}.auth-layout__brand{padding:32px}.auth-layout__brand-inner{max-width:none}.auth-layout__headline{font-size:24px}.auth-layout__quote,.auth-layout__props li:nth-child(n+3){display:none}.auth-layout__form-inner{padding:32px 24px}.auth-layout__footer{padding:16px 24px;flex-direction:column;gap:6px;text-align:center}}.auth-form{width:100%;max-width:420px;display:flex;flex-direction:column;gap:18px}.auth-form__header h1{margin:0 0 6px;font-size:26px;font-weight:600;letter-spacing:-.3px}.auth-form__header p{margin:0 0 8px;color:var(--color-text-muted);font-size:14px}.field{display:flex;flex-direction:column;gap:6px}.field__label-row{display:flex;justify-content:space-between;align-items:baseline}.field label{font-size:13px;font-weight:500;color:var(--color-text)}.field__assist{font-size:12px;color:var(--color-primary)}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=tel]{width:100%;padding:10px 12px;font-size:14px;font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color .12s ease,box-shadow .12s ease}.field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb2e}.field input:disabled{background:var(--color-surface-muted);cursor:not-allowed}.field--error input{border-color:var(--color-danger)}.field--error input:focus{box-shadow:0 0 0 3px #b91c1c26}.field__error{font-size:12px;color:var(--color-danger)}.field__input-with-action{position:relative;display:flex}.field__input-with-action input{padding-right:56px}.field__input-action{position:absolute;right:4px;top:50%;transform:translateY(-50%);padding:4px 10px;background:transparent;border:0;color:var(--color-text-muted);font-size:12px;font-weight:500}.field__input-action:hover{color:var(--color-primary)}.checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.btn--primary{background:var(--color-primary)}.btn--primary:disabled{background:var(--color-primary);opacity:.55;cursor:not-allowed}.btn--block{width:100%;justify-content:center;padding:12px 14px;font-size:14px;font-weight:600}.alert{padding:10px 14px;border-radius:var(--radius-md);font-size:13px}.alert--error{background:#fef2f2;border:1px solid #fecaca;color:var(--color-danger)}.alert--success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.alert--info{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8}.otp-group{display:flex;gap:8px;justify-content:space-between}.otp-group input{width:48px;height:56px;text-align:center;font-size:22px;font-weight:600;font-family:Fira Mono,Menlo,Consolas,monospace;letter-spacing:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;transition:border-color .12s ease,box-shadow .12s ease}.otp-group input::-webkit-outer-spin-button,.otp-group input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.otp-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb2e}.otp-group input--filled{border-color:var(--color-primary);background:var(--color-primary-soft)}.otp-group--error input{border-color:var(--color-danger)}.strength{display:flex;flex-direction:column;gap:6px;margin-top:4px}.strength__bars{display:flex;gap:4px}.strength__bar{flex:1;height:4px;background:var(--color-border);border-radius:2px;transition:background .12s ease}.strength__bar--on-weak{background:var(--color-danger)}.strength__bar--on-fair{background:var(--color-warning)}.strength__bar--on-good{background:#15803d}.strength__bar--on-strong{background:var(--color-success)}.strength__label{font-size:12px;color:var(--color-text-muted)}.strength__rules{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:12px;color:var(--color-text-muted)}.strength__rules li{display:flex;align-items:center;gap:6px}.strength__rules li:before{content:"○";font-size:10px;color:var(--color-text-faint)}.strength__rules li.is-met{color:var(--color-success)}.strength__rules li.is-met:before{content:"✓";color:var(--color-success);font-weight:700}.info-card{padding:16px 18px;border:1px solid var(--color-border);background:var(--color-surface-muted);border-radius:var(--radius-md);font-size:13px;color:var(--color-text);display:flex;flex-direction:column;gap:6px}.info-card__row{display:flex;justify-content:space-between;gap:12px}.info-card__row dt{color:var(--color-text-muted);margin:0}.info-card__row dd{margin:0;font-weight:500;text-align:right}.qr-placeholder{display:flex;align-items:center;justify-content:center;width:168px;height:168px;margin:0 auto;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);position:relative;overflow:hidden}.qr-placeholder__grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(12,1fr);width:144px;height:144px;gap:1px}.qr-placeholder__cell{background:var(--color-text)}.qr-placeholder__cell.is-empty{background:transparent}.qr-placeholder__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#ffffffeb;font-size:11px;color:var(--color-text-muted);text-align:center;padding:8px;line-height:1.4}.secret-code{font-family:Fira Mono,Menlo,Consolas,monospace;font-size:13px;letter-spacing:.05em;padding:10px 14px;background:var(--color-surface-muted);border-radius:var(--radius-sm);text-align:center;word-break:break-all}.recovery-codes{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding:14px 16px;background:var(--color-surface-muted);border-radius:var(--radius-md);font-family:Fira Mono,Menlo,Consolas,monospace;font-size:13px}.recovery-codes code{font-family:inherit}.auth-form__notice{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;background:var(--color-primary-soft);border-radius:var(--radius-md);color:var(--color-text);font-size:13px;line-height:1.5}.auth-form__notice-icon{font-size:16px;line-height:1.2}.auth-form__alt{font-size:12px;color:var(--color-text-muted);text-align:center;border-top:1px solid var(--color-border);padding-top:16px;line-height:1.5}.code{font-family:Fira Mono,Menlo,Consolas,monospace;background:var(--color-surface-muted);padding:2px 6px;border-radius:var(--radius-sm);font-size:12px}.breadcrumbs{font-size:12px;color:var(--color-text-muted);margin-bottom:4px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.breadcrumbs a{color:var(--color-text-muted)}.breadcrumbs a:hover{color:var(--color-primary)}.breadcrumbs__sep{color:var(--color-text-faint)}.skeleton{background:linear-gradient(90deg,var(--color-surface-muted) 0%,#e2e8f0 50%,var(--color-surface-muted) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none;background:var(--color-surface-muted)}}.status-pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;letter-spacing:.01em;white-space:nowrap}.status-pill--neutral{background:var(--color-surface-muted);color:var(--color-text-muted)}.status-pill--primary{background:var(--color-primary-soft);color:var(--color-primary-hover)}.status-pill--success{background:#dcfce7;color:#166534}.status-pill--warning{background:#fef3c7;color:#92400e}.status-pill--danger{background:#fee2e2;color:#991b1b}.status-pill--info{background:#cffafe;color:#155e75}.empty-state-inline{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:13px}.empty-state-inline__icon{font-size:20px;opacity:.7}.empty-state-inline strong{color:var(--color-text);display:block;margin-bottom:2px}.empty-state-inline p{margin:0}.empty-state__icon{font-size:28px;opacity:.7;margin-bottom:4px}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar__search{flex:1 1 320px;max-width:520px;position:relative;display:flex;align-items:center}.toolbar__search input{width:100%;height:38px;padding:0 36px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:14px}.toolbar__search input:focus{outline:2px solid var(--color-primary);outline-offset:-1px;border-color:var(--color-primary)}.toolbar__search-icon{position:absolute;left:12px;color:var(--color-text-faint);pointer-events:none}.toolbar__search-clear{position:absolute;right:8px;background:transparent;border:none;color:var(--color-text-faint);font-size:18px;width:22px;height:22px;line-height:1;border-radius:50%}.toolbar__search-clear:hover{background:var(--color-surface-muted);color:var(--color-text)}.toolbar__filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar__filters select,.toolbar__filters input[type=text],.toolbar__filters input[type=date]{height:38px;padding:0 12px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:13px}.toolbar__right{margin-left:auto;display:flex;gap:8px;align-items:center}.data-table-scroll{max-height:calc(100vh - 240px);overflow:auto;position:relative}.data-table{position:relative}.data-table thead th{position:sticky;top:0;z-index:2;background:var(--color-surface-muted)}.data-table .is-sortable{cursor:pointer}.data-table__sort{background:transparent;border:none;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;font-weight:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:0}.data-table__sort-arrow{font-size:10px;color:var(--color-text-faint)}.data-table-wrap--compact .data-table th,.data-table-wrap--compact .data-table td{padding:8px 12px;font-size:13px}.data-table .is-sticky-right{position:sticky;right:0;background:var(--color-surface);box-shadow:-8px 0 8px -8px #0f172a14}.data-table thead .is-sticky-right{background:var(--color-surface-muted)}.field select,.field input[type=number],.field input[type=date],.field input[type=time],.field input[type=tel],.field input[type=search],.field input[type=url],.field input[type=email],.field input[type=text],.field input[type=password]{height:38px;width:100%;padding:0 12px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:14px;font-family:inherit;color:inherit}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-primary);outline-offset:-1px;border-color:var(--color-primary)}.field--error input,.field--error select,.field--error textarea{border-color:var(--color-danger)}.dashboard-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;margin-bottom:24px}.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px 20px;display:flex;flex-direction:column;gap:6px;min-height:110px;position:relative}.kpi-card__label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:600}.kpi-card__value{font-size:26px;font-weight:700;letter-spacing:-.01em}.kpi-card__hint{font-size:12px;color:var(--color-text-muted);margin-top:auto}.kpi-card__delta{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;position:absolute;top:16px;right:16px}.kpi-card__delta--up{background:#dcfce7;color:#166534}.kpi-card__delta--down{background:#fee2e2;color:#991b1b}.kpi-card__delta--flat{background:var(--color-surface-muted);color:var(--color-text-muted)}.kpi-tile-row{grid-column:span 12;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}@media (max-width: 1100px){.kpi-tile-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.kpi-tile-row{grid-template-columns:1fr}}.dashboard-grid__main{grid-column:span 8}.dashboard-grid__side{grid-column:span 4;display:flex;flex-direction:column;gap:16px}@media (max-width: 1100px){.dashboard-grid__main,.dashboard-grid__side{grid-column:span 12}}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-action{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-decoration:none;color:var(--color-text);transition:border-color .1s}.quick-action:hover{border-color:var(--color-primary);text-decoration:none}.quick-action__icon{background:var(--color-primary-soft);color:var(--color-primary);border-radius:var(--radius-sm);width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.quick-action__title{font-weight:600;font-size:14px;line-height:1.2}.quick-action__sub{font-size:12px;color:var(--color-text-muted)}.alert-list{display:flex;flex-direction:column;gap:6px}.alert-list__item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--color-surface-muted);font-size:13px}.alert-list__item--critical{background:#fee2e2;color:#991b1b}.alert-list__item--warning{background:#fef3c7;color:#92400e}.alert-list__item--info{background:var(--color-primary-soft);color:var(--color-primary-hover)}.appt-status{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}.appt-status--REQUESTED{background:var(--color-surface-muted);color:var(--color-text-muted)}.appt-status--CONFIRMED{background:var(--color-primary-soft);color:var(--color-primary-hover)}.appt-status--CHECKED_IN{background:#ecfeff;color:#155e75}.appt-status--IN_EXAM{background:#e0e7ff;color:#3730a3;font-weight:600}.appt-status--COMPLETED{background:#dcfce7;color:#166534}.appt-status--NO_SHOW{background:#fef3c7;color:#92400e}.appt-status--CANCELLED{background:#fee2e2;color:#991b1b}.day-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.day-board__column{background:var(--color-surface-muted);border-radius:var(--radius-md);padding:12px;min-height:280px}.day-board__column-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:700}.day-board__count{background:var(--color-surface);border-radius:999px;padding:1px 8px;font-weight:700;font-size:11px;color:var(--color-text)}.appt-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 12px;margin-bottom:8px;cursor:pointer;transition:border-color .1s}.appt-card:hover{border-color:var(--color-primary)}.appt-card__time{font-weight:700;font-size:13px;color:var(--color-primary)}.appt-card__patient{font-weight:600;font-size:14px;margin-top:2px}.appt-card__doctor{font-size:12px;color:var(--color-text-muted);margin-top:2px}.appt-card__service{font-size:12px;color:var(--color-text-muted)}.week-calendar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.week-calendar__header{display:grid;grid-template-columns:80px repeat(7,1fr);border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.week-calendar__header-cell{padding:10px 8px;font-size:12px;font-weight:600;color:var(--color-text-muted);text-align:center}.week-calendar__header-cell.is-today{color:var(--color-primary);background:var(--color-primary-soft)}.week-calendar__header-cell strong{display:block;font-size:18px;color:inherit;margin-top:2px}.week-calendar__body{display:grid;grid-template-columns:80px repeat(7,1fr);max-height:600px;overflow-y:auto}.week-calendar__hour{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);font-size:11px;color:var(--color-text-faint);padding:4px 8px;text-align:right}.week-calendar__cell{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);min-height:44px;padding:2px;display:flex;flex-direction:column;gap:2px}.week-calendar__cell:nth-child(8n+1){border-right:none}.week-calendar__appt{background:var(--color-primary-soft);border-left:3px solid var(--color-primary);padding:3px 6px;border-radius:3px;font-size:11px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-calendar__appt--COMPLETED{background:#dcfce7;border-left-color:#16a34a}.week-calendar__appt--CANCELLED{background:#fee2e2;border-left-color:#dc2626;opacity:.6;text-decoration:line-through}.week-calendar__appt--NO_SHOW{background:#fef3c7;border-left-color:#d97706}.week-calendar__appt.is-draggable{cursor:grab}.week-calendar__appt.is-draggable:active{cursor:grabbing;opacity:.7}.week-calendar__cell.is-drop-target{background:var(--color-primary-soft);outline:2px dashed var(--color-primary);outline-offset:-2px}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}@media (max-width: 1100px){.detail-grid{grid-template-columns:1fr}}.combo{position:relative}.combo__menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:280px;overflow-y:auto;z-index:50}.combo__option{padding:8px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--color-border)}.combo__option:last-child{border-bottom:none}.combo__option.is-active,.combo__option:hover{background:var(--color-primary-soft)}.combo__option-main{font-weight:600}.combo__option-sub{font-size:12px;color:var(--color-text-muted)}.combo__empty{padding:14px 12px;font-size:13px;color:var(--color-text-muted)}.encounter-header{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:flex-start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:14px}.encounter-header__patient{display:flex;gap:14px;align-items:flex-start}.encounter-header__avatar{width:52px;height:52px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);font-weight:700;font-size:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.encounter-header__name{font-size:20px;font-weight:700;margin:0 0 4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.encounter-header__meta{font-size:13px;color:var(--color-text-muted);display:flex;flex-wrap:wrap;gap:14px;align-items:center}.encounter-header__quick{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.encounter-header__vitals{display:flex;gap:14px;font-size:13px;font-weight:600;color:var(--color-text);background:var(--color-surface-muted);border-radius:var(--radius-sm);padding:6px 12px}@media (max-width: 900px){.encounter-header{grid-template-columns:1fr}.encounter-header__quick{align-items:flex-start}}.encounter-tabs{position:sticky;top:0;background:var(--color-bg);z-index:3;padding-top:4px}.tabs__badge{display:inline-block;margin-left:6px;background:var(--color-surface-muted);color:var(--color-text);font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;vertical-align:middle}.tabs__badge--ok{background:#dcfce7;color:#166534}.soap-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 900px){.soap-grid{grid-template-columns:1fr}}.soap-cell{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column}.soap-cell h3{margin:0 0 4px;font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px}.soap-cell h3 small{color:var(--color-text-muted);font-weight:400;font-size:11px}.soap-cell textarea{flex:1;width:100%;min-height:140px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:14px;line-height:1.5;resize:vertical;margin-top:8px}.soap-cell textarea:focus{outline:2px solid var(--color-primary);outline-offset:-1px;border-color:var(--color-primary)}.soap-saved{font-size:12px;color:var(--color-text-muted);text-align:right;margin:8px 0 0}.soap-saved--saving{color:var(--color-warning)}.soap-saved--saved{color:var(--color-success)}.vitals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.vitals-cell{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column}.vitals-cell label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--color-text-muted);margin-bottom:6px}.vitals-cell input{font-size:22px;font-weight:700;border:none;background:transparent;padding:0;width:100%;font-family:inherit;color:inherit}.vitals-cell input:focus{outline:none}.vitals-cell__unit{font-size:12px;color:var(--color-text-muted);margin-top:2px}.vitals-cell--bp{grid-column:span 2}.vitals-cell--bp .vitals-bp{display:flex;align-items:baseline;gap:8px}.vitals-cell--bp input{width:60px}.vitals-cell--bp .vitals-bp__sep{font-size:22px;color:var(--color-text-faint)}.vitals-cell--out-of-range{border-color:var(--color-danger);background:#fef2f2}.vitals-cell--out-of-range input{color:var(--color-danger)}.dx-row{display:grid;grid-template-columns:80px 1fr 1fr 120px 60px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--color-border)}.dx-row:last-child{border-bottom:none}.dx-row__code{font-family:Fira Mono,monospace;font-weight:700}.dx-row__primary{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-muted)}.dx-row__primary input{margin:0}.rx-row{display:grid;grid-template-columns:28px 2fr .7fr .7fr .7fr .7fr .8fr 60px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--color-border);font-size:13px}.rx-row__head{font-weight:700;color:var(--color-text-muted);font-size:11px;text-transform:uppercase}.rx-row input,.rx-row select{width:100%;height:34px;padding:0 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px}.rx-row__index{background:var(--color-primary);color:#fff;font-weight:700;font-size:12px;width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.encounter-overview{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 900px){.encounter-overview{grid-template-columns:1fr}}.encounter-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px}.encounter-section h3{margin:0 0 8px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.encounter-section__empty{color:var(--color-text-faint);font-style:italic;font-size:13px}.patients-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.patients-toolbar__search{flex:1 1 320px;max-width:480px;position:relative}.patients-toolbar__search input{width:100%;height:38px;padding:0 12px 0 36px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:14px}.patients-toolbar__search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-faint);pointer-events:none}.patients-toolbar__filters{display:flex;gap:8px;flex-wrap:wrap}.patients-toolbar__filters select{height:38px;padding:0 12px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:13px}.data-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:12px 16px;font-size:13px;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table th{background:var(--color-surface-muted);font-weight:600;color:var(--color-text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.data-table tr:last-child td{border-bottom:none}.data-table tr.data-table__row--clickable{cursor:pointer}.data-table tr.data-table__row--clickable:hover{background:var(--color-surface-muted)}.data-table__empty,.data-table__loading{text-align:center;padding:40px 16px;color:var(--color-text-muted)}.pagination{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-top:1px solid var(--color-border);background:var(--color-surface)}.pagination__info{font-size:12px;color:var(--color-text-muted)}.pagination__controls{display:flex;gap:6px}.pagination__controls button{height:32px;min-width:32px;padding:0 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;color:var(--color-text)}.pagination__controls button[disabled]{cursor:not-allowed;opacity:.5}.pagination__controls button.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.patient-header{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px 24px;display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start;margin-bottom:20px}.patient-header__avatar{width:64px;height:64px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:24px;flex:0 0 64px}.patient-header__main{flex:1 1 280px}.patient-header__name{font-size:22px;font-weight:700;margin:0 0 6px}.patient-header__meta{font-size:13px;color:var(--color-text-muted);display:flex;gap:16px;flex-wrap:wrap}.patient-header__alerts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.patient-alert{font-size:12px;padding:4px 10px;border-radius:999px;font-weight:600}.patient-alert--critical{background:#fee2e2;color:#991b1b}.patient-alert--warning{background:#fef3c7;color:#92400e}.patient-alert--info{background:var(--color-primary-soft);color:var(--color-primary-hover)}.patient-header__actions{display:flex;gap:8px;flex-wrap:wrap}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-border);margin-bottom:20px}.tabs__button{background:transparent;border:none;padding:10px 16px;font-size:14px;color:var(--color-text-muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs__button.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.panel__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel__title{margin:0;font-size:16px;font-weight:700}.kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.kv-grid__label{font-size:12px;color:var(--color-text-muted);display:block;margin-bottom:2px}.kv-grid__value{font-size:14px;color:var(--color-text)}.patient-form{display:grid;grid-template-columns:1fr;gap:24px}.patient-form__section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px 24px}.patient-form__section h3{margin:0 0 16px;font-size:15px;font-weight:600}.patient-form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.patient-form__actions{display:flex;gap:12px;justify-content:flex-end}.btn--secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn--secondary:hover{background:var(--color-surface-muted)}.btn--danger{background:var(--color-danger);color:#fff;border:1px solid var(--color-danger)}.btn--danger:hover{filter:brightness(.95)}.duplicate-warning{border:1px solid var(--color-warning);background:#fffbeb;border-radius:var(--radius-md);padding:16px;margin-bottom:16px}.duplicate-warning--strong{border-color:var(--color-danger);background:#fee2e2}.duplicate-warning__title{font-weight:700;margin-bottom:8px}.duplicate-warning__candidate{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 12px;margin-top:6px;display:flex;justify-content:space-between;font-size:13px}.pill{display:inline-block;background:var(--color-surface-muted);color:var(--color-text-muted);font-size:12px;padding:2px 10px;border-radius:999px;margin-right:4px}.pill--active{background:#dcfce7;color:#166534}.pill--archived{background:var(--color-surface-muted);color:var(--color-text-muted)}.pill--deceased{background:#e5e7eb;color:#1f2937}.pill--merged{background:var(--color-primary-soft);color:var(--color-primary)}.severity-pill{display:inline-block;font-size:12px;padding:2px 8px;border-radius:var(--radius-sm);font-weight:600}.severity-pill--MILD{background:#ecfeff;color:#155e75}.severity-pill--MODERATE{background:#fef3c7;color:#92400e}.severity-pill--SEVERE{background:#fee2e2;color:#991b1b}.severity-pill--ANAPHYLAXIS{background:#b91c1c;color:#fff}.list-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--color-border);font-size:14px}.list-row:last-child{border-bottom:none}.list-row__main{display:flex;flex-direction:column;gap:4px}.list-row__title{font-weight:600}.list-row__sub{font-size:12px;color:var(--color-text-muted)}.list-row__actions{display:flex;gap:8px}.score-bar{background:var(--color-surface-muted);border-radius:4px;height:6px;overflow:hidden;width:80px}.score-bar__fill{background:var(--color-primary);height:100%}.text-mono{font-family:Fira Mono,Menlo,Consolas,monospace;font-size:12px;color:var(--color-text-muted)}.license-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}.license-badge__dot{width:8px;height:8px;border-radius:50%;display:inline-block}.license-badge--ok{background:#dcfce7;color:#166534}.license-badge--warning{background:#fef3c7;color:#92400e}.license-badge--danger{background:#fee2e2;color:#991b1b}.license-badge--unknown{background:var(--color-surface-muted);color:var(--color-text-muted)}.license-badge--ok .license-badge__dot{background:#16a34a}.license-badge--warning .license-badge__dot{background:#d97706}.license-badge--danger .license-badge__dot{background:#dc2626}.license-badge--unknown .license-badge__dot{background:var(--color-text-faint)}.invite-link-box{background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:var(--radius-md);padding:14px 16px;margin:16px 0}.invite-link-box__label{font-size:12px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-weight:600}.invite-link-box__row{display:flex;align-items:stretch;gap:8px}.invite-link-box__url{flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 12px;font-family:Fira Mono,Menlo,monospace;font-size:12px;word-break:break-all;-webkit-user-select:all;user-select:all}.invite-link-box__hint{font-size:12px;color:var(--color-text-muted);margin-top:8px;margin-bottom:0}.role-matrix{width:100%;border-collapse:collapse;font-size:13px}.role-matrix th,.role-matrix td{text-align:center;padding:8px 12px;border-bottom:1px solid var(--color-border)}.role-matrix th{background:var(--color-surface-muted);font-weight:600;color:var(--color-text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.role-matrix td:first-child,.role-matrix th:first-child{text-align:left;font-weight:500;white-space:nowrap}.role-matrix__group{background:var(--color-surface-muted);color:var(--color-text-muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.role-matrix__check{display:inline-block;width:18px;height:18px;line-height:18px;text-align:center;border-radius:4px;background:#dcfce7;color:#166534;font-weight:700}.role-matrix__dash{color:var(--color-text-faint)}.pro-upsell{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:var(--radius-md);padding:14px 16px;margin:16px 0;display:flex;gap:14px;align-items:flex-start}.pro-upsell__icon{font-size:22px;flex-shrink:0}.pro-upsell__body{flex:1;font-size:13px;color:#78350f}.pro-upsell__body strong{display:block;margin-bottom:4px;color:#78350f;font-size:14px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:flex-start;justify-content:center;padding-top:80px;z-index:200}.modal{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:calc(100vh - 120px);overflow-y:auto;box-shadow:var(--shadow-md);padding:24px 28px}.modal__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.modal__title{margin:0;font-size:18px;font-weight:600}.modal__close{background:transparent;border:none;font-size:22px;line-height:1;color:var(--color-text-faint);padding:0}.modal__close:hover{color:var(--color-text)}.modal__sub{color:var(--color-text-muted);margin:0 0 16px;font-size:13px}.kv-stack{display:flex;flex-direction:column;gap:10px}.kv-stack__row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--color-border)}.kv-stack__row:last-child{border-bottom:none}.kv-stack__row span:first-child{color:var(--color-text-muted);font-size:13px}.kpi-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-height:92px}.kpi-tile__label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:600}.kpi-tile__value{font-size:22px;font-weight:700;letter-spacing:-.01em}.kpi-tile__value--money{font-size:18px}.kpi-tile__sublabel{font-size:12px;color:var(--color-text-muted);margin-top:auto}.kpi-tile--primary{border-top:3px solid var(--color-primary)}.kpi-tile--success{border-top:3px solid #16a34a}.kpi-tile--warning{border-top:3px solid #f59e0b}.kpi-tile--danger{border-top:3px solid #dc2626}.kpi-tile--neutral{border-top:3px solid var(--color-border)}.inv-status{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.inv-status--DRAFT{background:var(--color-surface-muted);color:var(--color-text-muted)}.inv-status--POSTED{background:var(--color-primary-soft);color:var(--color-primary-hover)}.inv-status--PARTIALLY_PAID{background:#fef3c7;color:#92400e}.inv-status--PAID{background:#dcfce7;color:#166534}.inv-status--VOID{background:#fee2e2;color:#991b1b}.inv-status--REFUNDED{background:#e0e7ff;color:#3730a3}.fee-status{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.fee-status--PENDING{background:#fef3c7;color:#92400e}.fee-status--PAID{background:#dcfce7;color:#166534}.fee-status--WAIVED{background:var(--color-surface-muted);color:var(--color-text-muted)}.fee-status--BHYT{background:#e0e7ff;color:#3730a3}.pay-method{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;border:1px solid var(--color-border)}.pay-method--CASH{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.pay-method--CARD{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}.pay-method--BANK_TRANSFER{background:#f5f3ff;color:#5b21b6;border-color:#ddd6fe}.pay-method--VNPAY{background:#fef2f2;color:#991b1b;border-color:#fecaca}.pay-method--MOMO{background:#fdf2f8;color:#9d174d;border-color:#fbcfe8}.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:16px}.form-card h3{margin:0 0 12px;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.form-card--totals{background:var(--color-surface-muted)}.form-grid{display:grid;gap:16px;margin-bottom:16px}.form-grid--invoice{grid-template-columns:2fr 1fr}.form-grid--invoice-bottom{grid-template-columns:1fr 1fr}@media (max-width: 900px){.form-grid--invoice,.form-grid--invoice-bottom{grid-template-columns:1fr}}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.form-field>span:first-child{font-size:13px;font-weight:600;color:var(--color-text-muted)}.form-hint{font-size:12px;color:var(--color-text-muted);margin:4px 0 0}.form-error{font-size:13px;color:#b91c1c;margin-top:4px}.form-error--banner{background:#fee2e2;border:1px solid #fecaca;border-radius:var(--radius-md);padding:10px 14px;margin-bottom:14px}.btn--text{background:transparent;border:none;color:var(--color-primary);padding:6px 10px;cursor:pointer;font-weight:600}.btn--text:hover{text-decoration:underline}.btn-icon{background:transparent;border:none;width:28px;height:28px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);cursor:pointer}.btn-icon:hover{background:var(--color-surface-muted);color:var(--color-text)}.filter-date{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted)}.filter-date input{width:140px}.patient-picker{position:relative}.patient-picker input{width:100%}.patient-picker--selected{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.patient-picker__menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:260px;overflow-y:auto;z-index:50}.patient-picker__hint{padding:10px 14px;font-size:13px;color:var(--color-text-muted)}.patient-picker__option{display:block;width:100%;text-align:left;background:transparent;border:none;padding:8px 14px;cursor:pointer;border-bottom:1px solid var(--color-border)}.patient-picker__option:last-child{border-bottom:none}.patient-picker__option:hover{background:var(--color-primary-soft)}.invoice-items__table{width:100%;border-collapse:collapse;font-size:13px}.invoice-items__table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding:8px 6px;border-bottom:1px solid var(--color-border);font-weight:600}.invoice-items__table th.num{text-align:right}.invoice-items__table td{padding:8px 6px;border-bottom:1px solid var(--color-border);vertical-align:middle}.invoice-items__table td.num{text-align:right}.invoice-items__table input,.invoice-items__table select{width:100%;padding:5px 8px;font-size:13px}.invoice-items__table input.num{text-align:right}.invoice-items__table input[type=number]{width:100%}.invoice-items__empty{text-align:center;padding:28px;color:var(--color-text-muted);font-style:italic}.invoice-items__add-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px dashed var(--color-border)}.invoice-items__add-row label{display:block;font-size:12px;color:var(--color-text-muted);margin-bottom:4px}.item-kind{display:inline-block;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:600}.item-kind--SERVICE{background:var(--color-primary-soft);color:var(--color-primary-hover)}.item-kind--MEDICINE{background:#dcfce7;color:#166534}.item-kind--CUSTOM{background:var(--color-surface-muted);color:var(--color-text-muted)}.discount-input{display:flex;gap:4px}.discount-input input{flex:1;min-width:0}.discount-input select{width:50px}.invoice-totals{display:flex;flex-direction:column;gap:8px}.invoice-totals__row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:6px 0;font-size:14px}.invoice-totals__row--discount{grid-template-columns:1fr auto auto}.invoice-totals__discount-input{display:inline-flex;gap:4px}.invoice-totals__discount-input input{width:100px}.invoice-totals__discount-input select{width:50px}.invoice-totals__row .num{font-variant-numeric:tabular-nums}.invoice-totals__row--grand{border-top:2px solid var(--color-border);padding-top:12px;margin-top:6px;font-size:18px;font-weight:700;color:var(--color-primary)}.invoice-totals__row--balance{background:#fef3c7;margin:6px -10px 0;padding:8px 10px;border-radius:var(--radius-sm);font-weight:700;font-size:16px;color:#92400e}.num{text-align:right;font-variant-numeric:tabular-nums}.invoice-detail{display:grid;grid-template-columns:1fr 2fr;gap:16px;margin-top:16px}.invoice-detail__patient{grid-column:1;grid-row:1}.invoice-detail__totals{grid-column:1;grid-row:2}.invoice-detail__items{grid-column:2;grid-row:1 / span 1}.invoice-detail__payments{grid-column:2;grid-row:2}.invoice-detail__events{grid-column:1 / -1;grid-row:3}@media (max-width: 1000px){.invoice-detail{grid-template-columns:1fr}.invoice-detail__patient,.invoice-detail__totals,.invoice-detail__items,.invoice-detail__payments,.invoice-detail__events{grid-column:1;grid-row:auto}}.invoice-detail__meta{font-size:13px;color:var(--color-text-muted);margin-top:6px}.invoice-detail__meta span{display:inline-block;min-width:80px}.payment-ledger{list-style:none;margin:0;padding:0}.payment-ledger li{padding:10px 0;border-bottom:1px solid var(--color-border)}.payment-ledger li:last-child{border-bottom:none}.payment-ledger__time{font-size:12px;color:var(--color-text-muted)}.payment-ledger__main{display:flex;gap:10px;align-items:center;margin-top:2px}.payment-ledger__main strong{font-size:16px;color:var(--color-primary)}.payment-ledger__meta{font-size:12px;color:var(--color-text-muted);margin-top:2px}.event-list{list-style:none;margin:0;padding:0}.event-list li{display:grid;grid-template-columns:160px 1fr;gap:16px;padding:8px 0;border-bottom:1px dashed var(--color-border);font-size:13px}.event-list li:last-child{border-bottom:none}.event-list__time{color:var(--color-text-muted);font-size:12px}.event-list__note{color:var(--color-text-muted);margin-top:2px}.modal__body{display:flex;flex-direction:column;gap:14px}.modal__footer{display:flex;justify-content:flex-end;gap:10px;margin-top:6px;padding-top:14px;border-top:1px solid var(--color-border)}.payment-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 14px;background:var(--color-surface-muted);border-radius:var(--radius-md)}.payment-summary span{font-size:12px;color:var(--color-text-muted);display:block}.payment-summary strong{display:block;font-size:16px}.method-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}@media (max-width: 600px){.method-grid{grid-template-columns:repeat(3,1fr)}}.method-chip{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:10px 6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.method-chip:hover{border-color:var(--color-primary)}.method-chip--active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-hover)}.receipt-shell{background:var(--color-surface-muted);min-height:calc(100vh - 56px);padding:24px;display:flex;flex-direction:column;align-items:center;gap:16px}.receipt-shell__toolbar{width:148mm;display:flex;justify-content:space-between;align-items:center}.receipt{background:#fff;width:148mm;min-height:210mm;padding:12mm 14mm;box-shadow:var(--shadow-md);font-size:12px;line-height:1.45;color:#111}.receipt__header{display:grid;grid-template-columns:1fr auto;gap:12px;padding-bottom:10px;border-bottom:2px solid #000;margin-bottom:12px}.receipt__clinic h2{margin:0 0 4px;font-size:14px;color:var(--color-primary);font-weight:700}.receipt__clinic div{font-size:11px;line-height:1.4}.receipt__title{text-align:right}.receipt__title h1{margin:0;font-size:16px;letter-spacing:.05em;font-weight:800}.receipt__title div{font-size:11px}.receipt__patient{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-bottom:10px;font-size:12px}.receipt__patient label{color:#555;margin-right:4px}.receipt__items{width:100%;border-collapse:collapse;font-size:11px;margin:6px 0 10px}.receipt__items th,.receipt__items td{padding:4px 6px;border-bottom:1px solid #ddd;vertical-align:top}.receipt__items th{background:#f5f5f5;font-weight:600;text-align:left}.receipt__items th.num,.receipt__items td.num{text-align:right}.receipt__totals{display:flex;flex-direction:column;gap:4px;width:60%;margin-left:auto;font-size:12px}.receipt__totals>div{display:grid;grid-template-columns:1fr auto;gap:12px;padding:3px 0}.receipt__totals-grand{border-top:2px solid #000;padding-top:6px!important;font-weight:800;font-size:14px}.receipt__totals-balance{background:#fef3c7;padding:4px 6px!important;font-weight:700;color:#92400e}.receipt__payments{margin-top:12px}.receipt__payments h4{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.receipt__payments ul{list-style:none;margin:0;padding:0;font-size:11px}.receipt__payments li{display:grid;grid-template-columns:130px 100px 1fr auto;gap:10px;padding:3px 0;border-bottom:1px dashed #ddd}.receipt__note{margin-top:12px;font-size:11px;background:#fafafa;padding:6px 10px;border-left:3px solid var(--color-primary)}.receipt__signatures{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:30px;text-align:center;font-size:12px}.receipt__signatures>div{padding:0 12px}.receipt__sig-hint{font-size:10px;font-style:italic;color:#555}.receipt__sig-line{margin-top:30px;font-weight:600}.receipt__thanks{text-align:center;margin-top:18px;font-size:11px;font-style:italic;color:#555}@media print{.print-hide{display:none!important}body,html,#root{background:#fff}.receipt-shell{background:#fff;padding:0;min-height:0}.receipt{box-shadow:none;width:100%;min-height:0;padding:8mm 10mm;-webkit-print-color-adjust:exact;print-color-adjust:exact;line-height:1.35}.receipt .num,.receipt .text-mono{font-variant-numeric:tabular-nums}.receipt__totals,.receipt__signatures,.receipt__payments,.receipt__note{break-inside:avoid;page-break-inside:avoid}.rx-print table{font-variant-numeric:tabular-nums}.rx-print .rx-sign,.rx-print .rx-footer{break-inside:avoid;page-break-inside:avoid}@page{size:A5;margin:0}}@media (max-width: 900px){.receipt-shell{padding:12px}.receipt-shell__toolbar{width:100%;flex-wrap:wrap;gap:8px}.receipt{width:100%;max-width:148mm;padding:10mm 8mm}.receipt__header{grid-template-columns:1fr}.receipt__title{text-align:left}.receipt__patient{grid-template-columns:1fr}}.topbar__menu-btn,.app-shell__backdrop{display:none}@media (max-width: 900px){html,body{overflow-x:hidden}.app-shell{grid-template-columns:1fr;grid-template-rows:var(--topbar-height) 1fr;grid-template-areas:"topbar" "main";max-width:100vw;overflow-x:clip}.app-shell__brand,.topbar__clock,.topbar__kbd,.user-chip__role{display:none}.topbar__search{max-width:none}.app-shell__sidebar{position:fixed;top:0;left:0;bottom:0;width:264px;max-width:82vw;transform:translate(-100%);transition:transform .22s ease;z-index:60;box-shadow:0 0 40px #0000002e}.app-shell__sidebar.is-open{transform:translate(0)}.app-shell__backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;margin:0;padding:0;border:0;background:#0000006b;opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:50}.app-shell.is-nav-open .app-shell__backdrop{opacity:1;pointer-events:auto}body.is-nav-open{overflow:hidden}.topbar__menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-surface);color:var(--color-text);font-size:18px;line-height:1}.app-shell__topbar{padding:0 12px;gap:10px;min-width:0}.app-shell__main{padding:16px 14px;min-width:0}.topbar__breadcrumb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar__actions{min-width:0}.user-chip--button{max-width:40vw;overflow:hidden;white-space:nowrap}.user-menu{right:8px}.page-header{flex-direction:column;align-items:stretch;gap:12px}.page-header__actions,.patients-toolbar{flex-wrap:wrap}.patients-toolbar__search{width:100%}.data-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table,table.table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.patients-toolbar__search{min-width:0}.patients-toolbar__search input{min-width:0;width:100%}.detail-grid,.soap-grid,.encounter-overview{grid-template-columns:1fr!important}}@media (max-width: 720px){table.data-table,table.table{display:block;width:100%;overflow:visible;white-space:normal;border:0}table.data-table thead,table.table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}table.data-table tbody,table.table tbody{display:block}table.data-table tbody tr,table.table tbody tr{display:block;margin:0 0 10px;padding:4px 12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface)}table.data-table tbody td,table.table tbody td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border:0;border-bottom:1px solid var(--color-border);text-align:right;white-space:normal;min-height:22px}table.data-table tbody td:last-child,table.table tbody td:last-child{border-bottom:0}table.data-table tbody td:before,table.table tbody td:before{content:attr(data-label);flex:0 0 40%;text-align:left;font-weight:600;font-size:12px;color:var(--color-text-muted);white-space:nowrap}table.data-table tbody td:not([data-label]):before,table.table tbody td:not([data-label]):before,.data-table__loading:before,.data-table__empty:before{content:"";flex:0}.data-table__loading,.data-table__empty{justify-content:center;color:var(--color-text-muted)}}.notif{position:relative;display:flex;align-items:center}.notif__btn{position:relative;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);font-size:17px;line-height:1}.notif__btn:hover{background:var(--color-surface-muted)}.notif__badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--color-danger, #dc2626);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.notif__panel{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-width:92vw;max-height:70vh;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 12px 40px #00000029;z-index:70;overflow:hidden}.notif__header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--color-border)}.notif__mark-all{border:0;background:none;color:var(--color-primary);font-size:12px;font-weight:600}.notif__list{overflow-y:auto}.notif__empty{padding:28px 16px;text-align:center;color:var(--color-text-muted);font-size:13px}.notif__item{width:100%;display:flex;gap:10px;align-items:flex-start;text-align:left;padding:11px 14px;border:0;border-bottom:1px solid var(--color-border);background:none}.notif__item:hover{background:var(--color-surface-muted)}.notif__item.is-unread,.notif__item.is-unread:hover{background:var(--color-primary-soft)}.notif__icon{font-size:16px;line-height:1.3;flex:none}.notif__body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.notif__title{font-size:13px;font-weight:600;color:var(--color-text)}.notif__text{font-size:12.5px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.notif__time{font-size:11px;color:var(--color-text-faint);margin-top:2px}.notif__dot{width:8px;height:8px;border-radius:999px;background:var(--color-primary);flex:none;margin-top:5px}.exam-workspace{margin:-22px -26px;height:calc(100% + 44px);display:grid;grid-template-columns:296px minmax(0,1fr) 388px;grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"queue center right" "bar bar bar";background:var(--color-bg);min-height:0}.exam-col{min-height:0;overflow-y:auto}.exam-queue{grid-area:queue;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column}.exam-center{grid-area:center;padding:18px 22px}.exam-right{grid-area:right;background:var(--color-surface);border-left:1px solid var(--color-border);padding:16px}.exam-queue__head{padding:14px 16px 8px;font-size:12.5px;font-weight:800;letter-spacing:.02em}.exam-queue__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0 12px 10px}.exam-stat{border:1px solid var(--color-border);border-radius:10px;padding:7px 3px;text-align:center}.exam-stat__v{font-size:18px;font-weight:800}.exam-stat__l{font-size:10px;color:var(--color-text-muted)}.exam-stat--wait .exam-stat__v{color:var(--color-primary)}.exam-stat--prio .exam-stat__v{color:#ea580c}.exam-stat--exam .exam-stat__v{color:var(--color-food)}.exam-queue__list{flex:1;overflow-y:auto;min-height:0;padding:0 10px 12px}.exam-qcard{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--color-border);border-radius:11px;margin-bottom:8px;cursor:pointer;background:var(--color-surface)}.exam-qcard:hover{background:var(--color-surface-muted);text-decoration:none}.exam-qcard.is-current{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 1px var(--color-primary)}.exam-qcard__stt{width:32px;height:32px;border-radius:9px;background:var(--color-surface-muted);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:none}.exam-qcard.is-current .exam-qcard__stt{background:var(--color-primary);color:#fff}.exam-qcard__nm{flex:1;min-width:0}.exam-qcard__nm b{font-size:13.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exam-qcard__nm span{color:var(--color-text-muted);font-size:11.5px}.exam-qcard__tm{color:var(--color-text-muted);font-size:11.5px;white-space:nowrap}.exam-phead{display:flex;gap:15px;align-items:flex-start;margin-bottom:16px}.exam-phead__av{width:62px;height:62px;border-radius:14px;background:#fde4ec;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#be185d;flex:none}.exam-phead__name{font-size:20px;font-weight:800;display:flex;align-items:center;gap:9px}.exam-phead__meta{color:var(--color-text-muted);font-size:12.5px;margin-top:3px}.exam-phead__right{margin-left:auto;text-align:right}.exam-phead__right .m{color:var(--color-text-muted);font-size:12px}.exam-sec{margin-bottom:16px}.exam-sec__title{font-size:13px;font-weight:800;margin-bottom:9px}.exam-box{border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);padding:13px 14px}.exam-box textarea{width:100%;border:none;padding:0;resize:vertical;font-size:13px;background:none}.exam-box textarea:focus-visible{outline:none;box-shadow:none}.exam-field{display:grid;gap:5px;margin-bottom:11px}.exam-field:last-child{margin-bottom:0}.exam-field>label{font-size:12px;font-weight:600;color:var(--color-text-muted)}.exam-vitals{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:11px}.exam-vital{border:1px solid var(--color-border);border-radius:10px;padding:8px 10px}.exam-vital label{color:var(--color-text-muted);font-size:11px;display:block;margin-bottom:3px}.exam-vital input{width:100%;border:none;padding:0;font-size:17px;font-weight:800;background:none}.exam-vital input:focus-visible{outline:none;box-shadow:none}.exam-vital .u{font-size:10.5px;color:var(--color-text-faint);font-weight:500}.exam-vital--bp .exam-vital__bp{display:flex;align-items:baseline;gap:4px}.exam-vital--bp input{text-align:center}.exam-vital--out{border-color:#fbbf24;background:#fffbeb}.exam-sec__title--row{display:flex;align-items:center;justify-content:space-between;gap:8px}.exam-vitals--row{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px;margin-bottom:8px}.exam-vitals--row .exam-vital{padding:4px 8px;border-radius:8px}.exam-vitals--row .exam-vital label{font-size:10px;margin-bottom:1px;white-space:nowrap}.exam-vitals--row .exam-vital input{font-size:14px}.exam-vitals--row .exam-vital--bp input{width:52px!important}.exam-sec__subtitle{font-size:12px;font-weight:800;color:var(--color-text-muted);margin:13px 0 8px}.exam-selfdesc{border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);padding:11px 13px}.exam-selfdesc__text{margin:0;font-size:13px;white-space:pre-wrap}.exam-selfdesc__empty{margin:0;font-size:12.5px;color:var(--color-text-faint);font-style:italic}.exam-selfdesc__src{margin:8px 0 0;font-size:11.5px;font-weight:600;color:var(--color-text-muted)}.chip-input{position:relative}.chip-input__box{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);padding:7px 9px;min-height:40px}.chip-input__box:focus-within{border-color:var(--color-primary)}.chip-input__chip{display:inline-flex;align-items:center;gap:6px;background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:600}.chip-input__chip button{border:none;background:none;color:var(--color-primary);font-size:12px;line-height:1;padding:0;cursor:pointer}.chip-input__field{flex:1;min-width:120px;border:none;background:none;padding:2px 0;font-size:13px}.chip-input__field:focus-visible{outline:none;box-shadow:none}.chip-input__dropdown{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow-md);max-height:240px;overflow-y:auto}.chip-input__opt{display:block;width:100%;text-align:left;border:none;background:none;padding:8px 11px;font-size:12.5px;cursor:pointer}.chip-input__opt:hover{background:var(--color-primary-soft)}.exam-svc-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:12.5px}.exam-svc-table th{text-align:left;font-size:11px;font-weight:700;color:var(--color-text-muted);padding:6px 8px;border-bottom:1px solid var(--color-border)}.exam-svc-table td{padding:7px 8px;border-bottom:1px solid var(--color-border);vertical-align:middle}.exam-svc-table__act{display:flex;gap:4px;justify-content:flex-end}.exam-svc-table__del{color:var(--color-danger)}.exam-medpick__src{color:var(--color-text-faint);font-size:11px}.exam-hist{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}.exam-hist__row{display:flex;gap:10px;align-items:baseline;border:1px solid var(--color-border);border-radius:9px;padding:8px 11px;font-size:12.5px;text-decoration:none;color:inherit}.exam-hist__row:hover{background:var(--color-surface-muted)}.exam-hist__date{font-weight:700;color:var(--color-text-muted);flex:none;white-space:nowrap}.exam-hist__dx{color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exam-rsh{font-size:13px;font-weight:800;margin:0 0 9px}.exam-rsh--mt{margin-top:16px}.exam-rsh--row{display:flex;align-items:center;justify-content:space-between}.exam-rsh__more{font-size:11px;font-weight:600;color:var(--color-primary)}.exam-followup{display:flex;align-items:center;gap:10px;margin:8px 0 4px;font-size:12.5px}.exam-followup label{color:var(--color-text-muted)}.exam-followup input{max-width:170px}.exam-dx-add{margin-bottom:9px}.exam-dx{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--color-border);border-radius:9px;padding:8px 11px;margin-bottom:7px;font-size:12.5px}.exam-dx__code{font-weight:700;color:var(--color-primary)}.exam-dx__primary{font-size:10px;font-weight:800;background:var(--color-primary-soft);color:var(--color-primary);padding:1px 7px;border-radius:6px}.exam-dx__x{color:var(--color-text-faint);cursor:pointer;border:none;background:none;font-size:14px}.exam-kdtabs{display:flex;gap:4px;background:var(--color-surface-muted);border-radius:10px;padding:4px;margin-bottom:11px}.exam-kd{flex:1;text-align:center;padding:7px 4px;border-radius:7px;font-size:12px;font-weight:600;color:var(--color-text-muted);border:none;background:none;position:relative}.exam-kd.is-active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}.exam-kd__new{position:absolute;top:-7px;right:0;background:var(--color-food);color:#fff;font-size:8px;font-weight:800;padding:1px 5px;border-radius:6px}.exam-rx{border:1px solid var(--color-border);border-radius:10px;padding:10px;margin-bottom:8px}.exam-rx__top{display:flex;align-items:center;gap:8px;margin-bottom:8px}.exam-rx__top b{flex:1;font-size:13px}.exam-rx__x{border:none;background:none;color:var(--color-danger);font-size:14px;cursor:pointer}.exam-rx__doses{display:grid;grid-template-columns:repeat(4,1fr) 1.2fr;gap:6px}.exam-rx__doses input{padding:5px 7px;font-size:12px;text-align:center}.exam-rx__doses .lbl{font-size:9.5px;color:var(--color-text-faint);text-align:center;display:block;margin-bottom:2px}.exam-tl{display:flex;justify-content:space-between;padding:5px 0;font-size:12.5px;color:var(--color-text-muted)}.exam-tl.grand{border-top:1px solid var(--color-border);margin-top:6px;padding-top:10px;font-weight:800;font-size:14px;color:var(--color-text)}.exam-empty{color:var(--color-text-faint);font-size:12.5px;padding:10px 2px}.exam-nutri{border:1px solid var(--color-food-soft);border-radius:11px;background:linear-gradient(180deg,#f0fdf4,#fff);padding:12px}.exam-nutri__ai{display:flex;gap:8px;background:#ecfdf5;border:1px solid var(--color-food-soft);border-radius:9px;padding:9px 11px;margin-bottom:10px;font-size:11.5px;color:#3f6212}.exam-nutri__ai b{color:var(--color-food-ink)}.exam-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;border:1px solid var(--color-border);background:#fff;font-size:12px;margin:0 6px 7px 0;cursor:pointer}.exam-chip.is-on{background:var(--color-food-soft);border-color:var(--color-food-soft);color:var(--color-food-ink);font-weight:700}.exam-bar{grid-area:bar;border-top:1px solid var(--color-border);background:var(--color-surface);display:flex;align-items:center;gap:6px;padding:11px 20px}.exam-abtn{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--color-text-muted);font-size:11px;padding:6px 14px;border-radius:9px;border:none;background:none}.exam-abtn:hover{background:var(--color-surface-muted);color:var(--color-text);text-decoration:none}.exam-abtn .g{font-size:16px}.exam-abtn--danger{color:var(--color-danger)}.exam-bar__spacer{flex:1}.exam-finish{background:var(--color-primary);color:#fff;border:none;border-radius:11px;padding:10px 24px;font-weight:800;text-align:center;line-height:1.15}.exam-finish:hover{background:var(--color-primary-hover)}.exam-finish:disabled{opacity:.55}.exam-finish small{display:block;font-weight:500;font-size:11px;opacity:.85}.exam-readonly-note{background:#fef3c7;color:#92400e;border-radius:9px;padding:6px 12px;font-size:12px;font-weight:600}.exam-medpick{position:relative;margin-bottom:10px}.exam-medpick__results{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow-md);max-height:240px;overflow-y:auto}.exam-medpick__item{display:block;width:100%;text-align:left;border:none;background:none;padding:8px 11px;font-size:12.5px}.exam-medpick__item:hover{background:var(--color-primary-soft)}.exam-picks{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:7px}.exam-picks__lbl{font-size:11px;font-weight:600;color:var(--color-text-faint);margin-right:2px}.exam-pick{border:1px solid var(--color-primary-border);background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600;line-height:1.4}.exam-pick:hover{background:var(--color-primary);color:#fff}.exam-svc{margin-top:11px}.exam-svc__lbl{display:block;font-size:12px;font-weight:700;color:var(--color-text-muted);margin-bottom:6px}.exam-svc__select{width:100%;font-size:12.5px;padding:8px 10px}.exam-svc__list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.exam-svc__chip{display:inline-flex;align-items:center;gap:6px;background:var(--color-info);color:#fff;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600}.exam-svc__chip button{border:none;background:none;color:#ffffffd9;font-size:12px;line-height:1;padding:0}.exam-svc__chip button:hover{color:#fff}.exam-svc__hint{color:var(--color-text-faint);font-size:11.5px;margin:7px 0 0}.exam-reason{width:100%;font-size:13px;padding:9px 11px;margin-bottom:8px}.exam-reason__extra{width:100%}.exam-tpl-row{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:8px}.exam-tpl-code{font-size:12.5px;padding:8px 10px}.exam-tpl-btn{white-space:nowrap;border:1px dashed var(--color-primary-border);background:var(--color-primary-soft);color:var(--color-primary);border-radius:10px;padding:8px 12px;font-size:12.5px;font-weight:700}.exam-tpl-btn:hover{background:var(--color-primary);color:#fff;border-style:solid}.exam-rx__use{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px}.exam-rx__cachdung{width:100%;font-size:12.5px;padding:6px 8px}.exam-rx__days{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--color-text-muted);white-space:nowrap}.exam-rx__days select{padding:5px 6px;font-size:12px}.exam-rx__qty{font-size:12px;color:var(--color-text-muted);white-space:nowrap}.exam-rx__qty b{color:var(--color-text);font-size:13px}.exam-rx__ro{font-size:12.5px;color:var(--color-text-muted)}.exam-rx__custrow{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}.exam-rx__custrow select{font-size:12px;padding:5px 7px}.exam-rx__doses{margin-top:6px}@media (max-width: 1180px){.exam-workspace{grid-template-columns:1fr;grid-template-areas:"center" "right" "bar";height:auto;overflow:visible}.exam-queue{display:none}.exam-col{overflow:visible}.exam-right{border-left:none;border-top:1px solid var(--color-border)}}
