body{padding-bottom:calc(95px + env(safe-area-inset-bottom))}body.portal-form-active{padding-bottom:0}.portal-tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,650px);padding:9px 20px calc(9px + env(safe-area-inset-bottom));display:flex;justify-content:space-around;background:rgba(237,243,226,.98);box-shadow:0 -4px 28px #061c2340;border-radius:24px 24px 0 0;z-index:70}.portal-tabs button{border:0;background:none;color:#48644f;display:grid;justify-items:center;gap:3px;min-width:110px;font:600 12px system-ui;padding:5px 18px;border-radius:13px}.portal-tabs button[aria-current=page]{background:#204d3b;color:#fff5dc}.portal-tabs svg,.portal-float svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.portal-float{position:fixed;right:max(16px,calc((100vw - 1180px)/2));bottom:calc(105px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;z-index:71}.portal-float button{position:relative;border:1px solid #b7c7aa;background:#edf3df;color:#204d3b;box-shadow:0 4px 16px #102c3455;border-radius:50%;width:53px;height:53px;display:grid;place-items:center}.portal-float #portal-create{background:#204d3b;color:#f9f4de}.portal-float [hidden],#portal-shell[hidden]{display:none!important}#portal-unread{position:absolute;right:-4px;top:-4px;background:#91452d;color:white;border:2px solid #eef3e3;border-radius:30px;min-width:23px;height:23px;font:700 11px system-ui;display:grid;place-items:center;padding:0 3px}.board-intro{padding-bottom:15px}.board-status,.notice-meta{display:flex;justify-content:space-between;align-items:center;gap:12px}.board-status{color:#f3f3db;margin-bottom:20px;font-size:13px}.board-status button{color:#f3f3db}.board-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.board-filters button{padding:11px 16px;font-size:13px}.birthday-card,.notice-card{padding:28px;border-radius:22px}.birthday-card{margin-bottom:24px}.birthday-card h2{font-family:Georgia,serif;font-weight:400;font-size:28px}.birthday-card ul{list-style:none;padding:0;margin:20px 0}.birthday-card li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #82917540}.birthday-card small{color:#5c7159}.board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.notice-card h2{font-family:Georgia,serif;font-size:28px;font-weight:400;line-height:1.2}.notice-excerpt{white-space:pre-wrap;line-height:1.7;overflow-wrap:anywhere}.notice-card .notice-meta:last-child{margin-top:23px;align-items:flex-end}.notice-meta small{font-size:11px}.notice-card .primary{padding:12px 17px;font-size:12px}.unread-dot{width:10px;height:10px;flex-shrink:0;border-radius:50%;background:#8b5129}.birthday-greeting{background:rgba(235,241,207,.96)}.board-help{color:#e9efd9;font-size:12px;margin:30px 75px 0 0}.portal-modal{position:fixed;z-index:300;inset:25px max(16px,calc((100vw - 720px)/2)) calc(25px + env(safe-area-inset-bottom));background:#eef2e5;border:1px solid #c5cfb9;border-radius:22px;box-shadow:0 0 0 100vmax #071b16b8;display:flex;flex-direction:column;color:#233f31;max-width:850px}.portal-modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 22px;border-bottom:1px solid #c6d0bb}.portal-modal h2{font-family:Georgia,serif;font-weight:400;line-height:1.2}.portal-modal-head h2{font-size:25px;margin:0}.portal-modal-head button{padding:9px 13px}.portal-modal-content{padding:22px;overflow:auto;overscroll-behavior:contain}.portal-modal-content p{line-height:1.7}.portal-modal-content label{display:grid;gap:8px;font-size:14px;font-weight:600;margin:17px 0}.portal-modal-content input:not([type=checkbox]),.portal-modal-content select,.portal-modal-content textarea{box-sizing:border-box;width:100%;font:16px system-ui;color:#243d2f;border:1px solid #a9b99c;background:#fbfcf6;padding:13px;border-radius:9px;min-height:47px}.portal-modal-content textarea{resize:vertical}.portal-modal-content button{cursor:pointer}.portal-modal-content .actions{flex-wrap:wrap}.portal-modal-content .support{font-size:12px;line-height:1.6}.portal-modal-open{overflow:hidden}.portal-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.portal-choice{display:grid;gap:14px;margin:25px 0}.portal-choice button{padding:17px}.portal-qr{background:white;border-radius:15px;padding:18px;max-width:340px;margin:25px auto}.portal-qr svg{display:block;width:100%;height:auto}.qr-label{text-align:center;font-size:13px;overflow-wrap:anywhere}.portal-check{display:flex!important;align-items:center}.portal-check input{width:20px;height:20px;accent-color:#204d3b}.notice-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin:25px 0}.notice-attachment{padding:16px 0;border-top:1px solid #b5c3a7}.notice-attachment h3{overflow-wrap:anywhere;font-size:14px}.attachment-image{display:block;width:100%;background:white;border:1px solid #b5c3a7;padding:0;margin:13px 0;cursor:zoom-in}.attachment-image img{display:block;max-width:100%;height:auto;margin:auto}.file-download{display:inline-block;text-decoration:none;font-size:13px;padding:12px;margin:6px 0}.notification-row,.admin-request{border-top:1px solid #c1cbb5;padding:18px 0}.notification-row.unread{border-left:4px solid #386b47;padding-left:12px}.notification-open{border:0;background:none;color:inherit;text-align:left;display:grid;gap:8px;font:14px system-ui;width:100%;padding:0}.notification-open small{color:#64765e}.notification-settings{padding-bottom:15px}.notification-settings>.primary,.notification-settings>.secondary{margin:5px 8px 5px 0}.birthday-row,.editor-file{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #c1cbb5;padding:15px 0}.birthday-row span{flex:1}.birthday-row small{display:block;margin-top:5px}.portal-confirm{position:fixed;z-index:500;inset:0;background:#061c19b0;display:grid;place-items:center;padding:22px}.portal-confirm>div{background:#eef3e3;padding:30px;max-width:460px;border-radius:20px;color:#233f31}.portal-toast{position:fixed;z-index:600;bottom:calc(90px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 40px);background:#f7f3db;color:#214431;box-shadow:0 3px 18px #0005;border-radius:12px;padding:15px 21px;font:14px/1.5 system-ui}.portal-image-viewer{position:fixed;inset:0;z-index:400;background:#e4e9db;color:#20442f;display:flex;flex-direction:column}.portal-image-viewer header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top))}.portal-image-viewer header>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-image-viewer header>div{display:flex;gap:7px}.portal-image-viewer header button{padding:8px 12px}.image-pan{flex:1;overflow:auto;touch-action:none;min-height:0;background:#60735d;padding:12px}.image-pan img{display:block;width:100%;height:auto}.portal-image-viewer>p{text-align:center;font-size:12px;margin:10px 0 calc(10px + env(safe-area-inset-bottom))}.update-banner{position:fixed;z-index:80;top:10px;left:50%;transform:translateX(-50%);width:calc(100% - 35px);max-width:550px;background:#eef3e4;color:#204d3b;border-radius:12px;padding:12px 16px;box-shadow:0 4px 25px #0005;display:flex;gap:15px;align-items:center;font:13px/1.5 system-ui}.update-banner button{white-space:nowrap;padding:9px 15px}.portal-modal button:focus-visible,.portal-tabs button:focus-visible,.portal-float button:focus-visible{outline:3px solid #9b6e39;outline-offset:3px}@media(max-width:680px){.board-grid{grid-template-columns:1fr}.birthday-card,.notice-card{padding:23px}.portal-modal{inset:0;border-radius:0}.portal-modal-head{padding-top:calc(15px + env(safe-area-inset-top))}.portal-modal-content{padding:20px 20px calc(25px + env(safe-area-inset-bottom))}.portal-float{right:13px}.board-filters{padding-right:10px}.portal-toast{bottom:calc(93px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.portal-modal,.portal-tabs{scroll-behavior:auto}}

.notification-inbox-head,.notification-row-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.notification-row-actions{justify-content:flex-start;flex-wrap:wrap;margin-top:10px}.notification-options{border-top:1px solid #becbb3;margin-top:28px;padding-top:18px}.notification-options summary{cursor:pointer;font-size:14px;font-weight:600;padding:8px 0}.notification-options .portal-choice{margin-top:14px}.notification-options .portal-choice button{font-size:13px;padding:14px}#reset-device{color:#7e3e2e}
