.medication-dosage-interval-calculator-container,.medication-dosage-interval-calculator-container *,.medication-dosage-interval-calculator-container *::before,.medication-dosage-interval-calculator-container *::after{box-sizing:border-box}.medication-dosage-interval-calculator-container{--bg-primary:#f5f5f0;--bg-secondary:#fff;--bg-section:#fff;--border-color:#333;--text-primary:#222;--text-secondary:#555;--text-light:#666;--color-accent:#3498db;--color-success:#27ae60;--color-warning:#f39c12;--color-danger:#e74c3c;--color-purple:#9b59b6;--color-teal:#1abc9c;--shadow-sm:2px 2px 0 rgba(0,0,0,0.1);--shadow-md:4px 4px 0 rgba(0,0,0,0.15);--shadow-lg:8px 8px 0 rgba(0,0,0,0.15);--radius-container:8px;--radius-section:6px;--radius-button:4px;--radius-input:4px;--input-focus-bg:#fffacd;--title-color:#2c3e50;--title-shadow:2px 2px 0 rgba(255,255,255,0.5);--btn-hover-overlay:rgba(0,0,0,0.1);--timeline-bg:#e8e8e3;--timeline-grid:rgba(0,0,0,0.08);--timeline-now:#e74c3c}.medication-dosage-interval-calculator-container.dark{--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--bg-section:#2d2d2d;--border-color:#e0e0e0;--text-primary:#e8e8e8;--text-secondary:#b0b0b0;--text-light:#909090;--color-accent:#5dade2;--color-success:#52c77a;--color-warning:#f5b041;--color-danger:#ec7063;--color-purple:#af7ac5;--color-teal:#48d1cc;--shadow-sm:2px 2px 0 rgba(255,255,255,0.08);--shadow-md:4px 4px 0 rgba(255,255,255,0.12);--shadow-lg:8px 8px 0 rgba(255,255,255,0.12);--input-focus-bg:#3a3a3a;--title-color:#7fb3d5;--title-shadow:2px 2px 0 rgba(0,0,0,0.5);--btn-hover-overlay:rgba(255,255,255,0.1);--timeline-bg:#252525;--timeline-grid:rgba(255,255,255,0.08);--timeline-now:#ec7063}@media (prefers-color-scheme:dark){.medication-dosage-interval-calculator-container:not(.dark):not(.light){--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--bg-section:#2d2d2d;--border-color:#e0e0e0;--text-primary:#e8e8e8;--text-secondary:#b0b0b0;--text-light:#909090;--color-accent:#5dade2;--color-success:#52c77a;--color-warning:#f5b041;--color-danger:#ec7063;--color-purple:#af7ac5;--color-teal:#48d1cc;--shadow-sm:2px 2px 0 rgba(255,255,255,0.08);--shadow-md:4px 4px 0 rgba(255,255,255,0.12);--shadow-lg:8px 8px 0 rgba(255,255,255,0.12);--input-focus-bg:#3a3a3a;--title-color:#7fb3d5;--title-shadow:2px 2px 0 rgba(0,0,0,0.5);--btn-hover-overlay:rgba(255,255,255,0.1);--timeline-bg:#252525;--timeline-grid:rgba(255,255,255,0.08);--timeline-now:#ec7063}}.medication-dosage-interval-calculator-container{position:relative;max-width:1000px;width:100%;margin:8px auto;padding:8px;background:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-container);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Malgun Gothic',sans-serif;color:var(--text-primary);box-shadow:var(--shadow-lg);line-height:1.5}.dark-mode-toggle{position:absolute;top:18px;right:18px;padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-button);cursor:pointer;transition:all 0.2s;box-shadow:var(--shadow-sm);font-size:17.5px;font-weight:600;color:var(--text-primary);z-index:10}.dark-mode-toggle:hover{transform:translate(.5px,.5px);box-shadow:1.5px 1.5px 0 rgba(0,0,0,.15)}.dark-mode-toggle:active{transform:translate(2px,2px);box-shadow:none}.calculator-header{text-align:center;margin-bottom:8px;padding:8px;padding-right:55px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-section);box-shadow:var(--shadow-md)}.calculator-header .main-title{font-size:30px;font-weight:800;color:var(--title-color);margin:0 0 4px 0;text-shadow:var(--title-shadow)}.calculator-header .subtitle{font-size:15.5px;color:var(--text-secondary);margin:0}.main-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.input-section,.result-section{background:var(--bg-section);padding:8px;border:1px solid var(--border-color);border-radius:var(--radius-section);box-shadow:var(--shadow-md)}.section-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-color);font-size:18px;font-weight:700;color:var(--text-primary)}.section-header svg{width:18px;height:18px;stroke:var(--color-accent);flex-shrink:0}.med-count{margin-left:auto;font-size:14px;padding:2px 8px;background:var(--color-accent);color:#fff;border-radius:10px}.input-group{margin-bottom:8px}.input-group label{display:block;margin-bottom:4px;font-size:15.5px;font-weight:600;color:var(--text-primary)}.input-group input[type="text"],.input-group input[type="date"],.input-group input[type="time"],.input-group input[type="number"]{width:100%;padding:7px 10px;border:1px solid var(--border-color);border-radius:var(--radius-input);background:var(--bg-secondary);color:var(--text-primary);font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Malgun Gothic',sans-serif;transition:all 0.2s;box-shadow:var(--shadow-sm)}.input-group input:focus{outline:none;border-color:var(--color-accent);background:var(--input-focus-bg);box-shadow:0 0 0 2px rgba(52,152,219,.1)}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.interval-input-wrapper{display:flex;align-items:center;gap:6px}.interval-input-wrapper input[type="number"]{width:65px;text-align:center;font-family:'Courier New',monospace;font-weight:600}.interval-input-wrapper .unit-label{font-size:15px;color:var(--text-secondary);font-weight:500}.quick-interval-section{margin-bottom:8px}.quick-interval-section>label{display:block;margin-bottom:4px;font-size:13.5px;font-weight:600;color:var(--text-primary)}.quick-buttons{display:flex;flex-wrap:wrap;gap:6px}.quick-btn{padding:5px 10px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-button);font-size:14.5px;font-weight:600;cursor:pointer;transition:all 0.15s;box-shadow:var(--shadow-sm)}.quick-btn:hover{background:var(--color-accent);color:#fff;transform:translate(.5px,.5px);box-shadow:1.5px 1.5px 0 rgba(0,0,0,.15)}.quick-btn:active{transform:translate(2px,2px);box-shadow:none}.quick-btn.active{background:var(--color-accent);color:#fff}.color-picker{display:flex;gap:6px;flex-wrap:wrap}.color-btn{width:28px;height:28px;border:2px solid transparent;border-radius:50%;cursor:pointer;transition:all 0.15s;box-shadow:var(--shadow-sm)}.color-btn:hover{transform:scale(1.1)}.color-btn.active{border-color:var(--border-color);transform:scale(1.15);box-shadow:0 0 0 2px var(--bg-primary)}.add-btn{width:100%;padding:10px;margin-top:8px;background:var(--color-accent);color:#fff;border:1.5px solid var(--border-color);border-radius:var(--radius-button);font-size:17px;font-weight:700;cursor:pointer;transition:all 0.15s;box-shadow:4px 4px 0 rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;gap:6px}.add-btn svg{stroke:#fff}.add-btn:hover{filter:brightness(1.05);transform:translate(1px,1px);box-shadow:3px 3px 0 rgba(0,0,0,.2)}.add-btn:active{transform:translate(4px,4px);box-shadow:none}.button-group{display:flex;gap:6px;margin-top:6px}.button-group.four-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.sample-btn,.reset-btn,.save-btn,.load-btn{flex:1;padding:6px 6px;font-size:14px;font-weight:600;border:1px solid var(--border-color);border-radius:var(--radius-button);cursor:pointer;transition:all 0.15s;box-shadow:2px 2px 0 rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;gap:3px;white-space:nowrap}.sample-btn{background:var(--color-success);color:#fff}.sample-btn svg,.reset-btn svg,.save-btn svg,.load-btn svg{stroke:#fff;width:13px;height:13px;flex-shrink:0}.reset-btn{background:var(--color-danger);color:#fff}.save-btn{background:var(--color-purple);color:#fff}.load-btn{background:var(--color-teal);color:#fff}.sample-btn:hover,.reset-btn:hover,.save-btn:hover,.load-btn:hover{filter:brightness(1.05);transform:translate(.5px,.5px);box-shadow:1.5px 1.5px 0 rgba(0,0,0,.2)}.sample-btn:active,.reset-btn:active,.save-btn:active,.load-btn:active{transform:translate(2px,2px);box-shadow:none}.hidden-input{display:none}.med-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:380px;overflow-y:auto;padding-right:2px}.med-list::-webkit-scrollbar{width:4px}.med-list::-webkit-scrollbar-track{background:var(--bg-primary);border-radius:2px}.med-list::-webkit-scrollbar-thumb{background:var(--text-light);border-radius:2px}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-light);padding:30px 20px;min-height:180px}.empty-state svg{stroke:var(--text-light);opacity:.5;margin-bottom:10px}.empty-state p{font-size:16px;margin:0;line-height:1.6}.empty-state.small{min-height:auto;padding:20px}.empty-state.small p{font-size:15px}.med-card{padding:8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-section);position:relative;transition:all 0.2s}.med-card:hover{box-shadow:var(--shadow-sm)}.med-card-header{display:flex;align-items:center;gap:5px;margin-bottom:4px}.med-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.med-name{font-size:15px;font-weight:700;color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.med-delete-btn{width:18px;height:18px;padding:0;background:var(--color-danger);color:#fff;border:1px solid var(--border-color);border-radius:var(--radius-button);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;flex-shrink:0}.med-delete-btn:hover{filter:brightness(1.1);transform:scale(1.05)}.med-delete-btn svg{width:10px;height:10px;stroke:#fff}.med-info{display:flex;flex-direction:column;gap:1px;font-size:12px;color:var(--text-secondary);margin-bottom:5px}.med-info-item{display:flex;align-items:center;gap:3px}.med-info-label{color:var(--text-light)}.med-status{padding:4px 5px;border-radius:var(--radius-button);font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:3px}.med-status.can-take{background:var(--color-success);color:#fff}.med-status.wait{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary)}.med-status.soon{background:var(--color-warning);color:#fff}.med-countdown{font-family:'Courier New',monospace;font-weight:700;font-size:11px}.med-take-btn{padding:2px 5px;background:var(--color-success);color:#fff;border:1px solid var(--border-color);border-radius:var(--radius-button);font-size:11px;font-weight:600;cursor:pointer;transition:all 0.15s;flex-shrink:0}.med-take-btn:hover{filter:brightness(1.1)}.timeline-section{margin-top:8px;background:var(--bg-section);padding:8px;border:1px solid var(--border-color);border-radius:var(--radius-section);box-shadow:var(--shadow-md)}.timeline-controls{margin-left:auto;display:flex;align-items:center;gap:8px}.timeline-nav-btn{width:26px;height:26px;padding:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-button);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s}.timeline-nav-btn:hover{background:var(--color-accent)}.timeline-nav-btn:hover svg{stroke:#fff}.timeline-nav-btn svg{stroke:var(--text-primary)}.timeline-date{font-size:15px;font-weight:600;color:var(--text-primary);min-width:80px;text-align:center}.timeline-wrapper{margin-top:8px}.timeline-hours{display:flex;justify-content:space-between;padding:0 2px;margin-bottom:4px}.timeline-hours span{font-size:12px;color:var(--text-light);width:30px;text-align:center}.timeline-hours span:first-child{text-align:left}.timeline-hours span:last-child{text-align:right}.timeline-container{position:relative;background:var(--timeline-bg);border:1px solid var(--border-color);border-radius:var(--radius-button);min-height:80px;overflow:hidden}.timeline-container::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(90deg,var(--timeline-grid) 0,var(--timeline-grid) 1px,transparent 1px,transparent 12.5%);pointer-events:none}.timeline-now{position:absolute;top:0;bottom:0;width:2px;background:var(--timeline-now);z-index:5;display:none}.timeline-now::before{content:'현재';position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:11px;color:var(--timeline-now);font-weight:600;white-space:nowrap}.timeline-tracks{padding:8px 0}.timeline-track{position:relative;height:24px;margin:4px 0}.timeline-event{position:absolute;height:20px;border-radius:3px;display:flex;align-items:center;padding:0 6px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:all 0.15s;border:1px solid rgba(0,0,0,.2)}.timeline-event:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.2);z-index:10}.timeline-event.past{opacity:.5}.timeline-event.next{border-width:2px;border-style:dashed}.timeline-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color)}.legend-item{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:50%}.upcoming-section{margin-top:8px;background:var(--bg-section);padding:8px;border:1px solid var(--border-color);border-radius:var(--radius-section);box-shadow:var(--shadow-md)}.upcoming-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}.upcoming-card{padding:8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-section);border-left:4px solid}.upcoming-card-header{display:flex;align-items:center;gap:6px;margin-bottom:2px}.upcoming-name{font-size:15px;font-weight:700;color:var(--text-primary)}.upcoming-time{font-size:20px;font-weight:800;font-family:'Courier New',monospace;color:var(--color-accent)}.upcoming-remaining{font-size:13px;color:var(--text-secondary);margin-top:2px}.upcoming-card.can-take{border-left-color:var(--color-success)}.upcoming-card.can-take .upcoming-time{color:var(--color-success)}.info-section{margin-top:8px;background:var(--bg-section);padding:8px;border:1px solid var(--border-color);border-radius:var(--radius-section);box-shadow:var(--shadow-md)}.info-content{display:flex;flex-direction:column;gap:6px}.info-item{display:flex;align-items:flex-start;gap:8px;font-size:15px;color:var(--text-secondary)}.info-icon{font-size:16px;flex-shrink:0}.toast{position:fixed;bottom:20px;right:20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-button);padding:10px 15px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;opacity:0;transform:translateY(20px);transition:all 0.3s;z-index:1000;max-width:300px;pointer-events:none}.toast.show{opacity:1;transform:translateY(0);pointer-events:auto}.toast svg{stroke:var(--color-success);flex-shrink:0}.toast-content{display:flex;flex-direction:column;gap:3px}.toast-title{font-size:15.5px;font-weight:600;color:var(--text-primary)}.toast-value{font-size:14px;color:var(--text-secondary);font-family:'Courier New',monospace;word-break:break-all}@media (max-width:768px){.medication-dosage-interval-calculator-container{margin:6px 5px;padding:7px;width:calc(100% - 10px)}.main-grid{grid-template-columns:1fr;gap:6px}.calculator-header{padding-right:50px}.calculator-header .main-title{font-size:26px}.section-header{font-size:17px}.dark-mode-toggle{font-size:14px;padding:5px 8px}.input-row{grid-template-columns:1fr;gap:8px}.med-list{grid-template-columns:1fr 1fr;max-height:280px}.button-group.four-cols{grid-template-columns:repeat(2,1fr)}.upcoming-list{grid-template-columns:1fr 1fr}.timeline-hours span{font-size:11px}}@media (max-width:480px){.medication-dosage-interval-calculator-container{padding:6px;border-width:1px}.input-section,.result-section,.timeline-section,.upcoming-section,.info-section{padding:6px}.calculator-header{padding-right:45px}.calculator-header .main-title{font-size:24px}.calculator-header .subtitle{font-size:14.5px}.quick-btn{font-size:13px;padding:4px 8px}.interval-input-wrapper input[type="number"]{width:55px}.color-btn{width:24px;height:24px}.med-list{grid-template-columns:1fr}.upcoming-list{grid-template-columns:1fr}.timeline-controls{gap:4px}.timeline-date{font-size:13px;min-width:60px}.timeline-nav-btn{width:22px;height:22px}.info-item{font-size:14px}.button-group.four-cols{grid-template-columns:repeat(2,1fr)}.sample-btn,.reset-btn,.save-btn,.load-btn{font-size:13px;padding:5px 4px}}