:root{--hpsi-navy: #000060;--hpsi-navy-header: #000045;--hpsi-blue: #2080d0;--hpsi-blue-deep: #145187;--hpsi-cyan: #20c6d9;--hpsi-charcoal: #1f2937;--hpsi-cool: #4b5563;--hpsi-gray: #6b7280;--hpsi-light: #e5e7eb;--hpsi-tint: #eaf4fc;--hpsi-white: #ffffff;--hpsi-line: rgba(0, 0, 96, .25);--hpsi-line-soft: rgba(0, 0, 96, .12);--hpsi-navy-900: #00002e;--hpsi-navy-800: #000048;--hpsi-navy-600: #0a1a78;--hpsi-font: "Public Sans", "Segoe UI", Calibri, Arial, sans-serif;--hpsi-font-display: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;--hpsi-font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--fs-title: 1.75rem;--fs-body: 1rem;--fs-label: .75rem;--fs-caption: .875rem;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-8: 3rem;--hpsi-radius: 0;--hpsi-radius-sm: 0;--hpsi-trace: linear-gradient(90deg, var(--hpsi-blue) 0%, var(--hpsi-cyan) 100%);--hpsi-shadow: 0 14px 34px rgba(0, 0, 96, .14);--hpsi-focus: 0 0 0 2px var(--hpsi-white), 0 0 0 4px var(--hpsi-cyan)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--hpsi-white)}.hpsi-app{font-family:var(--hpsi-font);font-size:var(--fs-body);line-height:1.55;color:var(--hpsi-charcoal);-webkit-font-smoothing:antialiased}.hpsi-display{font-family:var(--hpsi-font-display);font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.1;color:var(--hpsi-navy)}.hpsi-eyebrow-text{font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--hpsi-blue)}.hpsi-btn-solid{display:inline-block;font-family:var(--hpsi-font-display);font-size:1.0625rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--hpsi-white);background:var(--hpsi-navy);border:1.5px solid var(--hpsi-navy);padding:.7rem 1.5rem;cursor:pointer;text-decoration:none;transition:background .12s ease,border-color .12s ease,color .12s ease}.hpsi-btn-solid:hover{background:var(--hpsi-blue-deep);border-color:var(--hpsi-blue-deep);color:var(--hpsi-white)}.hpsi-btn-solid:disabled{background:var(--hpsi-gray);border-color:var(--hpsi-gray);cursor:not-allowed}.hpsi-btn-ghost{display:inline-block;font-family:var(--hpsi-font-display);font-size:1.0625rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--hpsi-navy);background:var(--hpsi-white);border:1.5px solid var(--hpsi-navy);padding:.7rem 1.5rem;cursor:pointer;text-decoration:none;transition:border-color .12s ease,color .12s ease}.hpsi-btn-ghost:hover{border-color:var(--hpsi-blue);color:var(--hpsi-blue)}.hpsi-btn-ghost:disabled{border-color:var(--hpsi-gray);color:var(--hpsi-gray);cursor:not-allowed}.hpsi-btn-solid:focus-visible,.hpsi-btn-ghost:focus-visible{outline:2px solid var(--hpsi-cyan);outline-offset:2px}.hpsi-plate,.hpsi-card-block,.hpsi-metric{position:relative;background:var(--hpsi-white);border:1px solid var(--hpsi-line)}.hpsi-plate:before,.hpsi-plate:after,.hpsi-card-block:before,.hpsi-card-block:after,.hpsi-metric:before,.hpsi-metric:after{content:"";position:absolute;width:10px;height:10px;border-color:var(--hpsi-cyan);border-style:solid;pointer-events:none}.hpsi-plate:before,.hpsi-card-block:before,.hpsi-metric:before{top:-1px;left:-1px;border-width:2px 0 0 2px}.hpsi-plate:after,.hpsi-card-block:after,.hpsi-metric:after{top:-1px;right:-1px;border-width:2px 2px 0 0}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}}.hpsi-login{font-family:var(--hpsi-font);min-height:100vh;display:grid;place-items:center;padding:var(--sp-5);color:var(--hpsi-charcoal);background:radial-gradient(120% 90% at 50% -10%,var(--hpsi-navy-600) 0%,transparent 55%),linear-gradient(160deg,var(--hpsi-navy-800) 0%,var(--hpsi-navy-900) 100%);position:relative;overflow:hidden}.hpsi-login:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(32,198,217,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(32,198,217,.1) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at 50% 38%,#000 0%,transparent 72%);mask-image:radial-gradient(circle at 50% 38%,#000 0%,transparent 72%);pointer-events:none}.hpsi-card{position:relative;width:100%;max-width:408px;background:var(--hpsi-white);border:1px solid var(--hpsi-line);box-shadow:0 24px 60px -24px #000020b3;padding:var(--sp-8) var(--sp-6) var(--sp-6);overflow:hidden}.hpsi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--hpsi-trace);transform:scaleX(0);transform-origin:left center;animation:hpsi-trace-in .7s cubic-bezier(.22,1,.36,1) forwards}@keyframes hpsi-trace-in{to{transform:scaleX(1)}}.hpsi-brand{display:flex;flex-direction:column;align-items:center;gap:8px}.hpsi-product{font-family:var(--hpsi-font-mono);font-size:var(--fs-label);font-weight:500;text-transform:uppercase;letter-spacing:.22em;color:var(--hpsi-blue)}.hpsi-step-title{margin:var(--sp-6) 0 var(--sp-1);font-family:var(--hpsi-font-display);font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.1;font-size:1.625rem;color:var(--hpsi-navy)}.hpsi-step-help{margin:0 0 var(--sp-5);font-size:var(--fs-caption);color:var(--hpsi-cool);line-height:1.45}.hpsi-field{margin-bottom:var(--sp-4)}.hpsi-field label{display:block;margin-bottom:6px;font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--hpsi-navy)}.hpsi-field input{width:100%;font-family:var(--hpsi-font);font-size:var(--fs-body);color:var(--hpsi-charcoal);padding:.7rem .8rem;border:1px solid var(--hpsi-line);background:var(--hpsi-white);transition:border-color .12s ease,box-shadow .12s ease}.hpsi-field input:hover{border-color:#c5cdd8}.hpsi-field input:focus{outline:2px solid var(--hpsi-cyan);outline-offset:2px;border-color:var(--hpsi-navy)}.hpsi-code input{font-feature-settings:"tnum" 1;letter-spacing:.5em;text-align:center;font-size:1.25rem;padding-left:.5em}.hpsi-btn{width:100%;margin-top:var(--sp-2);font-family:var(--hpsi-font-display);font-size:1.0625rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--hpsi-white);background:var(--hpsi-navy);border:1.5px solid var(--hpsi-navy);padding:.75rem 1rem;cursor:pointer;transition:background .13s ease,transform 80ms ease}.hpsi-btn:hover{background:var(--hpsi-blue-deep);border-color:var(--hpsi-blue-deep)}.hpsi-btn:active{transform:translateY(1px)}.hpsi-btn:focus-visible{outline:none;box-shadow:var(--hpsi-focus)}.hpsi-btn:disabled{background:var(--hpsi-gray);border-color:var(--hpsi-gray);cursor:progress}.hpsi-error{margin:0 0 var(--sp-4);padding:.6rem .75rem;font-size:var(--fs-caption);color:#7a1020;background:#fdecef;border-left:3px solid #c2304a;border-radius:var(--hpsi-radius-sm)}.hpsi-qr{display:block;width:168px;height:168px;margin:0 auto var(--sp-3);padding:10px;background:var(--hpsi-white);border:1px solid var(--hpsi-light);border-radius:var(--hpsi-radius-sm)}.hpsi-secret{margin:0 0 var(--sp-5);text-align:center;font-size:var(--fs-caption);color:var(--hpsi-cool)}.hpsi-secret code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;color:var(--hpsi-charcoal);letter-spacing:.08em}.hpsi-foot{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--hpsi-light);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.hpsi-ticks{display:flex;align-items:flex-end;gap:3px;height:14px}.hpsi-ticks span{width:2px;background:var(--hpsi-cyan);border-radius:1px}.hpsi-ticks span:nth-child(1){height:6px}.hpsi-ticks span:nth-child(2){height:10px}.hpsi-ticks span:nth-child(3){height:14px}.hpsi-ticks span:nth-child(4){height:9px}.hpsi-foot .notice{font-family:var(--hpsi-font-mono);font-size:.6875rem;letter-spacing:.04em;color:var(--hpsi-cool);text-align:right;line-height:1.4}.hpsi-foot .notice strong{color:var(--hpsi-navy);font-weight:700;letter-spacing:.04em}@media (max-width: 460px){.hpsi-card{padding:var(--sp-6) var(--sp-5) var(--sp-5)}}.hpsi-link-btn{display:block;margin-top:var(--sp-3);padding:0;background:none;border:none;cursor:pointer;font-family:var(--hpsi-font);font-size:var(--fs-caption);color:var(--hpsi-blue);text-decoration:underline}.hpsi-link-btn:hover{color:var(--hpsi-navy)}.hpsi-link-btn:focus-visible{outline:none;box-shadow:var(--hpsi-focus)}.hpsi-shell{min-height:100vh;background:var(--hpsi-white);color:var(--hpsi-charcoal);font-family:var(--hpsi-font)}.hpsi-header{position:sticky;top:0;z-index:20;background:var(--hpsi-navy-header);color:var(--hpsi-white)}.hpsi-header-inner{max-width:1120px;margin:0 auto;padding:0 var(--sp-5);display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--sp-6)}.hpsi-header-trace{height:2px;background:var(--hpsi-cyan)}.hpsi-header-brand{display:flex;align-items:center;gap:12px;flex:none;min-height:60px}.hpsi-header-brand img{filter:brightness(1.15)}.hpsi-header-product{font-family:var(--hpsi-font-display);font-size:1.1875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--hpsi-white);white-space:nowrap}.hpsi-nav{order:3;flex-basis:100%;display:flex;align-items:center;gap:4px;margin:0 calc(-1 * var(--sp-2));border-top:1px solid rgba(255,255,255,.12);overflow-x:auto;scrollbar-width:thin}.hpsi-nav-item{font-family:var(--hpsi-font-mono);font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;color:#ffffffd9;background:none;border:none;border-bottom:2px solid transparent;padding:12px 10px 10px;cursor:pointer;white-space:nowrap;transition:color .12s ease,border-color .12s ease}.hpsi-nav-item:hover{color:var(--hpsi-white)}.hpsi-nav-item.is-active{color:var(--hpsi-cyan);border-bottom-color:var(--hpsi-cyan)}.hpsi-nav-item:focus-visible{outline:2px solid var(--hpsi-cyan);outline-offset:-2px}.hpsi-header-user{display:flex;align-items:center;gap:10px;flex:none;margin-left:auto}.hpsi-user-email{font-family:var(--hpsi-font-mono);font-size:.75rem;letter-spacing:.04em;color:#ffffffbf;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hpsi-signout{font-family:var(--hpsi-font-display);font-size:.9375rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--hpsi-white);background:transparent;border:1.5px solid rgba(255,255,255,.6);padding:6px 14px;cursor:pointer;transition:border-color .12s ease,color .12s ease}.hpsi-signout:hover{border-color:var(--hpsi-cyan);color:var(--hpsi-cyan)}.hpsi-signout:focus-visible{outline:2px solid var(--hpsi-cyan);outline-offset:2px}.hpsi-content{max-width:1120px;margin:0 auto;padding:var(--sp-6) var(--sp-5) var(--sp-8)}@media (max-width: 760px){.hpsi-header-inner{padding:0 var(--sp-4)}.hpsi-header-user{gap:6px}.hpsi-signout{padding:5px 10px;font-size:.875rem}.hpsi-user-email{display:none}.hpsi-content{padding:var(--sp-5) var(--sp-4) var(--sp-6)}}.hpsi-dialog-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00002e99;display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.hpsi-dialog{position:relative;background:var(--hpsi-white);border:1px solid var(--hpsi-line);box-shadow:var(--hpsi-shadow);padding:var(--sp-6);width:min(440px,100%)}.hpsi-dialog:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--hpsi-cyan)}.hpsi-dialog .hpsi-block-title{margin:0 0 var(--sp-4);font-family:var(--hpsi-font-display);font-size:1.5rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--hpsi-navy)}.hpsi-dialog .hpsi-error{margin:0 0 var(--sp-4);padding:.6rem .75rem;font-size:var(--fs-caption);color:#7a1020;background:#fdecef;border-left:3px solid #c2304a}.hpsi-dialog .hpsi-field{margin-bottom:var(--sp-4)}.hpsi-dialog .hpsi-field label{display:block;margin-bottom:6px;font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--hpsi-navy)}.hpsi-dialog .hpsi-field input{width:100%;box-sizing:border-box;padding:.65rem .75rem;font-family:var(--hpsi-font);font-size:var(--fs-body);color:var(--hpsi-charcoal);border:1px solid var(--hpsi-line);background:var(--hpsi-white)}.hpsi-dialog .hpsi-field input:focus{outline:2px solid var(--hpsi-cyan);outline-offset:2px}.hpsi-dialog .hpsi-btn{font-family:var(--hpsi-font-display);font-size:1.0625rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--hpsi-white);background:var(--hpsi-navy);border:1.5px solid var(--hpsi-navy);padding:.65rem 1.4rem;cursor:pointer}.hpsi-dialog .hpsi-btn:hover{background:var(--hpsi-blue-deep);border-color:var(--hpsi-blue-deep)}.hpsi-dialog .hpsi-btn:disabled{background:var(--hpsi-gray);border-color:var(--hpsi-gray)}.hpsi-dialog-actions{display:flex;gap:var(--sp-4);align-items:center}.hpsi-dialog .hpsi-link-btn{padding:0;background:none;border:none;cursor:pointer;font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--hpsi-blue);text-decoration:none}.hpsi-dialog .hpsi-link-btn:hover{color:var(--hpsi-navy);text-decoration:underline}.hpsi-dash{display:flex;flex-direction:column;gap:var(--sp-5)}.hpsi-run-panel{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap;background-color:var(--hpsi-navy-header);background-image:linear-gradient(rgba(32,198,217,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(32,198,217,.1) 1px,transparent 1px);background-size:44px 44px;border:1px solid var(--hpsi-navy);padding:var(--sp-5) var(--sp-6);position:relative;overflow:hidden}.hpsi-run-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--hpsi-cyan)}.hpsi-eyebrow{font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--hpsi-cyan)}.hpsi-run-period{margin:6px 0 4px;font-family:var(--hpsi-font-display);font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.1;font-size:2rem;color:#fff}.hpsi-run-sub{margin:0;font-size:var(--fs-body);color:#ffffffd9}.hpsi-run-action{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.hpsi-run-btn{font-family:var(--hpsi-font-display);font-size:1.0625rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--hpsi-navy);background:#fff;border:1.5px solid #fff;padding:.7rem 1.4rem;cursor:pointer;transition:transform 80ms ease,background .12s ease}.hpsi-run-btn:hover{background:var(--hpsi-cyan);border-color:var(--hpsi-cyan)}.hpsi-run-btn:active{transform:translateY(1px)}.hpsi-run-btn:disabled{background:#aab4d4;cursor:progress}.hpsi-run-btn:focus-visible{outline:none;box-shadow:var(--hpsi-focus)}.hpsi-run-msg{margin:0;font-size:var(--fs-caption);color:#ffffffe6;max-width:260px;text-align:right}.hpsi-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.hpsi-metric{background:var(--hpsi-white);border:1px solid var(--hpsi-line);padding:var(--sp-4);display:flex;flex-direction:column;gap:6px}.hpsi-metric .label{font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--hpsi-blue)}.hpsi-metric .value{font-family:var(--hpsi-font-display);font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.1;font-size:1.75rem;color:var(--hpsi-navy)}.hpsi-block-title{margin:0 0 var(--sp-4);font-family:var(--hpsi-font-display);font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.1;font-size:1.375rem;color:var(--hpsi-navy)}.hpsi-table{width:100%;border-collapse:collapse;font-size:var(--fs-caption)}.hpsi-table thead th{background:var(--hpsi-navy);color:#fff;text-align:left;padding:10px 12px;font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;font-weight:500}.hpsi-table thead th:first-child{border-top-left-radius:var(--hpsi-radius-sm)}.hpsi-table thead th:last-child{border-top-right-radius:var(--hpsi-radius-sm)}.hpsi-table tbody td{padding:10px 12px;color:var(--hpsi-charcoal);border-bottom:1px solid var(--hpsi-line-soft)}.hpsi-table tbody tr:nth-child(2n) td{background:#f3f6fb}.hpsi-pill{display:inline-block;font-size:.75rem;font-weight:700;padding:2px 10px;border-radius:999px;color:var(--hpsi-cool);background:var(--hpsi-light)}.hpsi-pill.is-done{color:#0f6e56;background:#e1f5ee}@media (max-width: 760px){.hpsi-metrics{grid-template-columns:repeat(2,1fr)}.hpsi-run-action{align-items:flex-start}.hpsi-run-msg{text-align:left}}.hpsi-dash .hpsi-error{margin:0 0 var(--sp-4);padding:.6rem .75rem;font-size:var(--fs-caption);color:#7a1020;background:#fdecef;border-left:3px solid #c2304a;border-radius:var(--hpsi-radius-sm)}.hpsi-tc-chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:var(--fs-caption);font-weight:700;text-transform:capitalize;background:var(--hpsi-light);color:var(--hpsi-charcoal)}.hpsi-tc-chip.submitted{background:#fff4dd;color:#7a5200}.hpsi-tc-chip.approved{background:#e2f5e9;color:#1c6b3a}.hpsi-tc-chip.rejected{background:#fdecef;color:#7a1020}.hpsi-tc-actions{display:flex;gap:var(--sp-2);align-items:center}.hpsi-approve-btn{font-family:var(--hpsi-font-display);font-size:.9375rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--hpsi-navy);border:1.5px solid var(--hpsi-navy);padding:.4rem 1rem;cursor:pointer}.hpsi-approve-btn:hover{background:var(--hpsi-blue-deep);border-color:var(--hpsi-blue-deep)}.hpsi-approve-btn:disabled{background:var(--hpsi-gray);border-color:var(--hpsi-gray)}.hpsi-reject-btn{font-family:var(--hpsi-font-display);font-size:.9375rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--hpsi-navy);background:#fff;border:1.5px solid var(--hpsi-navy);padding:.4rem 1rem;cursor:pointer}.hpsi-reject-btn:hover{color:var(--hpsi-blue);border-color:var(--hpsi-blue)}.hpsi-reject-btn:disabled{border-color:var(--hpsi-gray);color:var(--hpsi-gray)}.hpsi-tc-done{font-size:var(--fs-caption);color:var(--hpsi-cool)}.hpsi-reject-row td{background:#fbfbfd}.hpsi-reject-row label{display:block;font-size:var(--fs-caption);font-weight:700;margin-bottom:var(--sp-1)}.hpsi-reject-row input{width:min(420px,100%);padding:.5rem .7rem;margin-right:var(--sp-3);border:1px solid var(--hpsi-light);border-radius:var(--hpsi-radius-sm);font-family:var(--hpsi-font);font-size:var(--fs-body)}.hpsi-warn{margin:0 0 var(--sp-4);padding:.6rem .75rem;font-size:var(--fs-caption);color:#7a5200;background:#fff4dd;border-left:3px solid #d99a00;border-radius:var(--hpsi-radius-sm)}.hpsi-period-nav button{font-family:var(--hpsi-font);font-size:1rem;font-weight:700;line-height:1;color:var(--hpsi-blue);background:#fff;border:1px solid var(--hpsi-light);border-radius:var(--hpsi-radius-sm);padding:2px 9px 4px;cursor:pointer}.hpsi-run-panel .hpsi-period-nav{margin-top:var(--sp-3)}.hpsi-run-panel .hpsi-period-nav button{background:transparent;color:#fff;border-color:#fff6}.hpsi-run-panel .hpsi-period-nav button:hover:not(:disabled){color:#fff;border-color:#fff}.hpsi-run-panel .hpsi-period-nav button:disabled{color:#ffffff73}.hpsi-doc-toolbar{display:flex;gap:var(--sp-4);align-items:center;flex-wrap:wrap;margin-bottom:var(--sp-4)}.hpsi-doc-toolbar label{font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--hpsi-navy)}.hpsi-doc-toolbar select{padding:.5rem .7rem;border:1px solid var(--hpsi-light);border-radius:var(--hpsi-radius-sm);font-family:var(--hpsi-font);font-size:var(--fs-body)}.hpsi-upload-btn{font-family:var(--hpsi-font-display);font-size:.9375rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--hpsi-navy);border:1.5px solid var(--hpsi-navy);padding:.5rem 1rem;cursor:pointer;margin-left:auto}.hpsi-upload-btn:hover{background:var(--hpsi-blue-deep);border-color:var(--hpsi-blue-deep)}.hpsi-dialog-wide{width:min(640px,100%);max-height:90vh;overflow-y:auto}.hpsi-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--sp-4)}@media (max-width: 640px){.hpsi-form-grid{grid-template-columns:1fr}}.hpsi-note{margin-top:var(--sp-3);font-size:var(--fs-caption);color:var(--hpsi-cool);line-height:1.5;max-width:64ch}.hpsi-history{margin-top:var(--sp-5);border-top:1px solid var(--hpsi-light);padding-top:var(--sp-3)}.hpsi-history ul{margin:0;padding-left:18px;font-size:var(--fs-caption);color:var(--hpsi-charcoal)}.hpsi-history li{margin:4px 0}.hpsi-review{border:1px solid var(--hpsi-light);border-radius:var(--hpsi-radius-sm);padding:var(--sp-4);margin-bottom:var(--sp-4)}.hpsi-review-head,.hpsi-rating-row{display:flex;gap:var(--sp-3);align-items:center;margin-bottom:var(--sp-3)}.hpsi-rating-row .hpsi-rating-name{flex:0 0 200px;font-size:var(--fs-caption);font-weight:700}.hpsi-rating-row select{padding:.4rem;border:1px solid var(--hpsi-light);border-radius:var(--hpsi-radius-sm)}.hpsi-rating-row input{flex:1;padding:.5rem .7rem;border:1px solid var(--hpsi-light);border-radius:var(--hpsi-radius-sm);font-family:var(--hpsi-font)}.hpsi-share-toggle{display:flex;gap:var(--sp-2);align-items:center;font-size:var(--fs-caption);margin:var(--sp-3) 0 var(--sp-4)}.hpsi-dialog textarea{width:100%;box-sizing:border-box;padding:.6rem .7rem;border:1px solid var(--hpsi-light);border-radius:var(--hpsi-radius-sm);font-family:var(--hpsi-font);font-size:var(--fs-body)}.hpsi-portal{display:flex;flex-direction:column;gap:var(--sp-5)}.hpsi-portal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.hpsi-portal-title{margin:0;font-family:var(--hpsi-font-display);font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.1;font-size:var(--fs-title);color:var(--hpsi-navy)}.hpsi-portal-sub{margin:2px 0 0;font-size:var(--fs-caption);color:var(--hpsi-cool)}.hpsi-period-nav{display:inline-flex;align-items:center;gap:var(--sp-2)}.hpsi-period-nav button{font-family:var(--hpsi-font);font-size:1rem;font-weight:700;line-height:1;color:var(--hpsi-blue);background:none;border:1px solid var(--hpsi-light);border-radius:var(--hpsi-radius-sm);padding:2px 9px 4px;cursor:pointer}.hpsi-period-nav button:hover:not(:disabled){color:var(--hpsi-navy);border-color:var(--hpsi-blue)}.hpsi-period-nav button:disabled{color:var(--hpsi-cool);opacity:.5;cursor:not-allowed}.hpsi-period-nav button:focus-visible{outline:none;box-shadow:var(--hpsi-focus)}.hpsi-notice{margin:0;padding:.6rem .75rem;font-size:var(--fs-caption);color:#854f0b;background:#faeeda;border-left:3px solid #d99a2b;border-radius:var(--hpsi-radius-sm)}.hpsi-home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--sp-4)}.hpsi-home-card{display:flex;flex-direction:column;gap:var(--sp-2)}.hpsi-home-card .hpsi-download{align-self:flex-start;margin-top:auto}.hpsi-home-value{margin:0;font-family:var(--hpsi-font-display);font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.1;font-size:1.75rem;color:var(--hpsi-navy);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.hpsi-status{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-label);font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:4px 12px;border-radius:999px}.hpsi-status.draft{color:var(--hpsi-cool);background:var(--hpsi-light)}.hpsi-status.submitted{color:#854f0b;background:#faeeda}.hpsi-status.approved{color:#0f6e56;background:#e1f5ee}.hpsi-status.rejected{color:#791f1f;background:#fceaea}.hpsi-week-title{margin:0 0 8px;font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--hpsi-blue)}.hpsi-week-title+.hpsi-week-title{margin-top:var(--sp-4)}.hpsi-time{width:100%;border-collapse:collapse;font-size:var(--fs-caption)}.hpsi-time td{padding:7px 10px;border-bottom:1px solid var(--hpsi-light)}.hpsi-time .day{color:var(--hpsi-charcoal)}.hpsi-time .day.weekend{color:var(--hpsi-cool)}.hpsi-time .hrs{text-align:right;width:120px}.hpsi-time input{width:84px;font-family:var(--hpsi-font);font-size:var(--fs-body);text-align:right;padding:6px 8px;border:1px solid var(--hpsi-line);background:var(--hpsi-white);color:var(--hpsi-charcoal)}.hpsi-time input:focus{outline:none;border-color:var(--hpsi-blue);box-shadow:var(--hpsi-focus)}.hpsi-time input:disabled{background:#f3f4f6;color:var(--hpsi-cool)}.hpsi-subtotal td{font-weight:700;color:var(--hpsi-navy);border-bottom:none}.hpsi-submit-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--hpsi-light)}.hpsi-total{font-size:var(--fs-body);color:var(--hpsi-charcoal)}.hpsi-total strong{color:var(--hpsi-navy);font-size:1.1rem}.hpsi-submit-btn{font-family:var(--hpsi-font-display);font-size:1.0625rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--hpsi-navy);border:1.5px solid var(--hpsi-navy);padding:.7rem 1.4rem;cursor:pointer}.hpsi-submit-btn:hover{background:var(--hpsi-blue-deep);border-color:var(--hpsi-blue-deep)}.hpsi-submit-btn:disabled{background:var(--hpsi-gray);border-color:var(--hpsi-gray);cursor:not-allowed}.hpsi-submit-btn:focus-visible{outline:none;box-shadow:var(--hpsi-focus)}.hpsi-reject-note{margin-top:var(--sp-3);padding:.6rem .75rem;font-size:var(--fs-caption);color:#791f1f;background:#fceaea;border-left:3px solid #c2304a;border-radius:var(--hpsi-radius-sm)}.hpsi-list{width:100%;border-collapse:collapse;font-size:var(--fs-caption)}.hpsi-list th{background:var(--hpsi-navy);color:#fff;text-align:left;padding:10px 12px;font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;font-weight:500}.hpsi-list td{padding:10px 12px;color:var(--hpsi-charcoal);border-bottom:1px solid var(--hpsi-line-soft)}.hpsi-list tr:nth-child(2n) td{background:#f3f6fb}.hpsi-download{font-family:var(--hpsi-font-display);font-size:.9375rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--hpsi-navy);background:var(--hpsi-white);border:1.5px solid var(--hpsi-navy);cursor:pointer;padding:4px 12px}.hpsi-download:hover{color:var(--hpsi-blue);border-color:var(--hpsi-blue)}.hpsi-download:disabled{color:var(--hpsi-gray);border-color:var(--hpsi-gray);cursor:not-allowed}.hpsi-empty{text-align:center;color:var(--hpsi-cool);padding:18px 0;font-style:italic}.hpsi-portal .hpsi-error{margin:0 0 var(--sp-4);padding:.6rem .75rem;font-size:var(--fs-caption);color:#7a1020;background:#fdecef;border-left:3px solid #c2304a;border-radius:var(--hpsi-radius-sm)}.hpsi-actions{display:flex;gap:var(--sp-3);align-items:center}.hpsi-save-btn{font-family:var(--hpsi-font-display);font-size:1.0625rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--hpsi-navy);background:#fff;border:1.5px solid var(--hpsi-navy);padding:.7rem 1.4rem;cursor:pointer}.hpsi-save-btn:hover{border-color:var(--hpsi-blue);color:var(--hpsi-blue)}.hpsi-save-btn:disabled{border-color:var(--hpsi-cool);color:var(--hpsi-cool);cursor:not-allowed}.hpsi-save-btn:focus-visible{outline:none;box-shadow:var(--hpsi-focus)}.hpsi-tor-form{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:flex-end}.hpsi-tor-form label{display:flex;flex-direction:column;gap:var(--sp-1);font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--hpsi-navy)}.hpsi-tor-form input,.hpsi-tor-form select{padding:.55rem .7rem;border:1px solid var(--hpsi-line);color:var(--hpsi-charcoal);font-family:var(--hpsi-font);font-size:var(--fs-body);min-width:130px}.hpsi-tor-form .hpsi-tor-note{flex:1;min-width:200px}.hpsi-status.approved{background:#e2f5e9;color:#1c6b3a}.hpsi-journal{display:flex;flex-direction:column;gap:var(--sp-5)}.hpsi-journal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.hpsi-journal-title{margin:0;font-family:var(--hpsi-font-display);font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.1;font-size:var(--fs-title);color:var(--hpsi-navy)}.hpsi-journal-sub{margin:2px 0 0;font-size:var(--fs-caption);color:var(--hpsi-cool)}.hpsi-balanced{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-label);font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:4px 12px;border-radius:999px}.hpsi-balanced.ok{color:#0f6e56;background:#e1f5ee}.hpsi-balanced.off{color:#791f1f;background:#fceaea}.hpsi-card-block{background:var(--hpsi-white);border:1px solid var(--hpsi-line);padding:var(--sp-5)}.hpsi-jtable{width:100%;border-collapse:collapse;font-size:var(--fs-caption)}.hpsi-jtable th{background:var(--hpsi-navy);color:#fff;text-align:left;padding:10px 12px;font-family:var(--hpsi-font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;font-weight:500}.hpsi-jtable th.num,.hpsi-jtable td.num{text-align:right;font-variant-numeric:tabular-nums}.hpsi-jtable td{padding:8px 12px;color:var(--hpsi-charcoal);border-bottom:1px solid var(--hpsi-light)}.hpsi-jtable tr:nth-child(2n) td{background:#f3f6fb}.hpsi-jtable tr.total td{font-weight:700;color:var(--hpsi-navy);background:#eef2f8;border-top:2px solid var(--hpsi-navy);border-bottom:none}.hpsi-journal-empty{color:var(--hpsi-cool);padding:22px 4px;font-style:italic;line-height:1.5}
