/* Cream paper, soft circles, and user-selected decoration. No remote assets. */
:root{--bg:#f9f6ea;--paper:#fffef9;--ink:#514e3d;--muted:#827f6b;--green:#7d8c66;--pale:#eee3b7;--line:#e7e0cc;--rose:#bc8980;--rosep:#f6eae5;--seam:#d7cdb4;--rest:#dce4cf;--backdrop:#f2eac9;--shadow:0 6px 20px #70664c0b}
body[data-theme=pistachio]{--bg:#f3f5ea;--ink:#47503e;--muted:#78816b;--green:#748260;--pale:#dce5c7;--line:#e1e6d5;--rose:#ba8a81;--rosep:#f6eae5;--seam:#c9d1b8;--rest:#f0e5bf;--backdrop:#e4eacb}
body[data-theme=sky]{--bg:#f1f6f7;--ink:#47565a;--muted:#78868a;--green:#698d9b;--pale:#d8e8ec;--line:#e0e9eb;--rose:#bf8c91;--rosep:#f6e9eb;--seam:#bfd0d5;--rest:#f2e5b8;--backdrop:#e0edf0}
body{background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans KR',sans-serif}
body[data-pattern=polka]{background-color:var(--backdrop);background-image:radial-gradient(circle,#ffffff80 2.7px,transparent 3px),radial-gradient(circle,#ffffff80 2.7px,transparent 3px);background-size:28px 28px;background-position:0 0,14px 14px}
body[data-pattern=polka][data-spacing=airy]{background-size:36px 36px;background-position:0 0,18px 18px}
body[data-pattern=clovers]{background-color:var(--backdrop);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill='white' fill-opacity='.5' transform='translate(20 20) rotate(12)'%3E%3Ccircle cx='-3' cy='-3' r='4'/%3E%3Ccircle cx='3' cy='-3' r='4'/%3E%3Ccircle cx='-3' cy='3' r='4'/%3E%3Ccircle cx='3' cy='3' r='4'/%3E%3Crect x='-.6' y='3' width='1.2' height='8' rx='.6'/%3E%3C/g%3E%3C/svg%3E");background-size:40px 40px}
body[data-pattern=clovers][data-spacing=airy]{background-size:52px 52px}
header{border:0;padding:23px 0 13px}.brand{font-size:22px;gap:9px}.brand img{width:38px;height:38px;border-radius:12px}.brand-sub{font-size:12px;color:var(--muted)}.private-label{background:var(--paper);padding:5px 9px;border-radius:15px;font-size:10px;color:var(--muted)}
main{padding-top:22px;padding-bottom:calc(125px + env(safe-area-inset-bottom))}h1{font-size:28px;letter-spacing:-1px;font-weight:650}h2{font-size:17px}.intro{margin-bottom:24px}.intro .muted{font-size:12px;line-height:1.7}.card{background:var(--paper);border:0;border-radius:22px;padding:23px;box-shadow:var(--shadow)}
button{border-radius:13px;background:var(--paper);border-color:var(--line);transition:background .15s}button:hover{background:var(--bg)}button:focus-visible,a:focus-visible{outline-color:var(--green)}.primary,.hero .primary{background:var(--pale);color:var(--ink);border:1px solid var(--seam);border-radius:14px;min-height:49px;box-shadow:none}.primary:hover,.hero .primary:hover{background:var(--rest)}
.hero{background:var(--paper);color:var(--ink);border:0}.hero:after{content:none;display:none}.hero .eyebrow,.hero .hint{color:var(--muted)}.hero-number{font-size:29px;font-weight:650}.hero .primary{margin-top:16px}.hero p{font-size:13px}.badge{background:var(--pale);color:var(--ink);border-radius:18px}.badge.rose{background:var(--rosep);color:var(--ink)}.entry-icon{border-radius:50%;background:var(--pale);color:var(--ink);width:32px;height:32px}.empty{color:var(--muted);padding:20px 0}.section-head{margin-bottom:18px}
input,select,textarea{background:var(--paper);border-color:var(--line);border-radius:11px}input:focus,select:focus,textarea:focus{outline:2px solid var(--seam);outline-offset:2px}.datebar{gap:7px}.datebar button{background:var(--paper);border:0}.datebar .bulk-trigger{color:var(--green)}.datebar input{background:var(--paper)}.segmented button,.bleed-options button{border-radius:13px}.segmented button.selected{background:var(--pale);border-color:var(--seam);color:var(--ink)}.bleed-options button.selected{background:var(--rosep);border-color:var(--rose);color:var(--ink)}.notice{background:var(--bg);color:var(--ink);border-radius:13px;white-space:pre-line}.stat{border-radius:17px;background:var(--pale)}.stat strong{font-size:26px;color:var(--ink)}
nav{bottom:calc(12px + env(safe-area-inset-bottom));width:min(440px,calc(100% - 28px));border:1px solid var(--paper);border-radius:26px;background:var(--paper);padding:7px;gap:4px;box-shadow:0 8px 28px #544c3412;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}nav button{border-radius:19px;min-height:55px;font-size:11px;gap:4px;color:var(--muted)}nav button.active{background:var(--pale);color:var(--ink)}nav button:hover{background:var(--bg)}nav button svg{width:20px;height:20px;stroke-width:1.6}dialog{background:var(--paper);border:1px solid var(--line);border-radius:23px;padding:24px;box-shadow:0 24px 70px #3b35242b}dialog::backdrop{background:#302f2845;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.close{border-radius:50%;background:var(--bg)}#toast{bottom:calc(105px + env(safe-area-inset-bottom));background:var(--ink);border-radius:15px}
.calendar-card{position:relative;border-radius:21px;padding:25px 22px 23px}.calendar-head{margin-bottom:19px}.calendar-head button{border:0;box-shadow:none;background:transparent;display:grid;place-items:center;width:40px;height:40px;min-height:40px;padding:0;border-radius:11px;font-size:20px;color:var(--green)}.calendar-head button:hover{background:var(--bg)}.calendar-head h2{font-size:17px}.calendar-grid{gap:5px}.weekday{font-size:11px;color:var(--muted)}.day{position:relative;background:transparent!important;border:0!important;box-shadow:none!important;min-height:59px;height:59px;padding:4px 0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;border-radius:10px;font-size:13px}.day:hover{background:var(--bg)!important}.date-number{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;flex-shrink:0;color:var(--ink)}.date-number.dose{background:var(--pale)}.date-number.rest{background:var(--rest)}.date-number.missed{background:#f0ddcc}.date-number.uncertain{border:1px dashed var(--seam)}.day.today .date-number{outline:1px solid color-mix(in srgb,var(--green) 42%,var(--paper));outline-offset:2px}.day.future{opacity:.5}.bleed-slot{display:flex;justify-content:center;align-items:center;min-height:6px}.calendar-bleed{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--rose);flex-shrink:0;opacity:1}.calendar-bleed.level1{background:color-mix(in srgb,var(--rose) 30%,var(--paper))}.calendar-bleed.level2{background:color-mix(in srgb,var(--rose) 50%,var(--paper))}.calendar-bleed.level3{background:color-mix(in srgb,var(--rose) 75%,var(--paper))}.calendar-bleed.no-blood{background:transparent;border:1px solid var(--line);box-sizing:border-box}.bleed-dot{width:7px;height:7px;background:var(--rose)}.bleed-dot.level0{background:var(--line)}
.legend{justify-content:center;gap:12px;margin-top:22px;font-size:11px}.legend span,.bleeding-legend span{display:inline-flex;align-items:center;gap:5px}.legend-line{display:inline-block;width:11px;height:11px;border-radius:50%;flex-shrink:0}.legend-line.dose{background:var(--pale)}.legend-line.rest{background:var(--rest)}.legend-line.missed{background:#f0ddcc}.legend-line.uncertain{background:transparent;border:1px dashed var(--seam)}.bleeding-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:18px;padding-top:14px;border-top:1px dashed var(--seam);font-size:11px;color:var(--muted)}.transition-mark{position:absolute;right:1px;top:0;font-size:8px;color:var(--green)}.uncertain-mark{position:absolute;right:1px;bottom:4px;font-size:10px;color:var(--muted)}.regimen-note{background:var(--bg);color:var(--muted);border-radius:10px;padding:10px 12px;font-size:12px;margin:0 0 15px}
body[data-border=stitch] .calendar-card{outline:1px dashed var(--seam);outline-offset:-7px}
body[data-border=airy] .calendar-card:after{content:'';position:absolute;inset:8px;pointer-events:none;border-radius:12px;background:repeating-linear-gradient(90deg,var(--seam) 0 8px,transparent 8px 16px) 9px 0/calc(100% - 18px) 1px no-repeat,repeating-linear-gradient(90deg,var(--seam) 0 8px,transparent 8px 16px) 9px 100%/calc(100% - 18px) 1px no-repeat,repeating-linear-gradient(0deg,var(--seam) 0 8px,transparent 8px 16px) 0 9px/1px calc(100% - 18px) no-repeat,repeating-linear-gradient(0deg,var(--seam) 0 8px,transparent 8px 16px) 100% 9px/1px calc(100% - 18px) no-repeat}
body[data-border=scallop] .calendar-card:after{content:'';position:absolute;inset:7px;border-radius:10px;pointer-events:none;background:radial-gradient(circle at 7px 0,transparent 4.5px,var(--seam) 4.7px 5.7px,transparent 6px) 7px 0/14px 7px repeat-x,radial-gradient(circle at 7px 7px,transparent 4.5px,var(--seam) 4.7px 5.7px,transparent 6px) 7px 100%/14px 7px repeat-x,radial-gradient(circle at 0 7px,transparent 4.5px,var(--seam) 4.7px 5.7px,transparent 6px) 0 7px/7px 14px repeat-y,radial-gradient(circle at 7px 7px,transparent 4.5px,var(--seam) 4.7px 5.7px,transparent 6px) 100% 7px/7px 14px repeat-y}
.look-preview{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:17px 0}.look-preview span{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:18px;font-size:12px}.preview-dose{background:var(--pale)}.preview-rest{background:var(--rest)}.footnote{text-align:left;color:var(--muted)}
@media(min-width:621px){.calendar-grid{max-width:560px;margin:auto}.day{height:69px}.calendar-card{padding:28px 32px}}
@media(max-width:620px){.shell{padding:0 18px}header{padding:20px 0 10px}.card{padding:20px;border-radius:21px}.calendar-card{padding:24px 16px}.calendar-grid{gap:4px}.day{height:52px;min-height:52px}.date-number{width:32px;height:32px}.intro h1{font-size:27px}.hero-number{font-size:27px}.brand-sub{display:none}dialog{padding:21px}.bleed-options{grid-template-columns:repeat(3,minmax(0,1fr))}.stats{gap:7px}}
@media(max-width:350px){.shell{padding:0 12px}.calendar-card{padding:23px 13px}.date-number{width:28px;height:28px}.calendar-grid{gap:3px}.day{font-size:12px}.legend,.bleeding-legend{gap:9px}.brand{font-size:20px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}
@media print{body{background:white!important}.card,.hero{background:white;box-shadow:none;outline:0!important}.calendar-card:after{display:none}main{padding:0}.day{break-inside:avoid}.stat{background:white}}
