@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--background: hsl(252 100% 99%);--foreground: hsl(220 27% 13%);--card: #fff;--primary: hsl(263 70% 42%);--primary-90: hsl(263 70% 42% / .9);--primary-fg: #fff;--secondary: hsl(257 100% 97%);--secondary-fg: hsl(263 70% 35%);--muted-fg: hsl(220 9% 46%);--accent: hsl(261 73% 58%);--destructive: hsl(354 70% 54%);--success: hsl(152 60% 32%);--warning: hsl(32 90% 40%);--border: hsl(248 100% 95%);--slate-200: rgb(226 232 240 / .7);--slate-300: #cbd5e1;--slate-600: #475569;--slate-700: #334155;--violet-50: #f5f3ff;--violet-200: #ddd6fe;--violet-300: #c4b5fd;--violet-600: #7c3aed;--violet-700: #6d28d9;--radius: .75rem;--shadow-card: 0 8px 32px rgba(0, 0, 0, .06);--shadow-card-hover: 0 16px 48px rgba(91, 33, 182, .12);--shadow-primary: 0 10px 24px hsl(263 70% 42% / .25);--ease-out-strong: cubic-bezier(.23, 1, .32, 1);--ink: var(--foreground);--ink-2: var(--slate-600);--muted: var(--muted-fg);--nav: var(--primary);--ok: var(--success);--warn: var(--warning);--bad: var(--destructive);--info: var(--primary);--line: var(--border);--series-1: #7c3aed;--series-2: #db2777;--series-3: #d97706;--series-4: #0d9488}*{box-sizing:border-box}html,body,#root{min-height:100%}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:Figtree Variable,Figtree,ui-sans-serif,system-ui,sans-serif;font-size:14px;color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#5a20b62e}a{color:var(--primary)}button,input,select,textarea{font:inherit;transition-timing-function:var(--ease-out-strong)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app{display:flex;flex-direction:column;min-height:100vh}.hdr{background:#fbfaffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid hsl(248 100% 95% / .7);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:12px 24px;gap:12px}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--primary);color:#fff;box-shadow:var(--shadow-primary)}.brand-mark svg{width:22px;height:22px}.brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.brand-word{font-size:18px;font-weight:600;letter-spacing:-.01em}.brand-word span{color:var(--primary)}.brand-name{font-size:13px;font-weight:600;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-tag{font-size:11.5px;color:var(--muted-fg)}.brand-user{font-size:12px;font-weight:600;color:var(--slate-600)}.hdr-title{color:var(--foreground);font-weight:600;font-size:17px;letter-spacing:-.01em;text-align:center}.hdr-right{display:flex;justify-content:flex-end;align-items:center;gap:10px}.inst{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;min-width:0;text-align:right}.inst-name{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--foreground);max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inst-tag{font-size:11.5px;color:var(--muted-fg)}.role-chip{font-size:12px;font-weight:500;color:var(--muted-fg);border:1px solid var(--border);background:#fff;border-radius:999px;padding:4px 12px}.logout{background:transparent;color:var(--slate-700);border:1px solid var(--slate-300);border-radius:var(--radius);padding:6px 14px;cursor:pointer;font-size:13px;font-weight:600;transition:background-color .2s}.logout:hover{background:#f1f5f999}.nav{background:#fff;border-bottom:1px solid hsl(248 100% 95% / .7);box-shadow:0 1px #00000005;display:flex;flex-wrap:wrap;gap:2px;padding:6px 20px;position:sticky;top:0;z-index:20}.nav-item{position:relative}.nav-btn{background:none;border:0;color:#181e2abf;font-weight:500;font-size:14px;padding:8px 12px;border-radius:var(--radius);cursor:pointer;white-space:nowrap;transition:background-color .2s,color .2s;position:relative}.nav-btn:hover,.nav-btn[aria-expanded=true]{background:#f4f0ff99;color:var(--foreground)}.nav-btn.active{background:var(--secondary);color:var(--primary);font-weight:600}.nav-btn .caret{font-size:9px;margin-left:4px;opacity:.7}.menu{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;background:#fff;border:1px solid var(--slate-200);border-radius:16px;box-shadow:var(--shadow-card-hover);padding:6px;animation:fade-up .25s var(--ease-out-strong) both}.menu a{display:block;padding:8px 12px;color:var(--foreground);text-decoration:none;white-space:nowrap;border-radius:10px;font-size:13.5px}.menu a:hover,.menu a:focus{background:var(--secondary);color:var(--primary);outline:none}.menu .menu-sep{border-top:1px solid var(--border);margin:4px 6px}main{flex:1;padding:12px 20px 40px}.page-title{text-align:center;font-weight:600;font-size:22px;letter-spacing:-.02em;margin:14px 0 16px}.panel{background:var(--card);border:1px solid var(--slate-200);border-radius:16px;box-shadow:var(--shadow-card);padding:18px 22px 22px;margin:0 auto 18px;max-width:900px}.panel.wide{max-width:1180px}.panel.full{max-width:none}.panel-title{font-weight:600;font-size:15px;letter-spacing:-.01em;margin:0 0 12px}.panel-title.boxed{display:inline-block}.panel .note{font-size:12.5px;color:var(--muted-fg);margin:8px 0;line-height:1.5}.panel .note b{color:var(--foreground)}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 18px;align-items:start}.grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.span2{grid-column:span 2}.span3{grid-column:span 3}.span4{grid-column:1 / -1}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label{font-size:13px;font-weight:500}.field .req{color:var(--destructive)}.field .hint{font-size:11.5px;color:var(--muted-fg)}.field .err{font-size:12px;color:var(--destructive)}input[type=text],input[type=number],input[type=date],input[type=email],input[type=password],input[type=search],select,textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:7px 11px;font-size:13.5px;min-height:38px;color:var(--foreground);transition:border-color .2s,box-shadow .2s}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:2.2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--violet-200)}input:disabled,select:disabled,textarea:disabled,input[readonly]{background:var(--secondary);color:var(--muted-fg)}textarea{min-height:64px;resize:vertical}:focus-visible{outline:none;box-shadow:0 0 0 2px var(--background),0 0 0 4px var(--primary)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #5a20b626}input[type=file]{font-size:13px}input[type=checkbox],input[type=radio]{accent-color:var(--primary)}.check{display:flex;gap:6px;align-items:center;font-size:13px}.btn{background:var(--primary);color:var(--primary-fg);border:1px solid hsl(263 70% 42% / .8);border-radius:999px;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-primary);transition:transform .2s var(--ease-out-strong),background-color .2s,box-shadow .2s}a.btn{display:inline-block;text-decoration:none;line-height:1.3}.btn:hover{background:var(--primary-90)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn.secondary{background:transparent;color:var(--slate-700);border:1px solid var(--slate-300);box-shadow:none}.btn.secondary:hover{background:#f1f5f999}.btn.danger{background:var(--destructive);border-color:var(--destructive);box-shadow:none}.btn.ok{background:var(--success);border-color:var(--success);box-shadow:0 10px 24px #21835533}.btn.warn{background:var(--warning);border-color:var(--warning);box-shadow:none}.btn.sm{padding:5px 12px;font-size:12px;box-shadow:none}.btn-row{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}.btn-row.left{justify-content:flex-start}.link-btn{background:none;border:0;color:var(--primary);text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:0;font-size:inherit;font-weight:500}.link-btn:disabled{color:var(--muted-fg);text-decoration:none;cursor:not-allowed}.steps{display:flex;background:var(--secondary);border:1px solid var(--border);border-radius:999px;padding:4px;gap:4px;margin:4px 0 16px}.steps button{flex:1;background:none;border:0;color:var(--secondary-fg);padding:7px 6px;font-size:13px;font-weight:500;cursor:pointer;border-radius:999px;transition:background-color .2s}.steps button:hover{background:#fff}.steps button.on{background:var(--primary);color:#fff;font-weight:600;box-shadow:var(--shadow-primary)}.steps button:disabled{opacity:.55;cursor:not-allowed}.tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:14px}.tabs button{background:transparent;border:1px solid transparent;border-radius:999px;padding:6px 14px;cursor:pointer;font-size:13px;font-weight:500;color:#181e2abf;transition:background-color .2s}.tabs button:hover{background:#f4f0ff99}.tabs button.on{background:var(--secondary);color:var(--primary);border-color:var(--violet-200);font-weight:600}.tbl-wrap{overflow-x:auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius)}table.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl th{background:#f4f0ff80;color:var(--muted-fg);text-align:left;padding:10px 12px;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-bottom:1px solid var(--border)}.tbl th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.tbl th.sortable:hover{color:var(--foreground)}.tbl th.num,.tbl td.num{text-align:right}.tbl td{padding:9px 12px;border-top:1px solid var(--border);vertical-align:top}.tbl tbody tr:first-child td{border-top:0}.tbl tr:hover td{background:#f4f0ff66}.tbl tfoot td{font-weight:600;background:#f4f0ff99}.tbl .title-cell{max-width:420px}.tbl-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0 0;flex-wrap:wrap;font-size:13px}.pager{display:flex;gap:4px;align-items:center}.pager button{border:1px solid var(--slate-300);background:transparent;border-radius:8px;min-width:30px;height:30px;padding:0 8px;cursor:pointer;font-size:12px}.pager button:hover:not(:disabled){background:#f1f5f999}.pager button.on{background:var(--primary);color:#fff;border-color:var(--primary)}.pager button:disabled{opacity:.4;cursor:not-allowed}.empty{padding:22px;text-align:center;color:var(--muted-fg);background:#fff}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid;white-space:nowrap}.badge.Approved{color:var(--success);border-color:#2183554d;background:#2183551a}.badge.Submitted{color:var(--violet-700);border-color:var(--violet-200);background:var(--violet-50)}.badge.Draft{color:var(--muted-fg);border-color:var(--border);background:var(--secondary)}.badge.Rework{color:var(--warning);border-color:#c26c0a4d;background:#c26c0a1a}.badge.Rejected{color:var(--destructive);border-color:#dc38484d;background:#dc38481a}.badge.neutral{color:var(--violet-700);border-color:var(--violet-200);background:var(--violet-50)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.tile{background:#fff;border-radius:16px;padding:14px 16px;border:1px solid var(--slate-200);box-shadow:var(--shadow-card);text-decoration:none;color:inherit;display:block;transition:transform .3s var(--ease-out-strong),box-shadow .3s,border-color .3s}a.tile:hover{transform:translateY(-4px);border-color:var(--violet-200);box-shadow:var(--shadow-card-hover)}.tile-label{font-size:11px;color:var(--violet-600);font-weight:600;text-transform:uppercase;letter-spacing:.1em}.tile-value{font-size:26px;font-weight:600;letter-spacing:-.02em;margin-top:4px;color:var(--foreground)}.tile-sub{font-size:12px;color:var(--muted-fg);margin-top:4px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:18px;max-width:1180px;margin:0 auto}.card{background:#fff;border:1px solid var(--slate-200);border-radius:16px;box-shadow:var(--shadow-card);padding:16px 18px;min-width:0}.card h3{margin:0 0 2px;font-size:15px;font-weight:600;letter-spacing:-.01em}.card .sub{font-size:12.5px;color:var(--muted-fg);margin:0 0 10px}.card.span-all{grid-column:1 / -1}.chart-box{height:240px}.bar-track{height:8px;background:var(--secondary);border-radius:999px;overflow:hidden;min-width:80px}.bar-fill{height:100%;background:var(--series-1);border-radius:999px}.bar-fill.good{background:var(--success)}.bar-fill.mid{background:var(--warning)}.bar-fill.low{background:var(--destructive)}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted-fg);margin-top:6px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.toggle-view{float:right;font-size:12px}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.filters .field{min-width:170px}.notice{background:var(--secondary);border:1px solid var(--border);border-left:3px solid var(--primary);padding:9px 12px;margin-bottom:8px;border-radius:12px;font-size:13px}.notice b{display:block;font-size:13.5px;font-weight:600}.notice small{color:var(--muted-fg)}.alert{padding:10px 12px;border-radius:12px;margin:10px 0;font-size:13px;border:1px solid}.alert.error{background:#dc38481a;border-color:#dc38484d;color:#932530}.alert.success{background:#2183551a;border-color:#2183554d;color:#186240}.alert.info{background:var(--secondary);border-color:var(--violet-200);color:var(--secondary-fg)}dl.kv{display:grid;grid-template-columns:180px 1fr;gap:6px 12px;margin:0;font-size:13px}dl.kv dt{font-weight:500;color:var(--muted-fg)}dl.kv dd{margin:0;word-break:break-word}.history{list-style:none;padding:0;margin:0;font-size:12.5px}.history li{padding:5px 0;border-bottom:1px solid var(--border)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:40px 12px;z-index:50;overflow-y:auto}.modal{background:#fff;border-radius:16px;width:min(840px,100%);box-shadow:0 24px 64px #0f172a33;animation:fade-up .35s var(--ease-out-strong) both;outline:none}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);font-weight:600;font-size:16px}.modal-head button{background:none;border:0;color:var(--muted-fg);font-size:22px;line-height:1;cursor:pointer;border-radius:8px;width:32px;height:32px}.modal-head button:hover{background:var(--secondary);color:var(--foreground)}.modal-body{padding:16px 20px 20px}.toast{position:fixed;bottom:48px;left:50%;transform:translate(-50%);background:var(--foreground);color:#fff;padding:10px 18px;border-radius:12px;z-index:60;box-shadow:var(--shadow-card-hover);font-size:13.5px;animation:fade-up .3s var(--ease-out-strong) both}.report-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:4px 20px}.report-links button{text-align:left;background:none;border:0;padding:7px 10px;font-size:13.5px;cursor:pointer;color:var(--foreground);border-radius:10px;transition:background-color .2s}.report-links button:hover{background:#f4f0ff99}.report-links button.on{background:var(--secondary);color:var(--primary);font-weight:600}.report-group{font-weight:600;margin:8px 0 2px;font-size:13px;grid-column:1 / -1}.intro{position:relative;min-height:100vh;overflow:hidden;display:flex;flex-direction:column}.intro-bg{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.intro-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#fff9,#ffffffbf,#fff)}.intro-blob{position:absolute;border-radius:999px;filter:blur(64px)}.intro-blob.a{left:-128px;top:-128px;width:320px;height:320px;background:#5a20b633}.intro-blob.b{right:-160px;top:0;width:384px;height:384px;background:#e879f933}.intro-head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 40px}.intro-main{position:relative;z-index:1;flex:1;margin:0 auto;width:100%;max-width:1152px;display:grid;grid-template-columns:1.3fr 1fr;gap:48px;padding:72px 16px 64px}.intro-hero{animation:fade-up .4s var(--ease-out-strong) both}.eyebrow{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.25em;color:var(--violet-600);margin:0 0 16px}.intro-hero h1{font-size:clamp(36px,4.4vw,60px);line-height:1.08;font-weight:600;letter-spacing:-.025em;color:#0f172a;margin:0}.intro-hero .lead{margin:24px 0 0;max-width:42rem;font-size:17px;line-height:1.65;color:var(--slate-600)}.intro-features{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.intro-features li{background:#fff;border:1px solid var(--slate-200);border-radius:16px;box-shadow:var(--shadow-card);padding:16px 20px;font-weight:500;font-size:14px;transition:transform .3s var(--ease-out-strong),border-color .3s,box-shadow .3s}.intro-features li:hover{transform:translateY(-4px);border-color:var(--violet-200);box-shadow:var(--shadow-card-hover)}.intro-rms{margin-top:28px;font-size:13px;color:var(--muted-fg)}.intro-rms b{color:var(--foreground);font-weight:600}.login-box{height:fit-content}.login-box .panel{margin:0;padding:28px 32px 32px;max-width:none}.login-box .panel-title{font-size:20px;letter-spacing:-.02em;margin-bottom:4px}.login-sub{margin:0 0 18px;font-size:13.5px;color:var(--muted-fg)}.demo-list{margin-top:24px;border-top:1px solid var(--border);padding-top:18px}.demo-pick{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;text-align:left;margin-top:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--background);padding:10px 14px;cursor:pointer;transition:border-color .2s,background-color .2s}.demo-pick:hover{border-color:var(--violet-300);background:#f4f0ff99}.demo-pick b{display:block;font-size:13.5px;font-weight:600}.demo-pick small{display:block;font-size:12px;color:var(--muted-fg)}.demo-pick .arrow{color:var(--muted-fg);transition:transform .2s}.demo-pick:hover .arrow{transform:translate(4px)}.ftr{background:#fff;color:var(--muted-fg);border-top:1px solid hsl(248 100% 95% / .7);font-size:12px;display:grid;grid-template-columns:1fr auto 1fr;padding:10px 24px;align-items:center}.ftr .mid{text-align:center;font-weight:500;color:var(--foreground)}.ftr .right{text-align:right}.cv{background:#fff;max-width:900px;margin:0 auto;padding:32px 40px;border:1px solid var(--slate-200);border-radius:16px;box-shadow:var(--shadow-card)}.cv h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.02em}.cv h2{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--violet-600);border-bottom:1px solid var(--border);padding-bottom:6px;margin:22px 0 8px}.cv ol{margin:0;padding-left:20px}.cv li{margin-bottom:4px;line-height:1.5}.muted{color:var(--muted-fg)}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.toast{animation-name:toast-up}@keyframes toast-up{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media (max-width: 860px){.grid,.grid.g3{grid-template-columns:repeat(2,minmax(0,1fr))}.span3{grid-column:1 / -1}.hdr{grid-template-columns:1fr;text-align:center}.brand,.hdr-right{justify-content:center}.inst{align-items:center;text-align:center}.cards{grid-template-columns:1fr}.ftr{grid-template-columns:1fr;text-align:center}.ftr .right{text-align:center}.intro-main{grid-template-columns:1fr;padding-top:32px}.intro-head{padding:0 16px}}@media (max-width: 520px){.grid,.grid.g3,.grid.g2,.intro-features{grid-template-columns:1fr}.span2{grid-column:auto}}@media print{.hdr,.nav,.ftr,.no-print,.btn,.tbl-foot{display:none!important}body{background:#fff}.panel,.cv,.card{box-shadow:none;border:0;padding:0}.tbl th{background:#eee!important;color:#000}}
