:root{color:#16324a;background:#f4f6f8;font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif;line-height:1.45;--ink: #16324a;--muted: #7d8b99;--line: #e6ebf0;--surface: #ffffff;--page: #f4f6f8;--teal: #1ecad3;--teal-strong: #14b4c0;--navy: #0e2744;--link: #129eab;--on-accent: #ffffff;--focus: #1ecad3;--danger: #b42318;--shadow: 0 10px 28px rgba(16, 40, 68, .06);--radius: 18px}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--page)}h1,h2{font-family:inherit;font-weight:750;line-height:1.2;color:var(--navy);letter-spacing:-.02em}h1{font-size:1.65rem;margin:0 0 .25rem}h2{font-size:1.05rem;margin:1.25rem 0 .55rem}h3{font-size:.95rem;margin:.4rem 0 .55rem}a{color:var(--link)}a:hover{color:#0d8692}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button,input,select{font:inherit;color:inherit}button,.secondary{min-height:44px;border:0;border-radius:12px;padding:.55rem 1.15rem;background:var(--navy);color:var(--on-accent);font-weight:650;cursor:pointer}button:hover{background:#16385c}button:disabled{opacity:.55;cursor:wait}button.secondary,.filters .secondary{background:var(--surface);color:var(--navy);border:1px solid #d7e0e8}button.secondary:hover,.filters .secondary:hover{background:#f7fafc;color:var(--navy)}.skip-link{position:absolute;left:1rem;top:-4rem;background:#fff;padding:.5rem .75rem;z-index:2}.skip-link:focus{top:.5rem}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--page)}.site-header{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line)}.header-inner{width:auto;margin:0;padding:0 1.25rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:68px}.brand{color:var(--navy);text-decoration:none;font-size:1.15rem;font-weight:750;letter-spacing:-.02em}.site-header button{background:var(--surface);color:var(--navy);border:1px solid #d5dee8}.site-header button:hover{background:#f7fafc}.app-body{display:flex;flex:1;align-items:stretch;min-width:0}.side-nav{width:16.5rem;flex:0 0 16.5rem;background:var(--surface);border-right:1px solid var(--line);padding:1.1rem .85rem;display:flex;flex-direction:column;gap:.25rem}.nav-link{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#6d7c8b;border-radius:12px;padding:.72rem .85rem;font-weight:650}.nav-icon{width:1.3rem;height:1.3rem;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-link:hover{background:#f4f7fa;color:var(--navy)}.nav-link.active{background:#eefbfc;color:var(--teal-strong)}.nav-link.active:hover{background:#e7f8fa;color:var(--teal-strong)}.site-main{flex:1;width:auto;min-width:0;margin:0;padding:1.5rem 1.75rem 3rem}.back-link{margin:0 0 .85rem}.back-link a{color:var(--navy);text-decoration:none;font-weight:700;display:inline-flex;align-items:center;gap:.35rem}.back-link a:before{content:"‹";font-size:1.45rem;line-height:.8;color:var(--muted)}.back-link a:hover{color:var(--teal-strong)}.app-list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.app-list li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem;font-weight:700;color:var(--navy);display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}.app-list li.project-card{display:grid;justify-content:initial;gap:.75rem;align-items:stretch}.project-title{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;flex-wrap:wrap}.meta{color:var(--muted);font-weight:550;font-size:.92rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.05rem;margin-bottom:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:.8rem;align-items:end}.form-grid.single{grid-template-columns:minmax(0,1fr) auto}.form-grid .form-error{grid-column:1 / -1}.assign-form{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap}.assign-form .field{flex:1;min-width:12rem}.chip-list{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0;padding:0}.chip{display:inline-flex;align-items:center;gap:.35rem;background:#f6f8fb;border:1px solid var(--line);border-radius:999px;padding:.15rem .35rem .15rem .8rem;font-weight:650;color:var(--navy)}.chip button{min-height:32px;padding:.15rem .7rem}.login-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 20% 10%,rgba(30,202,211,.16),transparent 28rem),var(--page)}.login-card,.detail,.filters,.notice{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.login-card{width:min(420px,100%);padding:1.6rem;display:grid;gap:.9rem}.login-card button{width:100%}.lede{color:var(--muted);margin:0}.field{display:grid;gap:.35rem}label{font-weight:650;color:var(--navy);font-size:.92rem}input,select{min-height:44px;border:1px solid #d7e0e8;border-radius:12px;padding:.45rem .75rem;background:#fff;color:var(--ink)}input:focus,select:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #1ecad338}.form-error,.field-error{color:var(--danger);margin:0}.page-heading,.detail-header,.badge-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}.page-heading{margin-bottom:1rem}.filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;padding:1rem;margin:0 0 1rem;align-items:end}.error-table{overflow-x:auto}.recipient-table{width:100%;border-collapse:collapse;min-width:36rem}.recipient-table th,.recipient-table td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--line);vertical-align:top;font-weight:550}.recipient-table th{color:var(--muted);font-size:.82rem;font-weight:650}.list-head,.error-row{display:grid;grid-template-columns:11rem 7rem 7rem minmax(9rem,1fr) 9rem 5rem;gap:.75rem;align-items:center;min-width:52rem}.list-head{color:var(--muted);font-size:.82rem;font-weight:650;padding:0 1rem .45rem}.error-list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.error-row{text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1rem}.error-row:hover{border-color:#b7e8ec}.cell-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.message{min-width:0}.message span:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.program-code{font-variant-numeric:tabular-nums;font-weight:750;color:var(--navy)}.result-count{color:var(--muted);margin:0 0 .6rem}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.18rem .6rem;font-size:.82rem;font-weight:700;border:1px solid transparent}.severity-info{background:#e7f6f8;color:#0f6f86}.severity-warning{background:#fff4d8;color:#8a5a00}.severity-error{background:#fde8e4;color:#b42318}.delivery-pending{background:#fff4d8;color:#8a5a00}.delivery-processing{background:#e7f1fb;color:#1d4e89}.delivery-delivered{background:#e5f8f4;color:#0f766e}.delivery-failed{background:#fde8e4;color:#b42318}.notice{padding:1rem;color:var(--ink)}.notice.error{border-color:#f3c4be}.pagination{display:flex;gap:.75rem;align-items:center;margin-top:1rem;color:var(--muted)}.detail{padding:1.35rem}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1.2rem;margin:.4rem 0 1rem}.facts div{margin:0}dt{color:var(--muted);font-size:.82rem}dd{margin:.15rem 0 0;color:var(--navy);font-weight:650}.text-block{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f8fb;border-radius:14px;padding:.9rem;margin:0;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.92rem;color:var(--ink)}@media(max-width:900px){.app-body{flex-direction:column}.side-nav{width:auto;flex:none;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}.nav-link{white-space:nowrap;padding:.6rem .75rem}.filters,.facts,.form-grid,.form-grid.single{grid-template-columns:1fr}.list-head{display:none}.list-head,.error-row{min-width:0}.error-row{grid-template-columns:1fr;gap:.35rem}.cell{display:flex;justify-content:space-between;gap:1rem}.cell-label{position:static;width:auto;height:auto;overflow:visible;clip:auto;color:var(--muted)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
