:root{--bg:#f4f8f5;--ink:#153b33;--muted:#687f74;--surface:#fff;--line:#dbe9df;--accent:#087e6c;--soft:#e8f5ed}*{box-sizing:border-box}html[data-theme=dark]{--bg:#101b22;--ink:#e7f4ec;--muted:#a6c1b3;--surface:#1b3032;--line:#34564b;--accent:#78d9b6;--soft:#28483f;color-scheme:dark}body{margin:0;font-family:Tahoma,Arial,sans-serif;background:radial-gradient(circle at 90% 0%,#8bdeba22,transparent 28rem),var(--bg);color:var(--ink);line-height:1.8}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}header{max-width:1120px;margin:auto;padding:26px 20px;display:flex;justify-content:space-between;align-items:center}.logo{display:flex;gap:10px;align-items:center;font-weight:900;font-size:24px;color:var(--accent)}.logo small{display:block;font-size:10px;color:var(--muted)}.top{display:flex;align-items:center;gap:18px;font-size:13px}.top button,.heading button{border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--surface);color:var(--ink)}main{width:min(1060px,calc(100% - 32px));margin:auto}.hero{text-align:center;padding:45px 0 56px}.badge{display:inline-block;background:var(--soft);color:var(--accent);border-radius:40px;padding:6px 13px;font-size:12px;font-weight:bold}.hero h1{font-size:clamp(30px,5vw,47px);line-height:1.5;margin:15px 0 0}.hero p{color:var(--muted);font-size:14px}.search{display:flex;max-width:690px;margin:30px auto 0;background:var(--surface);padding:8px;border:1px solid var(--line);border-radius:20px;box-shadow:0 20px 55px #174e3012;gap:8px}.search input{flex:1;border:0;background:transparent;color:var(--ink);padding:14px;min-width:0;outline-offset:4px}.search button,.primary,#taskForm button{border:0;border-radius:13px;padding:14px 23px;background:#087c68;color:white;font-weight:700}.privacy{font-size:11px!important}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 14px 40px #244c3010}.heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.heading small{color:var(--accent);font-weight:bold}.heading h2{font-size:20px;margin:2px 0 15px}.heading button{font-size:12px}.week,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.week{font-size:12px;color:var(--muted);padding:15px 0 5px}.days button{border:0;border-radius:10px;background:transparent;color:var(--ink);min-height:42px}.days button:hover{background:var(--soft)}.days button.today{border:1px solid var(--accent)}.days button.selected{background:#087c68;color:white}.days button.holiday{color:#cf4d53}.days button.selected.holiday{color:white}.event{margin-top:18px;background:var(--soft);border-radius:13px;padding:12px;font-size:13px}.event p{margin:5px 0}.event small,.hint,.todos>p,.services p{color:var(--muted);font-size:12px}.todos form{margin-top:16px}.todos label{font-size:12px;display:block;color:var(--muted);font-weight:bold}.todos input{display:block;width:100%;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:11px;margin:5px 0 12px}.row{display:flex;gap:10px}.row label{flex:1;min-width:0}#taskForm button{width:100%;padding:11px}.todo-head{display:flex;justify-content:space-between;align-items:center;margin-top:20px;font-size:13px}.todo-head button{border:1px solid var(--line);background:var(--soft);border-radius:9px;padding:7px;color:var(--ink);font-size:11px}#tasks{padding:0;list-style:none}#tasks li{display:flex;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid var(--line)}#tasks li input{accent-color:#087c68}#tasks li span{flex:1;overflow-wrap:anywhere}#tasks li.done span{text-decoration:line-through;color:var(--muted)}#tasks li button{border:0;background:transparent;color:#c94d53;font-size:12px}.services{margin:18px 0 35px}.services-grid{display:flex;gap:8px;flex-wrap:wrap}.services-grid a{padding:11px 14px;background:var(--soft);border-radius:11px;font-size:13px}.primary{display:inline-block;font-size:13px}footer{border-top:1px solid var(--line);padding:26px 20px;color:var(--muted);text-align:center;font-size:11px}footer span{display:block}.sr{position:absolute;clip:rect(0,0,0,0)}@media(max-width:720px){.grid{grid-template-columns:1fr}.hero{padding:25px 0 30px}.panel{padding:18px}.top{gap:10px}.row{gap:5px}header{padding:16px}}

.event button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:7px;font:inherit;cursor:pointer}.event-note{display:block;margin-top:8px}

.sync-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:16px}.sync-row input{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:9px;direction:ltr}.sync-row button{background:var(--soft);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:9px;cursor:pointer}.sync-row label{font-size:12px}
main{padding-bottom:50px}.grid{margin-top:22px}.sync-panel{margin-top:18px}.action-row{display:flex;gap:8px;flex-wrap:wrap}.action-row button,.event button,.todo-head button,#tasks button{border:1px solid var(--line);background:var(--soft);border-radius:9px;padding:7px 10px;color:var(--ink);font:inherit;cursor:pointer}.state{background:var(--soft);padding:10px;border-radius:10px;font-size:13px}.help{color:var(--muted);font-size:12px}.links{display:flex;gap:15px;flex-wrap:wrap}.links a{color:var(--accent);text-decoration:underline}#tasks li{display:flex;gap:8px;align-items:center;flex-wrap:wrap}#tasks li span{flex:1;min-width:100px}#tasks li input{width:auto;margin:0}#tasks li.done span{text-decoration:line-through;opacity:.7}#tasks li button{font-size:11px}#taskStatus,#syncStatus{overflow-wrap:anywhere}

.notes110{border-top:1px solid var(--line,#dbe9df);margin-top:18px;padding-top:10px}.notes110 h3{font-size:15px}.notes110 form{display:flex;gap:8px;flex-wrap:wrap}.notes110 form label{width:100%}.notes110 input{flex:1;min-width:160px}.notes110 form button,.notes110 li button{border:1px solid var(--line,#dbe9df);border-radius:9px;background:var(--soft,#edf7ee);color:var(--ink,#173b31);padding:7px;font:inherit;cursor:pointer}.notes110 ul{padding:0;list-style:none}.notes110 li{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line,#dbe9df);padding:8px 0}.notes110 li span{flex:1;overflow-wrap:anywhere}
.notes-info112 summary{cursor:pointer;font-size:11px;color:var(--muted)}.notes110 form{align-items:center}.notes110 li .note-actions112{flex:none;display:flex;gap:5px;flex-wrap:wrap}.notes110 li .note-edit112{flex:1;min-width:80px;margin:0}.notes110 .undo112{border:0;background:transparent;color:var(--accent);text-decoration:underline;cursor:pointer}

/* Mobile-first hardening: avoid the visually-hidden label creating horizontal overflow. */
.sr,.notes110 form label.sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.grid,.grid>*{min-width:0}.heading>div,.row>label,.notes110 li,.sync-panel,.event{min-width:0}.event,.notes110 li span,.help,.state,.links a{overflow-wrap:anywhere}.todo-head{display:flex;flex-wrap:wrap;gap:8px}.todo-head strong{flex:1 0 100%}
@media(max-width:540px){main{width:calc(100% - 24px)}header{padding:12px}.panel{padding:15px;border-radius:18px}.heading{align-items:flex-start;flex-wrap:wrap}.heading h2{font-size:18px}.heading button{padding:8px 10px}.week,.days{gap:2px}.days button{min-width:0;min-height:40px;font-size:13px}.row{display:grid;grid-template-columns:1fr;gap:0}.todos input,.notes110 input,.sync-row input{font-size:16px;max-width:100%;min-width:0}.date105-popup{width:min(290px,calc(100vw - 56px))!important;max-width:100%}.action-row button{flex:1 1 140px}.notes110 form input{flex:1 1 150px}.notes110 li{flex-wrap:wrap}.notes110 li span{min-width:100px}.event-note{line-height:1.9}.links{gap:10px}#tasks li{grid-template-columns:24px minmax(0,1fr) auto!important}#tasks li button{white-space:normal}.sync-row input{width:100%}}
@media(max-width:350px){.heading button{padding:7px 8px}.days button{font-size:12px;min-height:38px}.panel{padding:12px}}
