.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-art{background:#214f40;padding:64px 70px;color:#f2f7e9;display:flex;flex-direction:column;justify-content:space-between}.auth-brand{font-size:25px;letter-spacing:2px}.auth-brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:12px;color:#b6cda6}.auth-art .eyebrow{color:#b9d28f}.auth-art h1{font-size:43px;line-height:1.6;font-weight:450}.auth-art p{color:#bed0b2;line-height:2.1;font-size:14px}.auth-art>span{font-size:12px;color:#9fba9b}.auth-main{padding:44px;display:grid;place-items:center}.auth-main form{width:100%;max-width:385px}.auth-main h2{font-size:28px}.auth-main label{display:block;font-size:13px;margin-top:23px}.auth-main input{display:block;width:100%;margin-top:10px;padding:13px}.login-types{display:flex;gap:5px;background:#eaf0e2;padding:5px;border-radius:10px;margin:25px 0 15px}.login-types button{flex:1;background:none;border-radius:7px;padding:11px;color:#80916f}.login-types button.active{background:white;color:#285341;box-shadow:0 3px 9px #2538220a}.login-submit{width:100%;margin-top:25px;padding:13px}.demo-hints{border-top:1px solid #e1e7d8;margin-top:28px;padding-top:20px;font-size:11px;color:#8a9780}.demo-hints span{display:block;margin-bottom:12px}.demo-hints button{background:#edf2e6;border-radius:6px;padding:8px 9px;font-size:11px;color:#6b805a;margin:0 6px 8px 0}.personal-shell{max-width:1000px;min-height:100vh;margin:auto;background:#f6f7f1;border-left:1px solid #e5eadd;border-right:1px solid #e5eadd}.personal-header{height:76px;padding:0 36px;border-bottom:1px solid #e4eadd;display:flex;justify-content:space-between;align-items:center;background:#ffffffb8}.personal-header>div{font-size:12px;color:#718367;display:flex;align-items:center;gap:18px}.personal-brand{font-size:21px;font-weight:600;letter-spacing:1px}#personal-content{padding:34px 36px 120px}.personal-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);max-width:1000px;width:100%;background:#fffffff7;border-top:1px solid #e0e7d8;padding:12px 30px 18px;display:flex;z-index:15;box-shadow:0 -6px 24px #24482c04}.personal-nav button{flex:1;background:none;color:#9aa58e;font-size:23px;padding:6px}.personal-nav span{display:block;font-size:12px;margin-top:5px}.personal-nav button.active{color:#235b48}.personal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:26px}.personal-heading h1{font-size:27px;margin:8px 0 12px}.personal-heading .subtle{margin-bottom:0}.personal-hero{background:#e5edda;border:1px solid #dfe8d3;border-radius:20px;padding:32px 35px;position:relative;overflow:hidden}.personal-hero h2{font-size:29px;line-height:1.6;font-weight:500;margin:12px 0}.personal-hero>span{position:absolute;right:45px;top:33px;font-size:112px;color:#8fa66a;transform:rotate(-13deg)}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.action-tile{text-align:left;padding:27px;border:1px solid #dfe6d7;background:white;border-radius:15px;color:#274c38}.action-tile strong{display:block;font-size:20px;margin:17px 0 12px}.action-tile>span{font-size:27px;display:block;color:#80a361}.action-tile p{font-size:12px;color:#839077;line-height:1.9;margin:0}.personal-card{background:white;border:1px solid #e1e7db;border-radius:15px;padding:24px;margin:18px 0}.personal-card h2{font-size:17px;margin-bottom:17px}.personal-card h3{font-size:17px;line-height:1.7;margin-bottom:10px}.personal-card .subtle{font-size:12px}.hours-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.hours-box{padding:20px;border-radius:12px;background:#f0f5e8;color:#6c8259}.hours-box.pending{background:#faf5e8;color:#a19063}.hours-box strong{display:block;font-size:36px;line-height:1.3;margin:12px 0 3px;color:#285542}.hours-box.pending strong{color:#a18a49}.hours-box span,.hours-box small{font-size:12px}.event-card{cursor:pointer}.event-card-header{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.event-card-footer{border-top:1px solid #edf0e7;padding-top:14px;margin-top:18px;display:flex;justify-content:space-between;font-size:12px;color:#809170}.personal-form input,.personal-form textarea,.personal-form select{width:100%;padding:12px}.slot-row{display:grid;grid-template-columns:1fr 20px 1fr 36px;align-items:end;gap:12px;padding:14px;background:#f7f9f2;border-radius:10px;margin:12px 0}.slot-row label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#78896b}.slot-row .remove-slot{background:#f0eae0;color:#a48569;height:41px;border-radius:8px}.slot-row .to{align-self:center;padding-top:20px;color:#95a088}.section-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:12px 0 20px}.section-title h2{margin:0}.map-preview{background:#eff4e5;border:1px dashed #bacdab;border-radius:12px;padding:22px;margin-top:17px;display:flex;align-items:center;justify-content:space-between;gap:12px}.map-preview strong{display:block;font-size:14px;margin-bottom:6px}.map-preview span{font-size:11px;color:#839376}.form-end{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin:25px 0}.mine-filters{display:flex;gap:8px;margin:20px 0;flex-wrap:wrap}.mine-filters button{font-size:12px;background:#eef2e7;color:#7b8e6b;border-radius:20px;padding:9px 16px}.mine-filters button.active{background:#235b48;color:#fff}.roster-scroll{overflow-x:auto;margin:15px -8px 5px;padding:0 8px}.inline-roster{min-width:950px}.inline-roster input{width:100%;min-width:70px;border:1px solid #e0e8d7;font-size:12px;padding:9px 8px}.inline-roster td{padding:10px 5px}.inline-roster th{padding:10px 7px}.inline-roster .blank-row{background:#f3f7eb}.inline-roster .row-actions{display:flex;gap:3px}.inline-roster .row-actions button{white-space:nowrap}.role-owner{background:#e9f0dc;color:#648346}.role-member{background:#eef1f7;color:#748299}.personal-tag{font-size:11px;background:#edf2e7;color:#6f835b;padding:6px 10px;border-radius:6px;white-space:nowrap}.personal-tag.pending{background:#faf0d9;color:#b08a42}.personal-tag.rejected{background:#fcece8;color:#b16e5a}.personal-tag.closed{background:#e1f0e9;color:#4b866b}.session-card{border:1px solid #e2e8dc;border-radius:12px;padding:21px;margin:14px 0}.session-card h3{font-size:15px}.check-actions{display:flex;gap:12px;margin-top:18px}.check-actions button{flex:1}.line-record{display:flex;justify-content:space-between;gap:15px;padding:10px 0;color:#7c8c70;font-size:12px;border-bottom:1px solid #edf0e8}.line-record strong{font-weight:500;color:#42624b}.personal-back{background:none;color:#769265;padding:0;margin-bottom:22px;font-size:12px}.map-picker{position:fixed;inset:0;background:#19322475;z-index:40;display:grid;place-items:center;padding:25px}.map-dialog{width:100%;max-width:820px;background:white;border-radius:17px;overflow:hidden;box-shadow:0 30px 90px #11281740}.map-dialog header{padding:20px 25px;display:flex;justify-content:space-between;align-items:center}.map-dialog h2{font-size:18px;margin:0}.map-canvas{height:420px;background:#e6ecdf}.map-dialog footer{padding:20px 25px}.map-dialog input{width:100%;margin:10px 0}.map-dialog .actions{justify-content:space-between}.profile-summary{display:flex;align-items:center;gap:16px;margin-bottom:25px}.profile-avatar{width:60px;height:60px;display:grid;place-items:center;background:#dfeacd;color:#5c7d43;border-radius:20px;font-size:28px}.profile-summary h2{margin:0 0 8px}.profile-summary p{margin:0}.map-error{font-size:12px;color:#a86e4f;line-height:1.7;min-height:20px}.personal-empty{padding:38px;text-align:center;font-size:13px;line-height:2;color:#8c9980}.form-status{white-space:pre-line}.personal-note{background:#f4f7ed;color:#7c8b69;font-size:12px;line-height:1.9;padding:15px;border-radius:10px;margin:18px 0}.personal-load{padding:80px;text-align:center;color:#819273}
@media(max-width:760px){.auth-page{display:block}.auth-art{display:none}.auth-main{min-height:100vh;padding:28px}.personal-header{height:64px;padding:0 20px}.personal-header>div{gap:7px}.personal-brand{font-size:18px}#personal-content{padding:25px 19px 110px}.personal-heading h1{font-size:23px}.personal-hero{padding:26px}.personal-hero h2{font-size:23px}.personal-hero>span{font-size:82px;right:17px;top:52px}.action-grid{gap:13px}.action-tile{padding:20px 17px}.action-tile strong{font-size:17px}.action-tile p{font-size:11px}.personal-card{padding:20px}.hours-pair{gap:12px}.hours-box{padding:16px}.hours-box strong{font-size:29px}.slot-row{grid-template-columns:1fr 32px;gap:8px}.slot-row label{grid-column:1}.slot-row .to{display:none}.slot-row .remove-slot{grid-column:2;grid-row:1/3;align-self:center}.personal-form .form-grid{grid-template-columns:1fr}.map-picker{padding:12px}.map-canvas{height:340px}.map-dialog footer{padding:16px}.event-card-header{gap:6px}.personal-nav{padding:10px 20px 17px}}

.inline-roster th:last-child,.inline-roster td:last-child{position:sticky;right:0;background:#fff;box-shadow:-5px 0 10px #243e2910;z-index:1}.inline-roster .blank-row td:last-child{background:#f3f7eb}.roster-scroll{scrollbar-width:thin}.personal-shell .toast{bottom:110px}

/* 志工部成员/负责人在个人端的额外入口 */
.work-entry { display:inline-flex; align-items:center; gap:4px; margin-left:10px; padding:5px 12px;
  border-radius:999px; background:var(--brand,#183f38); color:#fff !important; font-size:12.5px;
  text-decoration:none; font-weight:600; }
.work-entry:hover { filter:brightness(1.12); }