:root{--bg: #f8f9fa;--card: #ffffff;--text-1: #1d2129;--text-2: #4e5969;--text-3: #86909c;--text-4: #c9cdd4;--line: #f1f1f1;--primary: #1d2129;--radius: 16px;--radius-sm: 10px;--shadow: 0 2px 12px rgba(0, 0, 0, .04);--shadow-hover: 0 6px 20px rgba(0, 0, 0, .08);--tag-pain-bg: #fff0ec;--tag-pain: #f53f3f;--tag-surgery-bg: #fff7e8;--tag-surgery: #ff7d00;--tag-injury-bg: #e8ffea;--tag-injury: #00b42a;--tag-fracture-bg: #fff0ec;--tag-fracture: #f53f3f;--tag-info-bg: #e8f3ff;--tag-info: #165dff;--tag-purple-bg: #f5e8ff;--tag-purple: #722ed1;--tag-gray-bg: #f2f3f5;--tag-gray: #4e5969}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text-1);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 24px}.card+.card{margin-top:16px}.card-title{font-size:15px;font-weight:600;color:var(--text-1);display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.card-sub{font-size:13px;color:var(--text-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:24px;padding:9px 22px;font-size:14px;cursor:pointer;transition:all .2s;font-family:inherit;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){opacity:.88}.btn-outline{background:#fff;color:var(--text-1);border:1px solid var(--text-1)}.btn-outline:hover:not(:disabled){background:#f5f5f6}.btn-ghost{background:#fff;color:var(--text-2);border:1px solid #e5e6eb}.btn-ghost:hover:not(:disabled){background:#f5f5f6}.btn-danger{background:#fff;color:var(--tag-pain);border:1px solid #f53f3f}.btn-danger:hover:not(:disabled){background:#fff0ec}.btn-sm{padding:6px 14px;font-size:13px;border-radius:20px}.btn-block{width:100%}.field{margin-bottom:16px}.field-label{display:block;font-size:13px;color:var(--text-3);margin-bottom:6px}.input,.select,.textarea{width:100%;border:1px solid #e5e6eb;border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;font-family:inherit;background:#fff;color:var(--text-1);outline:none;transition:border-color .2s,box-shadow .2s}.input:focus,.select:focus,.textarea:focus{border-color:var(--text-1);box-shadow:0 0 0 3px #1d21290f}.input::placeholder,.textarea::placeholder{color:var(--text-4)}.textarea{resize:vertical;min-height:80px}.select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.input.invalid{border-color:#f53f3f}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.tag{display:inline-flex;align-items:center;padding:3px 12px;border-radius:20px;font-size:12px;font-weight:500;line-height:1.6}.tag-pain{background:var(--tag-pain-bg);color:var(--tag-pain)}.tag-surgery{background:var(--tag-surgery-bg);color:var(--tag-surgery)}.tag-injury{background:var(--tag-injury-bg);color:var(--tag-injury)}.tag-fracture{background:var(--tag-fracture-bg);color:var(--tag-fracture)}.tag-info{background:var(--tag-info-bg);color:var(--tag-info)}.tag-purple{background:var(--tag-purple-bg);color:var(--tag-purple)}.tag-gray{background:var(--tag-gray-bg);color:var(--tag-gray)}.empty-state{display:flex;flex-direction:column;align-items:center;padding:70px 0;color:var(--text-3)}.empty-icon{width:64px;height:64px;border-radius:50%;background:#fff;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:26px;color:var(--text-4)}.empty-title{font-size:15px;color:var(--text-2);margin-bottom:6px}.empty-desc{font-size:13px;color:var(--text-4);margin-bottom:20px}.list-item{display:flex;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line);cursor:pointer}.list-item:last-child{border-bottom:none}.list-item:hover{background:#fafbfc}.avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:500;flex-shrink:0;box-shadow:0 2px 8px #00000014}.toast-wrap{position:fixed;top:40px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;align-items:center;gap:8px}.toast{background:#1d2129eb;color:#fff;padding:10px 22px;border-radius:24px;font-size:14px;box-shadow:0 8px 24px #00000026;animation:toast-in .25s ease;max-width:80vw}.toast.toast-error{background:#f53f3feb}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:#fff;border-radius:var(--radius);box-shadow:0 16px 48px #0000001f;width:100%;max-width:520px;max-height:86vh;overflow-y:auto;animation:modal-in .22s ease}.modal-lg{max-width:760px}@keyframes modal-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{position:relative;padding:18px 52px 0 24px;font-size:17px;font-weight:600}.modal-close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:50%;border:none;background:#f2f3f5;color:var(--text-3);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:all .15s}.modal-close:hover{background:#e8e9ec;color:var(--text-1)}.modal-body{padding:18px 24px}.modal-footer{padding:0 24px 20px;display:flex;justify-content:flex-end;gap:12px}.flex{display:flex}.flex-1{flex:1;min-width:0}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.text-muted{color:var(--text-3)}.text-sm{font-size:13px}.text-xs{font-size:12px}.text-danger{color:var(--tag-pain)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.score-dot{width:22px;height:22px;border-radius:50%;border:1px solid #e5e6eb;background:#fff;color:var(--text-3);font-size:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.score-dot:hover{border-color:var(--text-1)}.score-dot.active{background:var(--text-1);color:#fff;border-color:var(--text-1)}.score-num{font-weight:600;min-width:34px;text-align:center}.steps{display:flex;align-items:center;gap:0;margin:0 0 10px;padding:14px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 10px #0000000a;overflow-x:auto}.step{display:flex;align-items:center;color:var(--text-4);font-size:14px;white-space:nowrap;padding:4px 6px;border-radius:8px;transition:all .2s}.step .dot{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--text-4);background:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;margin-right:8px;transition:all .25s}.step.active{color:var(--text-1);font-weight:700}.step.active .dot{background:linear-gradient(135deg,#1d2129,#3d4452);color:#fff;border-color:transparent;box-shadow:0 3px 10px #1d21294d}.step.done{color:var(--text-3)}.step.done .dot{background:linear-gradient(135deg,#17b26a,#0b8a4d);color:#fff;border-color:transparent}.step-line{width:32px;height:2px;background:var(--text-4);opacity:.35;margin:0 10px;flex-shrink:0;transition:all .25s}.step-line.done-line{background:#17b26a;opacity:.55}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;justify-content:center;padding:7px 18px;border-radius:20px;background:#f2f3f5;color:var(--text-2);font-size:13px;cursor:pointer;border:1px solid transparent;transition:all .15s;-webkit-user-select:none;user-select:none}.chip:hover{background:#e8e9ec}.chip.active{background:var(--primary);color:#fff;font-weight:500}.chip.chip-outline{background:#fff;border:1px solid #e5e6eb}.chip.chip-outline.active{background:var(--primary);border-color:var(--primary)}.seg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.seg-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px;border-radius:12px;background:#f7f8fa;border:1px solid transparent;cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.seg-cell:hover{background:#eef0f3}.seg-cell .seg-code{font-size:13px;font-weight:600;color:var(--text-1)}.seg-cell .seg-name{font-size:11px;color:var(--text-3);margin-top:2px}.seg-cell.active{background:var(--primary);border-color:var(--primary)}.seg-cell.active .seg-code{color:#fff}.seg-cell.active .seg-name{color:#ffffffbf}.loc-picker-box{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:12px;border:1px dashed #d0d3da;background:#fafbfc;color:var(--text-3);font-size:13px;cursor:pointer;transition:all .15s;min-width:120px;justify-content:center}.loc-picker-box:hover{border-color:var(--text-1);color:var(--text-1)}.loc-picker-box.filled{border-style:solid;border-color:var(--primary);background:#1d21290a;color:var(--text-1);font-weight:500}.pain-group-box{border:1px solid #eef0f3;border-radius:14px;padding:12px 14px;margin-bottom:10px;background:#fff}.pain-group-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dashed-add{width:100%;border:1px dashed #d0d3da;border-radius:12px;background:transparent;color:var(--text-3);padding:9px;font-size:13px;cursor:pointer;transition:all .15s}.dashed-add:hover{border-color:var(--primary);color:var(--primary);background:#1d212908}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;color:var(--text-3);font-weight:500;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr:hover{background:#fafbfc}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.anim-in{animation:fadeInUp .55s ease both}.stat-card{position:relative;overflow:hidden;padding:26px 28px;border-radius:16px;color:#fff;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease;box-shadow:0 4px 16px #00000014}.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #00000029}.stat-card:before{content:"";position:absolute;right:-36px;top:-36px;width:140px;height:140px;border-radius:50%;background:#ffffff1f}.stat-card:after{content:"";position:absolute;right:34px;bottom:-52px;width:100px;height:100px;border-radius:50%;background:#ffffff12}.stat-card .stat-num{font-size:44px;font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-1px}.stat-card .stat-arrow{position:absolute;right:22px;bottom:24px;width:9px;height:9px;border-top:2px solid rgba(255,255,255,.9);border-right:2px solid rgba(255,255,255,.9);transform:rotate(45deg);transition:transform .25s ease}.stat-card:hover .stat-arrow{transform:rotate(45deg) translate(2px,-2px)}.quick-item{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-radius:12px;cursor:pointer;transition:background .2s,transform .2s}.quick-item:hover{background:var(--bg);transform:translate(4px)}.quick-item:hover .quick-arrow{border-top-color:var(--text-1);border-right-color:var(--text-1)}.quick-arrow{border-top:2px solid var(--text-3);border-right:2px solid var(--text-3);width:8px;height:8px;transform:rotate(45deg);transition:border-color .2s}.quick-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;box-shadow:0 2px 10px #0000000a}.quick-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px #0000001a;border-color:#d5d8dd}.quick-card .qc-icon{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;margin-bottom:12px;box-shadow:0 4px 10px #00000024}.quick-card .qc-title{font-size:15px;font-weight:700;margin-bottom:3px}.quick-card .qc-desc{font-size:12px;color:var(--text-3);line-height:1.5}.work-recent-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;cursor:pointer;transition:background .2s}.work-recent-item:hover{background:var(--bg)}@keyframes popIn{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}@keyframes brandFloat{0%,to{transform:translate(0)}50%{transform:translate(-14px,10px)}}@keyframes brandFloat2{0%,to{transform:translate(0)}50%{transform:translate(16px,-12px)}}.login-page{min-height:100vh;display:flex;background:#f6f7f9}.login-brand{position:relative;flex:1.1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px;color:#fff;background:linear-gradient(150deg,#1d2129,#2a3140 55%,#1b4fd8 170%);overflow:hidden}.login-brand .grid-lines{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}.login-brand .shine{position:absolute;top:0;bottom:0;width:40%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.07),transparent);transform:translate(-700%);animation:shineSweep 10s ease-in-out infinite;pointer-events:none}@keyframes shineSweep{0%,40%{transform:translate(-700%)}to{transform:translate(900%)}}.login-brand .orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.5;pointer-events:none}.login-brand .orb-1{width:300px;height:300px;right:-90px;top:-90px;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 70%);animation:brandFloat 9s ease-in-out infinite}.login-brand .orb-2{width:380px;height:380px;left:-140px;bottom:-140px;background:radial-gradient(circle,rgba(64,158,255,.32),transparent 70%);animation:brandFloat2 11s ease-in-out infinite}.login-brand .orb-3{width:150px;height:150px;right:18%;bottom:16%;background:radial-gradient(circle,rgba(120,200,160,.26),transparent 70%);animation:brandFloat2 8s ease-in-out infinite}.login-brand .brand-logo-wrap{position:relative;margin-bottom:28px;animation:popIn .7s cubic-bezier(.22,1,.36,1) both}.login-brand .brand-glow{position:absolute;width:200px;height:200px;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.28),transparent 70%);filter:blur(10px);animation:breathe 3.2s ease-in-out infinite;pointer-events:none}@keyframes breathe{0%,to{opacity:.35;transform:translate(-50%,-50%) scale(.82)}50%{opacity:.75;transform:translate(-50%,-50%) scale(1.12)}}.login-brand .brand-logo{position:relative;width:96px;height:96px;border-radius:24px;object-fit:cover;box-shadow:0 12px 32px #00000059}.login-brand .brand-name{font-size:32px;font-weight:800;letter-spacing:2px;animation:fadeInUp .7s ease both;animation-delay:.12s}.login-brand .brand-sub{margin-top:6px;font-size:15px;letter-spacing:6px;color:#ffffff73;animation:fadeInUp .7s ease both;animation-delay:.24s}.login-brand .brand-slogan{margin-top:26px;font-size:13px;color:#ffffff8c;letter-spacing:1px;animation:fadeInUp .7s ease both;animation-delay:.36s}.login-form-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 32px;background:linear-gradient(180deg,#fafbfc,#eef1f5)}.login-card{width:100%;max-width:400px;background:transparent;border:none;box-shadow:none;padding:0;animation:fadeInUp .65s ease both}.login-card .form-title{font-size:34px;font-weight:800;letter-spacing:-.5px;margin-bottom:6px;color:var(--text-1)}.login-card .form-desc{font-size:14px;color:var(--text-3);margin-bottom:34px}.login-card .input{background:#fff;border-radius:14px;border-color:#e5e6eb;transition:border-color .2s,box-shadow .2s,transform .2s}.login-card .input:focus{border-color:var(--primary);box-shadow:0 0 0 4px #1d212912;transform:translateY(-1px)}.login-card .btn-primary{transition:transform .15s ease,box-shadow .15s ease}.login-card .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 22px #1d212933}.login-card .btn-primary:active:not(:disabled){transform:translateY(0)}[data-theme=dark]{--bg: #11151a;--card: #1b212a;--text-1: #e6eaf0;--text-2: #b3bac6;--text-3: #7e8794;--text-4: #505a68;--line: #252d38;--primary: #3b4350;--shadow: 0 2px 12px rgba(0, 0, 0, .35);--shadow-hover: 0 6px 20px rgba(0, 0, 0, .5);--tag-pain-bg: #3a1f22;--tag-pain: #ff7a72;--tag-surgery-bg: #3a2a14;--tag-surgery: #ffb340;--tag-injury-bg: #16301f;--tag-injury: #49d47a;--tag-fracture-bg: #3a1f22;--tag-fracture: #ff7a72;--tag-info-bg: #16293f;--tag-info: #6aa4ff;--tag-purple-bg: #2a2140;--tag-purple: #b37feb;--tag-gray-bg: #262e3a;--tag-gray: #b3bac6}[data-theme=dark] body{background:var(--bg)}[data-theme=dark] .btn-outline,[data-theme=dark] .btn-ghost,[data-theme=dark] .btn-danger{background:var(--card)}[data-theme=dark] .btn-outline:hover:not(:disabled),[data-theme=dark] .btn-ghost:hover:not(:disabled){background:#28303b}[data-theme=dark] .btn-danger:hover:not(:disabled){background:var(--tag-pain-bg)}[data-theme=dark] .input,[data-theme=dark] .select,[data-theme=dark] .textarea{background:#13171d;border-color:#2b333f;color:var(--text-1)}[data-theme=dark] .input:focus,[data-theme=dark] .select:focus,[data-theme=dark] .textarea:focus{border-color:var(--text-3);box-shadow:0 0 0 3px #e6eaf014}[data-theme=dark] .modal{background:var(--card);box-shadow:0 16px 48px #00000080}[data-theme=dark] .modal-close{background:#262e3a;color:var(--text-3)}[data-theme=dark] .modal-close:hover{background:#303948;color:var(--text-1)}[data-theme=dark] .chip{background:#262e3a;color:var(--text-2)}[data-theme=dark] .chip:hover{background:#303948}[data-theme=dark] .steps{background:var(--card);border-color:var(--line);box-shadow:var(--shadow)}[data-theme=dark] .step .dot{background:var(--card)}[data-theme=dark] .quick-card{background:var(--card);border-color:var(--line);box-shadow:var(--shadow)}[data-theme=dark] .quick-card:hover{box-shadow:var(--shadow-hover);border-color:#3a4452}[data-theme=dark] .work-recent-item:hover{background:#ffffff0d}[data-theme=dark] .pain-group-box{background:var(--card);border-color:#262e3a}[data-theme=dark] .dashed-add{border-color:#3a4452}[data-theme=dark] .dashed-add:hover{background:#ffffff0a}[data-theme=dark] .empty-icon{background:#262e3a}[data-theme=dark] .list-item:hover,[data-theme=dark] .tbl tbody tr:hover{background:#ffffff0a}.theme-toggle{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 0;margin-bottom:8px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--text-2);font-size:13px;cursor:pointer;transition:all .2s;font-family:inherit}.theme-toggle:hover{background:var(--bg);color:var(--text-1)}[data-theme=dark] .login-form-wrap{background:#fafbfc}[data-theme=dark] .login-card .input{background:#fff;border-color:#e5e6eb}@media (max-width: 820px){.login-brand{display:none}.login-form-wrap{padding:24px}}
