@import url("https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&family=Poppins:wght@700&display=swap");:root{--pp-magenta:#E63578;--pp-deep-navy:#172B4D;--pp-blue:#3D78BA;--pp-pink:#F29ABB;--pp-navy-dark:#141F38;--pp-soft-cloud:#F4F7FB;--pp-charcoal:#222222;--pp-white:#FFFFFF;--color-bg-app:var(--pp-soft-cloud);--color-bg-surface:var(--pp-white);--color-bg-sidebar:var(--pp-navy-dark);--color-text:var(--pp-charcoal);--color-text-heading:var(--pp-deep-navy);--color-text-muted:rgba(34,34,34,0.74);--color-text-on-dark:var(--pp-soft-cloud);--color-link:var(--pp-blue);--color-action-primary:var(--pp-magenta);--color-action-compact:var(--pp-deep-navy);--color-accent-dark:var(--pp-pink);--color-border:rgba(23,43,77,0.16);--color-focus-light:var(--pp-blue);--color-focus-dark:var(--pp-pink);--color-error:var(--pp-magenta);--grade-a-bg:var(--pp-magenta);--grade-a-fg:var(--pp-white);--grade-b-bg:var(--pp-blue);--grade-b-fg:var(--pp-white);--grade-c-bg:var(--pp-deep-navy);--grade-c-fg:var(--pp-white);--grade-d-bg:var(--pp-soft-cloud);--grade-d-fg:var(--pp-charcoal);--grade-d-border:var(--pp-charcoal);--grade-pending-bg:var(--pp-white);--grade-pending-border:var(--pp-deep-navy);--font-heading:"Poppins",system-ui,sans-serif;--font-body:"Lato",system-ui,sans-serif;--weight-heading:700;--weight-body:400;--weight-emphasis:700;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:20px;--text-xl:24px;--text-2xl:32px;--text-large-bold-min:18.66px;--line-body:1.5;--line-heading:1.2;--radius-card:12px 12px 12px 0;--radius-control:8px 8px 8px 0;--radius-chip:6px 6px 6px 0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--shadow-card:0 1px 2px rgba(20,31,56,0.08),0 4px 12px rgba(20,31,56,0.06);--shadow-pinpoint-logo:drop-shadow(2px 2px 2px rgba(0,0,0,0.35));--motion-fast:150ms;--motion-base:200ms;--ease:cubic-bezier(0.2,0,0,1)}@media (prefers-reduced-motion:reduce){:root{--motion-fast:0ms;--motion-base:0ms}}body{background:var(--color-bg-app);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-md);line-height:var(--line-body)}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--weight-heading);color:var(--color-text-heading);line-height:var(--line-heading)}b,strong{font-weight:var(--weight-emphasis)}a{color:var(--color-link)}.pp-card{background:var(--color-bg-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5)}.pp-btn{border-radius:var(--radius-control);font-family:var(--font-heading);font-weight:700;border:0;cursor:pointer;transition:filter var(--motion-fast) var(--ease)}.pp-btn--primary{background:var(--color-action-primary);color:var(--pp-white);font-size:var(--text-large-bold-min);padding:var(--space-3) var(--space-5)}.pp-btn--compact{background:var(--color-action-compact);color:var(--pp-white);font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}.pp-btn--secondary{background:transparent;color:var(--pp-deep-navy);box-shadow:inset 0 0 0 1.5px var(--pp-deep-navy);font-size:var(--text-md);padding:var(--space-3) var(--space-5)}.pp-btn:focus-visible{outline:3px solid var(--color-focus-light);outline-offset:2px}.pp-chip{gap:var(--space-1);background:var(--pp-soft-cloud);color:var(--pp-deep-navy);font-size:var(--text-sm);padding:2px var(--space-2)}.pp-chip,.pp-grade{display:inline-flex;align-items:center;border-radius:var(--radius-chip)}.pp-grade{justify-content:center;min-width:44px;height:44px;font-family:var(--font-heading);font-weight:700;font-size:var(--text-lg)}.pp-grade--a{background:var(--grade-a-bg);color:var(--grade-a-fg)}.pp-grade--b{background:var(--grade-b-bg);color:var(--grade-b-fg)}.pp-grade--c{background:var(--grade-c-bg);color:var(--grade-c-fg)}.pp-grade--d{background:var(--grade-d-bg);color:var(--grade-d-fg);box-shadow:inset 0 0 0 1px var(--grade-d-border)}.pp-grade--pending{background:var(--grade-pending-bg);color:var(--pp-deep-navy);border:1.5px dashed var(--grade-pending-border);font-family:var(--font-body);font-size:var(--text-xs);padding:0 var(--space-2)}.pp-sidebar{background:var(--color-bg-sidebar)}.pp-sidebar,.pp-sidebar a{color:var(--color-text-on-dark)}.pp-sidebar [aria-current=page]{box-shadow:inset 3px 0 0 var(--color-accent-dark)}.pp-sidebar :focus-visible{outline:3px solid var(--color-focus-dark)}.pp-pinpoint-logo{filter:var(--shadow-pinpoint-logo)}@media print{*{font-style:normal!important}body{background:var(--pp-white)}}:root{--color-error-text:var(--pp-deep-navy);--color-error-accent:var(--pp-magenta);--color-input-border:var(--pp-deep-navy)}*{box-sizing:border-box}body,html{margin:0;min-height:100%}a{text-underline-offset:2px}.app-main a:not(.pp-btn){text-decoration:underline}.pp-card a:not(.pp-btn){text-decoration:none}.pp-card a:not(.pp-btn):hover{text-decoration:underline}:focus-visible{outline:3px solid var(--color-focus-light);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-4);top:-48px;z-index:10;background:var(--pp-white);color:var(--pp-deep-navy);padding:var(--space-2) var(--space-4);border-radius:var(--radius-control)}.skip-link:focus{top:var(--space-4)}.app-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.app-sidebar{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-5) var(--space-4)}.app-brand{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-on-dark);text-decoration:none}.app-brand-name{font-family:var(--font-heading);font-weight:var(--weight-heading);font-size:var(--text-lg);line-height:1.1}.app-brand-name small{display:block;font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--text-xs);opacity:.9}.app-nav{display:flex;flex-direction:column;gap:2px}.app-nav a{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);text-decoration:none;font-size:var(--text-md);transition:background var(--motion-fast) var(--ease)}.app-nav a:hover{background:rgba(244,247,251,.08)}.app-nav a[aria-current=page]{background:rgba(244,247,251,.1)}.app-sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--text-sm)}.app-sidebar-foot form{margin:0}.app-signout{background:transparent;border:0;padding:0;color:var(--color-text-on-dark);font:inherit;text-decoration:underline;cursor:pointer}.by-pinpoint{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs)}.by-pinpoint img{height:22px;width:auto}.app-main{padding:var(--space-6);max-width:1200px;width:100%}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.app-header h1{margin:0;font-size:var(--text-2xl)}.badge-demo{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-chip);background:var(--pp-pink);color:var(--pp-charcoal);font-size:var(--text-sm);font-weight:var(--weight-emphasis)}.muted{color:var(--color-text-muted)}.stack{flex-direction:column;gap:var(--space-4)}.row,.stack{display:flex}.row{gap:var(--space-3);align-items:center;flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:var(--space-4);gap:var(--space-4)}.pp-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.pp-table th{text-align:left;font-family:var(--font-heading);color:var(--pp-deep-navy);font-weight:700;padding:var(--space-2);border-bottom:1.5px solid var(--color-input-border)}.pp-table td{padding:var(--space-2);border-bottom:1px solid var(--color-border);vertical-align:top}.pp-table .num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field label{font-weight:var(--weight-emphasis);color:var(--pp-deep-navy);font-size:var(--text-sm)}.field input{font:inherit;padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);border:1.5px solid var(--color-input-border);background:var(--pp-white);color:var(--color-text)}.field input:focus-visible{outline:3px solid var(--color-focus-light);outline-offset:1px}.notice-error{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-3);border-radius:var(--radius-control);background:var(--pp-white);color:var(--color-error-text);box-shadow:inset 3px 0 0 var(--color-error-accent),inset 0 0 0 1px var(--color-border)}.notice-error svg{flex:none;color:var(--color-error-accent)}.notice-info{padding:var(--space-3);border-radius:var(--radius-control);background:var(--pp-white);box-shadow:inset 3px 0 0 var(--pp-blue),inset 0 0 0 1px var(--color-border)}.auth-page{min-height:100vh;display:grid;place-items:center;background:var(--pp-navy-dark);padding:var(--space-5)}.auth-card{width:100%;max-width:420px}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);text-align:center}.auth-brand,.auth-brand h1{color:var(--color-text-on-dark)}.auth-brand h1{margin:0;font-size:var(--text-xl)}.auth-foot{display:flex;justify-content:center;margin-top:var(--space-5)}.auth-foot img{height:26px;width:auto}.pp-grade-wrap{display:inline-flex;flex-direction:column;align-items:center;gap:2px}.pp-grade-tag{font-size:var(--text-xs);color:var(--pp-deep-navy);font-weight:var(--weight-emphasis)}@media (max-width:800px){.app-shell{grid-template-columns:1fr}.app-sidebar{align-items:center}.app-nav,.app-sidebar{flex-direction:row;flex-wrap:wrap}.app-sidebar-foot{margin-top:0}.app-main{padding:var(--space-4)}}