@font-face{font-family:Daeojamjil;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302_01@1.0/TheJamsil1Thin.woff2) format("woff2");font-weight:100;font-display:swap}@font-face{font-family:Daeojamjil;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302_01@1.0/TheJamsil2Light.woff2) format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Daeojamjil;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302_01@1.0/TheJamsil3Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Daeojamjil;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302_01@1.0/TheJamsil4Medium.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Daeojamjil;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302_01@1.0/TheJamsil5Bold.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Daeojamjil;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302_01@1.0/TheJamsil6ExtraBold.woff2) format("woff2");font-weight:800;font-display:swap}:root{--bg: #ffffff;--bg-card: #f7f7f7;--bg-input: #f0f0f0;--text: #111111;--text-sub: #666666;--text-muted: #999999;--border: #e0e0e0;--accent: #d92626;--accent-light: rgba(217, 38, 38, .08);--shadow: rgba(0, 0, 0, .06);--status-visited: #d92626;--status-pending: #f59e0b;--status-hospital: #3b82f6;--status-none: #cccccc}[data-theme=dark]{--bg: #000000;--bg-card: #111111;--bg-input: #1a1a1a;--text: #f0f0f0;--text-sub: #aaaaaa;--text-muted: #666666;--border: #2a2a2a;--accent: #e53e3e;--accent-light: rgba(229, 62, 62, .12);--shadow: rgba(0, 0, 0, .3);--status-visited: #e53e3e;--status-pending: #f59e0b;--status-hospital: #60a5fa;--status-none: #444444}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:Daeojamjil,sans-serif;font-weight:400;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background-color .2s,color .2s}input,textarea,button,select{font-family:Daeojamjil,sans-serif;font-weight:400;border:none;outline:none;background:none;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}input::placeholder{color:var(--text-muted)}::-webkit-scrollbar{width:0;height:0}.app-container{display:flex;flex-direction:column;height:100%;max-width:480px;margin:0 auto;position:relative;overflow:hidden}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg);position:sticky;top:0;z-index:100}.app-header h1{font-size:17px;font-weight:700;letter-spacing:-.3px}.header-actions{display:flex;align-items:center;gap:14px}.header-actions button{font-size:16px;color:var(--text-sub);padding:4px;transition:color .15s}.header-actions button:active{color:var(--accent)}.app-body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:70px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;align-items:center;justify-content:space-around;background:var(--bg);border-top:1px solid var(--border);padding:8px 0;padding-bottom:max(8px,env(safe-area-inset-bottom));z-index:100}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--text-muted);padding:4px 12px;transition:color .15s}.bottom-nav button i{font-size:18px}.bottom-nav button.active{color:var(--accent);font-weight:500}.lock-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:32px;gap:20px}.lock-screen i.lock-icon{font-size:40px;color:var(--text-muted);margin-bottom:8px}.lock-screen h2{font-size:18px;font-weight:700;margin-bottom:4px}.lock-screen p{font-size:13px;color:var(--text-sub);text-align:center;line-height:1.5}.lock-input{width:100%;max-width:260px;padding:12px 16px;background:var(--bg-input);border-radius:10px;font-size:16px;text-align:center;letter-spacing:4px}.lock-btn{width:100%;max-width:260px;padding:12px;background:var(--text);color:var(--bg);border-radius:10px;font-size:14px;font-weight:500;transition:opacity .15s}.lock-btn:active{opacity:.7}.lock-btn.danger{background:var(--accent);color:#fff}.lock-link{font-size:12px;color:var(--text-muted);text-decoration:underline;margin-top:4px}.lock-error{font-size:12px;color:var(--accent)}.date-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.date-bar .date-text{font-size:14px;font-weight:500}.date-bar .date-nav{display:flex;align-items:center;gap:16px}.date-bar .date-nav button{font-size:14px;color:var(--text-sub);padding:4px}.date-bar .today-btn{font-size:11px;color:var(--accent);font-weight:500;padding:4px 8px}.filter-bar{display:flex;gap:6px;padding:10px 16px;border-bottom:1px solid var(--border);overflow-x:auto}.filter-btn{padding:6px 12px;border-radius:8px;font-size:12px;font-weight:400;background:var(--bg-input);color:var(--text-sub);white-space:nowrap;transition:all .15s;flex-shrink:0}.filter-btn.active{background:var(--text);color:var(--bg);font-weight:600}.client-list{padding:0}.client-item{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border);gap:12px;transition:background .1s}.client-item:active{background:var(--accent-light)}.client-info{flex:1;min-width:0}.client-name{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-memo{font-size:12px;color:var(--text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-btns{display:flex;gap:6px;flex-shrink:0}.status-btn{display:flex;align-items:center;justify-content:center;width:44px;height:32px;border-radius:8px;font-size:11px;font-weight:500;border:1.5px solid var(--border);color:var(--text-muted);transition:all .15s}.status-btn.active-visited{background:var(--status-visited);border-color:var(--status-visited);color:#fff}.status-btn.active-pending{background:var(--status-pending);border-color:var(--status-pending);color:#fff}.status-btn.active-hospital{background:var(--status-hospital);border-color:var(--status-hospital);color:#fff}.edit-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;font-size:12px;color:var(--text-muted);transition:color .15s}.edit-btn:active{color:var(--text)}.summary-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-card);border-bottom:1px solid var(--border);font-size:12px;color:var(--text-sub)}.summary-stats{display:flex;gap:12px}.summary-stat{display:flex;align-items:center;gap:4px}.summary-dot{width:8px;height:8px;border-radius:50%}.search-bar{padding:10px 16px;border-bottom:1px solid var(--border)}.search-input-wrap{display:flex;align-items:center;background:var(--bg-input);border-radius:10px;padding:0 12px;gap:8px}.search-input-wrap i{font-size:14px;color:var(--text-muted)}.search-input-wrap input{flex:1;padding:10px 0;font-size:14px;background:transparent}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal-content{width:100%;max-width:400px;background:var(--bg);border-radius:16px;padding:20px 16px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-header h3{font-size:16px;font-weight:700}.modal-header button{font-size:18px;color:var(--text-muted);padding:4px}.modal-field{margin-bottom:16px}.modal-field label{display:block;font-size:12px;color:var(--text-sub);margin-bottom:6px;font-weight:500}.modal-field input,.modal-field textarea{width:100%;padding:12px;background:var(--bg-input);border-radius:10px;font-size:14px}.modal-field textarea{height:80px;resize:none}.modal-actions{display:flex;gap:8px;margin-top:20px}.modal-actions button{flex:1;padding:12px;border-radius:10px;font-size:14px;font-weight:500;transition:opacity .15s}.modal-actions button:active{opacity:.7}.btn-primary{background:var(--text);color:var(--bg)}.btn-secondary{background:var(--bg-input);color:var(--text)}.btn-danger{background:var(--accent);color:#fff}.calendar-wrap{padding:16px}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.calendar-header h3{font-size:16px;font-weight:700}.calendar-header button{font-size:14px;color:var(--text-sub);padding:6px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-weekday{text-align:center;font-size:11px;color:var(--text-muted);font-weight:500;padding:8px 0}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;font-size:13px;color:var(--text-sub);gap:3px;transition:background .1s;cursor:pointer}.calendar-day:active{background:var(--bg-input)}.calendar-day.today{font-weight:700;color:var(--accent)}.calendar-day.selected{background:var(--text);color:var(--bg)}.calendar-day.has-records .day-dots{display:flex;gap:2px}.day-dots{display:none}.day-dot{width:4px;height:4px;border-radius:50%}.calendar-day.empty{visibility:hidden}.history-section{padding:0}.history-date-group{border-bottom:1px solid var(--border)}.history-date-header{padding:10px 16px;font-size:13px;font-weight:700;color:var(--text-sub);background:var(--bg-card);position:sticky;top:0}.history-item{display:flex;align-items:center;padding:12px 16px;gap:10px;border-bottom:1px solid var(--border)}.history-item:last-child{border-bottom:none}.history-status-badge{font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;color:#fff;flex-shrink:0}.history-client-name{flex:1;font-size:14px;font-weight:500}.history-time{font-size:11px;color:var(--text-muted)}.monthly-list{padding:0}.monthly-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}.monthly-item:active{background:var(--accent-light)}.monthly-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.monthly-arrow{font-size:10px;color:var(--text-muted)}.month-detail-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-card)}.month-detail-header button{font-size:14px;color:var(--text-sub);padding:4px 8px}.month-detail-title{font-size:15px;font-weight:700}.monthly-stats{display:flex;align-items:center;gap:12px}.monthly-stat{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-sub)}.monthly-total{font-size:12px;color:var(--text-muted);margin-left:4px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px;gap:12px}.empty-state i{font-size:36px;color:var(--text-muted)}.empty-state p{font-size:14px;color:var(--text-muted);text-align:center}.reset-bar{padding:12px 16px;display:flex;justify-content:flex-end}.reset-btn{font-size:12px;color:var(--accent);font-weight:500;padding:6px 12px;border:1px solid var(--accent);border-radius:8px;transition:all .15s}.reset-btn:active{background:var(--accent);color:#fff}.fab{position:fixed;bottom:80px;right:calc(50% - 220px);width:48px;height:48px;border-radius:50%;background:var(--text);color:var(--bg);display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 2px 12px var(--shadow);transition:transform .15s;z-index:50}.fab:active{transform:scale(.9)}@media(max-width:480px){.fab{right:20px}}.confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:300;padding:20px}.confirm-box{width:100%;max-width:300px;background:var(--bg);border-radius:14px;padding:24px 20px;text-align:center}.confirm-box p{font-size:14px;font-weight:500;margin-bottom:20px;line-height:1.5}.confirm-actions{display:flex;gap:8px}.confirm-actions button{flex:1;padding:10px;border-radius:10px;font-size:13px;font-weight:500}
