@font-face{font-family:Dana;src:url('../fonts/Dana-FaNum-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Dana;src:url('../fonts/Dana-FaNum-DemiBold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Dana;src:url('../fonts/Dana-FaNum-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--navy:#112d50;--blue:#2251b7;--green:#177d6b;--muted:#64748b;--border:#dde5ef;--background:#f4f7fb;--white:#fff}
*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--navy);font-family:Dana,sans-serif;line-height:1.8}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #3982f3;outline-offset:4px}.shell{max-width:1320px;padding:0 24px;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 0}.brand{display:flex;align-items:center;gap:12px}.brand img{object-fit:contain}.brand strong,.brand small{display:block}.brand strong{font-size:17px}.brand small{font-size:12px;color:var(--muted)}.stage{background:#e9f0fd;border:1px solid #cfddf8;color:var(--blue);font-size:12px;padding:6px 13px;border-radius:30px}.navigation{display:flex;gap:8px;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:28px}.navigation a{padding:8px 18px;border-radius:10px;color:var(--muted);font-size:14px}.navigation a.active{color:var(--blue);background:#e8eefb;font-weight:600}h1,h2,p{margin-top:0}h1{font-size:clamp(25px,3.3vw,39px);line-height:1.6;margin-bottom:16px}h2{font-size:19px;margin-bottom:14px}p{color:var(--muted);font-size:14px}.eyebrow{display:block;color:var(--green);font-size:12px;font-weight:700;margin-bottom:10px}.hero{display:grid;grid-template-columns:1.6fr 1fr;align-items:center;gap:32px;border:1px solid var(--border);background:linear-gradient(120deg,#e9f1ff 0%,#fff 60%);border-radius:24px;padding:44px;margin-bottom:22px}.hero p{max-width:640px;font-size:16px}.hero-mark{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:170px;color:var(--blue)}.hero-mark span{font-size:72px;letter-spacing:9px;font-weight:700;direction:ltr}.hero-mark small{font-size:10px;letter-spacing:3px}.button{background:var(--blue);color:white;display:inline-flex;gap:20px;align-items:center;padding:10px 22px;border-radius:11px;font-size:14px}.button:hover{background:#1c4297}.notice{padding:14px 18px;border:1px solid #e9d9a9;background:#fffbec;color:#785e16;border-radius:12px;margin-bottom:28px;font-size:13px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:26px}.card,.panel{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:22px}.card span{display:block;color:var(--muted);font-size:13px;margin-bottom:16px}.card strong{font-size:14px;font-weight:600;display:block}.principles{display:flex;justify-content:space-between;align-items:center;gap:28px}.principles p{margin-bottom:0}.principles ul{padding-right:20px;font-size:13px;margin:0;line-height:2.4}.principles li::marker{color:var(--green)}.page-heading{padding:12px 0 16px}.page-heading h1{font-size:29px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.service{position:relative;overflow:hidden}.service-number{font-size:12px;color:var(--blue);background:#eef3ff;border-radius:8px;display:inline-block;padding:3px 10px;margin-bottom:14px}.service h2{font-size:17px;margin-bottom:7px}.service p{font-size:12px}.status-pill{font-size:11px;color:var(--muted);border:1px solid var(--border);border-radius:20px;padding:4px 12px}.error-panel{margin:40px auto;max-width:680px}.skip-link{position:fixed;top:-100px;right:16px;background:white;padding:10px;z-index:9}.skip-link:focus{top:12px}footer{font-size:12px;color:var(--muted);text-align:center;margin:36px 0 24px}input[data-numeric],input[type=tel]{direction:ltr;text-align:left}button:disabled{opacity:.6;cursor:wait}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding:30px;grid-template-columns:1fr}.hero-mark{display:none}}
@media(max-width:600px){.shell{padding:0 16px}.topbar{align-items:flex-start;flex-wrap:wrap;padding:18px 0;gap:12px}.brand strong{font-size:15px}.brand small{font-size:11px}.stage{font-size:10px}.navigation{gap:2px;margin-bottom:18px}.navigation a{padding:8px 12px;font-size:12px}.hero{padding:24px 20px;border-radius:18px}.hero p{font-size:13px}h1{font-size:27px}.cards,.service-grid{grid-template-columns:1fr;gap:12px}.card{padding:18px}.card span{margin-bottom:8px}.principles{align-items:flex-start;flex-direction:column;gap:16px}.notice{font-size:12px}.page-heading h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.auth-panel { max-width: 480px; margin: 36px auto; padding: 32px; }
.auth-panel h1 { font-size: 27px; }
form label { display: block; font-size: 14px; margin: 12px 0 6px; }
input:not([type=checkbox]):not([type=hidden]), select { display: block; width: 100%; min-height: 46px; border: 1px solid var(--border); border-radius: 9px; padding: 8px 12px; background: white; color: var(--navy); }
form .button { margin-top: 18px; border: 0; cursor: pointer; justify-content: center; }
.auth-panel form .button { width: 100%; }
.secondary { background: #e9effb; color: var(--blue); }
.secondary:hover { background: #dce6fa; }
.validation { color: #a12737; font-size: 14px; }
.validation ul { padding-right: 20px; }
.validation-summary-valid { display: none; }
.navigation { flex-wrap: wrap; align-items: center; }
.nav-button { border: 0; background: transparent; color: var(--muted); padding: 8px 12px; cursor: pointer; }
.toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 20px; }
.search-form { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; flex: 1; }
.search-form input { max-width: 260px; }
.toolbar form .button, .search-form .button, .filter-grid .button { margin: 0; }
.table-scroll { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 13px; text-align: right; }
th, td { padding: 14px 12px; border-bottom: 1px solid var(--border); vertical-align: top; }
th { background: #f5f8fe; font-weight: 600; }
td a { color: var(--blue); text-decoration: underline; }
.identifier { font-size: 11px; overflow-wrap: anywhere; min-width: 130px; }
.nowrap { white-space: nowrap; }
.pagination { display: flex; gap: 22px; justify-content: center; padding: 22px 0 4px; font-size: 14px; }
.pagination a { color: var(--blue); }
.form-panel { margin-bottom: 22px; }
.form-panel > form > input:not([type=hidden]) { max-width: 460px; }
.check { display: flex; align-items: flex-start; gap: 10px; }
.check input { width: 18px; height: 18px; flex-shrink: 0; margin-top: 4px; }
.permission small { display: block; font-size: 11px; color: var(--muted); margin-top: 4px; }
.permission-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
fieldset { border: 1px solid var(--border); border-radius: 12px; min-width: 0; padding: 16px; }
legend { font-weight: 600; padding: 0 8px; }
.filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 24px; align-items: end; }
.audit-details { white-space: pre-wrap; font-family: inherit; max-width: 360px; min-width: 200px; font-size: 12px; }
.hint, .empty { font-size: 12px; margin-top: 12px; }
@media(max-width: 760px) { .permission-groups, .filter-grid { grid-template-columns: 1fr; } .auth-panel { padding: 24px; margin: 20px auto; } .search-form { flex-basis: 100%; } .search-form input { max-width: 100%; } }
