:root{--green:#173f35;--green2:#245a49;--gold:#c79b45;--paper:#f4efe4;--ink:#18241f;--muted:#68736c;--white:#fffdf7;--line:#d9d2c3;--red:#a34d43;--shadow:0 24px 70px #102b2340}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--paper);color:var(--ink);line-height:1.6}button,a,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:wait;opacity:.6}.wrap{width:min(1160px,calc(100% - 40px));margin:auto}.top{height:6px;background:linear-gradient(90deg,var(--gold) 0 25%,var(--green) 25% 100%)}nav{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px}.mark{width:48px;height:48px;border:1px solid var(--green);border-radius:50%;display:grid;place-items:center;color:var(--green)}.brand b{font-family:Georgia,serif;font-size:19px;letter-spacing:.02em}.brand small{display:block;color:var(--muted);font-size:11px;letter-spacing:.13em;text-transform:uppercase}.links{display:flex;align-items:center;gap:27px;font-size:14px}.links>a:not(.btn){position:relative}.links>a:not(.btn):after{content:"";height:1px;background:var(--gold);position:absolute;left:0;right:100%;bottom:-5px;transition:.2s}.links>a:hover:after{right:0}.btn{border:0;background:var(--green);color:white;padding:12px 19px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:.2s}.btn:hover{background:var(--green2);transform:translateY(-1px)}.btn.outline{background:transparent;color:var(--green);border:1px solid var(--green)}.btn.outline:hover{background:var(--green);color:white}.btn.gold{background:var(--gold);color:#17261f}.btn.danger{background:transparent;color:var(--red);border:1px solid #a34d4355}.btn.danger:hover{background:var(--red);color:white}.hero{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:center;padding:78px 0 68px}.eyebrow{font-size:12px;letter-spacing:.19em;text-transform:uppercase;color:var(--gold);font-weight:750;margin-bottom:18px}.hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(48px,6.4vw,82px);line-height:.98;letter-spacing:-.035em}.hero h1 em{display:block;color:var(--green);font-weight:400}.lead{max-width:610px;color:#4f5b54;font-size:18px;margin:25px 0 30px}.actions{display:flex;gap:12px;flex-wrap:wrap}.seal{aspect-ratio:1/1.06;background:var(--green);color:var(--paper);padding:34px;position:relative;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.seal:before{content:"";position:absolute;inset:13px;border:1px solid #c79b4570}.seal:after{content:"155";position:absolute;font-family:Georgia,serif;font-size:240px;line-height:1;right:-22px;bottom:-30px;color:#ffffff08}.seal>*{position:relative;z-index:1}.seal .crown{color:var(--gold);font-size:42px}.seal h2{font-family:Georgia,serif;font-size:42px;font-weight:400;line-height:1.08}.seal p{color:#d4ded8;font-size:14px}.seal .meta{display:flex;justify-content:space-between;border-top:1px solid #ffffff2b;padding-top:18px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.strip{background:var(--white);border-block:1px solid var(--line)}.facts{display:grid;grid-template-columns:repeat(4,1fr)}.fact{padding:27px 25px;border-right:1px solid var(--line)}.fact:last-child{border:0}.fact strong{font-family:Georgia,serif;font-size:27px;color:var(--green);display:block}.fact span{font-size:12px;color:var(--muted)}section{padding:75px 0}.section-head{display:flex;justify-content:space-between;gap:25px;align-items:end;margin-bottom:32px}.section-head h2{font-family:Georgia,serif;font-size:40px;font-weight:400;line-height:1.15}.section-head p{max-width:520px;color:var(--muted);font-size:14px}.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.about h2{font-family:Georgia,serif;font-size:43px;font-weight:400;line-height:1.12}.about .copy{font-size:17px;color:#4d5b53}.about .copy p+p{margin-top:18px}.quote{border-left:3px solid var(--gold);padding:5px 0 5px 22px;margin-top:26px;font-family:Georgia,serif;font-size:23px;color:var(--green)}.teams{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--white)}.team{padding:28px 25px;border-right:1px solid var(--line);transition:.2s}.team:last-child{border:0}.team:hover{background:#f8f4e9;transform:translateY(-4px)}.team .num{font-family:Georgia,serif;color:var(--gold);font-size:14px}.team h3{font-family:Georgia,serif;font-size:23px;font-weight:400;margin:25px 0 7px}.team p{font-size:13px;color:var(--muted)}.team .count{display:block;border-top:1px solid var(--line);padding-top:17px;margin-top:22px;font-size:12px}.work{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:var(--white);border:1px solid var(--line);padding:29px;min-height:220px}.card .icon{font-size:27px;color:var(--gold)}.card h3{font-family:Georgia,serif;font-size:24px;font-weight:400;margin:24px 0 9px}.card p{font-size:14px;color:var(--muted)}.join{background:var(--green);color:var(--paper)}.join .wrap{display:flex;align-items:center;justify-content:space-between;gap:40px}.join h2{font-family:Georgia,serif;font-size:42px;font-weight:400}.join p{color:#c9d6d0;margin-top:7px}.join .btn{background:var(--gold);color:var(--green);white-space:nowrap}.socials{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.socials a{border:1px solid #ffffff45;padding:8px 14px;font-size:13px}.socials a:hover{background:#ffffff12}footer{padding:25px 0 35px;color:var(--muted);font-size:12px}.foot{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:22px}.sources a{text-decoration:underline}
/* Logowanie */
.login-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:var(--green);position:relative}.login-page:before{content:"155";position:fixed;font-family:Georgia,serif;font-size:55vw;line-height:1;color:#ffffff05;right:-4vw;bottom:-15vw;pointer-events:none}.login-box{width:min(450px,100%);background:var(--paper);padding:40px;box-shadow:var(--shadow);position:relative}.login-box h1{font-family:Georgia,serif;font-size:36px;font-weight:400;line-height:1.15}.login-box .intro{font-size:14px;color:var(--muted);margin:10px 0 24px}.field label{display:block;font-size:12px;font-weight:700;margin:12px 0 5px}.field input{width:100%;border:1px solid var(--line);background:white;padding:13px;font:inherit}.field input:focus,.toolbar input:focus,.toolbar select:focus,.new-meeting input:focus{outline:2px solid var(--gold);outline-offset:1px}.login-box .btn{width:100%;margin-top:18px}.back-link{display:inline-block;margin-top:20px;font-size:12px;color:var(--muted);text-decoration:underline}.alert{display:none;border-left:3px solid var(--red);background:#a34d430d;color:#76372f;padding:10px 13px;font-size:13px;margin:14px 0}.alert.show{display:block}.privacy-note{font-size:11px!important;color:var(--muted);margin-top:16px}.login-brand{display:flex;justify-content:center;margin-bottom:28px}.login-brand .brand small{color:var(--muted)}
/* Panel — lista harcerzy przychodzi dopiero z autoryzowanego API */
.dashboard{min-height:100vh;background:#f3f0e8}.dash-top{min-height:75px;background:var(--green);color:white;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px max(20px,calc((100% - 1250px)/2))}.dash-top .brand small{color:#b9cbc3}.dash-top .mark{border-color:#c79b45;color:#c79b45}.dash-top .actions{align-items:center}.dash-top .btn{background:#ffffff14;padding:9px 14px}.dash-top .btn.outline{color:var(--paper);border-color:#ffffff55}.dash-top .btn.outline:hover{background:var(--paper);color:var(--green)}.dash-wrap{width:min(1250px,calc(100% - 32px));margin:32px auto 60px}.dash-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.dash-title h1{font-family:Georgia,serif;font-size:37px;font-weight:400}.dash-title p{color:var(--muted);font-size:13px}.title-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat{background:white;border:1px solid var(--line);padding:18px}.stat b{font-family:Georgia,serif;font-size:30px;display:block;color:var(--green)}.stat span{font-size:12px;color:var(--muted)}.toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;background:white;border:1px solid var(--line);padding:17px;margin-bottom:15px}.toolbar label,.new-meeting label{font-size:11px;font-weight:700;display:block;margin-bottom:4px}.toolbar input,.toolbar select,.new-meeting input{padding:10px;border:1px solid var(--line);font:inherit;background:white;max-width:100%}.toolbar select{min-width:270px}.toolbar .spacer{flex:1}.new-meeting{display:none;gap:12px;align-items:end;flex-wrap:wrap;background:var(--white);border:1px solid var(--gold);padding:17px;margin-bottom:15px}.new-meeting.open{display:flex}.attendance-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.roll{background:white;border:1px solid var(--line);padding:0}.roll-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line)}.roll-head h2{font-family:Georgia,serif;font-size:22px;font-weight:400}.roll-head button{border:0;background:none;color:var(--green);font-size:11px;text-decoration:underline}.person{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 18px;border-bottom:1px solid #ece8df;font-size:14px}.person:last-child{border:0}.toggle{display:flex;gap:5px;flex-shrink:0}.toggle button{width:36px;height:31px;border:1px solid var(--line);background:#faf9f5;font-size:11px}.toggle button.present.on{background:var(--green);color:white;border-color:var(--green)}.toggle button.absent.on{background:var(--red);color:white;border-color:var(--red)}.legend{font-size:11px;color:var(--muted);margin-top:14px}.status-line{min-height:25px;font-size:12px;color:var(--muted);margin-bottom:10px}.status-line.error{color:var(--red)}.empty{background:white;border:1px solid var(--line);padding:45px;text-align:center;color:var(--muted)}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#142c24;color:white;padding:12px 20px;opacity:0;transition:.25s;z-index:50;font-size:13px;pointer-events:none;max-width:calc(100% - 30px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.hidden{display:none!important}
@media(max-width:850px){.links>a:not(.btn){display:none}.hero{grid-template-columns:1fr;padding-top:45px;gap:40px}.seal{max-width:480px}.facts{grid-template-columns:1fr 1fr}.fact:nth-child(2){border-right:0}.fact:nth-child(-n+2){border-bottom:1px solid var(--line)}.about{grid-template-columns:1fr;gap:28px}.teams{grid-template-columns:1fr 1fr}.team:nth-child(2){border-right:0}.team:nth-child(-n+2){border-bottom:1px solid var(--line)}.work{grid-template-columns:1fr}.join .wrap{align-items:flex-start;flex-direction:column}.attendance-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.foot{flex-direction:column}.dash-title{align-items:start;flex-direction:column}.title-actions{width:100%}.title-actions .btn{flex:1}}
@media(max-width:520px){.wrap{width:min(100% - 26px,1160px)}nav{height:73px}.brand small{display:none}.links .btn{padding:10px 12px;font-size:12px}.hero h1{font-size:47px}.hero{padding-bottom:45px}.lead{font-size:16px}.facts,.teams{grid-template-columns:1fr}.fact,.team{border-right:0!important;border-bottom:1px solid var(--line)}.fact:last-child,.team:last-child{border-bottom:0}.section-head{align-items:start;flex-direction:column}.toolbar .spacer{display:none}.toolbar .btn,.new-meeting .btn{width:100%}.toolbar>div,.new-meeting>div{width:100%}.toolbar input,.toolbar select,.new-meeting input{width:100%;min-width:0}.dash-top .brand b{font-size:14px}.dash-top .mark{display:none}.dash-top .actions .outline{display:none}.person{padding-left:13px;padding-right:13px;font-size:13px}.login-box{padding:29px 24px}.stats{gap:8px}.stat{padding:14px}.stat b{font-size:26px}.dash-title h1{font-size:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Formularze zakresów, szablonów i szczegółów zbiórki */
.new-meeting.open{display:block}.new-meeting h2{font-family:Georgia,serif;font-size:25px;font-weight:400;margin-bottom:4px}.new-meeting .form-note{font-size:11px;color:var(--muted);margin:5px 0 14px}.new-meeting .form-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.new-meeting .form-field{flex:1;min-width:190px;margin-bottom:13px}.new-meeting .form-field label{display:block}.new-meeting input,.new-meeting select{width:100%}.new-meeting textarea{display:block;width:100%;min-height:95px;resize:vertical;border:1px solid var(--line);background:white;padding:11px;font:inherit}.new-meeting textarea:focus{outline:2px solid var(--gold);outline-offset:1px}.new-meeting .location-line{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:5px;font-size:10px;color:var(--muted)}.new-meeting .location-line button{border:0;background:none;color:var(--green);font-size:10px;text-decoration:underline;padding:0;white-space:nowrap}.new-meeting .form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.template-row{display:grid;grid-template-columns:.85fr 1fr 1.15fr;gap:12px;align-items:end;padding:12px 0;border-top:1px solid #e7e1d5}.template-row:first-child{border-top:0}.template-row h3{font-family:Georgia,serif;font-size:17px;font-weight:400;padding-bottom:10px}.template-row label{font-size:9px;color:var(--muted);margin-bottom:3px}.template-row input{padding:8px;font-size:11px}.meeting-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--white);border:1px solid var(--line);padding:16px 18px;margin-bottom:15px;font-size:13px}.meeting-meta>div{display:grid;grid-template-columns:auto 1fr;gap:3px 12px}.meeting-meta .meta-label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:750}.meeting-meta strong{font-family:Georgia,serif;font-size:17px;font-weight:400}.meeting-meta .btn{white-space:nowrap}
@media(max-width:750px){.template-row{grid-template-columns:1fr 1fr}.template-row h3{grid-column:1/-1;padding-bottom:0}.meeting-meta{align-items:flex-start;flex-direction:column}.meeting-meta .btn{width:100%}}@media(max-width:520px){.new-meeting .form-field{min-width:0;width:100%}.template-row{grid-template-columns:1fr}.new-meeting .form-actions .btn{width:100%}.new-meeting .location-line{align-items:flex-start;flex-direction:column}}
