:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;color:#292b2e;background:#f5f5f5;font-synthesis:none;text-rendering:optimizeLegibility;--primary: #292b2e;--primary-hover: #141517;--soft: #f0f1f2;--border: #e7e7e7;--muted: #7b7e83;--surface: #fff;--rail: 224px}*{box-sizing:border-box;letter-spacing:0}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{border:0;background:none;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit;text-decoration:none}button,a,input,select,textarea{transition:background-color .16s,border-color .16s,box-shadow .16s}:focus-visible{outline:3px solid #292b2e40;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:22px;font-weight:650}h2{font-size:17px;font-weight:650;display:flex;align-items:center;gap:9px}h3{font-size:15px;font-weight:600}p{line-height:1.7}svg{flex-shrink:0;vertical-align:middle}label{display:flex;flex-direction:column;gap:9px;font-size:13px;font-weight:500;color:#626262;min-width:0}input,select,textarea{width:100%;min-width:0;max-width:100%;color:#292b2e;background:#fbfbfb;border:1px solid #e1e1e1;border-radius:6px;padding:13px 14px;line-height:1.4;font-size:16px}input:hover,select:hover,textarea:hover{border-color:#c2c2c2}input:focus,select:focus,textarea:focus{background:#fff;border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #292b2e0d}input::placeholder,textarea::placeholder{color:#737373;font-weight:400}textarea{resize:vertical}select{min-height:49px}fieldset{min-width:0}legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.muted{color:var(--muted)}.small{font-size:12px}.blue{color:var(--primary)}.green{color:#676c74}.orange,.amber-text{color:#b47731}.danger-text{color:#c86965}.app-shell{max-width:760px;min-height:100dvh;margin:auto;background:#f9f9f9}.sidebar{display:none}.topbar{background:#fffffff5;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5;padding-top:env(safe-area-inset-top);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-inner{height:72px;padding:0 24px;display:flex;align-items:center;gap:12px}.topbar h1{font-size:19px}.brand-symbol{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--primary);color:#fff;border-radius:8px;flex-shrink:0}.header-date{margin-left:auto;color:#737373;font-size:12px}.mode-label{font-size:11px;color:var(--primary);border:1px solid #d3d3d3;padding:3px 6px;border-radius:4px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:6px}.icon-button:hover{background:#f0f0f0}.with-tabs,.with-actions{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.page-content{padding:24px}.section{padding:26px 0;border-top:1px solid var(--border)}.section:first-child{border-top:0;padding-top:4px}.section>h2{margin-bottom:22px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.section-heading h2,.section-heading h3{min-width:0;overflow-wrap:anywhere}.section-number{color:var(--primary);font-size:11px;width:26px;height:26px;background:var(--soft);display:inline-flex;justify-content:center;align-items:center;border-radius:5px;font-variant-numeric:tabular-nums}.count-label{color:#737373;font-size:12px;font-weight:400}.primary,.secondary,.danger{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:12px 18px;border-radius:6px;font-weight:500;line-height:1.4;min-height:46px}.primary{background:var(--primary);color:#fff}.primary:hover{background:var(--primary-hover)}.secondary{background:var(--soft);color:#50545b;font-size:13px;min-height:38px;padding:9px 12px}.secondary:hover{background:#e7e7e7}.danger{background:#f9eeed;color:#b8534f}.danger:hover:not(:disabled){background:#f4dfdd}.bottom-actions{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(100%,760px);background:#fffffff5;border-top:1px solid var(--border);padding:14px 24px calc(14px + env(safe-area-inset-bottom));display:flex;gap:12px;z-index:6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-actions>*{flex:1}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(100%,760px);display:grid;grid-template-columns:repeat(3,1fr);background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:6}.tabbar a{height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:11px;color:#737373;position:relative}.tabbar .active{color:var(--primary);font-weight:600}.tabbar .active:before{content:"";position:absolute;top:0;width:24px;height:3px;background:var(--primary);border-radius:0 0 3px 3px}.records-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:28px 24px 24px;background:#fff}.records-overview>div{padding-left:18px;border-left:1px solid var(--border)}.records-overview>div:first-child{padding-left:0;border-left:0}.records-overview>div>span{display:flex;align-items:center;gap:6px;font-size:12px;color:#737373}.records-overview svg{color:#737373}.records-overview strong{display:block;font-size:30px;font-weight:600;margin-top:12px;font-variant-numeric:tabular-nums}.records-overview small{font-size:11px;color:#737373;margin-left:6px;font-weight:400}.search-band{background:#fff;padding:0 24px 14px}.search-input{display:flex;gap:10px;align-items:center;border:1px solid #e9e9e9;background:#f6f6f6;border-radius:6px;padding:0 14px;color:#737373}.search-input:focus-within{border-color:#9d9d9d}.search-input input{border:0;background:none;padding:12px 0;font-size:14px;box-shadow:none}.category-tabs{display:flex;gap:22px;overflow-x:auto;background:#fff;border-bottom:1px solid var(--border);padding:0 24px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-tabs button{padding:13px 0 15px;white-space:nowrap;color:#737373;font-size:13px;border-bottom:2px solid transparent;min-height:46px}.category-tabs .selected{border-color:var(--primary);color:var(--primary);font-weight:600}.list-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.list-heading h2{font-size:15px}.list-heading>span{color:#737373;font-size:12px}.record-list{display:grid;gap:14px}.record-card{display:block;background:#fff;border:1px solid var(--border);border-radius:8px;padding:20px;transition:border-color .15s,box-shadow .15s}.record-card:hover{border-color:#b8b8b8;box-shadow:0 4px 18px #33333306}.record-card h2{font-size:16px;gap:10px}.record-card .section-heading{margin-bottom:10px}.record-category-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--primary);background:#f1f1f1;border-radius:7px}.record-card[data-category=血常规] .record-category-icon{color:#737373;background:#f4f4f4}.record-card[data-category=甲状腺] .record-category-icon,.record-card[data-category=血糖血脂] .record-category-icon{color:#737373;background:#f3f3f3}.record-date{display:flex;align-items:center;gap:6px;font-size:12px;color:#737373}.record-date svg{width:14px;height:14px}.record-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:17px 0 4px}.record-values>div+div{border-left:1px solid #efefef;padding-left:16px}.record-values>div>span{color:#737373;font-size:11px;display:block;overflow-wrap:anywhere}.record-values p{margin-top:4px;display:flex;gap:5px;align-items:baseline;flex-wrap:wrap}.record-values strong{font-size:22px;font-weight:600;overflow-wrap:anywhere;max-width:100%}.record-values small{color:#737373;font-size:10px;overflow-wrap:anywhere}.record-note{margin-top:14px;font-size:12px;color:#737373;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.record-footer{border-top:1px solid #efefef;margin-top:15px;padding-top:13px;display:flex;justify-content:space-between;font-size:11px;color:#737373}.record-footer>span{display:flex;align-items:center;gap:4px}.fab{position:fixed;bottom:calc(95px + env(safe-area-inset-bottom));right:max(24px,calc((100vw - 760px)/2 + 24px));width:54px;height:54px;background:var(--primary);color:#fff;border-radius:50%;display:grid;place-items:center;box-shadow:0 5px 18px #292b2e20;z-index:4}.fab:hover{background:var(--primary-hover)}.empty{padding:65px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#737373;text-align:center;font-size:14px}.empty-art{width:82px;height:92px;display:grid;place-items:center;background:#f0f0f0;border:1px solid #e4e4e4;border-radius:8px;transform:rotate(-5deg);box-shadow:7px 5px #f3f3f3}.empty-art img{width:36px;height:36px;opacity:.22}.loading-spinner{animation:spin 1s linear infinite;color:var(--primary)}@keyframes spin{to{transform:rotate(360deg)}}.status{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:4px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0;width:fit-content}.normal{background:#f1f1f1;color:#696969}.abnormal{background:#fcf3e7;color:#b17b36}.unknown{background:#f1f1f1;color:#737373}.error{display:flex;gap:8px;align-items:center;background:#fff0ef;color:#ac5550;padding:14px;border-radius:6px;margin:10px 0;font-size:14px;overflow-wrap:anywhere}.error span{flex:1}.error button{text-decoration:underline;white-space:nowrap}.form-page{background:#fff}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.item-list{display:grid;gap:14px}.item-editor{margin:0;padding:18px;background:#fff;border:1px solid var(--border);border-radius:8px;display:grid;gap:16px}.item-editor:focus-within{border-color:#b3b3b3}.item-editor label{font-size:12px;gap:7px}.item-editor input{background:#fbfbfb}.item-heading{display:flex;align-items:center;gap:8px}.item-heading>input{font-weight:600;background:transparent;border-color:transparent;padding:8px 6px;font-size:15px}.item-heading>input:focus{border-color:var(--primary)}.item-index{font-size:11px;color:#737373;font-variant-numeric:tabular-nums}.value-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.6fr);gap:12px}.record-summary{display:flex;align-items:center;gap:18px;padding:8px 0 28px}.record-summary>svg{background:var(--soft);box-sizing:content-box;padding:14px;border-radius:8px;width:28px;height:28px}.record-summary h2{margin-bottom:8px;font-size:22px}.detail-items{display:grid;gap:12px}.detail-item{background:#fff;border:1px solid var(--border);border-radius:8px;padding:18px}.detail-item .section-heading{align-items:flex-start}.measurement{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;overflow-wrap:anywhere}.measurement strong{font-size:26px;font-weight:600;color:var(--primary);max-width:100%}.measurement span{color:var(--muted);font-size:12px}.reference{border-top:1px solid #efefef;padding-top:12px;margin-top:12px;font-size:11px;color:#737373;overflow-wrap:anywhere}.notes{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.info-list{margin:0;display:grid;gap:16px;font-size:13px}.info-list div{display:flex;justify-content:space-between;gap:16px}.info-list dt{color:var(--muted);flex-shrink:0}.info-list dd{margin:0;text-align:right}.stats-overview{display:flex;align-items:center;gap:18px;padding:4px 0 28px}.stats-overview>svg{background:var(--soft);padding:12px;box-sizing:content-box;border-radius:8px;width:26px;height:26px}.stats-overview p{font-size:12px}.stats-overview strong{display:block;font-size:36px;font-weight:600;color:#292b2e;font-variant-numeric:tabular-nums}.stats-overview>span{margin-left:auto;font-size:12px}.category-stats{display:grid;gap:4px}.stat-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:20px}.stat-row>div{flex:1}.stat-row h3{font-size:13px;margin-bottom:5px}.stat-row .small{font-size:10px}.stat-row strong{font-size:24px;font-weight:500}.stat-row small{font-size:11px;font-weight:400;color:var(--muted)}.category-meter{height:4px;background:#ededed;margin-top:12px;border-radius:2px;overflow:hidden}.category-meter>span{height:100%;background:#9b9b9b;display:block;border-radius:inherit}.stat-row:nth-child(2n) .category-meter>span{background:#a7a7a7}.stat-row:nth-child(3n) .category-meter>span{background:#a8a8a8}.statistics-page label+label{margin-top:16px}.trend-chart{position:relative;height:260px;margin:24px 0;width:100%;min-width:0}.trend-table{overflow-x:auto;margin-top:12px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:13px 8px;border-bottom:1px solid var(--border);text-align:left}th{background:#f4f4f4;font-size:11px;font-weight:500;color:var(--muted)}th:last-child,td:last-child{text-align:right}.list-row{display:flex;align-items:center;gap:14px;padding:18px 0;width:100%;text-align:left;border-bottom:1px solid var(--border);font-size:14px}.list-row:hover:not(:disabled){background:#f3f3f3}.list-row:last-child{border-bottom:0}.list-row>div,.list-row>span:first-of-type{flex:1}.list-row>svg:last-child{color:#737373}.list-row h3{font-size:14px;margin-bottom:5px}.profile-heading{display:grid;grid-template-columns:62px 1fr;column-gap:18px;align-items:center;padding:10px 0 32px}.profile-heading h2{display:block;align-self:end;margin-bottom:6px;overflow-wrap:anywhere}.profile-heading p{font-size:12px;align-self:start}.avatar{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:#e8e8e8;color:#6f6f6f;grid-row:1/3}.avatar svg{width:30px;height:30px}.profile-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);padding:22px 0}.profile-stats>div{padding:0 24px;display:grid;grid-template-columns:26px 1fr;column-gap:12px;align-items:center}.profile-stats>div:first-child{padding-left:0}.profile-stats>div+div{border-left:1px solid var(--border)}.profile-stats svg{grid-row:1/3;width:21px}.profile-stats strong{font-size:25px;font-weight:600}.profile-stats span{font-size:11px;color:var(--muted)}.profile-page .section>h2{color:#737373;font-size:12px;font-weight:500;margin-bottom:10px}.logout-button{display:flex;justify-content:center;align-items:center;gap:8px;width:100%;padding:15px;color:#b36b63;border:1px solid #eadedb;background:#fff;border-radius:6px;margin-top:8px;font-size:14px}.profile-version{text-align:center;color:#737373;font-size:11px;padding:28px 0 0}.login-page{min-height:100dvh;display:grid;place-items:center;padding:48px 28px;background:#fcfcfc;border-top:5px solid var(--primary)}.login-content{width:100%;max-width:350px}.brand-mark{width:62px;height:62px;border-radius:8px;display:grid;place-items:center;background:var(--primary);color:#fff;margin-bottom:26px}.login-content h1{font-size:28px;font-weight:650;color:#292b2e}.login-subtitle{color:#737373;font-size:13px;margin:10px 0 38px}.login-content form{display:grid;gap:23px;text-align:left}.login-content input{background:#fff;padding:15px 14px}.login-content .primary{width:100%;margin-top:8px;justify-content:space-between;padding:15px 18px}.login-content>.small{margin-top:20px}.password-field{display:grid;gap:9px}.password-input{position:relative}.password-input input{padding-right:48px}.password-input button{position:absolute;right:5px;top:7px;color:#737373}.login-footer{border-top:1px solid var(--border);margin-top:42px;padding-top:22px;display:flex;align-items:center;gap:7px;color:#737373;font-size:11px}.login-footer img{width:14px;height:14px;opacity:.28}dialog{border:1px solid var(--border);border-radius:8px;padding:0;width:calc(100% - 40px);max-width:420px;color:#292b2e;box-shadow:0 20px 70px #2a2a2a25}dialog::backdrop{background:#2a2a2a55;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog-content{padding:24px}.dialog-content p{font-size:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}@media(min-width:1024px){.app-shell{max-width:1280px;padding-left:var(--rail);background:#fbfbfb}.sidebar{display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:max(0px,calc((100vw - 1280px)/2));width:var(--rail);background:#f2f2f2;border-right:1px solid #e4e4e4;padding:30px 22px;z-index:8}.sidebar-brand{display:flex;gap:10px;align-items:center;font-size:15px;font-weight:650;white-space:nowrap}.sidebar-label{color:#737373;font-size:11px;margin:42px 12px 15px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{display:flex;align-items:center;gap:13px;padding:13px 16px;font-size:14px;color:#737373;border-radius:6px}.sidebar nav a:hover{background:#eaeaea}.sidebar nav .active{background:#e6e6e6;color:#292b2e;font-weight:600}.sidebar-footer{display:flex;gap:8px;align-items:center;margin-top:auto;color:#737373;font-size:10px;padding-left:8px}.mobile-brand{display:none}.topbar-inner{height:86px;padding-inline:40px}.topbar h1{font-size:22px}.header-date{font-size:12px}.tabbar{display:none}.with-tabs{padding-bottom:32px}.page-content{padding:28px 40px}.records-overview{padding:32px 40px}.records-overview>div{padding-left:32px}.records-overview strong{font-size:34px}.search-band{padding-inline:40px}.search-input{max-width:440px}.category-tabs{padding-inline:40px;gap:30px}.record-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.record-card{padding:22px}.fab{right:max(32px,calc((100vw - 1280px)/2 + 32px));bottom:32px}.bottom-actions{left:calc(50% + var(--rail) / 2);width:min(calc(100% - var(--rail)),calc(1280px - var(--rail)));padding-inline:40px}.bottom-actions>*{flex:0 1 240px}.bottom-actions{justify-content:flex-end}.item-list,.detail-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.statistics-page{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr);grid-template-rows:auto min-content 1fr;column-gap:36px;align-items:start}.stats-overview{grid-column:1/-1;padding-bottom:30px}.classification-section{grid-column:1;grid-row:2}.trend-section{grid-column:2;grid-row:2/4;padding-left:30px;border-left:1px solid var(--border)}.recent-section{grid-column:1;grid-row:3}.profile-page{max-width:780px;margin-inline:auto;padding-top:44px}.profile-heading{padding-bottom:36px}}@media(max-width:480px){.topbar-inner{padding-inline:20px;height:66px;gap:10px}.topbar h1{font-size:18px}.header-date{font-size:10px;max-width:105px;text-align:right}.page-content{padding:22px 20px}.records-overview{padding:25px 20px}.records-overview>div{padding-left:14px}.records-overview>div>span{font-size:11px;gap:4px}.records-overview svg{width:13px;height:13px}.records-overview strong{font-size:28px;margin-top:10px}.search-band,.category-tabs{padding-inline:20px}.category-tabs{gap:22px}.form-grid{grid-template-columns:1fr;gap:20px}.item-editor{padding:15px}.section-heading h2{font-size:16px}.record-card{padding:17px}.record-values strong{font-size:21px}.bottom-actions{padding-inline:20px}.stats-overview{gap:13px}.stats-overview>span{max-width:100px;text-align:right;font-size:11px}.profile-stats>div{padding-inline:18px}}@media(max-width:359px){.topbar-inner,.page-content{padding-inline:16px}.header-date{display:none}.records-overview{padding-inline:16px}.records-overview>div{padding-left:10px}.records-overview>div>span>svg{display:none}.item-editor{padding:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
