:root{font-family:system-ui,-apple-system,sans-serif;color:#26352e;background:#f5f7f3}*{box-sizing:border-box}body{margin:0}header{background:#e4eee5;padding:24px 5%;}h1{margin:0;font-size:27px}header p{margin:6px 0 0;color:#53665a}main{max-width:1100px;margin:auto;padding:18px}nav{display:flex;gap:7px;overflow:auto;margin-bottom:16px}button,input,select{font:inherit}button{border:0;background:#dce9dd;border-radius:10px;padding:10px 13px;cursor:pointer;color:#26352e}button.active,.primary{background:#376b4c;color:white}.panel{background:white;border:1px solid #e1e8df;border-radius:16px;padding:19px;margin:12px 0;box-shadow:0 2px 7px #20302008}h2{font-size:20px;margin:0 0 12px}h3{font-size:16px;margin:16px 0 8px}.muted,small{color:#6b776e}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{background:#edf3ec;border-radius:12px;padding:14px}.stat strong{display:block;font-size:24px}.item{display:flex;align-items:center;gap:10px;border-bottom:1px solid #eef0ec;padding:11px 0}.item:last-child{border:0}.item span{flex:1}.item input[type=checkbox]{width:20px;height:20px;accent-color:#376b4c}.tag{font-size:12px;background:#edf3ec;border-radius:9px;padding:4px 7px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row input,.row select{min-width:0;flex:1;border:1px solid #cbd9cb;padding:10px;border-radius:9px}.menu{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{background:#f3f7f1;border-radius:12px;padding:10px;min-height:130px}.day b{display:block;margin-bottom:8px}.day p{font-size:13px}.hidden{display:none}.notice{font-size:13px;color:#657568}.danger{background:#f9eae3}footer{padding:18px;text-align:center;color:#69776e;font-size:12px}@media(max-width:700px){.grid,.stats{grid-template-columns:1fr}.menu{grid-template-columns:repeat(2,1fr)}main{padding:12px}header{padding:20px}}.row label input[name]{display:block;width:100%;margin-top:4px}.menu{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.day{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0;padding:14px}
.day b{margin:0}
.day time{display:block;color:#53665a;font-size:13px}
.day p{margin:0;overflow-wrap:anywhere}
.day select{width:100%;min-width:0;margin-top:auto;padding:7px;border:1px solid #cbd9cb;border-radius:8px;background:white;color:inherit;text-overflow:ellipsis}
.day[aria-current=date]{box-shadow:inset 0 0 0 2px #376b4c}details{padding:10px 0;border-bottom:1px solid #e1e8df}
summary{cursor:pointer;min-height:28px;padding:4px}
details .row{margin:8px 0}
.room-panel{padding-left:8px}
.task-editor{margin-left:12px}
.row label{max-width:100%;display:flex;flex-direction:column;gap:4px}
.row label input,.row label select{width:100%;min-width:0}
input[type=number]{max-width:9rem}
button[aria-pressed=true]{background:#376b4c;color:#fff}
@media(max-width:540px){.item{flex-wrap:wrap}.item .row{width:100%}nav button{flex:none}.task-editor{margin-left:4px}}[hidden]{display:none!important}
#login{max-width:460px}
#login label,#setup label{display:block;margin:12px 0}
#login input,#setup input{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid #cbd9cb;border-radius:9px}
#account{justify-content:space-between;margin-bottom:10px}
#sync-status{font-size:14px;color:#53665a}
button,summary{min-height:44px}
button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #376b4c;outline-offset:2px}