:root{--g:#114b36;--g2:#1c6246;--pale:#f5faf7;--cream:#fbf8ef;--ink:#173128;--muted:#607067;--line:#d9e5dd;--gold:#b88a3b;--danger:#a73737;--ok:#2d7d52;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:#eef4f0;color:var(--ink);line-height:1.5}button,input,textarea,select{font:inherit}a{color:var(--g)}[hidden]{display:none!important}
.member-auth-screen{min-height:100vh;display:grid;place-items:center;padding:1.25rem;background:linear-gradient(135deg,#eef4f0,#fbf8ef)}
.member-auth-card{width:min(500px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:2rem;box-shadow:0 22px 60px rgba(17,75,54,.12)}.auth-logo{display:block;width:max-content;margin:0 auto}.auth-logo img,.pending-logo{display:block;width:104px;height:104px;object-fit:contain;margin:0 auto 1rem}.eyebrow{margin:0 0 .35rem;color:var(--g);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.member-auth-card h1{font-size:clamp(2rem,6vw,3rem);line-height:1.05;text-align:center;margin:.2rem 0 .8rem}.member-auth-card>.eyebrow{text-align:center}.auth-intro{text-align:center;color:var(--muted);margin:0 0 1.4rem}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--pale);border-radius:14px;padding:.3rem;margin-bottom:1.25rem}.auth-tab{border:0;background:transparent;padding:.7rem;border-radius:11px;color:var(--muted);font-weight:800;cursor:pointer}.auth-tab.active{background:#fff;color:var(--g);box-shadow:0 3px 10px rgba(17,75,54,.08)}.auth-form{display:grid;gap:1rem}.auth-form h2{margin:0}.auth-form label{display:grid;gap:.35rem;font-weight:800;font-size:.92rem}.auth-form input,.auth-form textarea,.auth-form select,.member-card textarea,.project-card textarea,.poll-card textarea,.duty-card textarea{width:100%;border:1px solid #bdcec3;border-radius:11px;padding:.75rem .85rem;background:#fff;color:var(--ink)}.form-help{margin:0;color:var(--muted);font-size:.88rem}.link-button,.text-action{appearance:none;border:0;background:transparent;color:var(--g);font-weight:800;cursor:pointer;padding:.25rem;text-align:center}.auth-footer{text-align:center;margin:1.3rem 0 0;font-size:.9rem}
.m-btn{appearance:none;border:1px solid var(--g);background:#fff;color:var(--g);padding:.68rem 1rem;border-radius:999px;font-weight:850;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.m-btn.primary{background:var(--g);color:#fff}.m-btn:disabled{opacity:.5;cursor:not-allowed}.m-btn.danger{border-color:#c97b7b;color:var(--danger)}.m-btn.small{padding:.5rem .8rem;font-size:.88rem}.message{padding:.85rem 1rem;border-radius:12px;margin:.8rem 0}.message.info{background:#eef7f1;border-left:4px solid var(--g2)}.message.success{background:#edf8f1;border-left:4px solid var(--ok)}.message.error{background:#fff0f0;border-left:4px solid var(--danger);color:#7c2222}.pending-card{text-align:center}.pending-card .message{text-align:left}.pending-actions{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.member-shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.member-side{background:var(--g);color:#fff;padding:1.35rem 1rem;position:sticky;top:0;height:100vh;overflow:auto}.member-brand{display:flex;gap:.8rem;align-items:center;padding:.4rem .4rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.15)}.member-brand img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:12px}.member-brand strong{display:block}.member-brand small{display:block;color:#cbe0d4;margin-top:.15rem}.member-nav{display:grid;gap:.35rem;margin-top:1rem}.member-nav button{appearance:none;border:0;background:transparent;color:#e7f1eb;text-align:left;padding:.82rem .9rem;border-radius:12px;font-weight:750;cursor:pointer}.member-nav button:hover,.member-nav button.active{background:rgba(255,255,255,.14);color:#fff}.member-side-footer{margin-top:1.5rem;padding:.8rem .5rem;color:#cbe0d4;font-size:.8rem}.member-main{padding:2rem;min-width:0}.member-top{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1.2rem}.member-top h1{margin:0;font-size:clamp(1.9rem,3vw,2.7rem)}.member-top-actions{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.session-user{font-size:.82rem;color:var(--muted);max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-panel{display:none}.member-panel.active{display:block}.panel-head{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:1rem}.panel-head h2{margin:0;font-size:1.65rem}.panel-head p{margin:.25rem 0 0;color:var(--muted)}
.welcome-card{display:grid;grid-template-columns:1fr auto;gap:1.2rem;align-items:center;background:linear-gradient(135deg,#fff,#f4faf6);border:1px solid var(--line);border-radius:20px;padding:1.35rem;margin-bottom:1rem;box-shadow:0 10px 30px rgba(17,75,54,.05)}.welcome-card h2{margin:.15rem 0 .35rem;font-size:1.65rem}.welcome-card p{margin:.2rem 0;color:var(--muted)}.profile-badge{background:var(--g);color:#fff;padding:.85rem 1rem;border-radius:16px;text-align:center;min-width:150px}.profile-badge span{font-weight:900;display:block}.profile-badge small{color:#d7e8df}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem}.stat b{display:block;color:var(--g);font-size:1.9rem;line-height:1}.stat span{display:block;color:var(--muted);font-size:.88rem;margin-top:.35rem}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.member-card,.project-card,.poll-card,.duty-card,.notice-card,.document-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:1.15rem;box-shadow:0 8px 24px rgba(17,75,54,.04)}.section-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.8rem}.section-head h2,.member-card h2{margin:0}.stack-list{display:grid;gap:.8rem}.cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.empty-state{background:#fff;border:1px dashed #b8c9be;border-radius:16px;padding:1.2rem;color:var(--muted);text-align:center}.mini-list{display:grid;gap:.6rem}.mini-item{padding:.75rem;border-radius:12px;background:var(--pale)}.mini-item strong{display:block}.mini-item small{color:var(--muted)}
.badges{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.55rem}.badge{display:inline-flex;align-items:center;background:#edf5f0;color:var(--g);border-radius:999px;padding:.24rem .55rem;font-size:.76rem;font-weight:850}.badge.gold{background:#fff5da;color:#7d5e22}.badge.gray{background:#eef1ef;color:#5f6d66}.badge.pin{background:#e8f5ec}.card-title{margin:.15rem 0 .35rem;font-size:1.18rem}.card-meta{color:var(--muted);font-size:.86rem;margin:.25rem 0}.card-body{color:#33463e;white-space:pre-line}.notice-card.pinned{border-left:5px solid var(--g2)}.document-card{display:flex;flex-direction:column}.document-card .card-actions{margin-top:auto}.card-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:.8rem}.details-block{margin-top:.75rem;padding:.75rem;background:var(--pale);border-radius:12px;white-space:pre-line}
.project-card h3,.poll-card h3,.duty-card h3{margin:.15rem 0 .4rem}.project-form,.poll-form,.duty-form{border-top:1px solid var(--line);padding-top:.9rem;margin-top:.9rem}.field-group{margin-bottom:.8rem}.field-group>strong{display:block;margin-bottom:.4rem}.choice-row{display:flex;flex-wrap:wrap;gap:.55rem}.choice{display:flex;align-items:center;gap:.35rem;border:1px solid var(--line);background:#fbfdfb;padding:.5rem .65rem;border-radius:10px}.choice input{accent-color:var(--g)}.referent{background:var(--pale);padding:.65rem .75rem;border-radius:11px;margin-top:.7rem;font-size:.9rem}.saved-indicator{font-size:.82rem;color:var(--ok);font-weight:800}.closed-indicator{font-size:.82rem;color:var(--muted);font-weight:800}.poll-option-list{display:grid;gap:.5rem;margin:.7rem 0}.poll-option{display:flex;gap:.55rem;align-items:flex-start;padding:.65rem .75rem;border:1px solid var(--line);border-radius:11px;background:#fbfdfb}.poll-option input{margin-top:.22rem;accent-color:var(--g)}.capacity-line{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin:.7rem 0}.capacity-meter{height:8px;flex:1;min-width:140px;background:#e8eeea;border-radius:99px;overflow:hidden}.capacity-meter span{display:block;height:100%;background:var(--g2);border-radius:99px}.capacity-text{font-size:.84rem;color:var(--muted)}.toast{position:fixed;right:1rem;bottom:1rem;background:var(--g);color:#fff;padding:.85rem 1rem;border-radius:12px;box-shadow:0 14px 30px rgba(0,0,0,.16);opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;z-index:30}.toast.show{opacity:1;transform:none}
@media(max-width:980px){.member-shell{grid-template-columns:1fr}.member-side{position:static;height:auto}.member-nav{grid-template-columns:repeat(2,1fr)}.member-main{padding:1rem}.member-top{align-items:flex-start;flex-direction:column}.member-top-actions{justify-content:flex-start}.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.cards-grid{grid-template-columns:1fr}.welcome-card{grid-template-columns:1fr}.profile-badge{justify-self:start}}
@media(max-width:560px){.member-auth-card{padding:1.25rem}.member-nav{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.choice-row{display:grid}.member-top-actions .session-user{width:100%;max-width:none}.m-btn{width:auto}.pending-actions .m-btn{width:100%}}
.resource-source{margin-top:auto;padding-top:.7rem;color:var(--muted);font-size:.9rem}
.carpool-input,.carpool-form input,.carpool-form textarea{width:100%;border:1px solid #bdcec3;border-radius:11px;padding:.75rem .85rem;background:#fff;color:var(--ink)}
.carpool-list{margin:1rem 0}.carpool-editor h3{margin:0 0 .9rem}.carpool-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.carpool-form label{display:grid;gap:.3rem;font-weight:750}.carpool-form .carpool-wide{grid-column:1/-1}.carpool-form .card-actions{margin-top:0}.carpool-card h3{margin:.15rem 0}.carpool-card p{margin:.3rem 0}.carpool-card .card-meta{margin:.35rem 0}.carpool-editor[hidden]{display:none}
.carpool-form .carpool-consent{display:flex;align-items:flex-start;gap:.55rem;font-size:.9rem;font-weight:500}.carpool-form .carpool-consent input{width:auto;margin-top:.25rem;accent-color:var(--g)}
@media(max-width:560px){.carpool-form{grid-template-columns:1fr}}
