*{box-sizing:border-box}body{margin:0;background:#f6f7f2;color:#253c34;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px}.shell{max-width:1120px;margin:auto;padding:0 36px}header{height:88px;border-bottom:1px solid #dce2d8;display:flex;align-items:center;justify-content:space-between}header span{color:#7c887f;font-size:12px}.brand{font-size:20px;font-weight:750;text-decoration:none;color:inherit;letter-spacing:.04em}main{padding-top:42px}.eyebrow{font-size:10px;letter-spacing:.2em;font-weight:750;color:#68866b}h1{font-size:34px;letter-spacing:.04em;margin:12px 0}p{line-height:1.8}.intro>p{color:#7a857c;margin-bottom:30px}.datebar{display:flex;align-items:center;gap:14px;margin-bottom:24px}.datebar label{font-weight:650}.datebar input{width:170px}.datebar span{margin-left:auto;color:#6f8271;font-size:12px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}section{background:#fff;border:1px solid #e0e5dc;border-radius:16px;padding:26px;margin-bottom:22px}h2{font-size:17px;margin:0;font-weight:700}h2 small{font-size:11px;color:#90a083;margin-right:12px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-head>span{color:#899186;font-size:12px}.hint{color:#879083;font-size:12px;margin:10px 0 20px}input,select,textarea,button{font:inherit}input,select,textarea{background:#fafbf8;border:1px solid #dce2d6;border-radius:8px;color:#34483b;padding:11px;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #85a77c;outline-offset:2px}button{cursor:pointer;border:0;border-radius:8px;padding:11px 14px}button:focus-visible,a:focus-visible{outline:2px solid #527d4a;outline-offset:3px}.primary{background:#3e6047;color:white;white-space:nowrap}#add-form{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:8px;padding-bottom:18px;border-bottom:1px solid #edf0e9}.empty{text-align:center;color:#8b9489;padding:28px 10px;line-height:1.9;font-size:13px}.todo{padding:18px 0;border-bottom:1px solid #edf0e9}.todo:last-child{border-bottom:0;padding-bottom:0}.todo-top{display:flex;align-items:center;gap:8px;margin-bottom:12px}.todo-name{font-weight:600;flex:1;overflow-wrap:anywhere}.todo select{padding:6px;font-size:11px;max-width:86px}.delete{padding:4px 8px;background:transparent;color:#8b9286;font-size:20px}.status-buttons{display:flex;gap:7px}.status-buttons button{background:#f3f5ef;color:#7e8978;font-size:12px;padding:8px 16px}.status-buttons .selected{background:#e3eddf;color:#365c38;font-weight:700}.quality{display:flex;gap:10px}.quality button{flex:1;aspect-ratio:1.15;background:#f5f6f1;border:1px solid #e1e6da;color:#839079;font-size:21px}.quality button.selected{background:#e2eddc;border:2px solid #759465;color:#3e5f35}.scale{display:flex;justify-content:space-between;font-size:11px;color:#92988c;margin-top:8px}.memo-label{display:block;font-weight:600;margin:26px 0 10px}.memo-label span{font-size:11px;font-weight:400;color:#92998d;margin-left:8px}textarea{display:block;width:100%;resize:vertical;line-height:1.8}.result{text-align:center;background:#edf2e6;border-color:#dfe7d6;padding-top:28px}.result h2{font-size:14px;margin-top:12px;color:#647b54}.grade{font:500 112px/1.2 Georgia,serif;color:#426638;margin-top:12px}.points strong{font-size:28px;font-weight:650}.points span{color:#88947f;font-size:12px}.result>p{font-size:12px;color:#78886b;min-height:22px;margin-bottom:28px}.metric{display:flex;justify-content:space-between;font-size:12px;text-align:left;margin-top:20px}.metric em{font-style:normal;font-size:10px;color:#87977a;margin-left:8px}.metric b{font-size:13px}.track{height:5px;background:#dce5d2;border-radius:5px;margin-top:12px;overflow:hidden}.track i{display:block;height:100%;width:0;background:#73955f;transition:width .3s}details{font-size:12px;color:#84907d;line-height:1.7;padding:0 10px}summary{cursor:pointer;color:#6d8063}.history{margin-top:8px}.history-row{display:flex;align-items:center;gap:18px;border-bottom:1px solid #edf0e9;padding:18px 0}.history-row:last-child{border:0}.history-grade{display:grid;place-items:center;width:40px;height:40px;background:#eef3e7;border-radius:10px;font:bold 24px Georgia,serif;color:#5c7b46}.history-info{flex:1;min-width:0}.history-date{font-weight:650;background:none;color:#34483b;padding:0;text-align:left}.history-note{color:#8b9386;font-size:12px;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-score{font-weight:700}.history-score span{font-size:11px;font-weight:400;color:#919889}footer{text-align:center;color:#9aa191;font-size:11px;line-height:1.8;padding:12px 0 32px}@media(max-width:800px){.shell{padding:0 20px}.layout{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr;gap:0}.grade{font-size:90px}.result{margin-bottom:14px}details{margin-bottom:22px}main{padding-top:30px}h1{font-size:28px}section{padding:20px}#add-form{grid-template-columns:minmax(0,1fr) 112px}#add-form input{grid-column:1/-1}header{height:72px}.datebar{flex-wrap:wrap}.datebar span{width:100%;margin:0}.quality button{max-height:65px}.status-buttons button{flex:1;padding:9px 6px}}

.status-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.status-buttons button{padding:9px 3px;white-space:nowrap}.calendar{max-width:440px;margin:0 0 24px;padding:16px;background:white;border:1px solid #e0e5dc;border-radius:12px}.calendar-nav{display:flex;align-items:center;gap:8px;margin:16px 0 12px}.calendar-nav strong{flex:1;text-align:center;color:#34483b}.calendar-nav button{background:#eef3e7;color:#3e6047;padding:8px 12px}.calendar-nav button:disabled{opacity:.35;cursor:default}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.calendar-week{margin-bottom:6px;font-size:11px}.calendar-day{position:relative;min-height:42px;background:#f7f8f3;color:#34483b;padding:10px 2px}.calendar-day.selected{background:#3e6047;color:white}.calendar-day.today{box-shadow:inset 0 0 0 2px #8da17e}.calendar-day.recorded:after{content:"";position:absolute;bottom:4px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:currentColor}.calendar-caption{font-size:11px;margin-bottom:0}

.calendar-day:disabled{opacity:.3;cursor:default}
