.admin-app{--blue: var(--navy);color:var(--ink);background:var(--bg);font-family:IBM Plex Sans Thai,Tahoma,sans-serif;font-weight:700}.plan-calendar-design .plan-year-nav label{color:#475569;font-size:13px}.plan-calendar-design .plan-year-nav select{min-width:110px;height:40px;padding:7px 32px 7px 12px;border:1px solid #d7e2eb;border-radius:7px;background:#f8fafc;color:#17324d;font:inherit;font-size:16px}.admin-app .sidebar{color:var(--ink);background:radial-gradient(circle at 0 0,color-mix(in srgb,var(--navy) 8%,transparent),transparent 18rem),#fff;border-right:1px solid var(--line);box-shadow:.5rem 0 2rem #0f2c4e09}.admin-app .sidebar nav a{color:var(--muted)}.admin-app .sidebar nav a:hover,.admin-app .sidebar nav a.active{color:var(--navy);background:color-mix(in srgb,var(--navy) 9%,white)}.admin-app .sidebar nav a.active{box-shadow:inset .1875rem 0 var(--navy),0 .375rem 1rem #0f2c4e12}.admin-app .sidebar-user{border-color:var(--line)}.admin-app .sidebar-user small{color:var(--muted);opacity:1}.admin-app .sidebar-user button{color:var(--ink)}.admin-app .topbar{min-height:5.5rem;padding-top:1.125rem;padding-bottom:1.125rem;background:#fff;border-color:var(--line)}.admin-app .topbar h1,.admin-app .panel h2,.admin-app .section-title{color:var(--navy)}.admin-app .topbar p,.admin-app .muted{color:var(--muted)}.admin-app .panel,.admin-app .card{background:#fff;border-color:var(--line)}.admin-app .btn.primary{color:#fff;background:var(--navy);border-color:var(--navy);box-shadow:none}.admin-app .btn.primary:hover{background:color-mix(in srgb,var(--navy) 88%,black)}.admin-app input:focus,.admin-app select:focus,.admin-app textarea:focus{border-color:var(--navy);box-shadow:0 0 0 .1875rem color-mix(in srgb,var(--navy) 16%,transparent)}.sidebar{transition:width .2s ease,transform .2s ease}.brand{position:relative;justify-content:flex-start;gap:.75rem;width:100%;min-height:5rem;padding:.625rem;background:#fff;border-radius:1rem}.sidebar-logo{object-fit:contain;object-position:left center;width:4.75rem;height:3.75rem}.brand-copy{min-width:0}.brand-copy b,.brand-copy small{display:block;white-space:nowrap}.brand-copy b{color:var(--navy);font-size:.875rem}.brand-copy small{margin-top:.125rem;color:var(--muted);font-size:.6875rem;font-weight:500}.sidebar nav{display:flex;flex-direction:column;gap:.25rem}.sidebar nav a{display:flex;align-items:center;gap:.75rem;min-height:2.875rem;border-radius:.75rem}.sidebar nav a svg{flex:0 0 auto;width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar-section-label{display:block;margin:.875rem .75rem .25rem;color:#94a3b8;font-size:.6875rem;font-weight:700;letter-spacing:.08em}.sidebar-avatar{display:grid;flex:0 0 auto;place-items:center;width:2.375rem;height:2.375rem;color:#fff;background:var(--navy);border-radius:.75rem;font-size:1rem}.sidebar-avatar svg{width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar-collapse{position:absolute;top:5.5rem;right:-.875rem;z-index:2;display:grid;place-items:center;width:1.75rem;height:1.75rem;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:9999px}.sidebar-collapse:hover{color:var(--blue);border-color:var(--blue)}.sidebar-collapse:focus-visible,.menu-toggle:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--blue) 30%,transparent);outline-offset:.125rem}.sidebar-collapse svg,.menu-toggle svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sidebar.is-collapsed{width:5.25rem;padding-inline:.75rem}.sidebar.is-collapsed .brand-copy,.sidebar.is-collapsed .sidebar-user-copy,.sidebar.is-collapsed .sidebar-user form{display:none}.sidebar.is-collapsed .brand{justify-content:center;min-height:3.75rem;padding:.375rem}.sidebar.is-collapsed .sidebar-logo{width:3.75rem;object-position:center}.sidebar.is-collapsed .sidebar-collapse svg{transform:rotate(180deg)}.sidebar.is-collapsed nav a{justify-content:center;padding-inline:.5rem;font-size:1rem}.sidebar.is-collapsed nav a span{display:none}.sidebar.is-collapsed .sidebar-section-label{height:1px;margin:.625rem .25rem;overflow:hidden;padding:0;color:transparent;background:var(--line)}.sidebar.is-collapsed .sidebar-user{justify-content:center;padding-inline:0}.menu-toggle{place-items:center}.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}.dashboard-kpi{--kpi-color: var(--navy);position:relative;isolation:isolate;overflow:hidden;min-height:10rem;padding:1.25rem;background:#fff;border:1px solid var(--line);border-radius:1rem;box-shadow:0 .5rem 1.5rem #0f2c4e0e}.dashboard-kpi:after{position:absolute;z-index:-1;right:-2.5rem;bottom:-3.25rem;width:8rem;height:8rem;content:"";background:color-mix(in srgb,var(--kpi-color) 9%,white);border-radius:9999px}.dashboard-kpi--green{--kpi-color: #15803d}.dashboard-kpi--amber{--kpi-color: #b45309}.dashboard-kpi--blue{--kpi-color: #0369a1}.dashboard-kpi__top{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.875rem}.dashboard-kpi__top i{display:grid;flex:0 0 auto;place-items:center;width:2.5rem;height:2.5rem;color:var(--kpi-color);background:color-mix(in srgb,var(--kpi-color) 10%,white);border-radius:.75rem}.dashboard-kpi__top svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dashboard-kpi strong,.dashboard-kpi small{display:block}.dashboard-kpi strong{margin-top:.5rem;color:var(--navy);font-size:clamp(2rem,3vw,2.75rem);line-height:1.1}.dashboard-kpi small{margin-top:.375rem;color:var(--muted);font-size:.75rem;font-weight:500}.calendar-editor{width:min(44rem,calc(100% - 2rem));max-height:calc(100vh - 2rem);margin:auto;overflow:auto;padding:0;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:1.125rem;box-shadow:0 1.5rem 4rem #06152e40}.calendar-editor::backdrop{background:#06152ead;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.calendar-editor__head{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;background:#fff;border-bottom:1px solid var(--line)}.calendar-editor__head small{display:block;color:var(--blue);font-size:.75rem}.calendar-editor__head h2{margin:.125rem 0 0;color:var(--navy);font-size:1.375rem}.calendar-editor__close{display:grid;flex:0 0 auto;place-items:center;width:2.5rem;height:2.5rem;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:9999px;cursor:pointer;font-size:1.5rem}.calendar-editor__close:hover{color:var(--navy);border-color:var(--navy)}.calendar-editor>form[data-calendar-editor-form]{padding:1.5rem}.calendar-editor__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.calendar-editor__grid .full{grid-column:1 / -1}.calendar-editor__files{padding:.875rem;background:var(--bg);border:1px solid var(--line);border-radius:.75rem}.calendar-editor__files:before{display:block;margin-bottom:.5rem;color:var(--muted);content:"ไฟล์ที่แนบไว้แล้ว";font-size:.75rem}.calendar-editor__files a{display:block;padding:.375rem 0;color:var(--blue);text-decoration:none}.calendar-editor__files a:hover{text-decoration:underline}.calendar-editor__notice{margin:1rem 0 0;padding:.875rem 1rem;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:.75rem}.calendar-editor__actions{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--line)}.calendar-editor__actions [data-editor-delete]{margin-right:auto}.calendar-scope{border:0}.calendar-scope legend{margin-bottom:.75rem;color:var(--navy);font-size:1rem;font-weight:700}.calendar-scope-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.calendar-scope-option{cursor:pointer;display:grid;grid-template-columns:auto 1fr;align-items:flex-start;gap:.75rem;min-height:7rem;padding:1.125rem;border:1px solid var(--line);border-radius:.75rem;background:#fff;transition:border-color .15s ease,background .15s ease}.calendar-scope-option:hover,.calendar-scope-option.is-selected{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 7%,white)}.calendar-scope-option.is-selected{border-width:.125rem}.calendar-scope-option:has(input:focus-visible){outline:.1875rem solid color-mix(in srgb,var(--blue) 20%,transparent)}.calendar-scope-option input{width:1.125rem;height:1.125rem;margin-top:.125rem;accent-color:var(--blue)}.calendar-scope-option span,.calendar-scope-option b,.calendar-scope-option small{display:block}.calendar-scope-option small{margin-top:.25rem;color:var(--muted);font-size:.8125rem;font-weight:500;line-height:1.65}.calendar-scope-title{display:flex!important;justify-content:space-between;align-items:center;gap:.75rem}.calendar-scope-title em{flex:0 0 auto;color:var(--navy);background:color-mix(in srgb,var(--blue) 10%,white);border-radius:9999px;padding:.1875rem .625rem;font-size:.75rem;font-style:normal;font-weight:700}.form-section-title{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;padding-top:1.25rem;border-top:1px solid var(--line);color:var(--navy)}.form-section-title small,.optional-label{color:var(--muted);font-size:.8125rem;font-weight:500}.field-label{gap:.5rem}.field-help{display:block;margin-top:.35rem;color:var(--muted);font-size:.8125rem;font-weight:500}.btn.danger{border-color:#fecaca;color:#b91c1c;background:#fff}.btn.danger:hover{border-color:#dc2626;background:#fef2f2}.table-actions{display:flex;align-items:center;gap:.75rem;white-space:nowrap}.table-actions form,.top-actions form{margin:0}.link-danger{padding:0;border:0;color:#b91c1c;background:transparent;cursor:pointer;font:inherit}.link-danger:hover{text-decoration:underline}.pagination-wrap{margin-top:1rem}.filter-actions{display:flex;align-items:center;gap:.5rem}@media(max-width:640px){.filter-actions{width:100%}.filter-actions .btn{flex:1;text-align:center}}.all-day-option{cursor:pointer;display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border:1px solid var(--line);border-radius:.75rem;background:color-mix(in srgb,var(--bg) 72%,white)}.all-day-option:hover{border-color:var(--blue)}.all-day-option input{width:1.125rem;height:1.125rem;accent-color:var(--blue)}.all-day-option span,.all-day-option b,.all-day-option small{display:block}.all-day-option small{margin-top:.125rem;color:var(--muted);font-size:.8125rem;font-weight:500}.login-page{background:var(--bg)}.login-shell{grid-template-columns:minmax(0,1.35fr) minmax(24rem,.65fr);gap:0;max-width:none;padding:0}.login-story{min-height:100vh;background-image:linear-gradient(color-mix(in srgb,var(--navy) 34%,transparent),color-mix(in srgb,var(--navy) 58%,transparent)),url(https://pbm.snru.ac.th/plan-calendar/build/assets/campus-DhkvNfDE.png);background-position:center;background-size:cover}.login-card{display:flex;min-height:100vh;justify-content:center;flex-direction:column;border-radius:0;padding:clamp(2rem,6vw,5rem);background-color:#fff;background-image:linear-gradient(color-mix(in srgb,var(--line) 42%,transparent) .0625rem,transparent .0625rem),linear-gradient(90deg,color-mix(in srgb,var(--line) 42%,transparent) .0625rem,transparent .0625rem);background-size:2rem 2rem;box-shadow:none}.login-card>*{width:100%;max-width:27rem;margin-inline:auto}.login-logo{object-fit:contain;object-position:left center;height:5.5rem;margin-bottom:2rem}.login-card h1{margin-bottom:2rem;color:var(--navy);font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.3}.login-card .stack{padding:1.5rem;border:1px solid var(--line);border-radius:1rem;background:#fff}@media(max-width:1000px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-collapse{display:none}.sidebar.is-collapsed{width:16.25rem;padding:1.375rem}.sidebar.is-collapsed .brand-copy,.sidebar.is-collapsed .sidebar-user-copy,.sidebar.is-collapsed .sidebar-user form,.sidebar.is-collapsed nav a span{display:block}.sidebar.is-collapsed .brand,.sidebar.is-collapsed nav a{justify-content:flex-start}.sidebar.is-collapsed .brand{min-height:5rem;padding:.625rem}.sidebar.is-collapsed .sidebar-logo{width:4.75rem;object-position:left center}.sidebar.is-collapsed nav a{padding-inline:.75rem;font-size:.875rem}.sidebar.is-collapsed nav a:before{display:none}.login-shell{grid-template-columns:1fr;max-width:none}.login-story{display:block;min-height:15rem}.login-card{min-height:calc(100vh - 15rem)}}@media(max-width:640px){.dashboard-kpis{grid-template-columns:1fr}.dashboard-kpi{min-height:8.75rem}.calendar-editor{width:calc(100% - 1rem);max-height:calc(100vh - 1rem)}.calendar-editor__head,.calendar-editor>form[data-calendar-editor-form]{padding:1rem}.calendar-editor__grid{grid-template-columns:1fr}.calendar-editor__actions{align-items:stretch;flex-direction:column-reverse}.calendar-editor__actions .btn{width:100%;text-align:center}.calendar-editor__actions [data-editor-delete]{margin-right:0}.calendar-scope-options{grid-template-columns:1fr}.form-section-title{align-items:flex-start;flex-direction:column;gap:.25rem}.login-story{min-height:11rem}.login-card{min-height:calc(100vh - 11rem);padding:1.5rem}.login-logo{height:4.5rem;margin-bottom:1.25rem}.login-card h1{margin-bottom:1.25rem}.login-card .stack{padding:1rem}}
