
*{box-sizing:border-box}
:root{
  --green:#4db638;
  --green2:#67b94b;
  --green-dark:#173710;
  --red:#d41515;
  --text:#101010;
  --muted:#6c6c70;
  --line:#dedede;
  --light:#f2f2f2;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:#ececec}
body{margin:0;font-family:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--text);background:#ececec;min-width:320px}
button,input{font:inherit}
.site-page{min-height:100vh;background:#efefef;padding-bottom:98px}
.promo-strip{background:#4ab334;color:#fff;text-align:center;padding:14px 16px;font-size:15px;line-height:1.35}
.site-header{height:88px;background:#fff;display:flex;align-items:center;gap:16px;padding:0 20px;border-bottom:1px solid #ececec}
.menu-btn{width:42px;height:42px;border:0;background:transparent;padding:9px 5px;display:flex;flex-direction:column;justify-content:space-between}
.menu-btn span{height:2px;background:#222;width:100%;border-radius:2px}
.header-logo{height:43px;width:220px;max-width:39vw;object-fit:contain;object-position:left center}
.header-actions{margin-left:auto;display:flex;gap:10px}
.head-btn{height:44px;border-radius:24px;padding:0 18px;display:flex;align-items:center;font-weight:600;font-size:15px}
.head-btn.outline{background:#fff;border:2px solid var(--green)}
.head-btn.fill{background:var(--green);border:2px solid var(--green);color:#fff}
.tabs{display:flex;gap:38px;padding:34px 52px 28px;background:#efefef;font-size:18px;align-items:flex-end}
.tabs span{color:#6e6e6e;font-weight:600}
.tabs strong{font-weight:700;position:relative}
.tabs strong::after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:3px;background:var(--green)}
.content{padding:8px 26px 110px;max-width:760px;margin:0 auto}
.mission-card{background:#fff;border:1px solid #d9d9d9;border-radius:26px;padding:26px}
.hero-banner{height:250px;border-radius:18px;background:
radial-gradient(circle at 78% 36%,rgba(255,213,71,.95),rgba(255,190,0,.12) 20%,transparent 21%),
linear-gradient(135deg,#4a0800 0%,#8b1908 46%,#bd3514 100%);
color:#fff;padding:32px;position:relative;overflow:hidden}
.hero-banner::after{content:"";position:absolute;right:-20px;bottom:-70px;width:220px;height:220px;border-radius:50%;background:rgba(255,207,64,.75);box-shadow:-85px -15px 0 rgba(28,80,167,.46)}
.hero-kicker{font-size:12px;font-weight:800;background:#d51d19;display:inline-block;padding:5px 11px;transform:skew(-8deg)}
.hero-title{font-size:33px;line-height:1.04;font-weight:800;margin-top:18px}
.hero-sub{font-weight:700;font-size:16px;margin-top:9px}
.mission-card h2{font-size:29px;line-height:1.35;color:#d41414;margin:27px 0 18px}
.mission-card p{font-size:18px;line-height:1.7;margin:0 0 28px}
.week-box{background:#f0f0f0;border:1px solid #ddd;border-radius:10px;padding:22px 18px;display:flex;gap:15px;align-items:center}
.week-title{font-size:18px;line-height:1.4;font-weight:700}
.chev{margin-left:auto;font-size:27px}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:92px;background:#46b532;color:#fff;display:flex;justify-content:space-around;align-items:center;padding-bottom:max(8px,env(safe-area-inset-bottom));z-index:4}
.bottom-nav div{display:flex;flex-direction:column;align-items:center;font-size:27px;min-width:0}
.bottom-nav small{font-size:12px;font-weight:600;margin-top:4px}
.seven{font-size:37px!important;font-weight:700}

.overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:20}
.secure-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(750px,calc(100% - 28px));z-index:21;border-radius:12px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.38)}
.modal-titlebar{min-height:120px;background:var(--green2);color:#fff;display:flex;align-items:center;padding:22px 30px;position:relative}
.modal-kicker{font-size:12px;font-weight:700;letter-spacing:.09em;opacity:.92;margin-bottom:5px}
.modal-titlebar h1{margin:0;font-size:29px;line-height:1.18;font-weight:600;letter-spacing:-.01em}
.close-icon{margin-left:auto;width:34px;height:34px;position:relative;flex:0 0 auto}
.close-icon::before,.close-icon::after{content:"";position:absolute;left:16px;top:0;width:2px;height:34px;background:#fff}
.close-icon::before{transform:rotate(45deg)} .close-icon::after{transform:rotate(-45deg)}
.modal-body{background:#f2f2f2;padding:26px 30px 28px}
.security-intro{display:flex;gap:14px;align-items:flex-start;background:#fff;border-radius:12px;padding:15px 16px;margin-bottom:22px}
.shield{width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:#e5f5df;color:#2e8a22;display:grid;place-items:center;font-weight:800}
.security-intro strong{font-size:16px}
.security-intro p{margin:4px 0 0;color:#696969;font-size:13px;line-height:1.45}
.login-form{display:flex;flex-direction:column;gap:28px}
.login-form input{width:100%;height:78px;border:0;border-radius:12px;background:#fff;padding:0 28px;font-size:25px;font-weight:400;color:#555;outline:none;appearance:none;-webkit-appearance:none}
.login-form input::placeholder{color:#5b5b5b;opacity:1}
.login-form input:focus{box-shadow:0 0 0 3px rgba(91,184,67,.24)}
.password-wrap{position:relative}
.password-wrap input{padding-right:94px}
.password-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);height:44px;border:0;background:transparent;color:#2b2b2b;font-weight:600;font-size:13px;padding:0 10px}
.login-submit{height:64px;border:0;border-radius:32px;background:#a8d59a;color:#fff;font-size:20px;font-weight:700;letter-spacing:.01em}
.login-submit:not(:disabled){background:var(--green)}
.modal-divider{height:1px;background:#ddd;margin:26px -30px 18px}
.security-foot{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.foot-item{display:flex;gap:10px;align-items:flex-start;background:#fff;border-radius:11px;padding:12px}
.foot-item span{font-size:18px}
.foot-item strong{font-size:13px;display:block}
.foot-item small{font-size:11px;color:#777;line-height:1.35;display:block;margin-top:2px}
.success{text-align:center;padding:22px 10px 18px}
.success-icon{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:var(--green);color:#fff;font-size:34px;font-weight:800}
.success h2{font-size:23px;margin:0 0 8px}
.success p{font-size:14px;line-height:1.5;color:#666;margin:0 auto;max-width:430px}
.hidden{display:none!important}

/* Admin */
.admin-body{background:#f4f5f4}
.admin-header{background:#fff;padding:18px;border-bottom:1px solid #ddd;display:flex;align-items:center;gap:16px}
.admin-header .logo{width:180px;max-width:45vw;height:auto}
.admin-header h1{font-size:24px;margin:4px 0}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.08em;color:#2c8321}
.admin-wrap{max-width:1180px;margin:0 auto;padding:20px 14px 50px}
.admin-toolbar{display:flex;gap:10px;flex-wrap:wrap}
.admin-toolbar input{flex:1 1 240px;max-width:420px}
.small-btn{min-height:48px;border:0;border-radius:12px;padding:0 18px;background:var(--green);color:#fff;font-weight:800}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.stat{background:#fff;border:1px solid #ddd;border-radius:16px;padding:16px}
.stat span{font-size:30px;font-weight:900;display:block}.stat small{color:#777;font-weight:700}
.table-card{background:#fff;border:1px solid #ddd;border-radius:16px;overflow:hidden}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;min-width:800px}
th,td{padding:13px 12px;text-align:left;border-bottom:1px solid #eee;vertical-align:top;font-size:14px}
th{background:#fafafa;font-size:12px}
.status{display:inline-block;padding:6px 9px;border-radius:16px;font-size:12px;font-weight:800}
.status.pending{background:#fff0bc}.status.done{background:#dff4d7;color:#236b1b}
.action-btn{min-height:38px;border:1px solid var(--green);background:#fff;border-radius:9px;padding:7px 10px;font-weight:700}.danger{border-color:#c44;color:#a22}
.admin-note{font-size:12px;color:#777;margin-top:12px}
.code-cell{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

@media(max-width:680px){
  .promo-strip{font-size:13px;padding:12px 12px}
  .site-header{height:74px;padding:0 13px;gap:10px}
  .header-logo{height:34px;max-width:48vw}
  .head-btn{height:38px;padding:0 12px;font-size:12px}
  .tabs{padding:28px 28px 24px;gap:26px;font-size:16px}
  .content{padding:8px 14px 100px}
  .mission-card{padding:18px;border-radius:22px}
  .hero-banner{height:210px;padding:25px 22px}
  .hero-title{font-size:28px}
  .mission-card h2{font-size:24px}
  .mission-card p{font-size:16px}
  .bottom-nav{height:82px}
  .secure-modal{width:calc(100% - 24px);max-height:calc(100% - 36px);overflow:auto;-webkit-overflow-scrolling:touch}
  .modal-titlebar{min-height:96px;padding:18px 20px}
  .modal-titlebar h1{font-size:20px;max-width:260px}
  .modal-kicker{font-size:10px}
  .modal-body{padding:20px}
  .security-intro{padding:12px;margin-bottom:17px}
  .security-intro p{font-size:12px}
  .login-form{gap:18px}
  .login-form input{height:64px;font-size:20px;padding:0 20px}
  .password-wrap input{padding-right:88px}
  .login-submit{height:56px;font-size:16px}
  .modal-divider{margin:20px -20px 15px}
  .security-foot{grid-template-columns:1fr}
}
@media(max-width:420px){
  .header-actions{gap:6px}
  .head-btn{padding:0 9px;font-size:11px}
  .menu-btn{width:34px}
  .header-logo{max-width:44vw}
  .tabs{padding-left:20px;padding-right:20px}
}


/* CROSS-DEVICE V5 */
html,body{
  width:100%;
  overflow-x:hidden;
}
img,svg,video,canvas{
  max-width:100%;
  height:auto;
}
input,button,textarea,select{
  max-width:100%;
}
input{
  font-size:16px; /* evita lo zoom automatico su iPhone */
}
.secure-modal{
  box-sizing:border-box;
}
@media (min-width: 769px){
  .secure-modal{
    width:min(720px, calc(100% - 48px));
  }
  .modal-body{
    padding:30px 34px 32px;
  }
  .login-form input{
    height:70px;
    font-size:21px;
  }
}
@media (min-width: 1100px){
  .content{
    max-width:980px;
  }
  .secure-modal{
    width:720px;
  }
}
@media (max-width: 380px){
  .promo-strip{
    font-size:12px;
  }
  .modal-titlebar h1{
    font-size:18px;
  }
  .modal-body{
    padding:16px;
  }
  .login-form input{
    height:58px;
    font-size:16px;
  }
  .login-submit{
    font-size:14px;
  }
  .security-intro{
    gap:10px;
  }
}
@supports (padding: max(0px)){
  .site-header{
    padding-left:max(13px, env(safe-area-inset-left));
    padding-right:max(13px, env(safe-area-inset-right));
  }
  .modal-body{
    padding-bottom:max(20px, env(safe-area-inset-bottom));
  }
}
@media (hover:hover) and (pointer:fine){
  .login-submit:hover{
    filter:brightness(.97);
  }
  .head-btn:hover{
    filter:brightness(.98);
  }
}
