:root{--ink:#14201A;--ink-soft:#5C6B62;--ink-faint:#8A988F;--line:#E6E9E6;--line-soft:#F0F2F0;--fairway:#2D6A4F;--fairway-dk:#1B4332;--fairway-deep:#1E4D38;--fairway-soft:#E7F2EC;--cream:#F7F8F6;--paper:#FCFCFB;--gold:#C9A227;--red:#C0392B;--serif:"Fraunces",Georgia,serif;--sans:"Inter",system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0;font-family:var(--sans);-webkit-tap-highlight-color:transparent}body{background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased}button{cursor:pointer;font:inherit}.hero{background:radial-gradient(700px 320px at 85% -20%,rgba(45,106,79,.55),transparent 60%),linear-gradient(165deg,#17382A,var(--ink) 85%);color:#edf2ee;padding:26px 0 74px}.hero-in{max-width:640px;margin:0 auto;padding:0 18px}.hero .brand{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:21px;font-weight:600;opacity:.95}.hero h1{font-family:var(--serif);font-size:clamp(26px,6vw,34px);font-weight:600;letter-spacing:-.01em;margin-top:20px;line-height:1.1}.hero .sub{color:#a8c0b2;font-size:14.5px;margin-top:6px}.wrap{max-width:640px;margin:-46px auto 0;padding:0 14px 60px}.days{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:none}.days::-webkit-scrollbar{display:none}.day{flex:none;width:64px;padding:10px 0 9px;border-radius:14px;border:1px solid var(--line);background:var(--paper);text-align:center;box-shadow:0 1px 2px #14201a0d;transition:border-color .15s,transform .12s}.day:active{transform:scale(.97)}.day .dow{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);font-weight:600}.day .dnum{display:block;font-family:var(--serif);font-size:20px;font-weight:600;margin-top:2px}.day .mon{display:block;font-size:10px;color:var(--ink-faint)}.day.on{background:var(--fairway);border-color:var(--fairway);color:#fff}.day.on .dow,.day.on .mon{color:#ffffffbf}.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 2px #14201a0a,0 10px 28px #14201a0f;padding:18px;margin-top:14px}.empty{padding:26px 10px;text-align:center;color:var(--ink-soft);font-size:14.5px}.gname{font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);margin:6px 0 10px;display:flex;align-items:center;gap:8px}.gname:after{content:"";flex:1;border-top:1px dashed var(--line)}.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:9px;margin-bottom:6px}.time{border:1.5px solid var(--line);background:#fff;border-radius:13px;padding:11px 6px 9px;text-align:center;font-size:15.5px;font-weight:600;transition:border-color .15s,background .15s,transform .1s}.time:active{transform:scale(.97)}.time .left{display:block;font-size:11px;font-weight:500;color:var(--fairway);margin-top:2px}.time.on{border-color:var(--fairway);background:var(--fairway-soft);color:var(--fairway-dk)}.time.full{opacity:.4;pointer-events:none}.sheeth{font-family:var(--serif);font-size:21px;font-weight:600}.sheetsub{color:var(--ink-soft);font-size:13.5px;margin-top:3px}.row{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px}.field{margin-top:14px;flex:1;min-width:130px}.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}.field label em{font-style:normal;font-weight:400;color:var(--ink-faint)}.input{width:100%;padding:13px;border:1.5px solid var(--line);border-radius:12px;font-size:16px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}.input:focus{outline:none;border-color:var(--fairway);box-shadow:0 0 0 3px var(--fairway-soft)}.seg{display:flex;background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:3px;gap:3px}.seg button{flex:1;background:none;border:none;padding:10px 0;border-radius:9px;font-size:15px;font-weight:600;color:var(--ink-soft);min-width:40px}.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px #14201a14}.toggle{display:flex;align-items:center;gap:10px;font-size:15px;margin-top:16px;cursor:pointer;font-weight:500}.toggle input{width:19px;height:19px;accent-color:var(--fairway)}.btn{width:100%;border:none;border-radius:14px;background:var(--fairway);color:#fff;font-size:16.5px;font-weight:600;padding:16px;margin-top:18px;transition:background .15s}.btn:active{background:var(--fairway-dk)}.btn:disabled{opacity:.5}.err{background:#fdecea;color:var(--red);border:1px solid #f3c9c2;border-radius:11px;padding:11px 13px;font-size:13.5px;margin-top:12px}.done{text-align:center;padding:34px 20px 28px}.done .flag{margin:0 auto 10px;display:block}.done .big{font-family:var(--serif);font-size:30px;font-weight:600;color:var(--fairway-dk)}.done .stamp{font-family:var(--serif);font-style:italic;color:var(--gold);margin-top:2px}.dcard{margin:20px auto 0;max-width:360px;text-align:left;border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--cream)}.drow{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:14.5px}.drow+.drow{border-top:1px dashed var(--line)}.drow .k{color:var(--ink-soft)}.drow .v{font-weight:600;text-align:right}.dnote{color:var(--ink-soft);font-size:13px;margin-top:16px}.dnote b{color:var(--fairway-dk)}.linkrow{display:flex;gap:10px;justify-content:center;margin-top:18px;flex-wrap:wrap}.btn.alt{background:#fff;border:1.5px solid var(--line);color:var(--ink);width:auto;padding:12px 20px;font-size:14.5px;margin-top:0;text-decoration:none;display:inline-block;border-radius:12px}.btn.cal{width:auto;padding:12px 20px;font-size:14.5px;margin-top:0;text-decoration:none;display:inline-block;border-radius:12px}.foot{text-align:center;color:var(--ink-faint);font-size:12px;margin-top:34px}.foot a{color:var(--fairway);text-decoration:none;font-weight:500}.home{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(800px 400px at 80% -10%,rgba(45,106,79,.5),transparent 60%),linear-gradient(165deg,#17382a,#14201a 85%)}.homecard{background:var(--paper);border-radius:22px;padding:36px 30px;max-width:420px;width:100%;text-align:center;box-shadow:0 24px 60px #040c0873}.homecard .brand{display:flex;align-items:center;justify-content:center;gap:9px;font-family:var(--serif);font-size:30px;font-weight:600}.homecard p{color:var(--ink-soft);font-size:14.5px;margin-top:10px;line-height:1.55}.homecard code{background:var(--fairway-soft);color:var(--fairway-dk);border-radius:6px;padding:2px 7px;font-size:13px}.homecard a{color:var(--fairway);font-weight:600;text-decoration:none}
