:root{--bg: #fff7f9;--bg-dot: #ffe9ef;--ink: #5a3c46;--ink-soft: #a3808d;--ink-faint: #b39aa5;--accent: #ff8fab;--accent-deep: #f06a92;--accent-mid: #ffb6c9;--accent-soft: #ffe4ec;--accent-tint: #ffd0de;--box-tint: 255, 211, 222;--card: #ffffff;--on-accent: #ffffff;--ink-rgb: 90, 60, 70;--accent-deep-rgb: 240, 106, 146;--shadow-rgb: 160, 110, 130;--line-rgb: 200, 150, 165;--well-tint: #fdf1f4;--handle: #eed7de;--pill-body: #fffdfa;--blush: #ffb3c1;--empty-tint: #f3e8ec;--empty-line: #e2cdd6;--radius: 20px}[data-theme=rose]{--accent: #ee7aa6;--accent-deep: #c14d7d;--accent-mid: #f4a7c4;--accent-soft: #fbe4ee;--accent-tint: #f6cfe0;--box-tint: 249, 208, 224;--bg: #fdf7f5;--bg-dot: #fff0f4;--accent-deep-rgb: 193, 77, 125;--shadow-rgb: 170, 110, 135;--line-rgb: 205, 150, 175;--well-tint: #fdf1f5;--blush: #f7b5cd;--empty-tint: #f2e6ec;--empty-line: #e2ccd7;--handle: #eed4de}[data-theme=lavender]{--accent: #b88dc8;--accent-deep: #8e5fa0;--accent-mid: #d0b4dc;--accent-soft: #efe6f4;--accent-tint: #e0cdea;--box-tint: 230, 215, 236;--bg: #fcf6f9;--bg-dot: #f2e9f3;--accent-deep-rgb: 142, 95, 160;--shadow-rgb: 130, 105, 150;--line-rgb: 165, 140, 185;--well-tint: #f8f2fb;--blush: #d6b0e0;--empty-tint: #ece4f0;--empty-line: #d8cbe0;--handle: #e2d4ea}[data-theme=mint]{--accent: #7fb89b;--accent-deep: #4f8870;--accent-mid: #a6d2be;--accent-soft: #e4f1ea;--accent-tint: #cde5d8;--box-tint: 210, 230, 220;--bg: #f7faf0;--bg-dot: #edf2e2;--accent-deep-rgb: 79, 136, 112;--shadow-rgb: 95, 130, 112;--line-rgb: 130, 175, 150;--well-tint: #f2f8f2;--blush: #a8dcc2;--empty-tint: #e4efe6;--empty-line: #cfe0d3;--handle: #d4e6da}[data-theme=butter]{--accent: #d99b4d;--accent-deep: #a87030;--accent-mid: #ecc487;--accent-soft: #f7ecd6;--accent-tint: #eeddbf;--box-tint: 242, 220, 193;--bg: #fbf8ea;--bg-dot: #f5ecd0;--accent-deep-rgb: 168, 112, 48;--shadow-rgb: 155, 125, 85;--line-rgb: 195, 165, 120;--well-tint: #fbf6e8;--blush: #f0c98a;--empty-tint: #f0e9d8;--empty-line: #e0d4bc;--handle: #ece0c8}[data-theme=sky]{--accent: #6ba5d4;--accent-deep: #3e7aae;--accent-mid: #a0c8e6;--accent-soft: #e2eef7;--accent-tint: #cbe0f0;--box-tint: 203, 224, 240;--bg: #f6f8fc;--bg-dot: #ecf1f6;--accent-deep-rgb: 62, 122, 174;--shadow-rgb: 100, 125, 155;--line-rgb: 140, 170, 200;--well-tint: #f1f6fb;--blush: #9cc6e8;--empty-tint: #e4ebf1;--empty-line: #cdd8e2;--handle: #d4e2ee}.pill-body{fill:var(--pill-body)}.pill-outline{stroke:rgba(var(--ink-rgb),.18)}.pill-face{fill:var(--ink)}.pill-mouth{stroke:var(--ink)}.pill-blush{fill:var(--blush)}.empty-pill-body{fill:var(--empty-tint);stroke:var(--empty-line)}.empty-pill-face{fill:var(--ink-faint)}.empty-pill-mouth{stroke:var(--ink-faint)}:focus-visible{outline:3px solid var(--accent-deep);outline-offset:2px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,system-ui,sans-serif;color:var(--ink);background:radial-gradient(var(--bg-dot) 12%,transparent 13%) 0 0 / 28px 28px,var(--bg);min-height:100dvh}button{font-family:inherit;color:inherit;border:none;background:none;cursor:pointer;padding:0}.app{position:relative;max-width:430px;margin:0 auto;padding:12px 18px calc(104px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:18px}.goal-banner{display:flex;justify-content:center}.goal-bubble{position:relative;background:var(--card);border:2px solid var(--accent);border-radius:24px;padding:14px 18px;box-shadow:0 4px rgba(var(--accent-deep-rgb),.25);display:flex;align-items:center;gap:10px;max-width:100%;transition:transform .15s ease}.goal-bubble:active{transform:scale(.97)}.goal-bubble:after{content:"";position:absolute;bottom:-10px;left:32px;width:16px;height:16px;background:var(--card);border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg) skew(8deg,8deg);border-bottom-right-radius:4px}.goal-text{font-size:16px;font-weight:700;line-height:1.35;word-break:keep-all}.goal-edit{font-size:14px;flex-shrink:0;opacity:.75}.progress{display:flex;flex-direction:column;gap:8px;padding:0 4px}.progress-label{font-size:18px;text-align:center}.progress-label strong{font-size:24px;color:var(--accent-deep)}.progress-done{font-weight:800;color:var(--accent-deep)}.progress-track{height:14px;border-radius:999px;background:var(--accent-soft);border:1.5px solid var(--accent-tint);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent-mid),var(--accent-deep));transition:width .5s cubic-bezier(.34,1.56,.64,1)}.pillbox-tray{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px 14px 18px;border-radius:26px;background:linear-gradient(165deg,rgba(var(--box-tint),.55),rgba(var(--box-tint),.85));border:2px solid rgba(var(--box-tint),1);box-shadow:inset 0 2px 6px #fffc,0 8px 20px rgba(var(--accent-deep-rgb),.18)}.compartment{display:flex;flex-direction:column;gap:6px;min-width:0}.cell{position:relative;width:100%;aspect-ratio:1 / .92;perspective:480px;transition:transform .15s ease}.compartment:active .cell{transform:scale(.96)}.compartment.dragging .cell{transform:none}.well{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;background:linear-gradient(170deg,var(--card),var(--well-tint));border:1.5px solid rgba(var(--line-rgb),.35);box-shadow:inset 0 3px 8px rgba(var(--shadow-rgb),.18);display:flex;align-items:center;justify-content:center;overflow:hidden}.pill-wrap{width:68%;display:flex}.pill-svg{width:100%;height:auto;filter:drop-shadow(0 2px 2px rgba(var(--shadow-rgb),.25))}.compartment.taken .pill-wrap{animation:pill-eaten .55s cubic-bezier(.4,0,.7,1) .12s forwards}@keyframes pill-eaten{0%{transform:translateY(0) scale(1) rotate(0);opacity:1}35%{transform:translateY(-16px) scale(1.1) rotate(-8deg);opacity:1}to{transform:translateY(-30px) scale(.05) rotate(24deg);opacity:0}}.well-check{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900;color:var(--accent-deep);opacity:0;transform:scale(.3);transition:opacity .25s ease .45s,transform .35s cubic-bezier(.34,1.56,.64,1) .45s}.compartment.taken .well-check{opacity:1;transform:scale(1)}.lid{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;background:linear-gradient(170deg,rgba(var(--box-tint),.72),rgba(var(--box-tint),.5));border:1.5px solid rgba(var(--box-tint),.95);box-shadow:inset 0 2px 4px #ffffffb3,0 2px 5px rgba(var(--shadow-rgb),.2);display:flex;align-items:center;justify-content:center;transform-origin:top center;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.34,1.56,.64,1);backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px)}.compartment:active .lid{transform:rotateX(-14deg)}.compartment.taken .lid{transform:rotateX(-124deg)}.lid-number{font-size:22px;font-weight:800;color:rgba(var(--accent-deep-rgb),.85);text-shadow:0 1px 0 rgba(255,255,255,.8)}.compartment-label{font-size:11.5px;font-weight:600;color:var(--ink-soft);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-emoji{margin-right:2px}.pillbox-empty{border-radius:26px;background:rgba(var(--box-tint),.35);border:2px dashed rgba(var(--box-tint),1);padding:30px 20px;text-align:center;color:var(--ink-soft);font-size:15px;line-height:1.6;word-break:keep-all}.empty-pill{width:90px;margin-bottom:6px}.med-manager{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:0 4px 14px rgba(var(--accent-deep-rgb),.1)}.med-header{display:flex;align-items:center;justify-content:space-between}.med-header h2{margin:0;font-size:17px}.btn-add{background:var(--accent);color:var(--on-accent);font-weight:700;font-size:14px;padding:8px 14px;border-radius:999px;box-shadow:0 3px rgba(var(--accent-deep-rgb),.4);transition:transform .15s ease}.btn-add:active{transform:scale(.95)}.med-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.med-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--bg);border:1.5px solid var(--accent-soft)}.med-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.med-name{font-weight:700;font-size:15px}.med-slots{font-size:12px;color:var(--ink-soft);margin-left:auto}.med-remove{font-size:15px;opacity:.55;padding:4px}.sheet-layer{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;z-index:50}.sheet-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(var(--ink-rgb),.35);opacity:0}.sheet{position:relative;width:100%;max-width:430px;background:var(--card);border-radius:24px 24px 0 0;padding:0 20px calc(24px + env(safe-area-inset-bottom));will-change:transform;touch-action:none}.sheet input,.sheet textarea{touch-action:auto}.sheet-grab{margin:0 -20px;padding:10px 20px 0;user-select:none;-webkit-user-select:none;cursor:grab}.sheet-grab:active{cursor:grabbing}.sheet-handle{width:44px;height:5px;border-radius:999px;background:var(--handle);margin:4px auto 10px}.sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sheet-header h2{margin:0;font-size:18px}.sheet-close{font-size:16px;color:var(--ink-soft);padding:4px 8px}.goal-presets,.slot-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.slot-chips{margin-bottom:0}.preset-chip{border:1.5px solid var(--accent-tint);background:var(--bg);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;transition:background .15s ease,border-color .15s ease}.preset-chip.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.goal-form,.med-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:8px}.field-label{font-size:13px;font-weight:700;color:var(--ink-soft)}.text-input{font-family:inherit;font-size:16px;padding:12px 14px;border-radius:14px;border:1.5px solid var(--accent-tint);background:var(--bg);color:var(--ink);outline:none}.text-input:focus{border-color:var(--accent)}.color-row{display:flex;gap:10px}.color-swatch{width:32px;height:32px;border-radius:50%;border:3px solid transparent;transition:transform .15s ease}.color-swatch.active{border-color:var(--ink);transform:scale(1.12)}.pill-preview{width:76px;margin-top:4px}.btn-primary{background:var(--accent-deep);color:var(--on-accent);font-size:16px;font-weight:800;padding:14px;border-radius:16px;box-shadow:0 4px rgba(var(--accent-deep-rgb),.45);transition:transform .15s ease,opacity .15s ease}.btn-primary:disabled{opacity:.4;cursor:default}.btn-primary:active:not(:disabled){transform:scale(.97)}@media(prefers-reduced-motion:reduce){.lid{transition:opacity .2s ease}.compartment:active .lid,.compartment.taken .lid{transform:none}.compartment.taken .lid{opacity:0}.pill-wrap{transition:opacity .2s ease}.compartment.taken .pill-wrap{animation:none;opacity:0}.well-check{transition:opacity .2s ease .1s;transform:none}.compartment.taken .well-check,.compartment:active .cell{transform:none}.progress-fill{transition:width .2s ease}.sheet-layer{animation:sheet-fade-in .2s ease}.sheet-layer.closing{opacity:0;transition:opacity .15s ease}.sheet-layer .sheet-scrim{opacity:1}}@keyframes sheet-fade-in{0%{opacity:0}}.hero{text-align:center;padding:14px 0 0}.hero p{color:var(--ink-soft);font-size:14px;margin:8px 0 0;word-break:keep-all}.lockup{display:flex;align-items:center;justify-content:center;gap:10px;font-size:38px;font-weight:800;color:var(--accent-deep)}.lockup .sub{color:var(--ink);font-weight:600}.lockup .cap{display:inline-block;width:36px;height:17px;border-radius:999px;position:relative;overflow:hidden;background:rgb(var(--box-tint))}.lockup .cap i{position:absolute;left:0;top:0;bottom:0;width:50%;background:var(--accent)}.lockup.small{font-size:20px;justify-content:flex-start;gap:6px}.lockup.small .cap{width:20px;height:10px}.minihead{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 0}.minihead .today-count{font-size:12px;color:var(--ink-soft)}.pagehead{padding:6px 4px 0}.pagehead h1{font-size:24px;font-weight:800;margin:0 0 4px;color:var(--ink)}.pagehead p{margin:0;font-size:13px;color:var(--ink-soft)}.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(14px + env(safe-area-inset-bottom));width:min(400px,calc(100% - 32px));background:var(--card);border-radius:999px;box-shadow:0 6px 24px rgba(var(--ink-rgb),.16);display:flex;padding:6px;z-index:40}.tab{flex:1;min-height:48px;border-radius:999px;font-size:12px;color:var(--ink-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.tab svg{display:block}.tab.active{background:var(--accent);color:var(--on-accent);font-weight:600}.sec{background:var(--card);border-radius:var(--radius);padding:18px 18px 16px;box-shadow:0 4px 14px rgba(var(--accent-deep-rgb),.1)}.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.sec-head h2{font-size:16px;font-weight:700;margin:0}.vtag{font-size:10px;letter-spacing:.08em;color:var(--ink-soft);border:1px solid var(--bg-dot);border-radius:999px;padding:2px 8px}.medrow{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--bg-dot);width:100%;text-align:left}.medrow:last-child{border-bottom:none}.medrow .nm{flex:1;font-size:15px;font-weight:600}.medrow .slots{font-size:12px;color:var(--ink-soft)}.medrow .more{font-size:12px;color:var(--accent-deep)}.infofield{margin-bottom:12px}.infofield b{display:block;font-size:12px;color:var(--accent-deep);margin-bottom:3px}.infofield p{margin:0;font-size:14px;line-height:1.6;color:var(--ink)}.apinote{font-size:11px;color:var(--ink-soft);background:var(--bg);border-radius:8px;padding:8px 12px;margin:6px 0 0;word-break:keep-all}.badges{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.badge{text-align:center;background:var(--bg);border-radius:14px;padding:14px 6px}.badge b{display:block;font-size:22px;font-weight:800;color:var(--accent-deep)}.badge span{font-size:11px;color:var(--ink-soft)}.streak{display:flex;gap:6px;justify-content:center;margin-top:12px}.streak i{width:26px;height:26px;border-radius:50%;background:var(--bg-dot);display:grid;place-items:center;font-style:normal;font-size:12px;color:var(--ink-soft)}.streak i.on{background:var(--accent);color:var(--on-accent)}footer.site{color:var(--ink-soft);font-size:12px;line-height:1.8;text-align:center;padding:20px 12px 0;border-top:1px solid var(--bg-dot)}.site-note{margin:10px 0 0;font-size:11.5px}.fam{display:flex;justify-content:center;gap:18px;margin-top:10px;font-size:13px}.fam-link{color:var(--accent-deep);font-size:13px}.fam-dim{opacity:.4}.calendar{background:var(--card);border-radius:var(--radius);padding:18px 16px;box-shadow:0 4px 14px rgba(var(--accent-deep-rgb),.1);display:flex;flex-direction:column;gap:12px}.cal-streak{text-align:center;font-size:15px;background:var(--accent-soft);border-radius:14px;padding:10px;word-break:keep-all}.cal-streak strong{color:var(--accent-deep)}.cal-header{display:flex;align-items:center;justify-content:space-between}.cal-header h2{margin:0;font-size:16px}.cal-nav{font-size:13px;color:var(--accent-deep);padding:6px 12px;border-radius:10px;background:var(--bg)}.cal-nav:disabled{opacity:.3}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-weekday{text-align:center;font-size:11px;font-weight:700;color:var(--ink-soft);padding-bottom:2px}.cal-day{aspect-ratio:1 / 1.15;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:var(--bg)}.cal-day.today{outline:2px solid var(--accent);outline-offset:-2px}.cal-day.done{background:var(--accent-soft)}.cal-num{font-size:11.5px;font-weight:600;color:var(--ink-soft)}.cal-day.done .cal-num{color:var(--accent-deep)}.cal-mark{font-size:11px;min-height:14px;color:var(--ink-faint)}.cal-legend{margin:0;text-align:center;font-size:11.5px;color:var(--ink-soft)}.btn-export{background:var(--bg);border:1.5px solid var(--accent-tint);border-radius:14px;padding:12px;font-size:14px;font-weight:700;color:var(--ink)}.cal-export-hint{margin:0;text-align:center;font-size:11px;color:var(--ink-soft);word-break:keep-all}.sticker-board{position:relative;display:flex;flex-direction:column;gap:8px}.sticker-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.sticker{position:absolute;transform:translate(-50%,-50%) rotate(var(--rot, 0deg));font-size:28px;line-height:1;filter:drop-shadow(0 2px 3px rgba(var(--shadow-rgb),.3));touch-action:none;pointer-events:none}.sticker-layer.editing .sticker{pointer-events:auto}.sticker-controls{position:relative}.sticker-layer.editing .sticker{cursor:grab;animation:sticker-wiggle .9s ease-in-out infinite}@keyframes sticker-wiggle{0%,to{transform:translate(-50%,-50%) rotate(calc(var(--rot, 0deg) - 3deg))}50%{transform:translate(-50%,-50%) rotate(calc(var(--rot, 0deg) + 3deg))}}.sticker-del{position:absolute;top:-10px;right:-10px;width:20px;height:20px;border-radius:50%;background:var(--ink);color:var(--card);font-size:11px;display:flex;align-items:center;justify-content:center;cursor:pointer}.sticker-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.sticker-palette{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;background:var(--card);border-radius:999px;padding:6px 10px;box-shadow:0 3px 10px rgba(var(--accent-deep-rgb),.12)}.sticker-choice{font-size:22px;padding:4px;transition:transform .15s ease}.sticker-choice:active{transform:scale(1.3)}.sticker-palette.in-sheet{box-shadow:none;background:var(--bg);border-radius:16px;padding:8px 10px;justify-content:flex-start}.deco-sub{margin:16px 0 8px;font-size:13px;font-weight:700;color:var(--ink-soft)}.deco-arrange{width:100%;margin-top:12px}.search-row{display:flex;gap:8px}.search-row .text-input{flex:1;min-width:0}.btn-search{padding:0 16px;border-radius:14px;background:var(--accent);font-size:16px;box-shadow:0 3px rgba(var(--accent-deep-rgb),.4)}.btn-search:disabled{opacity:.4}.search-err,.search-linked{font-size:12px;color:var(--ink-soft);word-break:keep-all;line-height:1.5}.search-err{color:var(--accent-deep);font-weight:600}.search-linked{color:var(--accent-deep);font-weight:700}.search-results{display:flex;flex-direction:column;gap:6px;max-height:200px}.search-result{text-align:left;padding:10px 12px;border-radius:12px;background:var(--bg);border:1.5px solid var(--accent-soft);display:flex;flex-direction:column;gap:2px}.search-result-name{font-size:14px;font-weight:700}.search-result-entp{font-size:11.5px;color:var(--ink-soft)}.sheet-scroll{overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain}.drug-info{max-height:60vh;display:flex;flex-direction:column;gap:14px;padding-bottom:8px}.drug-entp{margin:0;font-size:12.5px;color:var(--ink-soft)}.drug-figure{margin:0;text-align:center}.drug-img{width:100%;max-width:240px;border-radius:14px;border:1.5px solid var(--accent-soft);background:var(--card)}.drug-figure figcaption{margin-top:4px;font-size:11.5px;color:var(--ink-soft)}.drug-section h3{margin:0 0 4px;font-size:14px;color:var(--accent-deep)}.drug-section p{margin:0;font-size:13.5px;line-height:1.65;color:var(--ink)}.deco-fab{position:absolute;top:16px;right:2px;z-index:5;display:inline-flex;align-items:center;height:36px;padding:0 9px;border-radius:999px;background:var(--card);border:1.5px solid var(--accent-tint);color:var(--accent-deep);box-shadow:0 2px 8px rgba(var(--accent-deep-rgb),.14)}.deco-fab svg{width:18px;height:18px;flex:none}.deco-fab span{max-width:0;overflow:hidden;white-space:nowrap;font-size:13px;font-weight:600;margin-left:0;transition:max-width .25s ease,margin-left .25s ease}@media(hover:hover){.deco-fab:hover span{max-width:60px;margin-left:5px}}.deco-fab.open span{max-width:60px;margin-left:5px}.deco-lead{margin:0 0 14px;font-size:13px;color:var(--ink-soft);line-height:1.6;word-break:keep-all}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.theme-cell{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 6px;border-radius:16px;background:var(--bg);border:2px solid transparent}.theme-cell.active{border-color:var(--accent);background:var(--accent-soft)}.theme-dot{width:34px;height:34px;border-radius:50%;box-shadow:inset 0 -3px 5px #00000014}.theme-nm{font-size:12px;font-weight:600;color:var(--ink)}.theme-cell.active .theme-nm{color:var(--accent-deep)}.disclaimer{font-size:11.5px;color:var(--ink-soft);text-align:center;line-height:1.6;opacity:.85;word-break:keep-all}
