:root{--tblr-font-sans-serif:system-ui,-apple-system,"Noto Sans JP","Yu Gothic",sans-serif}body{font-size:15px;background:#f4f6fa}h1{font-size:26px;line-height:1.4}a,button,input,select{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f59f00;outline-offset:3px}.portal-layout{display:flex;min-height:100vh}.portal-sidebar{width:240px;flex-shrink:0;background:#172b46;color:#d5e0ed;padding:28px 18px;display:flex;flex-direction:column}.portal-brand{display:flex;gap:12px;align-items:center;color:white;font-weight:700;margin-bottom:36px}.portal-brand:hover{color:white}.portal-brand small{display:block;font-size:10px;letter-spacing:2px;opacity:.65;margin-top:6px}.portal-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:#206bc4;color:#fff;font-weight:800;font-size:24px;flex-shrink:0}.portal-nav-label{font-size:12px;color:#9eb1c8;margin:0 12px 10px}.portal-sidebar nav{display:grid;gap:6px}.portal-sidebar nav a{color:#d5e0ed;padding:12px;border-radius:8px}.portal-sidebar nav a:hover,.portal-sidebar nav a[aria-current]{background:#294464;color:#fff;text-decoration:none}.portal-sidebar-bottom{margin-top:auto;padding-top:36px;display:grid;gap:20px}.portal-sidebar-bottom>a{color:#bbcbe0;padding:0 12px}.portal-workspace{flex:1;min-width:0}.portal-topbar{display:flex;justify-content:space-between;gap:16px;padding:20px 32px;background:#fff;border-bottom:1px solid #e2e8f0;overflow-wrap:anywhere}.portal-main{padding:32px;max-width:1500px;margin:auto}.portal-page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}.portal-footer{padding:24px 32px;color:#66758a;font-size:12px}.portal-form{max-width:760px}.portal-login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(130deg,#eaf3fc,#f6f7fb)}.portal-login-card{width:min(440px,calc(100% - 32px));margin:40px auto}.portal-login-brand{display:flex;gap:14px;justify-content:center;align-items:center;margin-bottom:28px;font-size:21px}.portal-skip{position:absolute;top:-100px}.portal-skip:focus{top:8px;left:8px;z-index:100;background:#fff;padding:12px}.home-shell{max-width:900px;margin:0 auto;padding:64px 24px}.home-shell h1{font-size:36px}.home-footer{margin-top:64px;border-top:1px solid #dce3ed;padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media(max-width:900px){.portal-layout{display:block}.portal-sidebar{width:100%;padding:16px}.portal-brand{margin-bottom:16px}.portal-sidebar nav{display:flex;overflow-x:auto}.portal-sidebar nav a{white-space:nowrap}.portal-nav-label{display:none}.portal-sidebar-bottom{padding-top:16px;display:flex;align-items:center;justify-content:space-between}.portal-main{padding:20px 16px}.portal-topbar{padding:16px}.portal-page-heading{align-items:flex-start;flex-wrap:wrap}.portal-footer{padding:24px 16px}}
@media(max-width:480px){h1{font-size:23px}.home-shell{padding-top:36px}.home-shell h1{font-size:28px}.portal-page-heading form{max-width:100%}}
.portal-calendar-filters{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin-bottom:28px}.fc .fc-toolbar-title{font-size:20px}.fc .fc-button{font-size:14px}.fc-event{cursor:pointer}
@media(max-width:480px){.fc .fc-toolbar{flex-direction:column;gap:12px}.fc .fc-toolbar-title{font-size:18px}.fc .fc-col-header-cell-cushion{padding:4px 0;font-size:12px}.portal-calendar-filters>div{flex:1;min-width:120px}.portal-calendar-filters>a{width:100%}}
#weekdays-field>div{display:flex;flex-wrap:wrap;gap:12px}#weekdays-field label{cursor:pointer}
