/* ระบบสารสนเทศด้านการวิจัยและนวัตกรรม — โทนน้ำเงิน กรมท่า ขาว */
.rri-wrap{--navy:#0b2a4a;--blue:#1f5fa8;--sky:#e8f0fa;--line:#cfd9e6;--ink:#0b1f3a;--muted:#5b6b80;--ok:#1d7a46;--warn:#a86a00;--bad:#b3261e;--bg:#fff;
  font-family:var(--rri-font,"Sarabun","TH Sarabun New",Tahoma,sans-serif)!important;color:var(--ink);font-size:var(--rri-fs,16px)!important;line-height:1.6;max-width:1280px;margin:0 auto}
.rri-wrap *{box-sizing:border-box}
.rri-brand{display:flex;gap:12px;align-items:center;background:var(--navy);color:#fff;padding:12px 16px;border-radius:10px 10px 0 0}
.rri-logo{height:44px;width:auto;background:#fff;border-radius:6px;padding:2px}
.rri-brand-t{font-weight:700;font-size:1.2em}.rri-brand-s{opacity:.85;font-size:.9em}
.rri-app{display:grid;grid-template-columns:230px 1fr;min-height:520px;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;background:var(--bg)}
.rri-nav{background:#f4f7fb;border-right:1px solid var(--line);padding:8px}
.rri-nav a{display:block;padding:8px 10px;border-radius:6px;color:var(--navy);text-decoration:none;font-size:.95em}
.rri-nav a:hover{background:var(--sky)}.rri-nav a.on{background:var(--blue);color:#fff}
.rri-nav .rri-navh{font-size:.78em;text-transform:uppercase;color:var(--muted);margin:10px 10px 2px;letter-spacing:.04em}
.rri-main{padding:16px 20px;min-width:0}
.rri-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.rri-top h2{margin:0;font-size:1.35em;color:var(--navy)}
.rri-card{border:1px solid var(--line);border-radius:8px;padding:14px;margin:0 0 12px;background:#fff}
.rri-card h3{margin:0 0 8px;font-size:1.08em;color:var(--navy)}
.rri-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.rri-stat{background:var(--sky);border-radius:8px;padding:10px 12px;cursor:pointer}
.rri-stat b{display:block;font-size:1.5em;color:var(--navy)}
.rri-f{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}
.rri-f label{font-weight:600;font-size:.9em;color:var(--navy)}
.rri-f small{color:var(--muted)}
.rri-wrap input[type=text],.rri-wrap input[type=email],.rri-wrap input[type=number],.rri-wrap input[type=date],.rri-wrap input[type=datetime-local],.rri-wrap input[type=password],.rri-wrap input[type=url],.rri-wrap select,.rri-wrap textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff}
.rri-wrap textarea{min-height:90px}
.rri-btn{display:inline-block;background:var(--blue);color:#fff;border:0;border-radius:6px;padding:7px 14px;font:inherit;cursor:pointer;text-decoration:none;margin:2px}
.rri-btn:hover{background:var(--navy)}.rri-btn[disabled]{opacity:.5;cursor:not-allowed}
.rri-btn-s{background:#fff;color:var(--blue);border:1px solid var(--blue)}.rri-btn-s:hover{background:var(--sky);color:var(--navy)}
.rri-btn-d{background:var(--bad)}.rri-btn-ok{background:var(--ok)}
.rri-table{width:100%;border-collapse:collapse;font-size:.95em}
.rri-table th,.rri-table td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
.rri-table th{background:#f4f7fb;color:var(--navy);cursor:pointer;white-space:nowrap}
.rri-table tr:hover td{background:#fafcff}
.rri-scroll{overflow-x:auto}
.rri-badge{display:inline-block;font-size:.85em;padding:1px 8px;border-radius:20px;background:var(--sky);color:var(--navy);margin-right:4px}
.rri-st-open{background:#dff3e7;color:var(--ok)}.rri-st-closed_by_time,.rri-st-closed{background:#f3e3e2;color:var(--bad)}
.rri-ok{color:var(--ok)}.rri-bad{color:var(--bad)}.rri-warn{color:var(--warn)}.rri-muted{color:var(--muted);font-size:.9em}
.rri-alert{padding:10px 12px;border-radius:6px;margin:0 0 10px;border-left:4px solid var(--blue);background:var(--sky)}
.rri-alert.bad{border-color:var(--bad);background:#fbeceb}.rri-alert.warn{border-color:var(--warn);background:#fff6e5}.rri-alert.ok{border-color:var(--ok);background:#e8f6ee}
.rri-steps{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}
.rri-steps button{border:1px solid var(--line);background:#fff;border-radius:20px;padding:4px 12px;cursor:pointer;font:inherit;font-size:.9em;color:var(--navy)}
.rri-steps button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.rri-steps button.err{border-color:var(--bad)}
.rri-row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.rri-row>*{flex:1;min-width:140px}
.rri-pager{margin:10px 0;display:flex;gap:8px;align-items:center}
.rri-fw li{margin-bottom:6px}
.rri-opt{border:1px solid var(--line);border-radius:6px;padding:8px;margin-bottom:6px;display:flex;gap:8px}
.rri-opt.on{border-color:var(--blue);background:var(--sky)}
.rri-toast{position:fixed;right:16px;bottom:16px;background:var(--navy);color:#fff;padding:10px 14px;border-radius:8px;z-index:99999;max-width:420px}
.rri-toast.bad{background:var(--bad)}
.rri-tabs{display:flex;gap:2px;border-bottom:2px solid var(--line);margin-bottom:12px;flex-wrap:wrap}
.rri-tabs button{border:0;background:none;padding:8px 12px;cursor:pointer;font:inherit;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-2px}
.rri-tabs button.on{color:var(--navy);border-color:var(--blue);font-weight:700}
.rri-kv{display:grid;grid-template-columns:200px 1fr;gap:4px 12px}.rri-kv div:nth-child(odd){color:var(--muted)}
.rri-login{max-width:420px;margin:0;border-radius:0 0 10px 10px;border-top:0}
.rri-login input[type=text],.rri-login input[type=password]{width:100%;padding:8px;border:1px solid #cfd9e6;border-radius:6px}
.rri-login .button{background:#1f5fa8;color:#fff;border:0;border-radius:6px;padding:8px 16px}
.rri-pre{white-space:pre-wrap}
.rri-admin-wrap .rri-wrap{max-width:none}
@media (max-width:860px){.rri-app{grid-template-columns:1fr}.rri-nav{display:flex;flex-wrap:wrap;gap:2px;border-right:0;border-bottom:1px solid var(--line)}.rri-nav .rri-navh{display:none}.rri-nav a{padding:6px 8px;font-size:.9em}.rri-kv{grid-template-columns:1fr}.rri-main{padding:12px}}
@media print{.rri-nav,.rri-btn,.rri-steps,.rri-tabs{display:none!important}.rri-app{display:block;border:0}}

/* ฟอนต์: บังคับให้ทุกส่วนของระบบใช้ฟอนต์เดียวกัน ไม่ให้ธีม/ปลั๊กอินอื่นทับ */
.rri-wrap,.rri-wrap *{font-family:var(--rri-font,"Sarabun","TH Sarabun New",Tahoma,sans-serif)!important}
.rri-wrap input,.rri-wrap select,.rri-wrap textarea,.rri-wrap button,.rri-wrap table{font-size:1em!important}
/* ===== แดชบอร์ดสาธารณะ [rri_portal] ===== */
.rri-btn,.rri-btn:visited,.rri-btn:hover{color:#fff!important;text-decoration:none!important}.rri-btn-s,.rri-btn-s:visited{color:var(--blue)!important}.rri-btn-s:hover{color:var(--navy)!important}
.rri-pt{--gold:#c9a227;--soft:#f4f7fb}
.rri-pt a{text-decoration:none}
.rri-pt-hero{background:linear-gradient(135deg,#0b2a4a 0%,#123e6b 55%,#1f5fa8 100%);color:#fff;border-radius:14px;overflow:hidden;position:relative;margin-bottom:18px}
.rri-pt-hero:after{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.12),rgba(255,255,255,0) 70%);pointer-events:none}
.rri-pt-hero-in{display:flex;gap:20px;align-items:center;padding:30px 32px 24px;position:relative;z-index:1}
.rri-pt-logo{height:84px;width:auto;background:#fff;border-radius:12px;padding:6px;flex:none}
.rri-pt-kicker{font-size:.9em;opacity:.85;letter-spacing:.02em}
.rri-pt-hero h1{margin:2px 0 4px;font-size:2.2em;line-height:1.2;color:#fff!important;font-family:inherit!important;font-weight:700}
.rri-pt-hero p{margin:0 0 14px;opacity:.92;max-width:760px}
.rri-pt-acts{display:flex;gap:8px;flex-wrap:wrap}
.rri-pt-b{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:999px;font-weight:600;font-size:.95em;border:1px solid transparent;line-height:1.3;cursor:pointer}
.rri-pt-b1,.rri-pt-b1:visited{background:var(--gold);color:#0b2a4a!important}.rri-pt-b1:hover{background:#e0b73a;color:#0b2a4a!important}
.rri-pt-b2,.rri-pt-b2:visited{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.55);color:#fff!important}.rri-pt-b2:hover{background:rgba(255,255,255,.2);color:#fff!important}
.rri-pt-b3,.rri-pt-b3:visited{background:#fff;border-color:var(--blue);color:var(--blue)!important}.rri-pt-b3:hover{background:var(--sky);color:var(--navy)!important}
.rri-pt-call-acts .rri-pt-b1{background:var(--blue);color:#fff!important}.rri-pt-call-acts .rri-pt-b1:hover{background:var(--navy)}
.rri-pt-note{background:rgba(255,255,255,.12);padding:8px 14px;border-radius:8px}
.rri-pt-jump{display:flex;gap:4px;flex-wrap:wrap;background:rgba(0,0,0,.18);padding:6px 24px;position:relative;z-index:1}
.rri-pt-jump a,.rri-pt-jump a:visited{color:#fff!important;opacity:.9;padding:5px 12px;border-radius:6px;font-size:.92em}.rri-pt-jump a:hover{background:rgba(255,255,255,.14);opacity:1}
.rri-pt-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:0 0 20px}
.rri-pt-kpi{background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;min-width:0}
.rri-pt-kpi.is-open{border-left-color:var(--ok)}
.rri-pt-kpi b{font-size:1.8em;line-height:1.15;color:var(--navy);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.rri-pt-kpi span{font-weight:600;color:var(--ink);font-size:.92em}.rri-pt-kpi small{color:var(--muted);font-size:.8em}
.rri-pt-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px;align-items:start}
.rri-pt-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:16px}
.rri-pt-sec{margin:0 0 22px;scroll-margin-top:80px}
.rri-pt-h{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--navy);margin-bottom:12px}
.rri-pt-h h2{margin:0 0 6px;font-size:1.3em;color:var(--navy)!important;font-family:inherit!important}
.rri-pt-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.rri-pt-card h3{margin:0 0 10px;font-size:1.05em;color:var(--navy)!important;font-family:inherit!important}
.rri-pt-empty{background:var(--soft);border:1px dashed var(--line);border-radius:10px;padding:22px;text-align:center;color:var(--muted)}
.rri-pt-muted{color:var(--muted);margin:4px 0}
.rri-pt-calls{display:grid;gap:12px}
.rri-pt-call{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;border-top:4px solid var(--muted)}
.rri-pt-call.is-open{border-top-color:var(--ok);box-shadow:0 4px 14px rgba(11,42,74,.08)}.rri-pt-call.is-scheduled{border-top-color:var(--warn)}
.rri-pt-call h3{margin:6px 0 8px;font-size:1.15em;color:var(--navy)!important;font-family:inherit!important}
.rri-pt-call-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rri-pt-tag{display:inline-block;background:var(--sky);color:var(--navy);padding:2px 10px;border-radius:999px;font-size:.8em;font-weight:600}
.rri-pt-tag.is-open{background:#e3f4ea;color:var(--ok)}.rri-pt-tag.is-scheduled{background:#fdf1dc;color:var(--warn)}.rri-pt-tag.is-closed,.rri-pt-tag.is-closed_by_time,.rri-pt-tag.is-archived{background:#eef0f3;color:var(--muted)}
.rri-pt-left{background:var(--bad);color:#fff;padding:2px 10px;border-radius:999px;font-size:.8em;font-weight:600}
.rri-pt-fy{margin-left:auto;color:var(--muted);font-size:.85em}
.rri-pt-dl{display:grid;grid-template-columns:max-content 1fr;gap:2px 14px;margin:0 0 8px;font-size:.95em}
.rri-pt-dl dt{color:var(--muted)}.rri-pt-dl dd{margin:0}
.rri-pt-fw{background:var(--soft);border-radius:8px;padding:6px 12px;margin:6px 0 10px}.rri-pt-fw summary{cursor:pointer;font-weight:600;color:var(--blue)}.rri-pt-fw ol{margin:6px 0;padding-left:1.4em}.rri-pt-fw li{margin:4px 0}
.rri-pt-call-acts{display:flex;gap:8px;flex-wrap:wrap}
.rri-pt-contact{margin:8px 0 0;color:var(--muted);font-size:.88em}
.rri-pt-news{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rri-pt-newsi{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;color:var(--ink)!important;transition:box-shadow .15s,transform .15s}
.rri-pt-newsi:hover{box-shadow:0 6px 18px rgba(11,42,74,.12);transform:translateY(-2px)}
.rri-pt-newsi.is-lead{grid-column:1/-1;flex-direction:row}.rri-pt-newsi.is-lead .rri-pt-thumb{width:45%;aspect-ratio:auto;min-height:200px;flex:none}
.rri-pt-thumb{display:block;aspect-ratio:16/9;background:#dfe7f1 center/cover no-repeat}
.rri-pt-thumb.is-none{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--sky),#d3e0f0);color:var(--blue);font-weight:700;letter-spacing:.05em}
.rri-pt-newst{display:flex;flex-direction:column;gap:3px;padding:10px 14px 14px}
.rri-pt-newst time{color:var(--muted);font-size:.82em}.rri-pt-newst b{color:var(--navy);line-height:1.35}.rri-pt-newst small{color:var(--muted);font-size:.86em}
.rri-pt-tl{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
.rri-pt-tl li{position:relative;padding:0 0 12px 14px;display:flex;flex-direction:column}
.rri-pt-tl li:before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--blue);border:2px solid #fff}
.rri-pt-tl time{font-weight:700;color:var(--navy);font-size:.92em}.rri-pt-tl b{font-size:.92em}.rri-pt-tl span{color:var(--muted);font-size:.84em}
.rri-pt-legend{font-size:.82em;color:var(--muted);margin:-4px 0 8px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.rri-pt-legend i{display:inline-block;width:10px;height:10px;border-radius:2px}.rri-pt-legend i.a,.rri-pt-col.a{background:#8fb3e0}.rri-pt-legend i.b,.rri-pt-col.b{background:var(--navy)}
.rri-pt-bars{display:flex;gap:10px;height:175px;padding-top:18px}
.rri-pt-yr{flex:1;display:flex;flex-direction:column;height:100%}
.rri-pt-cols{flex:1;display:flex;gap:3px;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--line)}
.rri-pt-col{width:40%;max-width:26px;min-height:2px;border-radius:3px 3px 0 0;position:relative}
.rri-pt-col em{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-style:normal;font-size:.72em;color:var(--ink)}
.rri-pt-yl{text-align:center;font-size:.8em;color:var(--muted);padding-top:3px}
.rri-pt-links{list-style:none;margin:0;padding:0}.rri-pt-links li{border-bottom:1px solid var(--soft)}
.rri-pt-links a,.rri-pt-links a:visited{display:block;padding:7px 2px;color:var(--blue)!important}.rri-pt-links a:hover{color:var(--navy)!important;padding-left:6px;transition:padding .15s}
.rri-pt-links a:before{content:"› ";font-weight:700}
.rri-pt-feeds{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.rri-pt-feed ul{list-style:none;margin:0;padding:0}.rri-pt-feed li{padding:6px 0;border-bottom:1px solid var(--soft);display:flex;flex-direction:column}
.rri-pt-feed li a,.rri-pt-feed li a:visited{color:var(--ink)!important;line-height:1.4}.rri-pt-feed li a:hover{color:var(--blue)!important}
.rri-pt-feed time{font-size:.8em;color:var(--muted)}
.rri-pt-more,.rri-pt-more:visited{display:inline-block;margin-top:8px;font-size:.88em;color:var(--blue)!important;font-weight:600}
.rri-pt-outs{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.rri-pt-out{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px}.rri-pt-out h3{margin:6px 0;font-size:1.02em;color:var(--navy)!important;font-family:inherit!important}.rri-pt-out p{margin:0 0 6px;font-size:.92em}.rri-pt-out small{color:var(--muted)}
.rri-pt-foot{margin:10px 0 0;padding:12px 0;border-top:1px solid var(--line);color:var(--muted);font-size:.82em;text-align:center}
@media (max-width:1100px){.rri-pt-kpis{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){.rri-pt-grid{grid-template-columns:1fr}.rri-pt-side{position:static}}
@media (max-width:640px){.rri-pt-hero-in{flex-direction:column;align-items:flex-start;padding:22px 18px}.rri-pt-hero h1{font-size:1.7em}.rri-pt-logo{height:60px}.rri-pt-jump{padding:6px 12px}.rri-pt-kpis{grid-template-columns:repeat(2,1fr)}.rri-pt-news{grid-template-columns:1fr}.rri-pt-newsi.is-lead{flex-direction:column}.rri-pt-newsi.is-lead .rri-pt-thumb{width:auto;min-height:0;aspect-ratio:16/9}}
.rri-pt-thumb.is-none{aspect-ratio:16/5}.rri-pt-newsi.is-lead .rri-pt-thumb.is-none{width:28%;min-height:120px}
.rri-pt-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 12px}
.rri-pt-tab{font:inherit!important;font-size:.92em!important;background:#fff!important;color:var(--navy)!important;border:1px solid var(--line)!important;border-radius:999px!important;padding:6px 14px!important;cursor:pointer;line-height:1.3!important;text-transform:none!important;letter-spacing:0!important;box-shadow:none!important}
.rri-pt-tab em{font-style:normal;background:var(--sky);color:var(--blue);border-radius:999px;padding:0 7px;font-size:.82em;margin-left:2px}
.rri-pt-tab.is-on{background:var(--navy)!important;color:#fff!important;border-color:var(--navy)!important}.rri-pt-tab.is-on em{background:rgba(255,255,255,.2);color:#fff}
.rri-pt-tabwrap.js .rri-pt-pane{display:none}.rri-pt-tabwrap.js .rri-pt-pane.is-on{display:block}
.rri-pt-tabwrap:not(.js) .rri-pt-pane{margin-bottom:14px}
.rri-pt-hl{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:10px}
.rri-pt-hl li{padding:10px 14px;border-bottom:1px solid var(--soft);display:flex;flex-direction:column;gap:2px}.rri-pt-hl li:last-child{border-bottom:0}
.rri-pt-hl a,.rri-pt-hl a:visited{color:var(--ink)!important;font-weight:600;line-height:1.4}.rri-pt-hl a:hover{color:var(--blue)!important}
.rri-pt-hl span{color:var(--muted);font-size:.82em}
.rri-pt-src{color:var(--muted);font-size:.8em;margin:8px 0 0}
.rri-pt-funders{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.rri-pt-funder{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column}
.rri-pt-funder-h{display:flex;gap:12px;align-items:flex-start;margin-bottom:8px}
.rri-pt-funder-h b{display:block;color:var(--navy);line-height:1.35}.rri-pt-funder-h small{display:block;color:var(--muted);font-size:.84em;line-height:1.45;margin-top:2px}
.rri-pt-badge{flex:none;min-width:58px;height:58px;padding:0 6px;border-radius:12px;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.05em}
.rri-pt-funder ul{list-style:none;margin:4px 0 0;padding:0;border-top:1px solid var(--soft)}
.rri-pt-funder li{padding:6px 0;border-bottom:1px solid var(--soft);display:flex;flex-direction:column;font-size:.92em}
.rri-pt-funder li a,.rri-pt-funder li a:visited{color:var(--ink)!important;line-height:1.4}.rri-pt-funder li a:hover{color:var(--blue)!important}
.rri-pt-funder time{font-size:.8em;color:var(--muted)}
.rri-pt-funder .rri-pt-more{margin-top:auto;padding-top:8px}
.rri-pt-ext .rri-pt-hl{border:0;border-radius:0}.rri-pt-ext .rri-pt-hl li{padding:8px 0}.rri-pt-ext .rri-pt-hl a{font-weight:500;font-size:.94em}
.rri-pt-ovk{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:0 0 12px}
.rri-pt-ovk div{background:#fff;padding:12px 14px;display:flex;flex-direction:column}
.rri-pt-ovk b{font-size:1.6em;color:var(--navy);line-height:1.2;font-variant-numeric:tabular-nums}.rri-pt-ovk span{font-size:.84em;color:var(--muted)}
.rri-pt-ovk div:first-child{background:var(--navy)}.rri-pt-ovk div:first-child b,.rri-pt-ovk div:first-child span{color:#fff}
.rri-pt-pipe{display:flex;list-style:none;margin:0;padding:0;counter-reset:s}
.rri-pt-pipe li{flex:1;position:relative;text-align:center;padding:8px 4px;background:var(--soft);color:var(--muted);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%);margin-right:-6px}
.rri-pt-pipe li:first-child{clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%)}
.rri-pt-pipe li.is-on{background:var(--sky);color:var(--navy)}.rri-pt-pipe li b{display:block;font-size:1.3em}.rri-pt-pipe li span{font-size:.82em}
.rri-pt-ov2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-top:12px}
.rri-pt-hbars{list-style:none;margin:0;padding:0}
.rri-pt-hbars li{display:grid;grid-template-columns:minmax(0,11em) 1fr max-content;gap:8px;align-items:center;padding:4px 0;font-size:.9em}
.rri-pt-hbars .l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rri-pt-hbars .b{background:var(--soft);border-radius:4px;height:12px;overflow:hidden}.rri-pt-hbars .b i{display:block;height:100%;background:var(--blue);border-radius:4px}.rri-pt-hbars .v{color:var(--muted);font-size:.9em;font-variant-numeric:tabular-nums}
.rri-pt-sub{margin:16px 0 8px;font-size:1.05em;color:var(--navy)!important;font-family:inherit!important}
.rri-pt-hint{background:#fff8e6;border:1px solid #f0d58a;border-radius:10px;padding:10px 14px;margin-top:10px;font-size:.9em}.rri-pt-hint ul{margin:4px 0 0;padding-left:1.2em}.rri-pt-hint a{color:var(--blue)!important;font-weight:600}
@media (max-width:860px){.rri-pt-ovk{grid-template-columns:repeat(2,1fr)}.rri-pt-pipe{flex-wrap:wrap}.rri-pt-hbars li{grid-template-columns:minmax(0,8em) 1fr max-content}}
/* v1.6 — หน้าแยกตามเมนู / เข้าสู่ระบบหน้าเว็บ */
.rri-pt-hero-in{justify-content:space-between;flex-wrap:wrap}.rri-pt-hero-t{flex:1;min-width:260px}
.rri-pt-hero.is-small .rri-pt-hero-in{padding:18px 28px}.rri-pt-hero.is-small h1{font-size:1.6em;margin:0}.rri-pt-hero.is-small .rri-pt-logo{height:56px}
.rri-pt-jump a.is-on{background:#fff;color:var(--navy)!important;opacity:1;font-weight:700}
a.rri-pt-tab{display:inline-block;text-decoration:none!important}
.rri-pt-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.rri-pt-morelink,.rri-pt-morelink:visited{font-size:.9em;font-weight:600;color:var(--blue)!important;white-space:nowrap}.rri-pt-morelink:hover{color:var(--navy)!important}
.rri-pt-crow{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:12px}
.rri-pt-crow li{display:flex;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--soft);flex-wrap:wrap}.rri-pt-crow li:last-child{border-bottom:0}
.rri-pt-crow .t{flex:1;min-width:200px;display:flex;flex-direction:column}.rri-pt-crow .t b{color:var(--navy);line-height:1.4}.rri-pt-crow .t small{color:var(--muted)}
.rri-pt-crow .a{display:flex;gap:6px}.rri-pt-crow .rri-pt-b{padding:6px 12px;font-size:.86em}
.rri-pt-two .rri-pt-ovk{grid-template-columns:repeat(2,minmax(0,1fr))}.rri-pt-two .rri-pt-ovk div:last-child{grid-column:1/-1}
.rri-pt-pipe{margin-top:4px}
.rri-pt-nl{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:12px}
.rri-pt-nl li{border-bottom:1px solid var(--soft)}.rri-pt-nl li:last-child{border-bottom:0}
.rri-pt-nl a{display:flex;gap:12px;padding:10px 12px;color:var(--ink)!important;align-items:center}.rri-pt-nl a:hover b{color:var(--blue)}
.rri-pt-nlimg{flex:none;width:96px;height:64px;border-radius:8px;background:#dfe7f1 center/cover no-repeat}.rri-pt-nlimg.is-none{background:linear-gradient(135deg,var(--sky),#d3e0f0)}
.rri-pt-nlt{display:flex;flex-direction:column;min-width:0}.rri-pt-nlt b{color:var(--navy);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:600}.rri-pt-nlt time{color:var(--muted);font-size:.82em}
.rri-pt-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.rri-pt-chip{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 12px;color:var(--ink)!important;line-height:1.35;font-size:.92em}.rri-pt-chip:hover{border-color:var(--blue);box-shadow:0 4px 12px rgba(11,42,74,.08)}
.rri-pt-chip .rri-pt-badge{min-width:46px;height:46px;font-size:.9em;border-radius:10px}
.rri-pt-qlinks{display:flex;gap:8px 16px;flex-wrap:wrap;align-items:center;background:var(--soft);border-radius:12px;padding:12px 16px;margin:0 0 18px}
.rri-pt-qlinks b{color:var(--navy)}.rri-pt-qlinks a,.rri-pt-qlinks a:visited{color:var(--blue)!important}.rri-pt-qlinks a:hover{text-decoration:underline!important}
.rri-pt-hint li{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}.rri-pt-hint li span{flex:1;min-width:240px}.rri-pt-hint .rri-pt-b{padding:5px 12px;font-size:.86em;border:0}
.rri-pt-login{max-width:440px;margin:10px auto 30px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px 26px;box-shadow:0 8px 24px rgba(11,42,74,.08)}
.rri-pt-login h2{margin:0 0 4px;color:var(--navy)!important;font-size:1.35em;font-family:inherit!important}
.rri-pt-login form{display:flex;flex-direction:column;gap:12px;margin:14px 0 8px}
.rri-pt-login label{display:flex;flex-direction:column;gap:4px;font-weight:600;color:var(--navy);font-size:.95em}
.rri-pt-login input[type=text],.rri-pt-login input[type=password]{width:100%;padding:10px 12px!important;border:1px solid var(--line)!important;border-radius:8px!important;font:inherit!important;background:#fff!important;color:var(--ink)!important;margin:0!important}
.rri-pt-login input:focus{outline:2px solid var(--blue);outline-offset:1px}
.rri-pt-pw{display:flex;gap:6px}.rri-pt-pw button{font:inherit!important;font-size:.85em!important;background:var(--soft)!important;color:var(--navy)!important;border:1px solid var(--line)!important;border-radius:8px!important;padding:0 12px!important;cursor:pointer}
.rri-pt-login .rri-pt-chk{flex-direction:row;align-items:center;gap:8px;font-weight:400;color:var(--ink)}
.rri-pt-submit{justify-content:center;width:100%;padding:11px!important;font-size:1em!important;border:0!important;cursor:pointer}
.rri-pt-login a{color:var(--blue)!important}
.rri-pt-err{background:#fdecea;color:var(--bad);border:1px solid #f5c2bd;border-radius:8px;padding:8px 12px;margin-top:10px}
.rri-pt-back{margin:0 0 8px}
@media (max-width:860px){.rri-pt-two{grid-template-columns:1fr}.rri-pt-acts{width:100%}}
.rri-pt-pipe li:last-child{margin-right:0}.rri-pt-pipe{padding-right:0;overflow:hidden;border-radius:8px}
.rri-pt-admin,.rri-pt-admin:visited{align-self:center;font-size:.85em;color:#fff!important;opacity:.8;text-decoration:underline!important;margin-left:6px}.rri-pt-back .rri-pt-admin,.rri-pt-back .rri-pt-admin:visited{color:var(--blue)!important}
.rri-todo{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;margin:0 0 6px;color:var(--ink)!important;text-decoration:none!important;background:#fff}.rri-todo:hover{border-color:var(--blue);background:var(--sky)}.rri-todo b{color:var(--blue);white-space:nowrap}
.rri-quick{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.rri-quick a{display:inline-block;padding:6px 12px;border:1px solid var(--blue);border-radius:999px;color:var(--blue)!important;text-decoration:none!important;font-size:.92em}.rri-quick a:hover{background:var(--sky)}
.rri-quick.big{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.rri-quick.big a{border-radius:10px;border-color:var(--line);padding:10px 12px;display:flex;flex-direction:column;gap:2px;background:#fff}.rri-quick.big a b{color:var(--navy)}.rri-quick.big a span{color:var(--muted);font-size:.86em}.rri-quick.big a:hover{border-color:var(--blue);background:var(--sky)}
.rri-alert a{margin-right:10px}
details.rri-alert summary{cursor:pointer}
.rri-thdate{color:var(--blue);font-size:.85em;margin-top:2px}
.rri-act-main{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--soft,#f4f7fb)}.rri-act-main>div:first-child{flex:1;min-width:240px}.rri-act-main p{margin:2px 0 0;font-size:.9em}
.rri-acts{border-left:4px solid var(--ok)}
/* v1.7 — หน้าเข้าสู่ระบบแบบระบบวิจัย / ทะเบียนโครงการ / แดชบอร์ดงบประมาณ / EdPEx */
.rri-pt-auth{max-width:1100px}
.rri-pt-authbar{display:flex;align-items:center;gap:14px;padding:14px 4px 16px;border-bottom:1px solid var(--line);margin-bottom:26px}
.rri-pt-authbar img{height:64px;width:auto}
.rri-pt-authbar div{flex:1;display:flex;flex-direction:column;line-height:1.3}
.rri-pt-authbar b{font-size:1.45em;color:var(--navy)}.rri-pt-authbar span{display:inline-block;align-self:flex-start;background:var(--navy);color:#fff;padding:2px 10px;margin-top:4px;font-size:.9em;letter-spacing:.02em}
.rri-pt-authbar a,.rri-pt-authbar a:visited{color:var(--blue)!important;font-size:.9em;white-space:nowrap}
.rri-pt-auth .rri-pt-login{max-width:480px;border:0;box-shadow:none;background:transparent;text-align:left;padding:0 10px}
.rri-pt-uicon{display:block;width:64px;height:64px;margin:0 auto 4px}
.rri-pt-auth .rri-pt-login h2{text-align:center;font-size:1.3em;margin:0 0 12px}
.rri-pt-mode{border:0;margin:0 0 4px;padding:0}.rri-pt-mode legend{font-weight:400;color:var(--ink);margin-bottom:8px;padding:0}
.rri-pt-login .rri-pt-mode label{flex-direction:row;align-items:center;gap:10px;font-weight:400;color:var(--ink);margin:4px 0 4px 6px}
.rri-pt-mode input[type=radio]{width:20px;height:20px;accent-color:var(--navy)}
.rri-pt-login label{font-weight:400!important;color:var(--ink)!important}
.rri-pt-login input[type=email],.rri-pt-login select{width:100%;padding:10px 12px!important;border:1px solid var(--line)!important;border-radius:8px!important;font:inherit!important;background:#fff!important;color:var(--ink)!important;margin:0!important}
.rri-pt-btns{display:flex;justify-content:center;gap:8px;margin-top:8px}
.rri-pt-submit,.rri-pt-submit:visited{background:var(--navy)!important;color:#fff!important;border:0!important;border-radius:6px!important;padding:10px 26px!important;font:inherit!important;font-weight:600!important;cursor:pointer;width:auto!important;display:inline-block;text-decoration:none!important}.rri-pt-submit:hover{background:var(--blue)!important}
.rri-pt-links{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;margin:22px 0 0;font-size:.92em}.rri-pt-links a,.rri-pt-links a:visited{color:var(--ink)!important}.rri-pt-links a:hover{color:var(--blue)!important;text-decoration:underline!important}
.rri-pt-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rri-pt-hp{position:absolute!important;left:-9999px!important}
.rri-pt-filter{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 14px}
.rri-pt-filter h3{margin:0 0 10px;font-size:1em;color:var(--navy)!important;font-family:inherit!important}
.rri-pt-fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.rri-pt-filter label{display:flex;flex-direction:column;gap:3px;font-size:.88em;color:var(--muted)}
.rri-pt-filter select,.rri-pt-filter input[type=text]{padding:8px 10px!important;border:1px solid var(--line)!important;border-radius:8px!important;font:inherit!important;font-size:.95em!important;background:#fff!important;color:var(--ink)!important;margin:0!important;width:100%}
.rri-pt-fbtn{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.rri-pt-fbtn .rri-pt-b{border:1px solid var(--blue)}
.rri-pt-filter.is-inline{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;background:var(--sky);border:0}.rri-pt-filter.is-inline select{width:auto;min-width:200px}.rri-pt-filter.is-inline label{flex:1;min-width:220px}
.rri-pt-filter .rri-pt-b1{background:var(--navy)!important;color:#fff!important;border:0}
.rri-pt-count{color:var(--muted);margin:0 0 8px}
.rri-pt-tablewrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px}
.rri-pt-table{width:100%;border-collapse:collapse;font-size:.93em}
.rri-pt-table th{background:var(--navy);color:#fff;text-align:left;padding:9px 10px;font-weight:600;white-space:nowrap}
.rri-pt-table td{padding:9px 10px;border-bottom:1px solid var(--soft);vertical-align:top}.rri-pt-table tr:nth-child(even) td{background:#fafcfe}
.rri-pt-table td small{display:block;color:var(--muted);font-size:.85em}.rri-pt-table td.n{text-align:center;white-space:nowrap}
.rri-pt-table a,.rri-pt-table a:visited{color:var(--blue)!important}
.rri-pt-pager{display:flex;gap:4px;flex-wrap:wrap;margin:12px 0}.rri-pt-pager a,.rri-pt-pager span{padding:4px 11px;border-radius:6px;border:1px solid var(--line);color:var(--blue)!important}.rri-pt-pager span{background:var(--navy);color:#fff!important;border-color:var(--navy)}
.rri-pt-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.rri-pt-person{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;color:var(--ink)!important}.rri-pt-person:hover{border-color:var(--blue);box-shadow:0 4px 12px rgba(11,42,74,.08)}
.rri-pt-person b{display:block;color:var(--navy)}.rri-pt-person small{display:block;color:var(--muted);font-size:.84em}
.rri-pt-av{flex:none;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--navy));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2em}
.rri-pt-donutwrap{display:grid;grid-template-columns:minmax(0,240px) 1fr;gap:16px;align-items:center}
.rri-pt-donut{width:100%;height:auto}.rri-pt-donut .t1{font-size:11px;fill:#5b6b80;font-family:inherit}.rri-pt-donut .t2{font-size:19px;font-weight:700;fill:#0b2a4a;font-family:inherit}
.rri-pt-legend2{list-style:none;margin:0;padding:0}.rri-pt-legend2 li{display:flex;gap:8px;align-items:center;padding:5px 0;border-bottom:1px solid var(--soft);font-size:.9em}
.rri-pt-legend2 i{flex:none;width:12px;height:12px;border-radius:3px}.rri-pt-legend2 span{flex:1;min-width:0}.rri-pt-legend2 small{display:block;color:var(--muted);font-size:.84em}.rri-pt-legend2 b{color:var(--navy);font-variant-numeric:tabular-nums}
.rri-pt-vbars{width:100%;height:auto}.rri-pt-vbars .g{stroke:#e8edf3}.rri-pt-vbars .ax{stroke:#9aa7b8}.rri-pt-vbars .v{font-size:11px;fill:#0b2a4a;font-weight:600;font-family:inherit}.rri-pt-vbars .l{font-size:11px;fill:#33475e;font-family:inherit}
.rri-pt-kpi.is-navy{background:var(--navy);border-left-color:var(--gold)}.rri-pt-kpi.is-navy b,.rri-pt-kpi.is-navy span,.rri-pt-kpi.is-navy small{color:#fff}.rri-pt-kpi.is-ok{border-left-color:var(--ok)}
.rri-pt-outk{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 6px}
.rri-pt-outk div{background:var(--sky);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column}.rri-pt-outk b{font-size:1.6em;color:var(--navy);line-height:1.2}.rri-pt-outk span{color:var(--muted);font-size:.88em}.rri-pt-outk a{font-size:.85em;color:var(--blue)!important;font-weight:600;margin-top:2px}
.rri-letci{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.rri-letci-i{background:var(--sky);border-radius:8px;padding:10px}.rri-letci-i b{font-size:1.3em;color:var(--navy);margin-right:6px}.rri-letci-i span{font-size:.88em}.rri-letci-i small{color:var(--muted)}
.rri-meter{height:8px;background:#fff;border-radius:4px;overflow:hidden;margin:6px 0 2px}.rri-meter i{display:block;height:100%;background:var(--blue)}
.rri-kpi th.n,.rri-kpi td.n{text-align:right;white-space:nowrap}.rri-kpi td.hit{background:#e6f5ec!important}.rri-kpi td.miss{background:#fdecea!important}
.rri-kpi-cat td{background:var(--navy)!important;color:#fff;font-weight:600}
.rri-tr{padding:2px 8px;border-radius:999px;font-size:.85em;white-space:nowrap}.rri-tr.ok{background:#e3f4ea;color:#1d7a46}.rri-tr.bad{background:#fdecea;color:#b3261e}.rri-tr.mid{background:#eef0f3;color:#5b6b80}.rri-tr.na{color:#8a96a8}
.rri-lt{display:inline-block;min-width:24px;text-align:center;margin:1px;padding:1px 4px;border-radius:4px;font-size:.78em;background:#eef0f3;color:#9aa5b5}.rri-lt.on{background:var(--navy);color:#fff}
@media (max-width:860px){.rri-pt-donutwrap{grid-template-columns:1fr}.rri-pt-outk{grid-template-columns:repeat(2,1fr)}.rri-letci{grid-template-columns:repeat(2,1fr)}.rri-pt-2col{grid-template-columns:1fr}}
