:root{--ink:#14231c;--green:#12372a;--leaf:#436850;--mint:#dce9df;--cream:#f7f4ec;--gold:#d8a448;--red:#a83d3d;--white:#fff;--shadow:0 12px 32px rgba(18,55,42,.1)}*{box-sizing:border-box}html{background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}.app-shell{max-width:560px;min-height:100vh;margin:auto;background:#fbfaf6;box-shadow:0 0 50px #d8d2c5;padding-bottom:90px}.topbar{height:78px;padding:15px 20px;display:flex;align-items:center;justify-content:space-between;background:var(--green);color:white}.topbar strong{font-family:Georgia,serif;font-size:22px}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:800;margin:0 0 3px;color:var(--leaf)}.topbar .eyebrow{color:#9ac3a5}.avatar,.list-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--gold);font-weight:800;color:var(--green)}main{padding:20px}.welcome{background:linear-gradient(135deg,var(--mint),#eef4eb);padding:24px;border-radius:22px;position:relative;overflow:hidden}.welcome:after{content:"";position:absolute;width:130px;height:130px;border:35px solid rgba(67,104,80,.08);border-radius:50%;right:-50px;top:-55px}.welcome p,.welcome span{margin:0;color:#52705f;font-size:13px}.welcome h1{font-family:Georgia,serif;font-size:30px;margin:7px 0}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 26px}.stats article{background:white;padding:17px;border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column}.stats article.accent{background:var(--green);color:white}.stats span,.stats small{font-size:11px;opacity:.7}.stats strong{font-size:21px;margin:9px 0}.section-title{font-family:Georgia,serif;font-size:20px}.next-card{display:flex;gap:16px;background:white;padding:16px;border-radius:18px;box-shadow:var(--shadow)}.date-box{width:58px;height:64px;background:var(--gold);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center}.date-box strong{font-size:25px;line-height:1}.date-box span{font-size:10px;font-weight:800}.next-card h3,.next-card p{margin:2px 0}.next-card p,.next-card small{color:#637269}.quick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.quick a{padding:15px;background:white;border:1px solid #e6e2d8;border-radius:16px;text-decoration:none;font-size:13px;font-weight:700}.quick span{margin-right:6px;color:var(--leaf)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,560px);height:75px;padding:8px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid #e4e1d9;display:flex;justify-content:space-around;z-index:10}.bottom-nav a,.bottom-nav button{width:20%;border:0;background:none;text-decoration:none;color:#879189;font-size:10px;text-align:center}.bottom-nav span{display:block;font-size:22px;height:28px}.bottom-nav .active{color:var(--green);font-weight:800}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.page-head h1{font:30px Georgia,serif;margin:0}.btn{border:0;border-radius:13px;padding:13px 17px;font-weight:800;cursor:pointer}.btn.primary{background:var(--green);color:white;width:100%}.btn.small{width:auto;font-size:12px;padding:10px 13px}.list{display:flex;flex-direction:column;gap:9px}.list article{display:flex;align-items:center;gap:12px;background:white;border-radius:16px;padding:13px;box-shadow:0 4px 15px rgba(20,35,28,.05)}.list article>div:nth-child(2),.report-list article>div{flex:1}.list strong{font-size:14px}.list p{margin:4px 0 0;color:#7b857e;font-size:11px}.badge{font-size:10px;background:#e9ece8;padding:5px 8px;border-radius:20px}.badge.ok{background:var(--mint);color:var(--green)}dialog{width:min(calc(100% - 30px),520px);max-height:88vh;border:0;border-radius:24px;padding:20px;box-shadow:0 25px 70px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(9,25,18,.58);backdrop-filter:blur(3px)}dialog form{display:flex;flex-direction:column;gap:13px}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{font:25px Georgia,serif;margin:0}.dialog-head button{border:0;background:#eee;border-radius:50%;font-size:22px;width:34px;height:34px}.auth-card label,dialog label{font-size:12px;font-weight:700;display:flex;flex-direction:column;gap:6px}input,select,textarea{width:100%;border:1px solid #dcded8;border-radius:11px;padding:12px;background:white;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--leaf);box-shadow:0 0 0 3px rgba(67,104,80,.12)}.form-row{display:grid;grid-template-columns:1fr 2fr;gap:10px}fieldset{border:0;padding:0}legend{font-size:12px;font-weight:700;margin-bottom:7px}.check-list{max-height:180px;overflow:auto;border:1px solid #ddd;border-radius:12px}.check-list label{display:flex;flex-direction:row;align-items:center;padding:10px;border-bottom:1px solid #eee}.check-list input{width:18px}.check-list span{display:flex;flex-direction:column}.check-list small{font-weight:400;color:#777}.timeline{border-left:2px solid #d4ded5;margin-left:9px;padding-left:20px}.timeline article{position:relative;margin-bottom:18px}.dot{position:absolute;width:13px;height:13px;background:var(--gold);border:3px solid #fbfaf6;border-radius:50%;left:-28px;top:2px}.timeline-date{font-size:11px;color:#718077;margin-bottom:6px}.schedule-card{background:white;padding:15px;border-radius:16px;box-shadow:var(--shadow)}.schedule-card p{margin:7px 0;font-size:13px}.schedule-card small{color:#69756e}.date-filter input{width:145px;padding:9px}.collection-list{display:flex;flex-direction:column;gap:10px}.collection-card{display:grid;grid-template-columns:minmax(90px,1.5fr) 75px 85px 38px;gap:7px;align-items:center;background:white;padding:12px;border-radius:15px;box-shadow:0 4px 15px rgba(20,35,28,.05)}.collection-card>div{min-width:0}.collection-card strong,.collection-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collection-card small{font-size:10px;color:#777}.collection-card label{font-size:9px}.collection-card input,.collection-card select{padding:9px 6px;font-size:12px}.collection-card input[name=notes]{display:none}.icon-btn{border:0;background:var(--green);color:white;border-radius:10px;height:36px}.report-total{background:var(--green);color:white;border-radius:22px;padding:22px;margin-bottom:18px}.report-total span{display:block;font-size:12px;opacity:.7}.report-total strong{display:block;font:28px Georgia,serif;margin-top:7px}.empty{padding:25px;text-align:center;color:#788179;border:1px dashed #cdd2cd;border-radius:16px}.alert{padding:12px 14px;border-radius:12px;margin-bottom:15px;font-size:13px}.alert.success{background:#dfeee3;color:#205632}.alert.error{background:#f4dddd;color:#7e2525}.sheet{margin:auto auto 0;width:min(100%,560px);border-radius:24px 24px 0 0}.sheet a,.sheet .logout{display:flex;justify-content:space-between;width:100%;padding:16px 4px;border:0;border-bottom:1px solid #eee;background:none;text-decoration:none}.sheet .logout{color:var(--red)}.auth-body{background:var(--green)}.auth-shell{min-height:100vh;max-width:520px;margin:auto;display:flex;flex-direction:column}.brand-panel{color:white;padding:65px 28px 35px}.brand-panel h1{font:42px Georgia,serif;margin:8px 0}.brand-panel p:last-child{color:#b7c9bc}.brand-mark{width:54px;height:54px;background:var(--gold);color:var(--green);border-radius:17px;display:grid;place-items:center;font-weight:900}.brand-panel .eyebrow{color:#a9c2b0;margin-top:18px}.auth-card{background:var(--cream);padding:30px 25px;flex:1;border-radius:30px 30px 0 0}.auth-card h2{font:28px Georgia,serif;margin:0}.muted{color:#778077;font-size:13px}.auth-card form{display:flex;flex-direction:column;gap:15px;margin-top:24px}@media(max-width:430px){.collection-card{grid-template-columns:1.4fr 70px 77px 35px}.stats strong{font-size:18px}}@media(min-width:700px){.app-shell{margin:24px auto;min-height:calc(100vh - 48px);border-radius:25px;overflow:hidden}.topbar{border-radius:25px 25px 0 0}.bottom-nav{bottom:24px;border-radius:0 0 25px 25px}}
