:root{--color-primary:#1677e8;--color-bg:#f5f9ff;--color-surface:#fff;--color-text:#152238;--color-muted:#718096;--color-accent:#ddecff;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--text-sm:13px;--text-base:15px;--text-lg:18px;--text-xl:24px;--radius:18px;--shadow:0 8px 28px rgba(38,100,176,.1);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif;color:var(--color-text);background:var(--color-bg)}*{box-sizing:border-box}body{margin:0;background:var(--color-bg)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #9dccff;outline-offset:2px}.app-shell{min-height:100vh;max-width:680px;margin:0 auto;background:var(--color-bg);padding-bottom:142px}.topbar{height:86px;padding:22px var(--space-5) 10px;display:flex;justify-content:space-between;align-items:center;background:#fff}.eyebrow{margin:0 0 3px;color:var(--color-muted);font-size:var(--text-sm)}h1,h2,h3,p{margin-top:0}h1{font-size:20px;margin-bottom:0;letter-spacing:-.7px}.date-pill{border:0;background:#eef6ff;color:#1966bb;border-radius:99px;padding:9px 11px;font-weight:700;font-size:12px}.screen{padding:var(--space-5)}.today-screen{padding-top:18px}.hero>p{font-size:var(--text-xl);font-weight:800;letter-spacing:-1px;margin:0 0 12px}.active-card,.inactive-card{border-radius:var(--radius);padding:20px;background:linear-gradient(135deg,#0f6fdf,#3096f6);color:#fff;box-shadow:0 10px 26px #1677e840}.active-card>div{font-size:12px;opacity:.9}.active-card strong{display:block;font-size:22px;margin:10px 0 4px}.active-card p{margin:0;font-size:14px}.pulse{display:inline-block;width:8px;height:8px;background:#c6e6ff;border-radius:50%;margin-right:5px;animation:pulse 1.5s infinite}.inactive-card{background:#eaf4ff;color:#3c6b99;box-shadow:none;font-size:14px}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:20px 0}.category-button{height:66px;border:1px solid #dceafb;background:#fff;border-radius:15px;color:var(--color-text);font-weight:700;font-size:15px;transition:.15s transform,.15s background}.category-button span{font-size:22px;margin-right:7px}.category-button:active,.primary-button:active,.finish-day:active{transform:scale(.97)}.category-button:hover{background:#f1f8ff}.custom-box{background:#fff;border:1px solid #dbeafb;border-radius:var(--radius);padding:16px;margin-top:-8px;margin-bottom:20px;box-shadow:var(--shadow)}label{display:block;font-size:13px;font-weight:700;color:#46607d}input,select{width:100%;border:1px solid #cbdced;border-radius:10px;padding:11px;margin-top:6px;color:var(--color-text);background:#fff}.custom-box>div{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.primary-button,.secondary-button,.danger-button,.text-button,.add-part{border:0;border-radius:11px;padding:12px 15px;font-weight:800}.primary-button{background:var(--color-primary);color:#fff;width:100%;margin-top:18px}.primary-button.small{width:auto;margin:0}.primary-button:disabled{opacity:.45}.secondary-button{background:#eef3f8;color:#4b627a}.section-block{margin-top:28px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.section-title h2,.record-head h2,.settings h2{font-size:19px;letter-spacing:-.6px;margin:0}.section-title span{color:var(--color-primary);font-weight:800;font-size:13px}.timeline{position:relative}.timeline:before{content:"";position:absolute;left:17px;top:19px;bottom:19px;width:1px;background:#d9e6f4}.timeline-item{width:100%;border:0;background:transparent;display:grid;grid-template-columns:35px 34px 1fr auto;align-items:center;text-align:left;padding:11px 0;position:relative}.timeline-item:active{opacity:.65}.timeline-dot{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--color-primary);left:13px;top:24px;border:2px solid var(--color-bg)}.timeline-icon{font-size:20px}.timeline-main strong{font-size:15px;display:block}.timeline-main small{color:var(--color-muted);display:block;margin-top:3px;font-size:12px}.timeline-duration{font-weight:800;font-size:12px;color:#285279;white-space:nowrap}.empty-state{padding:28px 18px;background:#fff;border:1px dashed #c9dced;border-radius:var(--radius);text-align:center;color:var(--color-muted);line-height:1.7;font-size:14px}.empty-state.tall{margin-top:50px;padding:48px 20px}.finish-day{position:fixed;z-index:4;bottom:73px;left:50%;transform:translate(-50%);width:min(calc(100% - 48px),632px);border:0;border-radius:15px;padding:15px;background:#123f75;color:#fff;font-weight:800;box-shadow:0 8px 24px #103e743d}.finish-day span{margin-left:8px}.bottom-nav{position:fixed;z-index:5;bottom:0;left:0;right:0;height:70px;background:#fffffff5;border-top:1px solid #e5edf6;display:flex;justify-content:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav button{width:min(25%,170px);border:0;background:transparent;color:#8190a2;font-size:11px;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center}.bottom-nav span{font-size:20px}.bottom-nav .selected{color:var(--color-primary);font-weight:800}.summary-intro{text-align:center;padding:15px 0 22px}.summary-intro p{color:var(--color-muted);margin-bottom:5px;font-size:13px}.summary-intro h2{font-size:18px;margin-bottom:11px}.summary-intro strong{display:block;font-size:34px;color:#0e5dbb;letter-spacing:-1.5px}.summary-intro span{font-size:12px;color:var(--color-muted);margin-top:6px;display:block}.chart-card,.receipt,.guide-card{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:16px}.chart-card h3,.receipt h3{font-size:16px;margin-bottom:5px}.chart-wrap{height:230px;position:relative}.chart-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none}.chart-center b{font-size:16px}.chart-center span{font-size:10px;color:var(--color-muted);margin-top:3px}.legend{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px;margin-top:7px}.legend div{font-size:12px;display:flex;align-items:center;gap:6px}.legend i{width:8px;height:8px;border-radius:50%}.legend strong{margin-left:auto;font-size:11px}.receipt p,.receipt footer{display:flex;gap:9px;align-items:center;font-size:14px;margin:12px 0}.receipt p i{flex:1;border-bottom:1px dashed #c8d6e3}.receipt p b,.receipt footer b{font-size:13px}.receipt footer{border-top:1px solid #e8eef5;padding-top:13px;margin-bottom:0;font-weight:800}.receipt footer b{margin-left:auto;color:var(--color-primary)}.record-head{display:flex;justify-content:space-between;align-items:center}.record-head input{margin:0;width:135px;padding:9px;font-size:12px}.settings h2{margin-bottom:20px}.guide-card b{font-size:15px}.guide-card p{margin:8px 0 0;font-size:13px;line-height:1.65;color:#59708a}.setting-categories{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.setting-categories span{font-size:12px;padding:7px 9px;background:#f0f6fd;border-radius:99px}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;background:#1022386b;display:flex;align-items:flex-end}.editor{background:#fff;width:100%;max-width:680px;margin:0 auto;border-radius:24px 24px 0 0;padding:22px 20px 30px;max-height:90vh;overflow:auto}.editor-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.editor-head h2{font-size:19px;margin:0}.icon-button{border:0;background:#eef3f8;border-radius:50%;height:32px;width:32px;font-size:24px;line-height:1;color:#52677e}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.editor-actions{display:flex;justify-content:space-between;margin-top:16px}.text-button{color:#2878ca;background:#edf6ff}.danger-button{color:#d44343;background:#fff0f0}.split-panel>p{font-size:13px;color:var(--color-muted)}.split-row{position:relative;border:1px solid #dce8f5;border-radius:13px;padding:11px;margin:10px 0;display:grid;grid-template-columns:1fr 1fr;gap:7px}.split-row input,.split-row select{margin:0;padding:8px;font-size:12px}.remove-part{position:absolute;right:-5px;top:-9px;border:0;border-radius:50%;width:22px;height:22px;background:#f25b5b;color:#fff;font-weight:700}.add-part{background:#eef6ff;color:#2474c4;width:100%;margin-top:3px}.full{width:100%;margin-top:8px}.toast{position:fixed;z-index:40;left:50%;bottom:148px;transform:translate(-50%);background:#152d4b;color:#fff;border-radius:99px;padding:10px 15px;font-size:13px;font-weight:700;box-shadow:var(--shadow);animation:toast .2s ease-out}@keyframes pulse{50%{opacity:.35;transform:scale(.7)}}@keyframes toast{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@media (min-width:640px){.app-shell{box-shadow:0 0 35px #14457814}.category-grid{grid-template-columns:repeat(5,1fr)}.category-button{height:74px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.category-button span{margin:0}.screen{padding:28px 32px}.topbar{padding-left:32px;padding-right:32px}}.mobile-access{display:flex;align-items:center;gap:16px}.mobile-access-copy{min-width:0;flex:1}.mobile-access-copy p{margin-bottom:12px}.access-copy-button{border:0;border-radius:10px;padding:10px 12px;background:#edf6ff;color:#2474c4;font-size:12px;font-weight:800}.qr-frame{flex:0 0 auto;width:112px;height:112px;padding:7px;background:#fff;border:1px solid #dce8f5;border-radius:14px;box-shadow:0 3px 12px #2664b014}.qr-frame canvas{display:block;width:96px!important;height:96px!important}@media (max-width:390px){.mobile-access{align-items:flex-start}.qr-frame{width:96px;height:96px;padding:6px}.qr-frame canvas{width:82px!important;height:82px!important}}.data-guide-list{margin-top:14px;display:grid;gap:12px}.data-guide-list p{margin:0;display:grid;gap:3px}.data-guide-list strong{font-size:13px;color:#274f78}.data-guide-list span{font-size:12px;line-height:1.65;color:#59708a}.data-management>p{margin-bottom:14px}.backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.backup-actions .access-copy-button{font-size:13px;min-height:42px}.backup-actions button:disabled{opacity:.5;cursor:wait}.restore-file{display:none}.data-management small{display:block;color:#718096;font-size:11px;line-height:1.55;margin-top:12px}.backup-message{margin-top:12px;padding:9px 10px;border-radius:10px;background:#edf6ff;color:#2474c4;font-size:12px;font-weight:700;line-height:1.5}.backup-actions .excel-download-button{display:block;background:#edf6ff;color:#2474c4}.settings .data-management{display:block;visibility:visible;opacity:1}.form-error{margin:10px 0 0;color:#c33c3c;font-size:12px;line-height:1.5;font-weight:700}.today-screen .section-block:last-child{padding-bottom:92px}.custom-choice{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-box label{position:relative}.custom-box .emoji-current{position:absolute;left:8px;top:25px;width:42px;height:42px;border:1px solid #cbdced;border-radius:10px;background:#fff;font-size:21px}.custom-box input{padding-left:58px}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;margin:10px 0 14px}.emoji-grid button{border:1px solid #e0ebf6;background:#fff;border-radius:8px;padding:6px 2px;font-size:18px;line-height:1}.emoji-grid button.chosen{background:#ddecff;border-color:#1677e8;box-shadow:inset 0 0 0 1px #1677e8}.compact{max-height:174px;overflow:auto}.custom-manager>p{margin-bottom:12px}.custom-list{display:grid;gap:7px}.custom-list button{border:1px solid #dce8f5;background:#f9fcff;border-radius:11px;padding:9px 10px;display:flex;align-items:center;text-align:left;color:var(--color-text);font-weight:700}.custom-list button span{font-size:19px;margin-right:8px}.custom-list button small{margin-left:auto;color:#2878ca;font-size:11px}.custom-add{margin-top:12px;width:100%}.custom-form{margin-top:14px;padding-top:14px;border-top:1px solid #e5edf6}.custom-form label{margin-top:11px}.custom-form label:first-child{display:flex;align-items:center;gap:8px}.custom-form .emoji-current{border:1px solid #cbdced;background:#fff;border-radius:10px;width:42px;height:40px;font-size:20px}.custom-form>div:last-child{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
