/* v1.0.2 readability and mobile responsive overrides */
.hero h2{color:#fff;font-weight:800;line-height:1.25;text-shadow:0 2px 8px rgba(0,0,0,.18)}
.hero p{color:#fff;font-size:1rem;line-height:1.65;font-weight:600}
.hero small{font-size:.78rem;font-weight:700}
.login-card{display:block;width:100%}
.login-card h1{margin:18px 0 4px;text-align:center;font-size:1.55rem;color:var(--navy)}
.login-card>p{text-align:center;color:var(--muted);margin:0 0 20px}
.login-card label{display:grid;gap:6px;margin:14px 0;font-size:.9rem;font-weight:700;color:var(--ink)}
.login-card input{display:block;width:100%;height:44px;padding:10px 12px;border:1px solid #b9cad7;border-radius:9px;background:#fff;font:inherit;outline:none}
.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,105,170,.12)}
.login-card button{display:block;width:100%;height:44px;margin:8px 0 15px}
.login-card>a{display:block;text-align:center;color:var(--blue);text-decoration:none;font-weight:700}
.update-banner{position:fixed;z-index:1000;top:12px;left:50%;transform:translateX(-50%);width:min(92%,620px);padding:11px 12px 11px 17px;border-radius:12px;background:#173f69;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.25);align-items:center;justify-content:space-between;gap:12px;font-weight:700}
.update-banner:not([hidden]){display:flex}
.update-banner button{background:#fff;color:var(--navy);white-space:nowrap;padding:8px 12px}
.visit-stats{margin-top:9px;line-height:1.55;font-size:.78rem;color:#5e7185}
.browser-blocked{overflow:hidden}
.browser-gate{position:fixed;z-index:2000;inset:0;background:rgba(8,28,49,.92);padding:20px;align-items:center;justify-content:center}
.browser-gate:not([hidden]){display:flex}
.browser-gate-card{width:min(100%,390px);background:#fff;border-radius:20px;padding:28px 24px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.browser-gate-card img{width:105px;height:auto}
.browser-gate-card h2{color:var(--navy);font-size:1.4rem;margin:18px 0 8px}
.browser-gate-card p{color:var(--muted);line-height:1.55;margin:0 0 18px}
.browser-gate-card button{width:100%;min-height:46px;font-size:1rem}
.browser-gate-card small{display:block;color:var(--muted);line-height:1.5;margin-top:13px}
.app-icon img{width:46px;height:46px;object-fit:contain;border-radius:10px}
.mini-icon{width:28px;height:28px;object-fit:contain;vertical-align:middle;border-radius:6px}
.news-cover{width:180px;min-height:120px;max-height:165px;object-fit:cover;border-radius:11px}
.news-cover-button{position:relative;display:block;flex:0 0 auto;width:180px;margin:0;padding:0;border:0;border-radius:11px;background:transparent;cursor:zoom-in;overflow:hidden}.news-cover-button .news-cover{display:block;width:100%;height:100%}.news-cover-button>span{position:absolute;right:8px;bottom:8px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(7,31,58,.78);color:#fff;font-size:1.1rem;box-shadow:0 2px 8px rgba(0,0,0,.22)}
.labels .must-read{background:#d9363e;color:#fff}.labels .category{background:#edf2f6;color:#506274}
.labels .must-read.is-blinking span{display:inline-block;animation:must-read-bell 1.15s ease-in-out infinite;transform-origin:50% 10%}@keyframes must-read-bell{0%,45%,100%{transform:rotate(0) scale(1)}10%{transform:rotate(16deg) scale(1.12)}20%{transform:rotate(-14deg) scale(1.12)}30%{transform:rotate(10deg) scale(1.08)}}@media(prefers-reduced-motion:reduce){.labels .must-read.is-blinking span{animation:none}}
.image-lightbox{position:fixed;z-index:2500;inset:0;padding:24px;background:rgba(5,18,31,.9);align-items:center;justify-content:center}.image-lightbox:not([hidden]){display:flex}.image-lightbox img{display:block;max-width:min(96vw,1400px);max-height:90vh;object-fit:contain;border-radius:10px;background:#fff;box-shadow:0 20px 70px rgba(0,0,0,.5)}.image-lightbox-close{position:fixed;top:16px;right:20px;width:46px;height:46px;margin:0;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:2rem;line-height:1}.lightbox-open{overflow:hidden}
.app-catalog-update{position:fixed;z-index:1100;top:86px;right:18px;width:min(370px,calc(100vw - 28px));padding:14px;border:1px solid #a9d5ef;border-radius:14px;background:#fff;color:var(--navy);box-shadow:0 14px 38px rgba(7,30,55,.24)}.app-catalog-update:not([hidden]){display:grid;gap:11px}.app-catalog-update>div:first-child{display:grid;gap:4px}.app-catalog-update strong{font-size:.94rem}.app-catalog-update span{color:var(--muted);font-size:.82rem}.app-catalog-update-actions{display:flex;gap:8px}.app-catalog-update-actions button{margin:0;min-height:37px;padding:8px 11px;font-size:.8rem}.app-catalog-update-actions button:last-child{background:#edf4f8;color:var(--navy)}
.attachments{display:grid;gap:5px;margin-top:12px;padding:11px;background:#f5f8fa;border-radius:9px}.attachments a{color:var(--blue);text-decoration:none;font-size:.88rem}
.actions{display:flex;align-items:center;gap:7px}.actions form{margin:0}.edit-btn{display:inline-block;padding:7px 10px;border-radius:8px;background:#e3f1fa;color:var(--blue);text-decoration:none;font-weight:700;font-size:.85rem}
.edit-panel{max-width:820px;margin-left:auto!important;margin-right:auto!important}.cover-preview{width:min(100%,480px);max-height:260px;object-fit:cover;border-radius:12px;margin-top:7px}.app-logo-preview{width:90px;height:90px;object-fit:contain;border:1px solid var(--line);border-radius:12px;padding:8px;margin-top:7px}
.attachment-admin{display:grid;gap:7px;padding:12px;background:#f5f8fa;border-radius:9px}.attachment-admin>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.attachment-admin a{color:var(--blue)}
.row:has(input[name="link_url"]){grid-template-columns:1fr}
.header-actions{margin-left:auto;display:flex;gap:8px}.header-actions .admin-link{margin-left:0}
.brand-home{display:flex;align-items:center;flex:0 0 auto}.home-link{background:#eaf5fb;color:var(--blue);border-color:#bad9ec}
.muted{color:var(--muted);margin:.25rem 0;font-size:.86rem;word-break:break-all}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.panel-heading h2{margin-bottom:0}
.inline-form{display:flex;gap:6px;align-items:center}.inline-form select,.category-table input,.category-form input{border:1px solid #c8d6e0;border-radius:8px;padding:8px;font:inherit;background:#fff}.inline-form button,.secondary{padding:8px 10px;background:#e3f1fa;color:var(--blue)}
.category-row{display:grid;grid-template-columns:2.2fr .7fr .55fr .7fr 1fr auto;gap:10px;align-items:end}.check-bottom{display:flex!important;align-items:center;min-height:40px}.category-table input[name="name"]{min-width:190px}.category-table input[name="icon"]{width:65px}.category-table input[name="sort_order"]{width:75px}.category-table input[type="color"]{width:52px;padding:3px}
.password-box{position:relative}.password-box input{padding-right:72px}.password-box .show-password{position:absolute;right:5px;top:5px;width:auto;height:34px;margin:0;padding:5px 10px;background:#e3f1fa;color:var(--blue)}.login-note{display:block;color:var(--muted);line-height:1.5;margin:-4px 0 15px;text-align:center}
.choice-card{display:flex!important;align-items:flex-start!important;border:1px solid var(--line);border-radius:12px;padding:13px;cursor:pointer}.choice-card input{width:auto;height:auto;margin:4px 10px 0 0}.choice-card span{display:grid;gap:2px}.choice-card small{color:var(--muted);font-weight:400}.guide-wrap{max-width:900px}.guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}.guide-grid article{padding:17px;border:1px solid var(--line);border-radius:13px;background:#f8fbfd}.guide-grid article b{color:var(--navy)}.guide-grid article p{color:var(--muted);line-height:1.6;margin:7px 0 0}.wide-button{width:100%}
.form-actions{display:flex;justify-content:flex-end;gap:10px}.api-settings-form{max-width:900px}.api-settings-form .check-bottom{border:1px solid var(--line);border-radius:9px;padding:10px;background:#f8fbfd}
.sync-schedule{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:13px;background:#f8fbfd}.sync-schedule-head{display:flex;align-items:end;gap:22px}.sync-schedule-head>label{display:grid;gap:5px}.sync-schedule-head select{border:1px solid #c8d6e0;border-radius:9px;padding:9px;background:#fff;font:inherit}.toggle-line{display:flex!important;align-items:center;min-height:42px}.toggle-line input{width:auto}.sync-time-fields{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.sync-status{display:grid;gap:5px;padding:11px;border-radius:9px;background:#fff;color:var(--muted);font-size:.86rem}.status-success{color:#16803c;font-style:normal;font-weight:800}.status-error{color:#c0262d;font-style:normal;font-weight:800}
.user-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:18px 0}.user-summary article{padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fbfd}.user-summary span{display:block;color:var(--muted);font-size:.8rem}.user-summary b{display:block;margin-top:5px;color:var(--navy);font-size:1.45rem}.user-summary .active{border-color:#a7dfbc;background:#effbf3}.user-summary .active b{color:#16803c}.user-summary .resigned{border-color:#f1b5b8;background:#fff3f3}.user-summary .resigned b{color:#c0262d}.resigned-list{margin:0 0 18px;border:1px solid #f1b5b8;border-radius:12px;background:#fff8f8}.resigned-list summary{padding:13px 15px;color:#a3242b;font-weight:800;cursor:pointer}.resigned-list .table-wrap{padding:0 12px 12px}
.sync-progress{margin:0 0 18px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fbfd}.sync-progress-head,.sync-progress-detail{display:flex;justify-content:space-between;gap:12px}.sync-progress-head{color:var(--navy)}.sync-progress-track{height:14px;margin:10px 0;overflow:hidden;border-radius:99px;background:#dbe7ef}.sync-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1769aa,#28a6d8);transition:width .35s ease}.sync-progress-detail{font-size:.84rem;color:var(--muted)}.sync-progress[data-state="SUCCESS"] .sync-progress-track span{background:#19a55a}.sync-progress[data-state="ERROR"] .sync-progress-track span{background:#d9363e}#sync-now-button:disabled{opacity:.65;cursor:wait}
.user-filters{display:grid;grid-template-columns:1.4fr 1.2fr .8fr .9fr auto;gap:10px;align-items:end;margin:18px 0 8px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fbfd}.user-filters label{display:grid;gap:5px;color:var(--navy);font-size:.82rem;font-weight:800}.user-filters input,.user-filters select{width:100%;min-height:41px;border:1px solid #c8d6e0;border-radius:9px;padding:8px 10px;background:#fff;font:inherit}.user-filter-actions{display:flex;gap:7px;align-items:center}.user-filter-actions a{padding:10px;color:var(--blue);font-size:.85rem;font-weight:800;text-decoration:none;white-space:nowrap}.user-result-summary{margin:9px 0;color:var(--muted);font-size:.84rem}.pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:18px 0}.pagination a,.pagination span{min-width:38px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);text-align:center;text-decoration:none;font-weight:700}.pagination a.active{border-color:var(--blue);background:var(--blue);color:#fff}
.admin-tabs{display:flex;gap:8px;position:sticky;top:94px;z-index:8;padding:10px;background:rgba(244,248,251,.96);border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 18px rgba(30,65,90,.08);backdrop-filter:blur(8px)}.admin-tabs a{flex:1;text-align:center;text-decoration:none;color:var(--navy);font-weight:800;padding:11px 10px;border-radius:10px;white-space:nowrap}.admin-tabs a:hover{background:#e9f3f9}.admin-tabs a.active{background:var(--blue);color:#fff;box-shadow:0 5px 13px rgba(23,105,170,.24)}.admin-menu-mobile{display:none}.admin-grid>.panel:only-child{grid-column:1/-1}.brand-logo{width:154px;height:54px;object-fit:contain;object-position:left center;flex:0 0 auto}.login-card .login-brand-logo{display:block;width:min(100%,270px);height:auto;max-height:94px;object-fit:contain;margin:0 auto 8px}
.user-table{min-width:1250px}.user-table td{vertical-align:top}.user-table small{color:var(--muted)}
.announcement-color-preview{--preview-accent:#1769aa;border:1px solid var(--line);border-left:6px solid var(--preview-accent);border-radius:11px;padding:12px;background:#fff;display:grid;gap:8px}.announcement-color-preview strong{color:var(--navy)}.announcement-color-preview .preview-badges{display:flex;gap:6px;flex-wrap:wrap}.announcement-color-preview .preview-badges span{border-radius:99px;padding:3px 9px;font-size:.74rem;font-weight:800}.announcement-color-preview .preview-new{background:var(--preview-new,#16a34a);color:#fff}.announcement-color-preview .preview-category{background:var(--preview-accent);color:#fff}.announcement-color-preview small{color:var(--muted)}

@media(max-width:760px){
 header{height:auto;min-height:68px;gap:10px;padding:9px 14px;position:sticky}
 header img{width:65px;height:45px}.brand-logo{width:126px;height:44px}
 header h1{font-size:1.05rem;line-height:1.2}
 header p{font-size:.7rem;line-height:1.25}
 .admin-link{padding:8px 10px;white-space:nowrap;font-size:.75rem}
 .header-actions{gap:4px}.header-actions .admin-link{padding:7px 8px}.header-actions .home-link{font-size:0}.header-actions .home-link::before{content:'⌂';font-size:1rem}.panel-heading{align-items:flex-start;flex-direction:column}.category-row{grid-template-columns:1fr 1fr}.category-row label:first-child{grid-column:1/-1}.category-row button{grid-column:1/-1}.guide-grid{grid-template-columns:1fr}.inline-form{min-width:230px}
 .form-actions{flex-direction:column}.form-actions button{width:100%}
 .sync-schedule-head{align-items:stretch;flex-direction:column;gap:8px}.sync-time-fields{grid-template-columns:1fr 1fr}.user-summary{grid-template-columns:repeat(2,1fr)}.user-filters{grid-template-columns:1fr}.user-filter-actions button{flex:1}.pagination{justify-content:flex-start}
 .admin-tabs{display:none}.admin-menu-mobile{display:grid;gap:5px;position:sticky;top:72px;z-index:8;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.97);font-weight:800;box-shadow:0 5px 16px rgba(30,65,90,.1)}.admin-menu-mobile select{width:100%;border:1px solid #b9cad7;border-radius:9px;padding:10px;background:#fff;font:inherit;color:var(--navy);font-weight:700}
 main{padding:12px}
 .hero{min-height:auto;border-radius:16px;padding:28px 20px}
 .hero small{font-size:.68rem;letter-spacing:.1em}
 .hero h2{font-size:1.55rem;margin:9px 0;line-height:1.35}
 .hero p{font-size:.88rem;line-height:1.55}
 .section-title{margin:25px 0 12px;align-items:flex-start;gap:8px}
 .section-title h2{font-size:1.15rem}
 .section-title span{font-size:.75rem;white-space:nowrap}
 .news{gap:10px;padding:13px}
 .news-icon{font-size:1.4rem}
 .news-cover-button{width:100%}.news-cover{width:100%;height:170px;max-height:none}
 .news:has(.news-cover){display:block}.news:has(.news-cover) .news-content{margin-top:12px}
 .news h3{font-size:1rem;line-height:1.4}
 .news p,.news small{font-size:.8rem;line-height:1.5}
 .apps{grid-template-columns:1fr;gap:10px}
 .app-card{padding:16px}
 .app-card p{min-height:auto;margin:6px 0 12px;font-size:.85rem}
 .app-card h3{font-size:1rem}
 .panel,main>section:not(.hero){padding:14px;border-radius:13px}
 table{min-width:640px}
 footer{font-size:.75rem;padding:25px 12px}
 .login-wrap{max-width:none;margin:35px 14px}
 .login-card{padding:23px 20px}
 .login-card h1{font-size:1.3rem}
 .update-banner{top:8px;font-size:.8rem}
 .app-catalog-update{top:78px;right:10px;width:calc(100vw - 20px)}
}

@media(max-width:390px){
 header p{display:none}
 header img{width:57px}.brand-logo{width:112px;height:40px}
 .admin-link{padding:7px 8px}
 .hero h2{font-size:1.35rem}
 .news-icon{display:none}
}

/* NAP Intranet v1.3.0: seasonal banner, signed-in profile and application controls */
.public-account{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:0}.public-account .admin-link{margin-left:0}.viewer-meta{display:flex;flex-direction:column;align-items:flex-end;min-width:0;max-width:235px}.viewer-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--navy);font-size:.84rem}.viewer-meta small,.guest-label{font-size:.72rem;color:var(--muted)}
.hero-seasonal{position:relative;isolation:isolate;overflow:hidden;background:#17436c;min-height:225px}.hero-seasonal::before{position:absolute;inset:0;z-index:-2;content:"";background-image:var(--banner-image);background-position:center;background-size:cover}.hero-seasonal::after{position:absolute;inset:0;z-index:-1;content:"";background:linear-gradient(90deg,rgba(7,31,58,.87) 0%,rgba(7,31,58,.67) 48%,rgba(7,31,58,.05) 100%)}.hero-copy{max-width:750px}.hero h2{overflow-wrap:anywhere}.hero p{white-space:pre-line}.banner-campaign-list{display:grid;gap:12px;margin-top:16px}.banner-campaign{display:grid;grid-template-columns:180px 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px}.banner-campaign>img{width:180px;height:72px;object-fit:cover;border-radius:8px}.banner-campaign-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.banner-campaign-actions form{margin:0}.banner-campaign .edit-btn{white-space:nowrap}.banner-admin-preview{border:1px dashed #bad5e7;border-radius:12px;padding:8px;max-width:600px}.banner-admin-preview img{display:block;width:100%;height:auto;border-radius:8px}.banner-preview-large{margin:0;max-width:100%}
@media(max-width:760px){.public-account{gap:5px}.viewer-meta{max-width:120px}.viewer-meta strong{font-size:.7rem}.viewer-meta small{font-size:.65rem}.guest-label{display:none}.public-account .admin-link{font-size:.69rem;padding:7px}.banner-campaign{grid-template-columns:1fr;gap:8px}.banner-campaign>img{width:100%;height:auto;max-height:160px}.hero-seasonal::after{background:linear-gradient(90deg,rgba(7,31,58,.9),rgba(7,31,58,.5))}}
@media(max-width:390px){.viewer-meta{max-width:85px}.public-account .logout-link{padding:6px}}


/* v1.3.1 — Version update toast + visible application logos */
.update-banner,.update-banner:not([hidden]){position:fixed;top:auto;left:auto;right:18px;bottom:18px;transform:none;width:min(352px,calc(100vw - 28px));z-index:1000;background:#143959;color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:13px 15px;box-shadow:0 12px 36px rgba(7,30,55,.26);font-size:.88rem;line-height:1.4;display:flex;flex-direction:column;align-items:stretch;gap:9px}
.update-banner[hidden]{display:none!important}
.update-banner-message{display:flex;flex-direction:column;gap:4px}
.update-banner-message strong{font-size:.92rem;color:#fff}
.update-banner-message span{font-size:.81rem;color:#e1edf8;font-weight:500}
.update-banner-actions{display:flex;align-items:center;gap:8px}
.update-banner-actions button{margin:0;min-height:36px;font-size:.78rem;line-height:1.2;padding:8px 10px;border-radius:8px}
#update-now{background:#fff;color:#173f69}
#update-later{background:transparent;color:#fff;border:1px solid #8caac5}
#update-later:hover{background:rgba(255,255,255,.12)}
/* Application image larger without expanding the card or cropping wide brand logos. */
.app-card .app-icon{display:flex;align-items:center;justify-content:flex-start;min-height:80px;width:100%;max-width:100%;font-size:2.4rem}
.app-card .app-icon-image{height:84px;min-height:84px}
.app-card .app-icon-image img{display:block;width:auto;max-width:min(100%,146px);height:auto;max-height:80px;object-fit:contain;object-position:left center;border-radius:7px}
.app-card h3{margin-top:9px}
@media(max-width:760px){
 .update-banner,.update-banner:not([hidden]){right:10px;bottom:10px;top:auto;left:auto;transform:none;width:min(345px,calc(100vw - 20px));padding:12px}
 .app-card .app-icon,.app-card .app-icon-image{min-height:72px;height:72px}
 .app-card .app-icon-image img{max-width:min(100%,138px);max-height:69px}
}
