*{box-sizing:border-box}body{margin:0;font-family:Noto Sans JP,system-ui,sans-serif;color:#1a1a1a;background:#fff}#root{max-width:720px;margin:0 auto;padding:16px 16px 48px}.header{display:flex;justify-content:space-between;align-items:center;padding:24px 0 40px}.logo-btn{border:none;background:none;padding:0;cursor:pointer}.logo-mark{height:44px;display:block}.menu-btn{border:none;background:none;font-size:1.5em;font-weight:800;padding:4px 8px}.menu-wrap{position:relative;top:-4px}.menu-wrap .menu-btn{position:relative;z-index:11}.menu-panel{position:absolute;top:-12px;right:-12px;z-index:10;width:230px;background:#fff;border:3px solid #1a1a1a;padding:56px 24px 24px 28px;display:grid;gap:14px;justify-items:start;overflow:hidden;max-width:48px;max-height:44px;visibility:hidden;transition:max-width .18s ease-out,max-height .3s ease-out,visibility 0s linear .3s}.menu-panel.open{max-width:230px;max-height:400px;visibility:visible;transition:max-width .18s ease-out,max-height .3s ease-out,visibility 0s}.menu-panel .menu-item{opacity:0;transition:opacity .15s ease-out}.menu-panel.open .menu-item{opacity:1;transition:opacity .15s ease-out .26s}.menu-item{border:none;background:none;display:flex;align-items:center;gap:14px;padding:0;font-size:1.6em;font-weight:800;text-align:left}.menu-check{width:.85em;height:.85em;border:3px solid #1a1a1a;flex:none}.menu-check-on{background:#1a1a1a}button{padding:8px 16px;border:2px solid #1a1a1a;border-radius:0;background:#fff;cursor:pointer;font:inherit;font-weight:500}input{padding:8px 4px;border:none;border-bottom:2px solid #1a1a1a;border-radius:0;background:none;font:inherit;min-width:0}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-bottom:2px solid #1a1a1a;border-radius:0;font:inherit;padding:8px 26px 8px 4px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%231a1a1a'/%3E%3C/svg%3E") no-repeat right 6px center;cursor:pointer}.toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:42px;height:24px;border:2px solid #1a1a1a;border-radius:0;background:#fff;position:relative;cursor:pointer;transition:background .15s;margin:0;flex:none;padding:0}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#1a1a1a;transition:left .15s,background .15s}.toggle:checked{background:#1a1a1a}.toggle:checked:after{left:20px;background:#fff}.toggle:disabled{opacity:.5}.card{padding:24px 0;margin:0;border-bottom:2px solid #1a1a1a}.card:last-child{border-bottom:none}.card-head{display:flex;justify-content:space-between;align-items:center}.card p{margin:6px 0}.row{display:flex;gap:12px;align-items:center}.card+button{margin-top:24px}.row input[type=number],.unit{width:90px}.form-grid{display:grid;gap:10px;margin-bottom:12px}.form-grid label{display:grid;gap:4px;font-size:.9em}.quota{font-size:1.1em}.muted{color:#767676;font-size:.85em}.warn{color:#b00020}.cleared{font-size:.85em;color:#767676}.rest-notice{color:#767676}.weekdays{flex-wrap:wrap}.weekdays label{display:flex;align-items:center;gap:2px}.cycle-n{width:60px}.cal-nav{justify-content:space-between;margin-bottom:8px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-head{text-align:center;font-size:.8em;color:#767676}.cal-day{padding:8px 0;border:1px solid #eee}.cal-rest{background:#f0f0f0;color:#999;text-decoration:line-through}.cal-today{border-color:#1a1a1a}.gauge{display:flex;gap:1px;margin:8px 0}.seg{flex:1;height:12px;border-radius:1px;background:#ececec;transition:background .4s}.seg-on{background:#1a1a1a}.seg-today{background:#2f9e44}.streak{color:#1a1a1a}.timer-display{font-size:3em;text-align:center;font-variant-numeric:tabular-nums;margin:8px 0 4px}.timer-chart{display:flex;align-items:flex-end;gap:2px;height:80px;margin:8px 0}.timer-bar{flex:1;min-height:2px;background:#1a1a1a}.timer-bar.today{background:#2f9e44}.summary-row{font-size:.95em}.summary-done{text-decoration:line-through;color:#767676}.session-list{list-style:none;margin:8px 0;padding:0;display:grid;gap:4px}.session-row{justify-content:space-between}.login{margin-top:24px}.login input[type=email]{flex:1}.logout{justify-content:flex-end;margin-top:16px}.logout button{border-color:#d94f2b;color:#d94f2b}
