:root{--bg:#f4f2ee;--paper:#fcfbf8;--ink:#303b3b;--muted:#818b87;--line:#dcded5;--green:#46665b;--night:#485c6b;--light:#a8bec6;--deep:#516f85;--rem:#bdb4b1;--awake:#d5b578}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.65 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;word-break:keep-all}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit}button:disabled{opacity:.4;cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #92aba0;outline-offset:4px}input,select,textarea{border:1px solid #c9cec3;border-radius:4px;background:var(--paper);color:var(--ink);padding:10px;min-width:0}textarea{resize:vertical}input[type=time]{font-variant-numeric:tabular-nums}[hidden]{display:none!important}.skip{position:absolute;top:-50px;z-index:10;background:white;padding:12px}.skip:focus{top:0}header{display:flex;align-items:center;gap:55px;padding:0 6vw;height:86px;border-bottom:1px solid var(--line)}.brand{font-size:25px;letter-spacing:-1px;font-weight:700}.brand span{font-size:10px;font-weight:400;color:var(--muted);letter-spacing:2px;display:block;line-height:1}.gallery{font-size:11px;color:var(--muted);margin-left:auto}nav{display:flex;gap:27px;font-size:12px;color:var(--muted)}nav a{padding:32px 0}nav a.active{color:var(--green);border-bottom:2px solid var(--green)}main{max-width:1300px;margin:auto;padding:42px 5vw 55px}.heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:33px;gap:22px}.heading .label{font-size:10px;letter-spacing:.16em;color:var(--muted);margin-bottom:8px}.heading h1{font-size:32px;font-weight:500;letter-spacing:-1.3px;line-height:1.4}.heading p{font-size:12px;color:#7a8580;margin-top:8px}.heading .sample-note{max-width:215px;color:#808a84;font-size:11px;border-left:1px solid #cbd2c5;padding-left:17px;line-height:1.9}.layout{display:grid;grid-template-columns:minmax(0,1fr) 305px;gap:34px;align-items:start}.night-paper{background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:29px 31px}.date-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.date-nav h2{font-size:14px;font-weight:500}.date-nav .arrows{display:flex;gap:3px}.arrow{width:32px;height:32px;font-size:19px;border:1px solid var(--line);border-radius:50%}.arrow:hover{background:#edf0e8}.duration{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:25px;gap:20px}.duration small{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.duration strong{font-size:47px;font-weight:350;letter-spacing:-2px;line-height:1.1;font-variant-numeric:tabular-nums}.duration strong span{font-size:17px;margin:0 8px 0 3px;letter-spacing:-.5px;color:#7a8580}.rested{font-size:11px;text-align:right;color:var(--green);line-height:1.9}.rested .mood-mark{font-size:22px;display:block;line-height:1.3}.night-meta{display:grid;grid-template-columns:1fr 1fr 1fr;margin-bottom:29px;padding-bottom:23px;border-bottom:1px solid var(--line)}.night-meta>div{border-right:1px solid var(--line);padding-left:21px}.night-meta>div:first-child{padding-left:0}.night-meta>div:last-child{border-right:0}.night-meta span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.night-meta strong{font-size:18px;font-weight:500;font-variant-numeric:tabular-nums}.section-label{display:flex;justify-content:space-between;align-items:center;margin:20px 0 17px;font-size:12px;font-weight:550}.section-label small{font-size:10px;color:var(--muted);font-weight:400}.stage-chart{height:155px;display:flex;align-items:flex-start;position:relative;border-top:1px solid #e4e7df;border-bottom:1px solid #e4e7df;background:repeating-linear-gradient(to bottom,transparent 0,transparent 37px,#e4e7df 38px,transparent 39px);margin-bottom:7px;gap:1px}.segment{height:30px;position:relative;min-width:2px;border-radius:2px;padding:0;transition:filter .15s}.segment:hover,.segment[aria-pressed=true]{filter:brightness(.84)}.segment.awake{margin-top:4px;background:var(--awake)}.segment.rem{margin-top:43px;background:var(--rem)}.segment.light{margin-top:82px;background:var(--light)}.segment.deep{margin-top:121px;background:var(--deep)}.segment:focus-visible{outline-offset:1px;z-index:2}.chart-times{display:flex;justify-content:space-between;font-size:10px;color:#88928b}.stage-labels{display:flex;gap:15px;flex-wrap:wrap;margin-top:19px;font-size:10px;color:#7a8580}.stage-labels span:before{content:"";display:inline-block;width:7px;height:7px;background:var(--light);margin-right:5px;border-radius:1px}.stage-labels .deep:before{background:var(--deep)}.stage-labels .rem:before{background:var(--rem)}.stage-labels .awake:before{background:var(--awake)}.segment-info{font-size:11px;color:#748177;background:#edf0e8;padding:9px 11px;margin-top:14px;min-height:35px}.night-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:22px 0 0}.night-summary dt{font-size:10px;color:#818b85;margin-bottom:4px}.night-summary dd{margin:0;font-size:14px}.note-section{margin-top:25px;border-top:1px solid var(--line);padding-top:22px}.note-section h3{font-size:12px;font-weight:550;margin-bottom:14px}.moods{display:flex;gap:7px;margin-bottom:12px}.moods button{font-size:11px;padding:5px 10px;border:1px solid var(--line);border-radius:15px;color:#79857a}.moods button[aria-pressed=true]{color:var(--green);border-color:#82998b;background:#edf2e9}.note-section textarea{width:100%;font-size:12px;background:transparent;min-height:73px;line-height:1.8}.note-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:11px;gap:15px}.note-bottom small{font-size:10px;color:var(--muted)}.button{font-size:11px;border:1px solid #becbbf;border-radius:4px;padding:8px 12px;background:var(--paper);color:var(--green);font-weight:500}.button:hover{background:#edf1e7}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.button.primary:hover{background:#38564a}.side-section{border-top:2px solid #a3b1a2;padding:20px 0 27px;margin-bottom:17px}.side-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.side-title h2{font-size:14px;font-weight:550}.small-label{font-size:10px;letter-spacing:.08em;color:var(--muted)}.switch{font-size:10px;border-radius:20px;padding:4px 11px;background:#d9ded4;color:#788270}.switch[aria-checked=true]{background:var(--green);color:white}.alarm-time{font-size:43px;line-height:1.1;font-weight:350;letter-spacing:-1.2px;font-variant-numeric:tabular-nums;margin-bottom:10px}.alarm-sub{font-size:11px;color:var(--muted)}.weekdays{display:flex;gap:6px;margin:17px 0 21px}.weekdays span{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;font-size:10px;border:1px solid #d7dfd2;color:#a3aca0}.weekdays .on{background:#e3eadd;border-color:#c2cfba;color:#55704f}.side-actions{display:flex;gap:7px;flex-wrap:wrap}.side-section p.hint{font-size:10px;color:#84907f;line-height:1.9;margin-top:16px}.goal-detail{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #dce1d5;font-size:11px}.goal-detail span{color:var(--muted)}.goal-detail strong{font-weight:550}.goal-progress{margin:20px 0 8px;display:flex;gap:7px}.goal-progress span{height:5px;background:#d7dfd1;flex:1;border-radius:3px}.goal-progress span.hit{background:#688363}.goal-progress-text{font-size:11px;color:#7d8a76;margin-bottom:18px}.archive-note{font-size:11px;color:#889080;border-left:1px solid #bfcdb6;padding:0 0 0 17px;line-height:1.9}.archive-note strong{font-weight:500;color:#617458;display:block;margin-bottom:5px}.week-panel{margin-top:30px;border-top:1px solid #c6d0c0;padding-top:23px}.week-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.week-heading h2{font-size:17px;font-weight:500}.week-heading p{font-size:11px;color:var(--muted);margin-top:5px}.weekly-chart{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:13px;min-height:160px;align-items:end;border-bottom:1px solid #c5d0bd;padding:0 7px 14px}.day-bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px;font-size:10px;color:#8b9684;padding:0 4px}.bar-track{height:110px;width:100%;max-width:46px;background:#e3e8dd;display:flex;align-items:flex-end;position:relative;border-radius:3px 3px 0 0}.bar-fill{width:100%;background:#b5c5af;border-radius:3px 3px 0 0}.day-bar[aria-pressed=true] .bar-fill{background:var(--green)}.day-bar[aria-pressed=true]{color:var(--green);font-weight:650}.bar-value{font-size:10px;color:#7b8772}.week-foot{display:flex;justify-content:space-between;gap:12px;margin-top:13px;font-size:10px;color:var(--muted)}.page-foot{font-size:10px;color:#939b8e;border-top:1px solid var(--line);padding-top:22px;margin-top:40px;display:flex;justify-content:space-between;gap:20px}.page-foot button{text-decoration:underline;font-size:10px;color:#7c8975}.storage-warning{padding:12px 6vw;background:#f3e5c9;color:#806530;font-size:12px}dialog{width:min(450px,calc(100% - 28px));max-height:88dvh;overflow:auto;border:1px solid #bcc8b4;border-radius:7px;padding:0;background:var(--paper);color:var(--ink);box-shadow:0 20px 70px #2633292b}dialog::backdrop{background:#2c3e3660}.dialog-head{padding:21px 24px 15px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:19px;font-weight:500}.dialog-head button{font-size:24px;line-height:1}.form-body{padding:22px 24px;display:grid;gap:20px}.field{display:grid;gap:7px;font-size:12px}.field input,.field select{width:100%}.day-picks{display:flex;gap:6px}.day-picks label{flex:1;text-align:center;font-size:11px}.day-picks input{display:block;width:16px;margin:0 auto 5px;accent-color:var(--green)}.form-hint{font-size:11px;color:#84907c}.dialog-foot{padding:17px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}.error{padding:10px;background:#f2e1d8;color:#8a5a43;font-size:12px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#3d594d;color:white;padding:11px 17px;border-radius:4px;max-width:calc(100% - 30px);font-size:12px;z-index:100}@media(max-width:1050px){.layout{grid-template-columns:minmax(0,1fr) 255px;gap:25px}.night-paper{padding:25px}.night-summary{gap:4px}.night-summary dd{font-size:12px}.stage-labels{gap:10px}main{padding:34px 4vw}}@media(max-width:780px){header{height:75px;padding:0 19px;gap:30px}.brand{font-size:23px}nav{gap:18px;font-size:11px}nav a{padding:26px 0}.gallery{font-size:10px}.heading{display:block;margin-bottom:25px}.heading h1{font-size:29px}.heading .sample-note{max-width:none;margin-top:15px;border:0;padding:0;font-size:10px}.layout{display:block}.night-paper{padding:22px 19px}.duration strong{font-size:44px}.night-meta>div{padding-left:15px}.night-summary{grid-template-columns:repeat(4,1fr)}.night-summary dd{font-size:12px}.stage-chart{height:140px;background-size:100% 35px}.segment{height:26px}.segment.awake{margin-top:4px}.segment.rem{margin-top:38px}.segment.light{margin-top:72px}.segment.deep{margin-top:106px}.side{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:34px}.side-section{margin:0;padding-top:17px}.side-section:last-child{margin:0}.archive-note{grid-column:1/-1}.side-title h2{font-size:12px}.side-title{gap:6px}.weekdays{gap:3px}.weekdays span{width:23px;height:23px;font-size:9px}.alarm-time{font-size:36px}.side-actions{gap:5px}.side-actions .button{font-size:10px;padding:7px 9px}.hint{font-size:10px}.goal-detail{font-size:10px}.goal-progress{gap:4px}.weekly-chart{gap:6px;padding:0 0 12px}.day-bar{padding:0}.week-foot{font-size:9px}.page-foot{display:block;line-height:2}.page-foot button{margin-top:8px}.date-nav{margin-bottom:25px}.heading .label{font-size:9px}.stage-labels{gap:10px;font-size:9px}.segment-info{font-size:10px}.rested{font-size:10px}}@media(max-width:390px){header{gap:21px}.gallery{display:none}.side{gap:15px}.weekdays{gap:2px}.weekdays span{width:21px;height:21px}.duration strong{font-size:39px}.night-summary{grid-template-columns:1fr 1fr;gap:12px}.night-meta strong{font-size:17px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
