/* NGM COE App — app shell for coe.ngmc.ac.in
   Colours --primary / --accent come from COE Portal → Settings (or the Customizer), set inline by functions.php.
   Motif: the scalloped edge under the app bar and over the footer is the perforated edge of a hall ticket.
   Type: Atkinson Hyperlegible Next — made for legibility; register numbers like 22-CS-01, O/0 and l/1/I stay distinct. */

:root{
  --primary:#0b3d6b;--primary-dk:#082c4d;--on-primary:#fff;--accent:#f2a900;--on-accent:#14213a;
  --bg:#eef2f7;--surface:#fff;--ink:#14213a;--ink-2:#34425a;--muted:#566377;--line:#d3dbe6;--line-soft:#e3e9f1;
  --font:"Atkinson Hyperlegible Next",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans Tamil","Noto Sans",Arial,sans-serif;
  --r-lg:20px;--r:12px;--r-sm:8px;
  --bar-h:60px;--tab-h:64px;--gutter:16px;--wrap:1200px;
  --safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);
  --tint:#e6edf5;
  color-scheme:light;
}
@supports (color:color-mix(in srgb,red,blue)){
  :root{--tint:color-mix(in srgb,var(--primary) 9%,#fff)}
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--bar-h) + var(--safe-t) + 20px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility}
img,svg,video,iframe{max-width:100%}
img{height:auto}
a{color:var(--primary);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--primary-dk)}
h1,h2,h3,h4,h5,h6{color:var(--ink);font-weight:700;line-height:1.2;letter-spacing:-.01em}
:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.appbar :focus-visible,.site-foot :focus-visible{outline-color:var(--accent)}
[hidden]{display:none!important}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:1001;padding:12px 16px;border-radius:var(--r);background:var(--accent);color:var(--on-accent);font-weight:700;text-decoration:none}
.skip-link:focus{top:calc(12px + var(--safe-t))}
.ico{width:24px;height:24px;flex:none}
.ico--sm{width:18px;height:18px}
.ico--inline{width:1.15em;height:1.15em;vertical-align:-.22em}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:calc(var(--gutter) + var(--safe-l));padding-right:calc(var(--gutter) + var(--safe-r))}

/* Page-load bar (shown while the next page loads) */
.progress{position:fixed;top:0;left:0;z-index:1000;width:0;height:3px;background:var(--accent);opacity:0;pointer-events:none;transition:width .25s,opacity .25s}
.is-loading .progress{width:85%;opacity:1;transition:width 7s cubic-bezier(.08,.7,.2,1),opacity .1s}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin:0;padding:0 20px;border:1.5px solid transparent;border-radius:999px;font:inherit;font-size:1rem;font-weight:700;line-height:1.1;text-align:center;text-decoration:none;cursor:pointer;transition:filter .15s,background-color .15s,border-color .15s;-webkit-user-select:none;user-select:none}
.btn--primary{background:var(--primary);color:var(--on-primary)}
.btn--primary:hover{color:var(--on-primary);filter:brightness(1.15)}
.btn--accent{background:var(--accent);color:var(--on-accent)}
.btn--accent:hover{color:var(--on-accent);filter:brightness(1.06)}
.btn--ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn--ghost:hover{background:var(--bg);color:var(--ink)}
.btn--block{width:100%}
.btn--sm{min-height:42px;padding:0 16px;font-size:.9375rem}
.iconbtn{display:inline-flex;flex:none;align-items:center;justify-content:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.iconbtn:hover{background:rgba(127,140,160,.16)}
.appbar .iconbtn:hover{background:rgba(255,255,255,.14)}

/* ---------- App bar ---------- */
.appbar{position:sticky;top:0;z-index:50;padding-top:var(--safe-t);background:var(--primary);color:var(--on-primary);-webkit-user-select:none;user-select:none}
.appbar::after,.site-foot::before{content:"";position:absolute;left:0;right:0;height:7px;pointer-events:none;background-repeat:repeat-x;background-size:14px 7px}
.appbar::after{top:100%;background-image:radial-gradient(circle at 7px 0,var(--primary) 4.6px,transparent 5.2px)}
.admin-bar .appbar{top:32px}
@media (max-width:782px){.admin-bar .appbar{top:46px}}
@media (max-width:600px){.admin-bar .appbar{top:0}}
.appbar__inner{display:flex;align-items:center;gap:4px;max-width:var(--wrap);height:var(--bar-h);margin:0 auto;padding:0 calc(6px + var(--safe-r)) 0 calc(12px + var(--safe-l))}
.appbar__back{margin-left:-6px}
.brand{display:flex;flex:1 1 auto;align-items:center;gap:10px;min-width:0;color:inherit;text-decoration:none}
.brand:hover{color:inherit}
.brand__logo{flex:none;width:40px;height:40px;padding:3px;border-radius:10px;background:#fff;object-fit:contain}
.brand__mark{display:inline-flex;flex:none;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--accent);color:var(--on-accent);font-size:.8125rem;font-weight:800;letter-spacing:.02em}
.brand__text{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.brand__full{display:none}
.brand__short{font-size:1.1875rem;font-weight:800;letter-spacing:.005em;white-space:nowrap}
.brand__text small{overflow:hidden;font-size:.8125rem;opacity:.82;white-space:nowrap;text-overflow:ellipsis}
.appbar__actions{display:flex;flex:none;align-items:center;gap:2px}
.topnav,.appbar__phone,.appbar__account{display:none}

/* ---------- Side menu (phones) ---------- */
dialog{max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--surface);color:var(--ink)}
dialog::backdrop{background:rgba(8,18,36,.52)}
.drawer{position:fixed;inset:0 0 0 auto;width:min(88vw,380px);height:100%;flex-direction:column;padding:var(--safe-t) var(--safe-r) var(--safe-b) 0;overflow-y:auto;overscroll-behavior:contain;box-shadow:-12px 0 40px rgba(8,18,36,.25)}
.drawer[open]{display:flex;animation:ngm-drawer .24s cubic-bezier(.2,.8,.25,1)}
@keyframes ngm-drawer{from{transform:translateX(100%)}to{transform:none}}
.drawer__head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 20px;border-bottom:1px solid var(--line-soft);background:var(--surface)}
.drawer__title{font-size:1.125rem;font-weight:800}
.drawer__nav{flex:1 0 auto}
.nav--drawer,.nav--drawer .sub-menu{margin:0;padding:0;list-style:none}
.nav--drawer{padding:6px 0}
.nav--drawer li{position:relative}
.nav--drawer a{display:flex;align-items:center;min-height:52px;padding:10px 60px 10px 20px;color:var(--ink);font-size:1.0625rem;font-weight:700;line-height:1.3;text-decoration:none}
.nav--drawer a:hover{background:var(--bg);color:var(--ink)}
.nav--drawer .sub-menu{display:none;padding:0 0 8px}
.nav--drawer li.is-open>.sub-menu{display:block}
.nav--drawer .sub-menu a{min-height:46px;padding-left:36px;color:var(--ink-2);font-size:1rem;font-weight:500}
.nav--drawer .sub-menu .sub-menu a{padding-left:52px}
.nav--drawer .current-menu-item>a{background:var(--tint);color:var(--primary);box-shadow:inset 4px 0 0 var(--accent)}
.subtoggle{position:absolute;top:4px;right:8px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}
.subtoggle:hover{background:var(--bg)}
.subtoggle .ico{transition:transform .2s}
li.is-open>.subtoggle .ico{transform:rotate(180deg)}
.drawer__actions{display:grid;gap:10px;padding:14px 20px;border-top:1px solid var(--line-soft)}
.contact{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.contact li{display:flex;align-items:flex-start;gap:10px;line-height:1.4}
.contact .ico{margin-top:1px;color:var(--muted)}
.contact--drawer{padding:6px 20px 24px;color:var(--ink-2);font-size:.9375rem}
.contact--drawer a{color:var(--ink)}

/* ---------- Search sheet ---------- */
.sheet{position:fixed;inset:0 0 auto 0;width:100%;max-height:85vh;overflow-y:auto;padding-top:var(--safe-t);border-radius:0 0 var(--r-lg) var(--r-lg);box-shadow:0 20px 50px rgba(8,18,36,.25)}
.sheet[open]{animation:ngm-sheet .2s ease-out}
@keyframes ngm-sheet{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
.searchbar{display:flex;align-items:center;gap:8px;max-width:780px;margin:0 auto;padding:8px calc(8px + var(--safe-r)) 8px calc(18px + var(--safe-l))}
.searchbar__ico{color:var(--muted)}
.searchbar input{flex:1;min-width:0;height:52px;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:1.125rem}
.searchbar input::-webkit-search-cancel-button{display:none}
.sheet__body{max-width:780px;margin:0 auto;padding:4px calc(16px + var(--safe-r)) 20px calc(16px + var(--safe-l));border-top:1px solid var(--line-soft)}
.sheet__label{margin:14px 2px 10px;color:var(--muted);font-size:.875rem;font-weight:700;letter-spacing:0}

/* Quick links (portal services) */
.quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.quick a{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 12px;border:1px solid var(--line-soft);border-radius:var(--r);background:var(--surface);color:var(--ink);font-size:.9375rem;font-weight:700;line-height:1.25;text-decoration:none}
.quick a:hover{border-color:var(--line);background:#f8fafc;color:var(--ink)}
.quick__icon{display:inline-flex;flex:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--tint);color:var(--primary)}
.quick__icon .ico{width:20px;height:20px}

/* ---------- Page ---------- */
.page-wrap{min-height:calc(100vh - var(--bar-h))}
.main{display:block;padding-bottom:40px}
.main:focus{outline:0}
.page-head{padding:30px 0 18px}
.page-head__up{display:inline-flex;align-items:center;gap:4px;margin:0 0 10px -2px;font-size:.9375rem;font-weight:700;text-decoration:none}
.page-title{max-width:28ch;margin:0;font-size:clamp(1.75rem,1.3rem + 2vw,2.5rem);font-weight:800;line-height:1.12;letter-spacing:-.018em;overflow-wrap:anywhere}
.page-head__meta,.page-head__desc{max-width:65ch;margin:10px 0 0;color:var(--muted)}
.page-head__desc p{margin:0}
.page-head .searchform{margin-top:18px}
.layout-full .main{padding-top:20px}
.entry-content--builder{padding-top:0}

/* Text pages and posts: a white sheet */
.sheet-card{padding:24px 20px;border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--surface)}
.entry-content{overflow-wrap:break-word}
.entry-content::after{content:"";display:table;clear:both}
.entry-content>:first-child{margin-top:0}
.entry-content>:last-child{margin-bottom:0}
.sheet-card.entry-content>:where(p,ul,ol,dl,blockquote,h2,h3,h4,h5,h6,.wp-block-buttons){max-width:72ch}
.sheet-card.entry-content :where(h2){margin:1.6em 0 .5em;font-size:1.5rem}
.sheet-card.entry-content :where(h3){margin:1.4em 0 .4em;font-size:1.25rem}
.sheet-card.entry-content :where(h4){margin:1.2em 0 .4em;font-size:1.0625rem}
.sheet-card.entry-content :where(p,ul,ol){margin:0 0 1em}
.sheet-card.entry-content :where(li+li){margin-top:.3em}
.sheet-card img{border-radius:var(--r-sm)}
.sheet-card :where(table){width:100%;border-collapse:collapse;font-size:.9375rem}
.sheet-card :where(th,td){padding:10px 12px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}
.sheet-card :where(th){background:#f6f8fb;font-weight:700}
.wp-block-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sheet-card .wp-block-table table{border:1px solid var(--line-soft);border-radius:var(--r-sm)}
.sheet-card .wp-block-table :where(th,td){border:0;border-bottom:1px solid var(--line-soft)}
.sheet-card .wp-block-table thead{border-bottom:0}
.sheet-card .wp-block-table tr:last-child td{border-bottom:0}
.entry-content blockquote{margin:1.5em 0;padding:.25em 0 .25em 1.1em;border-left:4px solid var(--accent);color:var(--ink-2)}
.entry-content hr{height:1px;margin:2em 0;border:0;background:var(--line)}
.entry-content :where(pre,code){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}
.entry-content pre{overflow-x:auto;padding:14px 16px;border-radius:var(--r-sm);background:#f3f6fa}
.entry-content .alignwide,.entry-content .alignfull{max-width:none}
.entry-content .alignleft{float:left;margin:.3em 1.2em 1em 0}
.entry-content .alignright{float:right;margin:.3em 0 1em 1.2em}
.entry-content .aligncenter{margin-left:auto;margin-right:auto}
.wp-block-button__link,.wp-element-button{border-radius:999px;background:var(--primary);color:var(--on-primary);font-weight:700}
.wp-block-button.is-style-outline>.wp-block-button__link{border-color:var(--primary);color:var(--primary);background:transparent}
.wp-block-file a:not(.wp-block-file__button){font-weight:700}
.wp-block-file .wp-block-file__button{border-radius:999px;background:var(--primary);color:var(--on-primary)}
.entry-thumb{margin:0 0 20px}
.entry-thumb img{width:100%}
.page-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}

/* Lists: one grouped list, not a pile of cards */
.cards{margin:0;padding:0;overflow:hidden;border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--surface);list-style:none}
.card+.card{border-top:1px solid var(--line-soft)}
.card__link{display:flex;align-items:flex-start;gap:14px;padding:16px;color:var(--ink);text-decoration:none}
.card__link:hover{background:#f8fafc;color:var(--ink)}
.card__icon{display:inline-flex;flex:none;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--tint);color:var(--primary)}
.card__icon .ico{width:21px;height:21px}
.card__body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.card__title{font-size:1.0625rem;font-weight:700;line-height:1.3}
.card__meta{color:var(--muted);font-size:.875rem}
.card__excerpt{display:-webkit-box;overflow:hidden;color:var(--ink-2);font-size:.9375rem;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.card__go{align-self:center;color:var(--muted)}
.empty{padding:8px 0}
.empty>p{max-width:60ch;margin:0 0 16px;color:var(--ink-2)}
.empty__home{margin-top:20px}

.pagination .nav-links,.post-navigation .nav-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.pagination .nav-links{justify-content:center}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-weight:700;text-decoration:none}
.page-numbers.current{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}
.page-numbers.dots{border:0;background:transparent}
.post-navigation .nav-links>div{flex:1 1 240px}
.post-navigation a{display:flex;flex-direction:column;gap:2px;height:100%;padding:14px 16px;border:1px solid var(--line-soft);border-radius:var(--r);background:var(--surface);color:var(--ink);text-decoration:none}
.postnav__label{color:var(--muted);font-size:.8125rem;font-weight:700}
.postnav__title{font-weight:700;line-height:1.3}

/* Search form */
.searchform{display:flex;gap:8px;max-width:620px}
.searchform input{flex:1;min-width:0;height:48px;padding:0 18px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:1rem;-webkit-appearance:none;appearance:none}
.searchform input:focus{border-color:var(--primary);outline:0;box-shadow:0 0 0 4px var(--tint)}
@media (max-width:420px){.searchform .btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.searchform .btn{width:48px;padding:0}}

/* Comments */
.comments{margin-top:20px}
.comments__title{margin:0 0 12px;font-size:1.25rem}
.comments__list{margin:0 0 20px;padding:0;list-style:none}
.comments__list .comment-body{padding:12px 0;border-bottom:1px solid var(--line-soft)}
.comment-form input:not([type=submit]):not([type=checkbox]),.comment-form textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--r);font:inherit;font-size:1rem}

/* ---------- Footer ---------- */
.site-foot{position:relative;margin-top:32px;padding:34px 0 30px;background:var(--primary-dk);color:rgba(255,255,255,.86);font-size:.9375rem}
.site-foot::before{bottom:100%;background-image:radial-gradient(circle at 7px 7px,var(--primary-dk) 4.6px,transparent 5.2px)}
.site-foot a{color:#fff}
.site-foot a:hover{color:var(--accent)}
.foot{display:grid;gap:26px}
.foot__name{margin:0 0 14px;line-height:1.35}
.foot__name strong{display:block;color:#fff;font-size:1.0625rem}
.foot__name span{opacity:.8}
.site-foot .contact .ico{color:rgba(255,255,255,.6)}
.foot__label{margin:0 0 10px;color:rgba(255,255,255,.66);font-size:.875rem;font-weight:700}
.foot__links{margin:0;padding:0;list-style:none;columns:2;column-gap:20px}
.foot__links li{margin:0 0 9px;break-inside:avoid}
.foot__links a{text-decoration:none}
.foot__links a:hover{text-decoration:underline}
.foot__widgets{display:grid;grid-column:1/-1;gap:20px}
.foot__widgets .widget ul{margin:0;padding:0;list-style:none}
.foot__widgets .widget li{margin-bottom:8px}
.foot__note{grid-column:1/-1;margin:0;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);font-size:.875rem;opacity:.78}

/* ---------- Bottom tab bar (phones) ---------- */
.tabbar{position:fixed;right:0;bottom:0;left:0;z-index:40;display:grid;grid-template-columns:repeat(var(--tabs,5),minmax(0,1fr));height:calc(var(--tab-h) + var(--safe-b));padding:0 var(--safe-r) var(--safe-b) var(--safe-l);border-top:1px solid var(--line);background:rgba(255,255,255,.97);box-shadow:0 -6px 24px rgba(8,18,36,.07);-webkit-user-select:none;user-select:none;transition:transform .2s}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.tabbar{background:rgba(255,255,255,.88);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px)}}
.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;color:#4a576c;font-size:.75rem;font-weight:700;line-height:1.1;text-decoration:none}
.tab:hover{color:var(--primary)}
.tab__icon{display:flex;align-items:center;justify-content:center;width:58px;height:30px;border-radius:999px;transition:background-color .2s}
.tab__label{max-width:100%;padding:0 2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.tab.is-current{color:var(--primary)}
.tab.is-current .tab__icon{background:var(--accent);color:var(--on-accent)}
.tab:active .tab__icon{background:var(--line-soft)}
.has-tabbar .site-foot{padding-bottom:calc(30px + var(--tab-h) + var(--safe-b))}
.kb-open .tabbar{transform:translateY(110%)}

/* ---------- Toast, install card, pull to refresh ---------- */
.toast{position:fixed;bottom:calc(16px + var(--safe-b));left:50%;z-index:60;display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 32px);padding:12px 18px;border-radius:14px;background:#14213a;color:#fff;font-size:.9375rem;line-height:1.35;box-shadow:0 12px 30px rgba(8,18,36,.3);transform:translateX(-50%)}
.toast[hidden]{display:none}
.has-tabbar .toast{bottom:calc(var(--tab-h) + var(--safe-b) + 12px)}
.installcard{position:fixed;right:12px;bottom:calc(12px + var(--safe-b));left:12px;z-index:45;display:grid;grid-template-columns:auto 1fr;gap:12px 14px;align-items:start;max-width:520px;margin:0 auto;padding:16px;border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--surface);box-shadow:0 18px 44px rgba(8,18,36,.28);animation:ngm-up .3s ease-out}
.installcard[hidden]{display:none}
.has-tabbar .installcard{bottom:calc(var(--tab-h) + var(--safe-b) + 12px)}
.installcard__icon{width:52px;height:52px;border-radius:14px}
.installcard h2{margin:2px 0 4px;font-size:1.0625rem}
.installcard p{margin:0;color:var(--ink-2);font-size:.9375rem;line-height:1.45}
.installcard__actions{display:flex;grid-column:1/-1;justify-content:flex-end;gap:8px}
@keyframes ngm-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.ptr{position:fixed;top:calc(var(--bar-h) + var(--safe-t) + 10px);left:50%;z-index:49;display:flex;align-items:center;justify-content:center;width:42px;height:42px;margin-left:-21px;border-radius:50%;background:var(--surface);color:var(--muted);box-shadow:0 4px 16px rgba(8,18,36,.2);opacity:0;pointer-events:none;transform:translateY(calc(var(--pull,0px) - 64px))}
.ptr .ico{transform:rotate(calc(var(--pulln,0) * 3deg))}
.ptr.is-on{opacity:1}
.ptr.is-ready{color:var(--primary)}
.ptr.is-busy .ico{animation:ngm-spin .8s linear infinite}
@keyframes ngm-spin{to{transform:rotate(360deg)}}

/* ---------- Offline page ---------- */
.offline{max-width:560px;margin:32px auto;padding:32px 22px;border-radius:var(--r-lg);background:var(--surface);text-align:center}
.offline__icon{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:50%;background:var(--tint);color:var(--primary)}
.offline__icon .ico{width:38px;height:38px}
.offline h1{margin:16px 0 8px;font-size:1.75rem}
.offline p{color:var(--ink-2)}
.offline__saved{margin-top:28px;text-align:left}
.offline__saved h2{margin:0 0 10px;font-size:1.0625rem}
.offline__call{margin-top:26px;color:var(--muted)}
.linklist{margin:0;padding:0;overflow:hidden;border:1px solid var(--line-soft);border-radius:var(--r);list-style:none}
.linklist li+li{border-top:1px solid var(--line-soft)}
.linklist a{display:block;padding:14px 16px;font-weight:700;text-decoration:none}

/* ---------- Installed app (standalone) ---------- */
body.is-standalone{overscroll-behavior-y:contain}

/* ---------- Tablets & desktop ---------- */
@media (min-width:640px){
  :root{--gutter:24px}
  .quick{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sheet-card{padding:34px 40px}
  .foot{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
}
@media (min-width:1024px){
  :root{--bar-h:76px;--gutter:32px}
  .appbar__inner{gap:8px;padding:0 calc(20px + var(--safe-r)) 0 calc(24px + var(--safe-l))}
  .brand{flex:0 1 auto}
  .brand__logo,.brand__mark{width:48px;height:48px;border-radius:12px}
  .brand__full{display:block;max-width:22ch;font-size:1.0625rem;font-weight:800;line-height:1.15}
  .brand__short{display:none}
  .brand__text small{margin-top:3px}
  .topnav{display:flex;flex:1 1 auto;justify-content:flex-end;min-width:0;margin:0 4px}
  .appbar__menu{display:none}
  .appbar__account{display:inline-flex;min-height:42px;margin-left:6px;padding:0 16px}
  .quick{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tabbar{display:none}
  .has-tabbar .site-foot{padding-bottom:30px}
  .has-tabbar .toast{bottom:calc(16px + var(--safe-b))}
  .has-tabbar .installcard{bottom:calc(16px + var(--safe-b))}
  .installcard{right:24px;left:auto;width:420px}
  .page-head{padding:44px 0 24px}
  .layout-full .main{padding-top:28px}
  .foot{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
  .foot__links{columns:3}
  .sheet{inset:calc(var(--bar-h) + 12px) 0 auto 0;width:min(780px,calc(100% - 48px));margin:0 auto;border-radius:var(--r-lg)}
  .admin-bar .sheet{top:calc(var(--bar-h) + 44px)}
}
@media (min-width:1280px){
  .appbar__phone{display:inline-flex;align-items:center;gap:6px;padding:0 10px;color:inherit;font-size:.9375rem;font-weight:600;white-space:nowrap;text-decoration:none;opacity:.92}
  .appbar__phone:hover{color:inherit;opacity:1}
  .brand__full{max-width:none}
}

/* Desktop menu (with "More" when the links do not fit) */
.nav--top,.nav--top .sub-menu{margin:0;padding:0;list-style:none}
.nav--top{display:flex;flex-wrap:nowrap;align-items:center;gap:2px}
.nav--top>li{position:relative;flex:none}
.nav--top>li>a,.nav-more__btn{position:relative;display:flex;align-items:center;gap:4px;height:44px;padding:0 13px;border:0;border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.9688rem;font-weight:700;white-space:nowrap;text-decoration:none;cursor:pointer}
.nav--top>li>a:hover,.nav-more__btn:hover,.nav--top>li.is-open>a,.nav--top>li:focus-within>a{background:rgba(255,255,255,.13);color:inherit}
.nav--top>li.current-menu-item>a::after,.nav--top>li.current-menu-ancestor>a::after,.nav--top>li.current-menu-parent>a::after{content:"";position:absolute;right:13px;bottom:5px;left:13px;height:3px;border-radius:2px;background:var(--accent)}
.nav--top .chev{width:16px;height:16px;opacity:.8}
.nav--top .sub-menu{position:absolute;top:100%;left:0;z-index:5;min-width:250px;max-height:calc(100vh - var(--bar-h) - 40px);overflow-y:auto;padding:8px;border-radius:var(--r);background:var(--surface);color:var(--ink);box-shadow:0 18px 40px rgba(8,18,36,.22);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .15s,transform .15s,visibility 0s .15s}
.nav--top>li:last-child>.sub-menu,.nav--top>li:nth-last-child(2)>.sub-menu{right:0;left:auto}
.nav--top li:hover>.sub-menu,.nav--top li:focus-within>.sub-menu,.nav--top li.is-open>.sub-menu{opacity:1;visibility:visible;transform:none;transition:opacity .15s,transform .15s}
.nav--top .sub-menu a{display:block;padding:10px 12px;border-radius:8px;color:var(--ink);font-weight:500;line-height:1.3;white-space:nowrap;text-decoration:none}
.nav--top .sub-menu a:hover{background:var(--bg);color:var(--ink)}
.nav--top .sub-menu .current-menu-item>a{background:var(--tint);color:var(--primary);font-weight:700}
.nav--top .sub-menu .sub-menu{position:static;min-width:0;max-height:none;padding:0 0 0 12px;box-shadow:none;opacity:1;visibility:visible;transform:none}
.nav--top .sub-menu .menu-item-has-children>a{font-weight:700}
.nav--top .sub-menu .chev{display:none}
.nav--top .sub-menu .menu-item-has-children>a[href="#"]{padding-top:12px;padding-bottom:4px;color:var(--muted);font-size:.8125rem;pointer-events:none}

/* ---------- NGM COE Portal on phones ---------- */
/* The portal's service tiles become an app grid: icon and name, three across. */
@media (max-width:639px){
  .ngm-app .coe-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .ngm-app .coe-tile{flex-direction:column;align-items:center;gap:8px;padding:14px 6px 12px;border-radius:16px;text-align:center}
  .ngm-app .coe-tile:hover{transform:none}
  .ngm-app .coe-tile__icon{width:48px;height:48px;border-radius:14px}
  .ngm-app .coe-tile__text{align-items:center}
  .ngm-app .coe-tile__text strong{color:var(--ink);font-size:.8125rem;line-height:1.2;overflow-wrap:anywhere}
  .ngm-app .coe-tile__text span,.ngm-app .coe-tile__go{display:none}
}
@media (max-width:340px){.ngm-app .coe-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Motion & print ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media print{
  .appbar,.tabbar,.drawer,.sheet,.installcard,.toast,.progress,.site-foot,.skip-link,.ptr{display:none!important}
  body{background:#fff}
  .sheet-card{padding:0;border:0}
  .main{padding:0}
}
