.portal-home { --portal-teal:#13667a; --portal-border:#e1e8e4; --portal-paper:#f5f7f6; background:#fff !important; font-size:15px; letter-spacing:0; }
.portal-home main { background:#fff !important; }
.portal-home h1, .portal-home h2, .portal-home h3, .portal-home p { letter-spacing:0; }
.portal-home img { max-width:100%; }
.portal-home [id] { scroll-margin-top:136px; }
.portal-home svg { width:20px; height:20px; flex:0 0 auto; stroke-width:1.8; }
.portal-home a { text-decoration:none; }
.portal-home a:focus-visible, .portal-home button:focus-visible, .portal-home input:focus-visible { outline:3px solid #d6a83d; outline-offset:4px; }
.portal-home button, .portal-home input { font:inherit; }
.portal-home [hidden] { display:none !important; }
.portal-home .container { width:min(1180px, calc(100% - 40px)); }
.portal-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; clip:rect(0,0,0,0); overflow:hidden; white-space:nowrap; border:0; }
.portal-skip { position:fixed; top:8px; left:12px; z-index:150; transform:translateY(-200%); padding:10px 16px; background:white; color:#155a3a; }
.portal-skip:focus { transform:translateY(0); }
.portal-header { position:sticky; top:0; z-index:100; background:#113f31; border-bottom:1px solid #bd9d53; box-shadow:0 2px 8px #092d2214; }
.portal-header__inner { min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.portal-brand { display:flex; align-items:center; min-width:0; gap:10px; color:#f6fbf8; }
.portal-brand img { width:36px; height:42px; object-fit:contain; flex:0 0 36px; padding:0; border-radius:0; background:transparent; }
.portal-brand strong { display:block; font-size:15px; line-height:1.3; font-weight:750; }
.portal-brand small { display:block; margin-top:2px; color:#c0d6ca; font-size:12px; line-height:1.3; }
.portal-header__tools { display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.portal-search { display:flex; align-items:center; width:256px; min-height:38px; border:1px solid #507363; border-radius:6px; background:#254f3f; }
.portal-search input { width:100%; min-width:0; border:0; outline:0; background:transparent; padding:8px 0 8px 13px; color:#fff; font-size:13px; }
.portal-search input::placeholder { color:#c8d9cf; opacity:1; }
.portal-search:focus-within { border-color:#e4c477; }
.portal-icon-button { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; flex:0 0 40px; padding:0; border:0; border-radius:6px; background:transparent; color:#285b42; cursor:pointer; }
.portal-icon-button:hover { background:#edf4ef; }
.portal-search .portal-icon-button { width:38px; height:36px; flex-basis:38px; }
.portal-header .portal-icon-button { color:#e4eee7; }
.portal-header .portal-icon-button:hover { color:#fff; background:#39634f; }
.portal-header .portal-menu-toggle { background:#285542; border:1px solid #527461; }
.portal-admin { min-height:38px; display:inline-flex; align-items:center; gap:8px; padding:0 12px; border:1px solid #e4c477; border-radius:6px; background:#e4c477; color:#183d2b; font-size:13px; font-weight:750; }
.portal-admin:hover { background:#f1d594; border-color:#f1d594; }
.portal-admin svg { width:16px; height:16px; }
.portal-search-toggle, .portal-menu-toggle { display:none; }
.portal-masthead { position:relative; color:#fff; background:#1b5140 url("kantor-desa-banyubulu.jpg") center 48% / cover no-repeat; }
.portal-masthead::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,50,34,.88) 0%,rgba(8,50,34,.66) 40%,rgba(8,50,34,.12) 78%); }
.portal-masthead__inner { min-height:256px; position:relative; display:flex; align-items:center; gap:24px; padding:36px 0; }
.portal-masthead__logo { width:82px; height:94px; object-fit:contain; flex:0 0 82px; filter:drop-shadow(0 3px 4px rgba(0,0,0,.15)); }
.portal-masthead__identity { min-width:0; }
.portal-masthead__identity p { margin:0 0 7px; font-size:11px; font-weight:650; color:#e0eee5; }
.portal-masthead h1 { margin:0 0 9px; font-size:38px; line-height:1.14; font-weight:800; }
.portal-masthead__identity > span { display:block; font-size:15px; line-height:1.6; color:#f1f7f3; }
.portal-masthead__date { display:grid; justify-items:start; gap:5px; margin-left:auto; padding:14px 16px; border-left:2px solid #d6b56a; color:white; text-shadow:0 1px 4px #133a2b; }
.portal-masthead__date svg { margin-bottom:2px; width:24px; height:24px; }
.portal-masthead__date span { font-size:15px; font-weight:700; }
.portal-masthead__date small { font-size:12px; color:#f0f6f1; }
.portal-navigation { position:sticky; top:66px; z-index:90; background:#155a3a; color:white; }
.portal-navigation__inner { display:flex; align-items:stretch; min-height:50px; gap:3px; }
.portal-navigation a { display:flex; align-items:center; justify-content:center; gap:8px; padding:12px 19px; color:#eff7f0; font-size:13px; font-weight:650; white-space:nowrap; }
.portal-navigation a:hover, .portal-navigation a.is-current { background:#26764f; color:#fff; }
.portal-navigation a.is-current { box-shadow:inset 0 -3px 0 #e5bf59; }
.portal-navigation a svg { width:17px; height:17px; }
.portal-navigation li { position:relative; list-style:none; }
.portal-navigation .sub-menu { display:none; position:absolute; top:100%; left:0; min-width:210px; background:#155a3a; padding:6px; }
.portal-navigation li:hover > .sub-menu, .portal-navigation li:focus-within > .sub-menu { display:grid; }
.portal-navigation .sub-menu a { justify-content:flex-start; }
.portal-navigation a[href="#layanan"], .portal-navigation a[href$="/#layanan"] { display:none; }
.portal-info { background:#f0f4f2; border-bottom:1px solid #e4ebe6; }
.portal-info__inner { min-height:50px; display:flex; align-items:center; gap:16px; }
.portal-info__label { align-self:stretch; display:flex; align-items:center; gap:8px; flex:0 0 auto; color:#155a3a; font-size:12px; font-weight:800; border-right:1px solid #d9e4dc; padding-right:18px; }
.portal-info__label svg { width:17px; height:17px; }
.portal-info p { margin:0; font-size:12px; line-height:1.6; color:#53675b; }
.portal-info__ticker { min-width:0; flex:1 1 0; overflow:hidden; }
.portal-info .portal-info__text { display:block; box-sizing:content-box; width:max-content; padding:0 0 0 100%; white-space:nowrap; font-size:12px; animation:portal-info-scroll var(--info-duration, 30s) linear infinite; }
.portal-info.is-paused .portal-info__text, .portal-info__ticker:focus .portal-info__text { animation-play-state:paused; }
.portal-info__pause { width:36px; height:44px; flex:0 0 36px; }
.portal-info__pause svg { width:16px; height:16px; }
@keyframes portal-info-scroll {
    from { transform:translateX(0); }
    to { transform:translateX(-100%); }
}
@media (hover:hover) {
    .portal-info__ticker:hover .portal-info__text { animation-play-state:paused; }
}
.portal-info a { display:flex; margin-left:auto; color:#155a3a; }
.portal-welcome { padding:30px 0; background:#fff; border-bottom:1px solid var(--portal-border); }
.portal-welcome__grid { display:grid; grid-template-columns:168px minmax(0,1fr); align-items:center; gap:34px; }
.portal-welcome__portrait { margin:0; }
.portal-welcome__portrait img { display:block; width:100%; aspect-ratio:4/5; height:auto; object-fit:cover; object-position:center top; border-radius:6px; background:#eef3ef; }
.portal-welcome__portrait figcaption { margin-top:9px; color:#31523d; text-align:center; font-size:12px; font-weight:700; line-height:1.5; overflow-wrap:anywhere; }
.portal-welcome__copy { min-width:0; }
.portal-welcome__copy h2 { max-width:710px; margin:7px 0 14px; color:#214a32; font-size:27px; line-height:1.3; }
.portal-welcome__copy p { max-width:850px; margin:0 0 10px; color:#67766b; font-size:14px; line-height:1.8; }
.portal-welcome__copy p:last-child { margin-bottom:0; }
.portal-access { padding:26px 0 12px; background:#fff; }
.portal-access__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.portal-access__item { display:flex; align-items:center; gap:12px; min-width:0; min-height:83px; padding:13px; background:#fff; border:1px solid #dfe7e1; border-radius:6px; color:#193a29; transition:border-color .16s, background .16s; }
.portal-access__item:hover { background:#f6faf7; border-color:#7fa88f; }
.portal-access__icon { display:grid; place-items:center; width:45px; height:45px; flex:0 0 45px; border-radius:6px; background:#ebf4ed; color:#278151; }
.portal-access__icon svg { width:25px; height:25px; }
.portal-access__icon--blue { background:#edf3f9; color:#357298; }
.portal-access__icon--violet { background:#f2eff7; color:#7a669a; }
.portal-access__icon--amber { background:#fbf4e6; color:#a37b28; }
.portal-access__icon--rose { background:#f9eef0; color:#a45870; }
.portal-access__item > span:nth-child(2) { min-width:0; }
.portal-access__item strong { display:block; font-size:14px; font-weight:750; line-height:1.35; overflow-wrap:anywhere; }
.portal-access__item small { display:block; margin-top:3px; font-size:11px; color:#748077; line-height:1.4; }
.portal-access__item .portal-access__arrow { width:14px; height:14px; margin-left:auto; color:#9daaa1; }
.portal-section { padding:38px 0; background:#fff; }
.portal-section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 0 13px; margin-bottom:22px; border-bottom:1px solid var(--portal-border); position:relative; }
.portal-section-heading::after { content:""; position:absolute; bottom:-1px; left:0; width:48px; height:3px; background:#bc9232; }
.portal-section-heading h2 { display:flex; align-items:center; gap:10px; min-width:0; margin:0; font-size:23px; color:#193d2a; line-height:1.3; font-weight:750; }
.portal-section-heading h2 svg { width:21px; height:21px; color:#42795b; }
.portal-section-heading > span { color:#7a877e; font-size:12px; }
.portal-section-lead { margin:-8px 0 22px; color:#68766d; font-size:14px; }
.portal-news-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:30px; align-items:start; }
.portal-news-main { min-width:0; }
.portal-news-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.portal-news-card { overflow:hidden; border:1px solid #e1e8e3; border-radius:6px; background:#fff; min-width:0; display:flex; flex-direction:column; }
.portal-news-card__image { display:block; aspect-ratio:16/9; overflow:hidden; background:#f0f4f1; }
.portal-news-card__image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s; }
.portal-news-card:hover .portal-news-card__image img { transform:scale(1.025); }
.portal-news-card__body { padding:18px; display:flex; flex-direction:column; flex:1; }
.portal-category { display:block; margin-bottom:9px; color:#38734e; font-size:10px; font-weight:800; text-transform:uppercase; }
.portal-news-card h3 { margin:0 0 10px; font-size:19px; line-height:1.4; color:#23372b; font-weight:750; }
.portal-news-card h3 a:hover { color:#247446; }
.portal-news-card p { margin:0 0 18px; color:#6c786f; font-size:13px; line-height:1.75; }
.portal-read-more { display:inline-flex; align-items:center; align-self:flex-start; gap:10px; margin-top:auto; color:#28734a; font-size:12px; font-weight:750; }
.portal-read-more svg { width:15px; height:15px; }
.portal-search-status { margin:0 0 18px; font-size:14px; color:#41604b; padding:10px 0; }
.portal-sidebar { min-width:0; }
.portal-sidebar .portal-section-heading h2 { font-size:20px; }
.portal-sidebar .desa-list { display:block; }
.portal-sidebar .desa-item { border:0; border-bottom:1px solid #e1e8e3; border-radius:0; padding:0 0 18px; margin-bottom:18px; }
.portal-sidebar .desa-item__source { display:none; }
.portal-sidebar .desa-item h3 { font-size:16px; }
.portal-sidebar .desa-item p { font-size:13px; line-height:1.7; }
.portal-empty { padding:12px 0 24px; color:#6b796f; }
.portal-empty > svg { width:28px; height:28px; color:#8fa798; margin-bottom:10px; }
.portal-empty strong { display:block; font-size:14px; font-weight:650; color:#53695a; }
.portal-empty p { margin:7px 0 0; font-size:12px; line-height:1.7; }
.portal-sidebar-contact { padding:22px 0 0; border-top:1px solid #dfe7e1; }
.portal-sidebar-contact > span { color:#8b763b; font-size:11px; font-weight:650; }
.portal-sidebar-contact h3 { margin:7px 0 10px; font-size:20px; color:#294a36; }
.portal-sidebar-contact p { margin:0 0 14px; font-size:13px; color:#6c786f; line-height:1.75; }
.portal-sidebar-contact a { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; color:#2d724c; }
.portal-sidebar-contact a svg { width:15px; height:15px; }
.portal-population { background:#f0f5f2; border-block:1px solid #e2ebe5; }
.portal-home .desa-stat-grid { gap:16px; }
.portal-home .desa-stat-card { padding:22px; box-shadow:none; }
.portal-home .desa-stat-card strong { margin-top:19px; font-size:36px; }
.portal-profile__grid { display:grid; grid-template-columns:1fr 1fr; gap:38px; align-items:center; }
.portal-profile figure { margin:0; }
.portal-profile figure img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:6px; }
.portal-profile figcaption { margin-top:8px; color:#7c877f; font-size:11px; }
.portal-kicker { font-size:11px; font-weight:800; color:#8c742d; text-transform:uppercase; }
.portal-profile h2 { margin:7px 0 15px; color:#214a32; font-size:28px; line-height:1.3; }
.portal-profile p { margin:0 0 12px; color:#67766b; font-size:14px; line-height:1.8; }
.portal-profile__details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:21px 0 0; padding-top:16px; border-top:1px solid #e1e8e3; }
.portal-profile__details dt { font-size:11px; color:#7d8981; }
.portal-profile__details dd { font-size:13px; font-weight:700; color:#33503e; margin:4px 0 0; }
.portal-profile-page { padding:24px 0 52px; }
.profile-breadcrumb { display:flex; align-items:center; gap:8px; font-size:12px; color:#6b7b70; }
.profile-breadcrumb svg { width:14px; height:14px; }
.profile-breadcrumb a { color:#155a3a; }
.profile-page-heading { margin:26px 0 22px; }
.profile-page-heading h1 { margin:7px 0 10px; color:#214a32; font-size:32px; line-height:1.25; }
.profile-page-heading p { color:#67766b; font-size:14px; margin:0; }
.profile-section-links { display:flex; gap:24px; flex-wrap:wrap; padding:13px 0; border-block:1px solid #dfe7e2; margin-bottom:30px; font-size:14px; font-weight:700; color:#215b3c; }
.profile-section-links a:hover { color:#936b14; }
.portal-profile-page .portal-profile__grid { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
.portal-profile-page .portal-profile__grid > * { min-width:0; }
.portal-profile-page .portal-profile figure img { height:auto; aspect-ratio:1832/859; }
.profile-structure { margin-top:46px; border-top:1px solid #e1e8e4; padding-top:30px; }
.profile-structure .org-board { box-shadow:none; }
.profile-structure .org-layout, .profile-structure .org-column, .profile-structure .org-person { min-width:0; }
.profile-structure .org-person strong, .profile-structure .org-person span { overflow-wrap:anywhere; }
.profile-structure-empty { padding:28px 0; color:#6b7b70; }
.profile-structure-empty > svg { color:#44775b; margin-bottom:12px; }
.profile-structure-empty h3 { margin:0 0 6px; color:#214a32; font-size:18px; }
.profile-structure-empty p { margin:0; font-size:14px; }
.profile-copy { white-space:pre-line; overflow-wrap:anywhere; }
.profile-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:30px 0 0; padding:22px 0; border-block:1px solid #dfe7e2; background:#eef5f1; }
.profile-facts > div { min-width:0; padding:0 24px; border-right:1px solid #d6e4db; }
.profile-facts > div:last-child { border:0; }
.profile-facts dt { display:flex; gap:8px; align-items:center; color:#597163; font-size:13px; }
.profile-facts dt svg { width:17px; height:17px; flex-shrink:0; }
.profile-facts dd { margin:10px 0 0; font-size:24px; font-weight:800; color:#16513b; line-height:1.4; overflow-wrap:anywhere; }
.profile-facts dd small { font-size:13px; font-weight:500; }
.profile-facts > div > span { display:block; margin-top:4px; font-size:12px; color:#65776c; }
.profile-detail-section { padding-top:36px; scroll-margin-top:100px; }
.profile-detail-section h3 { margin:0 0 15px; font-size:18px; color:#214a32; }
.profile-vision { background:#15513b; border-left:4px solid #ca9b30; padding:24px 28px; }
.profile-vision h3 { color:#ead89a; font-size:13px; font-weight:700; margin-bottom:12px; }
.profile-vision blockquote { margin:0; color:white; font-size:23px; line-height:1.6; font-weight:700; white-space:pre-line; overflow-wrap:anywhere; }
.profile-vision .profile-empty { color:#d8e7de; }
.profile-purpose-grid, .profile-region-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; margin-top:26px; }
.profile-purpose-grid > section, .profile-region-grid > section { min-width:0; }
.profile-action-list { margin:0; padding:0 0 0 24px; }
.profile-action-list li { padding:0 0 13px 7px; margin-bottom:13px; border-bottom:1px solid #e4ebe6; color:#53685c; font-size:14px; line-height:1.8; overflow-wrap:anywhere; }
.profile-action-list li::marker { color:#94701c; font-weight:700; }
.profile-boundaries { margin:0; }
.profile-boundaries > div { display:grid; grid-template-columns:76px minmax(0,1fr); gap:16px; padding:13px 0; border-bottom:1px solid #e4ebe6; font-size:14px; line-height:1.7; }
.profile-boundaries dt { color:#687c70; }
.profile-boundaries dd { margin:0; font-weight:600; color:#294d3a; overflow-wrap:anywhere; }
.profile-dusun-list { margin:0; padding-left:23px; columns:2; column-gap:24px; }
.profile-dusun-list li { padding:10px 0 10px 4px; font-size:14px; color:#294d3a; line-height:1.8; break-inside:avoid; overflow-wrap:anywhere; }
.profile-empty { color:#748178; font-size:14px; line-height:1.8; margin:0; }
.profile-updated { margin:24px 0 0; color:#748178; font-size:12px; }
.profile-data-status { color:#705b21; background:#fbf6e9; padding:12px; font-size:13px; line-height:1.6; }
@media (max-width:640px) {
    .profile-facts { grid-template-columns:1fr; padding:0 18px; }
    .profile-facts > div { padding:17px 0; border-right:0; border-bottom:1px solid #d6e4db; }
    .profile-facts dd { margin-top:6px; font-size:22px; }
    .profile-purpose-grid, .profile-region-grid { grid-template-columns:1fr; gap:25px; }
    .profile-vision { padding:20px; }
    .profile-vision blockquote { font-size:20px; }
    .profile-detail-section { padding-top:30px; }
    .profile-section-links { gap:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .profile-section-links a { padding:11px 8px 11px 0; line-height:1.5; }
    .profile-detail-section .portal-section-heading { align-items:flex-start; gap:10px; flex-wrap:wrap; }
    .profile-detail-section .portal-section-heading > span { display:block; }
}
@media (max-width:700px) {
    .portal-profile-page { padding-top:20px; }
    .profile-page-heading h1 { font-size:27px; }
    .profile-section-links { gap:18px; font-size:13px; }
    .portal-profile-page .portal-profile__grid { grid-template-columns:1fr; }
    .profile-structure .org-layout { grid-template-columns:1fr; }
    .profile-structure { margin-top:30px; }
}
.portal-officials { background:#f7f9f7; border-top:1px solid #e7ece8; }
.portal-home .desa-carousel__track { gap:16px; scrollbar-width:none; padding:0 0 6px; }
.portal-home .desa-carousel__track::-webkit-scrollbar { display:none; }
.portal-home .official-card { flex-basis:230px; min-height:0; box-shadow:none; padding:14px; gap:14px; }
.portal-home .official-card__avatar { width:100%; height:154px; aspect-ratio:auto; background:#edf3ef; color:#81a38b; border-radius:4px; }
.portal-home .official-card__avatar svg { width:52px; height:52px; stroke-width:1.2; }
.portal-home .official-card h3 { font-size:16px; margin:4px 0 0; }
.portal-home .official-card p { font-size:12px; color:#6f8274; }
.portal-home .official-card__photo { height:210px; aspect-ratio:auto; }
.portal-home .carousel-controls { gap:7px; margin-top:12px; }
.portal-home .carousel-controls button { width:35px; height:35px; display:grid; place-items:center; border-radius:5px; font-size:23px; }
.portal-home .carousel-controls button svg { width:18px; height:18px; }
.portal-home .carousel-controls button:disabled { opacity:.35; cursor:default; background:white; color:#66756d; }
.portal-home .gallery-slider__track { gap:16px; padding:0 0 8px; scrollbar-width:none; }
.portal-home .gallery-slider__track::-webkit-scrollbar { display:none; }
.portal-home .gallery-slide { flex:0 0 calc((100% - 16px) / 2); min-height:0; aspect-ratio:16/10; }
.portal-home .gallery-slide img { width:100%; height:100%; min-height:0; }
.portal-home .gallery-slide figcaption { padding:50px 20px 20px; }
.portal-home .gallery-slide figcaption strong { font-size:20px; line-height:1.3; }
.portal-home .gallery-slide figcaption span { font-size:13px; }
.portal-home #apbdes { background:#f7f9f7; border-top:1px solid #e4ebe6; padding:38px 0; }
.portal-home #apbdes .section-title h2 { font-size:23px; }
.portal-home #apbdes .section-title p { font-size:13px; max-width:440px; }
.portal-home .apbdes-board { box-shadow:none; }
.portal-home .apbdes-board__head { background:#155a3a; padding:22px; }
.portal-home .apbdes-board__head h3 { font-size:25px; }
.portal-home .apbdes-board__head span { font-size:11px; letter-spacing:0; }
.portal-home .apbdes-board__head p { font-size:12px; }
.portal-home .apbdes-summary strong { font-size:18px; }
.portal-home .apbdes-column { padding:18px; }
.portal-home .apbdes-column h4 { font-size:17px; }
.portal-home .apbdes-column li { font-size:12px; }
.portal-home .apbdes-total { font-size:12px; gap:10px; padding:12px; border-radius:4px; }
.budget-publications__toolbar { display:flex; justify-content:space-between; align-items:end; flex-wrap:wrap; gap:16px; margin-bottom:18px; }
.budget-publications__switch { display:flex; border-bottom:2px solid #dfe7e2; gap:8px; }
.budget-publications__switch button { min-height:44px; padding:10px 18px; border:0; border-bottom:3px solid transparent; margin-bottom:-2px; background:transparent; font:inherit; font-size:14px; font-weight:750; color:#56675c; cursor:pointer; }
.budget-publications__switch button[aria-pressed="true"] { border-color:#c99a2e; color:#155a3a; background:#eaf2ed; }
.budget-publications__year { display:grid; gap:5px; font-size:12px; font-weight:700; color:#526358; }
.budget-publications__year select { min-height:42px; min-width:150px; padding:8px 36px 8px 12px; border:1px solid #cddbd2; border-radius:4px; background:#fff; color:#173f2c; font:inherit; font-size:14px; }
.budget-publications [data-budget-panel][hidden] { display:none; }
.budget-publications .apbdes-board__head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px; }
.budget-publications .apbdes-board__head h3 { margin:5px 0; }
.budget-publications .apbdes-board__head p { margin:0; max-width:660px; overflow-wrap:anywhere; }
.budget-document { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:9px 14px; background:#f1cb6d; color:#193c29; border-radius:4px; text-decoration:none; font-size:13px; font-weight:750; flex-shrink:0; }
.budget-document svg { width:17px; height:17px; }
.budget-publications .apbdes-board__head .budget-document-status { padding:7px 10px; border:1px solid #76a18a; border-radius:4px; font-size:12px; text-transform:none; color:#e5f1e9; }
.budget-publications__empty { padding:40px 24px; background:#edf3ef; color:#587060; text-align:center; }
.budget-publications__empty > svg { width:36px; height:36px; margin:0 auto 14px; color:#6b8d79; }
.budget-publications__empty h4 { margin:0 0 7px; font-size:17px; color:#244732; }
.budget-publications__empty p { margin:0; font-size:14px; }
.budget-refresh-status { margin:0 0 12px; color:#6b6040; font-size:12px; }
.budget-publications button:focus-visible, .budget-publications select:focus-visible, .budget-document:focus-visible { outline:3px solid #b68720; outline-offset:3px; }
@media (max-width:600px) {
    .budget-publications__toolbar { align-items:stretch; gap:14px; }
    .budget-publications__switch { width:100%; }
    .budget-publications__switch button { flex:1; padding:10px 8px; font-size:13px; }
    .budget-publications__year { width:100%; }
    .budget-publications .apbdes-board__head { padding:18px; }
    .portal-home .budget-publications .apbdes-board__head h3 { font-size:21px; }
    .budget-publications__empty { padding:30px 18px; }
}
.portal-contact { background:#103e2b; color:#e2ece5; padding:40px 0; }
.portal-contact__grid { display:grid; grid-template-columns:1.4fr 1.2fr .8fr; gap:42px; }
.portal-contact__brand { display:flex; align-items:flex-start; gap:14px; }
.portal-contact__brand > img { width:52px; height:62px; object-fit:contain; flex:0 0 52px; }
.portal-contact h2 { margin:0 0 10px; font-size:19px; font-weight:750; line-height:1.3; color:white; }
.portal-contact p { margin:0; color:#b7cec0; font-size:12px; line-height:1.8; }
.portal-contact h3 { margin:0 0 13px; font-size:13px; color:white; font-weight:750; }
.portal-contact a { display:flex; align-items:center; gap:9px; margin-bottom:11px; color:#c5dacf; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.portal-contact a:hover { color:white; }
.portal-contact a svg { width:15px; height:15px; }
.portal-contact a span { min-width:0; }
.portal-footer { background:#0d3324; color:#abc5b5; padding:17px 0; font-size:11px; }
.portal-footer .container { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.portal-footer p { margin:0; }
.portal-footer a { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.portal-footer a svg { width:14px; height:14px; }
@media (max-width:1050px) {
    .portal-header__tools { gap:8px; }
    .portal-search { width:220px; }
    .portal-masthead__date { display:none; }
    .portal-navigation a { padding-inline:16px; }
    .portal-access__item { gap:9px; padding:12px 10px; }
    .portal-access__icon { width:38px; height:42px; flex-basis:38px; }
    .portal-access__item .portal-access__arrow { display:none; }
    .portal-news-layout { grid-template-columns:minmax(0,1fr) 250px; gap:22px; }
    .portal-contact__grid { gap:26px; }
}
@media (max-width:900px) {
    .portal-home [id] { scroll-margin-top:86px; }
    .portal-header__inner { min-height:62px; gap:12px; }
    .portal-brand strong { font-size:14px; }
    .portal-brand small { font-size:11px; }
    .portal-menu-toggle { display:inline-flex; background:#edf4ef; }
    .portal-navigation { display:none; position:fixed; top:62px; left:0; right:0; max-height:calc(100dvh - 76px); overflow:auto; border-bottom:1px solid #dce6df; background:white; box-shadow:0 14px 25px #103e2b14; }
    .portal-navigation.is-open { display:block; }
    .portal-navigation__inner { display:grid; padding-block:12px; gap:3px; }
    .portal-navigation .sub-menu { display:grid; position:static; min-width:0; padding:0 0 0 12px; background:transparent; }
    .portal-navigation a { color:#234e33; justify-content:flex-start; min-height:44px; border-radius:4px; white-space:normal; padding:10px 14px; }
    .portal-navigation a:hover, .portal-navigation a.is-current { background:#edf4ef; color:#155a3a; box-shadow:none; }
    .portal-masthead__inner { min-height:230px; }
    .portal-access__grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
    .portal-access__item { flex-direction:column; justify-content:flex-start; text-align:center; padding:15px 8px; min-height:122px; }
    .portal-access__item strong { font-size:12px; }
    .portal-access__item small { font-size:10px; }
    .portal-news-layout { grid-template-columns:1fr; gap:28px; }
    .portal-sidebar { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
    .portal-sidebar .portal-section-heading { grid-column:1; }
    .portal-sidebar-contact { grid-column:2; grid-row:1 / span 2; padding-top:0; border-top:0; }
    .portal-profile__grid { gap:24px; }
    .portal-profile h2 { font-size:24px; }
    .portal-contact__grid { grid-template-columns:1fr 1fr; }
    .portal-contact__brand { grid-column:1 / -1; }
    .portal-home .apbdes-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .portal-sidebar .desa-list { grid-column:1; }
}
@media (max-width:660px) {
    .portal-home .container { width:calc(100% - 32px); }
    .portal-header__inner { gap:10px; min-height:62px; }
    .portal-brand { gap:8px; }
    .portal-brand img { width:32px; height:38px; flex-basis:32px; }
    .portal-brand strong { max-width:215px; font-size:12px; }
    .portal-brand small { font-size:10px; }
    .portal-header__tools { gap:3px; }
    .portal-header .portal-admin { display:none; }
    .portal-search-toggle { display:inline-flex; }
    .portal-search { display:none; position:absolute; top:62px; left:0; right:0; width:100%; min-height:54px; border:0; border-bottom:1px solid #bd9d53; border-radius:0; padding-inline:16px; background:#194735; }
    .portal-search.is-open { display:flex; }
    .portal-search input { min-height:44px; }
    .portal-masthead__inner { min-height:228px; gap:14px; padding:30px 0; }
    .portal-masthead__logo { width:54px; height:65px; flex-basis:54px; }
    .portal-masthead::before { background:linear-gradient(90deg,rgba(8,50,34,.88),rgba(8,50,34,.38)); }
    .portal-masthead h1 { font-size:28px; }
    .portal-masthead__identity p { font-size:8px; line-height:1.5; margin-bottom:8px; }
    .portal-masthead__identity > span { font-size:12px; }
    .portal-info__inner { min-height:65px; gap:10px; }
    .portal-info__label { padding-right:10px; gap:6px; font-size:11px; }
    .portal-info__label svg { width:15px; height:15px; }
    .portal-info p { font-size:10px; padding:10px 0; }
    .portal-info a { display:none; }
    .portal-welcome { padding:24px 0; }
    .portal-welcome__grid { grid-template-columns:104px minmax(0,1fr); gap:14px 18px; align-items:start; }
    .portal-welcome__portrait { grid-column:1; grid-row:1 / span 2; }
    .portal-welcome__portrait figcaption { margin-top:7px; font-size:10px; }
    .portal-welcome__copy { display:contents; }
    .portal-welcome__copy > .portal-kicker { grid-column:2; grid-row:1; align-self:end; font-size:10px; }
    .portal-welcome__copy h2 { grid-column:2; grid-row:2; margin:0; font-size:21px; line-height:1.35; }
    .portal-welcome__copy p { grid-column:1 / -1; margin:0; font-size:14px; line-height:1.75; }
    .portal-access { padding-top:20px; padding-bottom:6px; }
    .portal-access__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .portal-access__item { flex-direction:row; text-align:left; justify-content:flex-start; gap:9px; min-height:76px; padding:10px; }
    .portal-access__icon { width:34px; height:38px; flex-basis:34px; }
    .portal-access__icon svg { width:22px; height:22px; }
    .portal-access__item strong { font-size:13px; }
    .portal-access__item small { font-size:10px; line-height:1.5; }
    .portal-section { padding:28px 0; }
    .portal-section-heading { margin-bottom:18px; gap:10px; padding-bottom:12px; }
    .portal-section-heading h2 { font-size:21px; gap:8px; }
    .portal-section-heading h2 svg { width:19px; height:19px; }
    .portal-section-heading > span { display:none; }
    .portal-news-grid { grid-template-columns:1fr; gap:18px; }
    .portal-news-card__image { aspect-ratio:16/9; }
    .portal-news-card__body { padding:17px; }
    .portal-news-card h3 { font-size:20px; }
    .portal-news-card p { font-size:14px; }
    .portal-sidebar { display:block; }
    .portal-sidebar-contact { padding-top:20px; border-top:1px solid #dfe7e1; }
    .portal-home .desa-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .portal-home .desa-stat-card { padding:18px 15px; }
    .portal-home .desa-stat-card span { min-height:39px; font-size:13px; }
    .portal-home .desa-stat-card strong { font-size:30px; margin-top:12px; }
    .portal-section-lead { font-size:13px; }
    .portal-profile__grid { grid-template-columns:1fr; gap:21px; }
    .portal-profile h2 { font-size:25px; }
    .portal-profile__details { gap:8px; }
    .portal-profile__details dd { font-size:12px; }
    .portal-home .gallery-slide { flex-basis:100%; aspect-ratio:4/3; }
    .portal-home .gallery-slide figcaption { padding:50px 16px 16px; }
    .portal-home .gallery-slide figcaption strong { font-size:19px; }
    .portal-home .gallery-slide figcaption span { font-size:12px; }
    .portal-home #apbdes { padding:28px 0; }
    .portal-home #apbdes .section-title h2 { font-size:23px; }
    .portal-home .apbdes-summary { grid-template-columns:1fr; }
    .portal-home .apbdes-summary > div { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; }
    .portal-home .apbdes-summary strong { margin-top:0; font-size:16px; text-align:right; }
    .portal-home .apbdes-columns { grid-template-columns:1fr; }
    .portal-home .apbdes-column li { font-size:13px; }
    .portal-contact { padding:30px 0; }
    .portal-contact__grid { grid-template-columns:1fr; gap:26px; }
    .portal-contact__brand { gap:13px; }
    .portal-contact h2 { font-size:20px; }
    .portal-contact a, .portal-contact p { font-size:13px; }
    .portal-footer .container { flex-direction:column; align-items:flex-start; gap:10px; }
}
@media (max-width:360px) {
    .portal-brand strong { max-width:160px; font-size:11px; }
    .portal-brand small { font-size:9px; }
    .portal-header__tools .portal-icon-button { width:34px; flex-basis:34px; }
    .portal-masthead__logo { width:44px; flex-basis:44px; }
    .portal-masthead__inner { gap:10px; }
    .portal-masthead h1 { font-size:25px; }
    .portal-access__item { gap:7px; padding:9px 8px; }
    .portal-access__icon { width:29px; flex-basis:29px; }
    .portal-access__item strong { font-size:11px; }
    .portal-access__item small { font-size:8px; }
    .portal-home .desa-stat-card { padding:16px 12px; }
    .portal-home .desa-stat-card strong { font-size:28px; }
}
@media (prefers-reduced-motion:reduce) {
    .portal-info .portal-info__text { animation:none; transform:none; width:auto; padding:10px 0; white-space:normal; }
    .portal-info__pause { display:none; }
    .portal-home *, .portal-home *::before, .portal-home *::after { scroll-behavior:auto !important; transition:none !important; }
}
