:root{--primary: #fe8502;--primary-2: #ff9f43;--secondary: #003463;--secondary-2: #0a4e8a;--bg: #eef2f8;--surface: #ffffff;--muted: #6b7a90;--line: #e5ecf4;--easy: #2e7d32;--mod: #f59e0b;--diff: #ef4444;--high: #b91c1c;--shadow-1: 0 10px 30px rgba(0, 52, 99, .08);--shadow-2: 0 20px 60px rgba(0, 52, 99, .18)}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:Sarabun,Inter,Segoe UI,sans-serif;color:var(--secondary)}body{min-height:100vh;background:radial-gradient(1200px 600px at -10% -20%,#ffd9b3 0%,transparent 60%),radial-gradient(900px 600px at 110% 110%,#c7dcff 0%,transparent 55%),linear-gradient(180deg,var(--bg) 0%,#f7faff 100%);padding:28px 16px 60px}.wrap{max-width:980px;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px;background:#ffffffb3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow-1)}.brand .logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;display:grid;place-items:center;font-size:1.1rem;box-shadow:0 6px 14px #fe850259}.brand .title{font-weight:800;letter-spacing:.3px;color:var(--secondary)}.brand .subtitle{font-size:.78rem;color:var(--muted);margin-top:-2px}.brand .brand-history,.back-link{display:inline-flex;align-items:center;gap:9px;padding:6px 11px;border-radius:999px;background:#f6f9fd;color:var(--secondary);border:1px solid var(--line);text-decoration:none;transition:background .15s,border-color .15s,transform .08s;font-weight:700}.brand .brand-history:hover,.back-link:hover{background:#eef3fb;border-color:#d8e4f2}.brand .brand-history:active,.back-link:active{transform:translateY(1px)}.brand .brand-history i{color:var(--primary);font-size:1rem}.brand .brand-history span{display:block;line-height:1.08}.userchip{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border-radius:999px;background:#ffffffb3;border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow-1)}.userchip .avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--secondary),var(--secondary-2));color:#fff;display:grid;place-items:center;font-weight:800}.userchip .u-text{line-height:1.1}.userchip .u-name{font-weight:700;font-size:.92rem}.userchip .u-meta{font-size:.72rem;color:var(--muted)}.user-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.logout-button{border:1px solid rgba(255,255,255,.9);border-radius:999px;cursor:pointer;padding:11px 14px;color:var(--secondary);background:#ffffffb3;box-shadow:var(--shadow-1);font-family:inherit;font-size:.85rem;font-weight:800;display:inline-flex;align-items:center;gap:8px;transition:background .15s,transform .08s}.logout-button:hover{background:#fff}.logout-button:active{transform:translateY(1px)}.hero{position:relative;overflow:hidden;border-radius:22px;padding:26px 28px;color:#fff;background:linear-gradient(135deg,#002a52,#003463 40%,#1e5aa0);box-shadow:var(--shadow-2);margin-bottom:18px}.hero:before{content:"";position:absolute;inset:-40% -10% auto auto;width:60%;height:220%;background:radial-gradient(closest-side,rgba(254,133,2,.55),transparent 70%);transform:rotate(15deg)}.hero h1,.hero p,.hero .pill{position:relative}.hero h1{font-size:1.55rem;font-weight:800;letter-spacing:.2px}.hero p{color:#cfe0f5;margin-top:4px;font-size:.95rem}.hero .pill{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:8px 14px;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);font-size:.85rem}.card{background:var(--surface);border-radius:22px;padding:22px;box-shadow:var(--shadow-1);border:1px solid var(--line)}.card+.card{margin-top:16px}.card-head{display:flex;align-items:center;gap:10px;padding-bottom:12px;margin-bottom:14px;border-bottom:1px dashed var(--line)}.card-head .icn{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:1rem;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 6px 14px #fe85024d}.card-head h3{font-size:1.05rem;font-weight:800}.card-head .hint{font-size:.8rem;color:var(--muted);margin-left:auto}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media(max-width:720px){.grid{grid-template-columns:1fr}}.footer-note{text-align:center;color:var(--muted);font-size:.78rem;margin-top:18px}.score-select,.score-picker{position:relative}.score-trigger{width:100%;height:46px;padding:0 12px 0 14px;box-sizing:border-box;line-height:1.2;background:#f6f9fd;border:1.5px solid var(--line);border-radius:12px;color:var(--secondary);font:inherit;cursor:pointer;display:flex;align-items:center;gap:10px;text-align:left;transition:border-color .15s,box-shadow .15s,background .15s}.score-trigger:hover{background:#fff;border-color:#cad6e6}.score-trigger.is-empty .score-name{color:#8a97aa}.score-trigger.is-empty .score-pill{display:none}.score-trigger:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #fe850226;background:#fff}.score-trigger .score-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}.score-trigger .bi-chevron-down{color:#708199;font-size:.9rem;transition:transform .15s}.score-picker.open .score-trigger .bi-chevron-down{transform:rotate(180deg)}.score-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;display:none;max-height:260px;overflow:auto;padding:6px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-2)}.score-picker.open .score-menu{display:grid;gap:4px}.score-select.missing .score-trigger{border-color:#ef4444;background:#fff5f5}.score-option{width:100%;border:0;border-radius:10px;padding:9px 10px;background:transparent;color:var(--secondary);font:inherit;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.score-option:hover,.score-option:focus-visible,.score-option[aria-selected=true]{background:#fff7ed}.score-option[aria-selected=true] .score-option-label{font-weight:800}.score-option-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;flex-direction:column}.score-option-label:after{content:attr(data-label);font-weight:800;visibility:hidden;height:0;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.score-pill{min-width:34px;padding:3px 9px;border-radius:999px;font-size:.78rem;font-weight:800;line-height:1.35;text-align:center;flex:0 0 auto}.score-pill.zero{background:#e6f4ea;color:#166534}.score-pill.low{background:#eaf1fb;color:#003463}.score-pill.mid{background:#fff4e0;color:#b45309}.score-pill.high{background:#fde2e2;color:#b91c1c}.score-pill.critical{background:#7f1d1d;color:#fff}.params-grid{display:grid;grid-template-columns:1fr 1px 1fr;grid-template-rows:repeat(6,auto);grid-auto-flow:column;column-gap:22px;row-gap:14px;align-items:stretch}.params-grid:before{content:"";grid-column:2;grid-row:1 / -1;width:1px;justify-self:center;align-self:stretch;background:linear-gradient(180deg,transparent,var(--line) 15%,var(--line) 85%,transparent)}.params-grid .field:nth-of-type(1){grid-column:1;grid-row:1}.params-grid .field:nth-of-type(2){grid-column:1;grid-row:2}.params-grid .field:nth-of-type(3){grid-column:1;grid-row:3}.params-grid .field:nth-of-type(4){grid-column:1;grid-row:4}.params-grid .field:nth-of-type(5){grid-column:1;grid-row:5}.params-grid .field:nth-of-type(6){grid-column:1;grid-row:6}.params-grid .field:nth-of-type(7){grid-column:3;grid-row:1}.params-grid .field:nth-of-type(8){grid-column:3;grid-row:2}.params-grid .field:nth-of-type(9){grid-column:3;grid-row:3}.params-grid .field:nth-of-type(10){grid-column:3;grid-row:4}.params-grid .field:nth-of-type(11){grid-column:3;grid-row:5}@media(max-width:720px){.params-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}.params-grid:before{display:none}.params-grid .field{grid-column:1!important;grid-row:auto!important}}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.85rem;font-weight:600;color:var(--secondary);display:flex;align-items:center;gap:8px}.field label .num{width:22px;height:22px;border-radius:6px;background:#eaf1fb;color:var(--secondary);display:grid;place-items:center;font-size:.72rem;font-weight:800;padding:0 4px}.field input{width:100%;padding:11px 14px;background:#f6f9fd;border:1.5px solid var(--line);border-radius:12px;color:var(--secondary);font-size:.95rem;font-family:inherit;transition:border-color .15s,box-shadow .15s,background .15s}.field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #fe850226;background:#fff}.field input::placeholder{color:#9aa7bd}.actions{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}.btn{flex:1;min-width:180px;border:none;border-radius:14px;cursor:pointer;padding:14px 18px;font-size:1rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .08s ease,box-shadow .15s ease,opacity .15s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 10px 24px #fe850259}.btn-primary:hover{box-shadow:0 14px 30px #fe850273}.btn-ghost{color:var(--secondary);background:#eef3fb;border:1.5px solid var(--line)}.btn-ghost:hover{background:#e5edf8}.score-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:16px;align-items:stretch}@media(max-width:720px){.score-grid{grid-template-columns:1fr}}.score-card{position:relative;overflow:hidden;border-radius:20px;padding:22px;background:linear-gradient(135deg,#003463,#0a4e8a 56%,#fe8502 140%);border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;gap:18px;box-shadow:0 16px 36px #0034632e;min-height:150px}.score-card:after{content:"";position:absolute;inset:auto -44px -58px auto;width:160px;height:160px;border-radius:50%;background:#ffffff24}.score-ring{width:104px;height:104px;border-radius:50%;flex:0 0 104px;background:conic-gradient(var(--primary-2) calc(var(--p, 0) * 1%),rgba(255,255,255,.28) 0);display:grid;place-items:center;position:relative;transition:background .3s;box-shadow:0 10px 26px #0000002e}.score-ring:after{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1px #0034631a}.score-ring span{position:relative;z-index:1;font-weight:800;color:var(--secondary);font-size:1.8rem}.score-meta{position:relative;z-index:1;min-width:0}.score-meta .label{font-size:.86rem;color:#ffffffd1;font-weight:700}.score-meta .value{color:#fff;font-size:1.75rem;font-weight:800;line-height:1.1;margin-top:3px}.score-meta .badge{display:inline-block;margin-top:6px;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:700;background:#ffffffeb;color:var(--secondary)}.badge.mod{background:#fff4e0;color:#b45309}.legend{display:grid;gap:10px}.legend .row{--level-color: var(--secondary);display:grid;grid-template-columns:78px 1fr 34px;gap:12px;align-items:center;padding:11px 12px;border-radius:14px;background:#fff;border:1px solid #d9e4f2;border-left:5px solid var(--level-color);box-shadow:0 6px 16px #0034630f;transition:transform .15s,box-shadow .15s,background .15s,border-color .15s;font-size:.9rem}.legend #r-easy{--level-color: var(--easy)}.legend #r-mod{--level-color: var(--mod)}.legend #r-diff{--level-color: var(--diff)}.legend #r-high{--level-color: var(--high)}.legend .row>div:first-child{display:inline-flex;align-items:center;justify-content:center;min-height:32px;border-radius:999px;background:#eef3fb;color:var(--secondary);font-family:Inter,Sarabun,sans-serif;font-weight:800;font-size:.82rem}.legend .row b{display:block;color:var(--secondary);font-size:.98rem;line-height:1.15}.legend .row.active{background:linear-gradient(135deg,#fe850221,#fff 60%);border-color:var(--primary);border-left-color:var(--primary);box-shadow:0 14px 30px #fe850233;transform:translateY(-2px)}.legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;box-shadow:0 0 0 3px #ffffffe6}.legend .dot.easy{background:var(--easy)}.legend .dot.mod{background:var(--mod)}.legend .dot.diff{background:var(--diff)}.legend .dot.high{background:var(--high)}.legend .who{color:#354761;font-size:.86rem;font-weight:600;line-height:1.32;margin-top:3px}.legend .row>i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#f1f5fa;color:var(--level-color);font-size:1.08rem}.legend .row.active>i{background:var(--primary);color:#fff;box-shadow:0 8px 18px #fe850240}@media(max-width:480px){.score-card{align-items:flex-start;padding:18px}.score-ring{width:88px;height:88px;flex-basis:88px}.score-ring span,.score-meta .value{font-size:1.45rem}.legend .row{grid-template-columns:72px 1fr 32px;gap:9px;padding:10px}.legend .who{font-size:.82rem}}#msg{text-align:center;margin-top:12px;font-size:.9rem;min-height:22px;font-weight:600}.saved-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:18px;background:#001e3a6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.saved-modal{position:relative;width:min(620px,100%);max-height:min(86vh,760px);overflow:auto;border-radius:18px;border:1px solid rgba(217,228,242,.92);background:#fff;box-shadow:0 24px 70px #001e3a47;padding:22px}.saved-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border:0;border-radius:10px;display:grid;place-items:center;background:#eef3fb;color:var(--secondary);cursor:pointer}.saved-modal-close:hover{background:#e2ebf7}.saved-modal-head{display:flex;align-items:center;gap:14px;padding-right:42px}.saved-modal-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#e6f4ea;color:#166534;font-size:1.55rem;flex:0 0 auto}.saved-modal-head h3{margin:0;color:var(--secondary);font-size:1.25rem;line-height:1.25}.saved-modal-head p{margin:4px 0 0;color:#65758d;font-size:.9rem;font-weight:600}.saved-modal-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}.saved-modal-summary>div{min-width:0;padding:12px;border:1px solid #d9e4f2;border-radius:12px;background:#f6f9fd}.saved-modal-summary span,.saved-modal-summary strong{display:block}.saved-modal-summary span{color:#65758d;font-size:.76rem;font-weight:700}.saved-modal-summary strong{margin-top:4px;color:var(--secondary);font-size:.98rem;line-height:1.25;overflow-wrap:anywhere}.saved-modal-fields{display:grid;gap:8px;margin-top:16px}.saved-modal-field{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #e2eaf5;border-radius:12px;background:#fff}.saved-field-num{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:#eaf1fb;color:var(--secondary);font-size:.74rem;font-weight:800}.saved-field-label{min-width:0;color:#354761;font-size:.86rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-modal-field strong{color:var(--secondary);font-size:.86rem;overflow-wrap:anywhere;text-align:right}@media(max-width:640px){.saved-modal{padding:18px}.saved-modal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.saved-modal-field{grid-template-columns:28px minmax(0,1fr)}.saved-modal-field strong{grid-column:2;text-align:left}.saved-field-label{white-space:normal}}.history-wrap{max-width:1180px}.nav-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px}table{width:100%;border-collapse:collapse;min-width:1050px;background:#fff}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.88rem;white-space:nowrap}th{background:#f6f9fd;color:var(--secondary);font-weight:800;position:sticky;top:0}tbody tr:hover{background:#f9fbfe}tbody tr:last-child td{border-bottom:none}.patient{font-weight:800;color:var(--secondary)}.muted{color:var(--muted);font-size:.78rem}.score{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:28px;border-radius:999px;background:#eef3fb;font-weight:800}.badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:.78rem;font-weight:800}.badge.easy{background:#e6f4ea;color:var(--easy)}.badge.mod{background:#fff4d6;color:#b45309}.badge.diff{background:#fde2e2;color:var(--diff)}.badge.high{background:#fdd;color:var(--high)}.empty,.error{text-align:center;padding:34px 16px;color:var(--muted);background:#f6f9fd;border:1px dashed var(--line);border-radius:16px}.error{color:var(--diff)}@media(max-width:720px){body{padding:18px 10px 42px}.hero{padding:22px 18px}.hero h1{font-size:1.25rem}.card{padding:16px;border-radius:18px}.card-head{align-items:flex-start}.card-head .hint{margin-left:0}}.login-wrap{max-width:520px}.login-card{margin-top:42px;padding:28px;border-radius:22px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-2)}.login-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 10px 22px #fe850252;font-size:1.7rem}.login-card h1{margin-top:18px;color:var(--secondary);font-size:1.45rem;font-weight:800}.login-form{display:grid;gap:8px;margin-top:20px}.login-form label{color:var(--secondary);font-size:.9rem;font-weight:800}.login-form input{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;background:#f6f9fd;color:var(--secondary);font-family:inherit;font-size:1rem;transition:background .15s,border-color .15s,box-shadow .15s}.login-form input:focus{outline:none;border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px #fe850226}.login-error{min-height:20px;color:var(--diff);font-size:.85rem;font-weight:700}.login-button{width:100%;border:0;border-radius:14px;cursor:pointer;padding:14px 18px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 10px 24px #fe850259;font-family:inherit;font-size:1rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:10px}.login-button:active{transform:translateY(1px)}@media(max-width:520px){.login-card{margin-top:26px;padding:22px}}
