.hkw-calendar-page{max-width:1190px;margin:24px auto 65px;padding:0 18px;font-family:Prompt,system-ui,sans-serif}.hkw-calendar-hero{background:linear-gradient(115deg,#05afca,#0283af);color:white;text-align:center;border-radius:26px;padding:28px 18px 48px;box-shadow:0 12px 24px #16799922}.hkw-calendar-hero img{width:65px;height:65px;object-fit:contain;filter:drop-shadow(0 4px 7px #005d7950)}.hkw-calendar-hero h1{font-size:clamp(1.25rem,3vw,1.9rem);margin:8px 0 0;color:#fff}.hkw-calendar-hero p{margin:3px 0;color:#d8f5fc}.hkw-cal-toolbar{background:#fff;display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;border-radius:22px;box-shadow:0 9px 20px #06465a16;padding:12px 16px;position:relative;z-index:1;margin:-24px auto 22px;max-width:1060px}.hkw-cal-toolbar a,.hkw-cal-toolbar button{font:inherit;text-decoration:none;border:0;background:#fff;color:#52606c;cursor:pointer;border-radius:22px;padding:9px 13px;font-size:13px}.hkw-cal-toolbar .active,.hkw-cal-toolbar a:hover,.hkw-cal-toolbar button:hover{background:#029fc1;color:#fff}.hkw-cal-toolbar .login{margin-left:auto;background:#0099bb;color:#fff}.hkw-cal-panel{background:white;border-radius:24px;box-shadow:0 10px 24px #09506c10;overflow:hidden}.hkw-cal-monthbar{display:flex;align-items:center;justify-content:space-between;padding:19px 20px;gap:10px}.hkw-cal-monthbar h2{font-size:clamp(1.05rem,2vw,1.4rem);margin:0;color:#304458}.hkw-cal-monthbar a{display:flex;align-items:center;gap:4px;border:1px solid #cdd7dd;color:#3c4f5a;padding:7px 13px;border-radius:22px;font-size:13px;text-decoration:none}.hkw-cal-monthbar a:hover{background:#e0f6fb}.hkw-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;background:#f8fafc;padding:16px 18px 20px}.hkw-cal-dow{color:#fff;text-align:center;border-radius:30px;padding:10px 2px;font-weight:600;font-size:13px}.hkw-cal-day{min-height:137px;background:#fff;border:1px solid #edf0f3;border-radius:14px;padding:9px 7px;min-width:0}.hkw-cal-day.blank{background:transparent;border:1px dashed #eef1f4}.hkw-cal-day.today{background:#f1faff;border-color:#badff6}.hkw-cal-number{text-align:right;color:#abb7c1;font-weight:700;font-size:13px;margin-bottom:10px}.hkw-cal-day.today .hkw-cal-number span{display:inline-block;background:#00a0c3;border-radius:50%;color:#fff;width:27px;height:27px;text-align:center;line-height:27px}.hkw-cal-event{display:block;border:0;border-radius:8px;width:100%;text-align:left;padding:5px 7px;margin:4px 0;font:inherit;font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.hkw-cal-event:hover{filter:brightness(.95)}.hkw-cal-legend{display:flex;gap:9px;flex-wrap:wrap;padding:18px 20px}.hkw-cal-legend span{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:#516170}.hkw-cal-legend i{height:10px;width:10px;border-radius:50%}.hkw-cal-modal[hidden]{display:none}.hkw-cal-modal{position:fixed;inset:0;z-index:9999;display:flex;justify-content:center;align-items:center;padding:16px;background:#0f304d99}.hkw-cal-dialog{background:#fff;position:relative;border-radius:20px;box-shadow:0 20px 60px #0003;width:min(460px,100%);padding:26px;max-height:85vh;overflow:auto}.hkw-cal-dialog h3{margin:0 32px 15px 0;font-size:1.3rem;color:#233e55;overflow-wrap:anywhere}.hkw-cal-dialog p{white-space:pre-wrap;overflow-wrap:anywhere}.hkw-cal-dialog small{color:#657b89}.hkw-cal-close{position:absolute;right:12px;top:12px;background:#eff4f8;border:0;border-radius:50%;width:33px;height:33px;cursor:pointer;font-size:20px}.hkw-cal-empty{padding:30px;text-align:center;color:#6a7c86}@media(max-width:760px){.hkw-calendar-page{padding:0 9px}.hkw-cal-toolbar{justify-content:flex-start}.hkw-cal-toolbar .login{margin-left:0}.hkw-cal-grid{gap:3px;padding:8px 5px}.hkw-cal-dow{font-size:10px;padding:8px 0}.hkw-cal-day{min-height:77px;padding:4px 2px;border-radius:8px}.hkw-cal-number{font-size:11px;margin-bottom:5px;padding-right:3px}.hkw-cal-event{font-size:9px;padding:4px 3px;margin:2px 0;border-radius:5px}.hkw-cal-monthbar{padding:14px 8px}.hkw-cal-monthbar a{padding:6px;font-size:11px}.hkw-cal-hero{padding:25px 10px 40px}}@media print{header,footer,.hkw-cal-toolbar,.hkw-cal-monthbar a,.hkw-cal-modal,.to-top{display:none!important}.hkw-calendar-page{max-width:100%;margin:0}.hkw-calendar-hero{padding:12px;box-shadow:none}.hkw-cal-grid{gap:3px}.hkw-cal-day{min-height:105px;break-inside:avoid}.hkw-cal-panel{box-shadow:none}}

.hkw-year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:20px}.hkw-year-month{padding:18px;background:#fff;border:1px solid #e7edf2;border-radius:18px}.hkw-year-month h3{text-align:center;font-size:17px;margin:0 0 12px}.hkw-year-month h3 a{color:#1477ac;text-decoration:none}.hkw-year-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.hkw-year-days>*{min-height:30px;line-height:30px;text-decoration:none;font-size:12px;border-radius:50%}.hkw-year-days b{color:#64748b}.hkw-year-days a{color:#4f6074}.hkw-year-days a.has-event{background:#0aa4c4;color:white;font-weight:700}.hkw-year-days a.is-today{box-shadow:0 0 0 2px #f59e0b}@media(max-width:850px){.hkw-year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.hkw-year-grid{grid-template-columns:1fr;padding:12px}}

/* HKW calendar navy / cyan polished theme, holiday chips */
.hkw-calendar-page{max-width:1230px}.hkw-calendar-hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 75% 0%,#2cdeed55,transparent 49%),linear-gradient(118deg,#072e68 0%,#0863b3 53%,#009ac2 100%);border:1px solid #b5e6fc;color:white;border-radius:23px;padding:40px 20px 53px;box-shadow:0 14px 34px #003c7935,inset 0 1px 0 #ffffff66}.hkw-calendar-hero:before{content:"";position:absolute;inset:-45% auto auto -10%;width:55%;aspect-ratio:1;background:radial-gradient(circle,#ffffff23,transparent 65%);pointer-events:none}.hkw-calendar-hero h1{font-size:clamp(1.4rem,3vw,2.15rem);letter-spacing:.1px;text-shadow:0 3px 15px #00295766;margin:0}.hkw-calendar-hero p{color:#dcefff}.hkw-cal-toolbar{border:1px solid #d8edfc;box-shadow:0 9px 30px #09549c24;backdrop-filter:blur(12px)}.hkw-cal-toolbar .active,.hkw-cal-toolbar a:hover,.hkw-cal-toolbar button:hover,.hkw-cal-toolbar .login{background:linear-gradient(110deg,#073f95,#0484d0);box-shadow:0 4px 12px #0759a643}.hkw-cal-panel{border:1px solid #e4effc;box-shadow:0 16px 45px #0539671e}.hkw-cal-monthbar h2{color:#093b80}.hkw-cal-monthbar a{box-shadow:0 3px 10px #123e6e13}.hkw-cal-grid{background:linear-gradient(#f8fbff,#f4f9ff)}.hkw-cal-day{box-shadow:0 4px 13px #093a7009;border-color:#e3edf9;transition:transform .18s,box-shadow .18s,border-color .18s}.hkw-cal-day:not(.blank):hover{transform:translateY(-2px);border-color:#acd5fc;box-shadow:0 9px 24px #0c548227}.hkw-cal-number{color:#164c99}.hkw-cal-day.has-holiday{background:#fffbfd;border-color:#f3d8e3}.hkw-holiday-tag{background:#ffe6e9;color:#ab2343;border:1px dashed #e7a4b1;font-size:10px}.hkw-holiday-tag.bank{background:#eeeafe;color:#5847ab;border-color:#b5a6ed}.hkw-cal-event:focus-visible{outline:2px solid #006dc0;outline-offset:2px}@media print{.hkw-cal-day{transform:none!important;box-shadow:none!important}.hkw-cal-event{white-space:normal}}

/* Unified public event detail modal */
#hkw-cal-modal .hkw-cal-dialog{width:min(710px,94vw);border:1px solid #a9dfff;border-radius:26px;overflow:hidden;background:linear-gradient(#fff,#f2f8ff);box-shadow:0 30px 85px #01244a80,0 0 30px #10b8ff35;padding:0!important}#hkw-cal-modal .hkw-public-modal-head{display:flex;align-items:center;justify-content:space-between;padding:23px 27px;color:white;font-size:20px;font-weight:700;background:radial-gradient(circle at 90% 0%,#6efaff77,transparent 37%),linear-gradient(110deg,#07359f,#087df6,#07afd5)}#hkw-cal-modal .hkw-cal-close{position:static!important;float:none!important;flex:none;border-radius:50%;color:#fff;background:#0755a3aa;border:1px solid #fff5;font-size:26px;width:38px;height:38px;cursor:pointer}#hkw-cal-modal .hkw-public-modal-content{padding:25px}#hkw-cal-modal .hkw-public-modal-title{display:flex;justify-content:space-between;gap:13px;align-items:start}#hkw-cal-modal h3{font-size:21px;font-weight:700;color:#103b85;margin:0 0 14px}#hkw-cal-modal [data-priority-badge]{white-space:nowrap;border-radius:30px;padding:8px 13px;background:#d1fae5;color:#047857;font-size:12px;font-weight:700}#hkw-cal-modal [data-level="สำคัญมาก"]{background:#fee2e2;color:#b91c1c}#hkw-cal-modal [data-level="สำคัญปานกลาง"]{background:#fff2c6;color:#a85c00}#hkw-cal-modal [data-level="holiday"]{background:#fce7ed;color:#c52d52}#hkw-cal-modal [data-meta]{display:block;background:#e6f1ff;color:#0964c8;padding:10px 15px;border-radius:25px;width:fit-content;max-width:100%;margin-bottom:19px}#hkw-cal-modal .hkw-public-modal-detail{padding:16px 19px;background:#f2f6fb;border-radius:15px;color:#25466f}#hkw-cal-modal .hkw-public-modal-detail p{margin:8px 0 0;white-space:pre-wrap}#hkw-cal-modal .hkw-public-modal-info{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}#hkw-cal-modal .hkw-public-modal-info>div{background:linear-gradient(110deg,#eaf5ff,#f5faff);border-radius:15px;padding:15px}#hkw-cal-modal .hkw-public-modal-info>div+div{background:linear-gradient(110deg,#f0edff,#faf6ff)}#hkw-cal-modal .hkw-public-modal-info b,#hkw-cal-modal .hkw-public-modal-info span{display:block;font-size:13px;color:#144e9e}#hkw-cal-modal .hkw-public-modal-info span{margin-top:5px;font-weight:600;color:#293958}@media(max-width:560px){#hkw-cal-modal .hkw-public-modal-content{padding:16px}#hkw-cal-modal .hkw-public-modal-info{grid-template-columns:1fr}}
