@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.app-footer{padding:8px 16px;background-color:var(--color-bg-elevated);border-top:1px solid var(--color-border-subtle);font-size:12px;color:var(--color-text-muted)}.footer-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto}.version-info{display:flex;justify-content:center;align-items:center;gap:4px}.version-info span{white-space:nowrap}.footer-links{display:flex;gap:16px}.footer-link{color:var(--color-text-muted);text-decoration:none;padding:4px 8px;border-radius:4px;transition:all .2s ease;font-size:12px}.footer-link:hover{color:var(--color-text);background-color:var(--color-bg-hover)}@media (max-width: 768px){.footer-content{flex-direction:column;gap:8px;text-align:center}.version-info{flex-direction:column;gap:2px}.version-info span:not(:last-child):after{content:""}.footer-links{justify-content:center}}:root{--color-bg: #f3f4f6;--color-bg-elevated: #ffffff;--color-border-subtle: #e5e7eb;--color-border-strong: #d1d5db;--color-text: #111827;--color-text-muted: #6b7280;--color-accent: #2563eb;--color-accent-soft: #dbeafe;--color-accent-strong: #1d4ed8;--color-danger: #dc2626;--shadow-soft: 0 4px 12px rgba(15, 23, 42, .08);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px}.theme-dark{--color-bg: #1f2937;--color-bg-elevated: #374151;--color-border-subtle: #4b5563;--color-border-strong: #6b7280;--color-text: #f9fafb;--color-text-muted: #9ca3af;--color-accent: #3b82f6;--color-accent-soft: #1e3a8a;--color-accent-strong: #60a5fa;--color-danger: #ef4444;--shadow-soft: 0 4px 12px rgba(0, 0, 0, .3)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:HK Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;background:radial-gradient(circle at top,#f9fafb 0,#e5e7eb 60%,#d1d5db);color:var(--color-text);transition:background .3s ease,color .3s ease}.theme-dark html,.theme-dark body{background:radial-gradient(circle at top,#111827 0,#1f2937 60%,#374151)}#root{height:100vh;width:100vw}.app-root{display:flex;flex-direction:column;min-height:100vh;padding:var(--spacing-lg);gap:var(--spacing-lg);background:var(--color-bg);transition:background .3s ease}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--color-border-subtle);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .3s ease,border-color .3s ease}.app-header h1{margin:0;font-size:1.25rem;font-weight:600;letter-spacing:.02em}.header-content{display:flex;justify-content:space-between;align-items:center;width:100%}.header-left{display:flex;align-items:center;gap:var(--spacing-md)}.app-logo{height:40px;width:auto;border-radius:var(--radius-sm)}.app-header-main{display:flex;flex-direction:column;gap:2px}.app-header-meta{display:flex;gap:10px;font-size:.75rem;color:var(--color-text-muted)}.app-header button{padding:6px 14px;border-radius:999px;border:1px solid var(--color-border-subtle);background:linear-gradient(135deg,#eff6ff,#dbeafe);color:var(--color-accent-strong);font-size:.875rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 1px 3px #0f172a1f}.app-header button:hover{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.app-main{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.app-error{padding:8px 12px;background:#fef2f2;border-radius:var(--radius-md);border:1px solid #fecaca;color:#b91c1c;font-size:.875rem}.app-refresh-indicator{margin-top:var(--spacing-sm);font-size:.75rem;color:var(--color-text-muted)}.timeline-grid{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-lg);border-radius:var(--radius-lg);background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);box-shadow:var(--shadow-soft)}.timeline-header{display:grid;grid-template-columns:minmax(90px,130px) 1fr;gap:var(--spacing-sm);font-size:.75rem;color:var(--color-text-muted)}.timeline-header .timeline-hours{display:grid;grid-template-columns:repeat(12,1fr);gap:0}.timeline-header .timeline-hours>div{text-align:left;position:relative}.timeline-header .timeline-hours>div:after{content:"";position:absolute;left:50%;bottom:-6px;width:1px;height:6px;background:var(--color-border-subtle)}.timeline-body{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;gap:4px;margin-top:10px;padding-top:4px;border-top:1px solid var(--color-border-subtle)}.timeline-current-time-container{position:absolute;top:0;bottom:0;left:calc(130px + var(--spacing-sm));right:0;pointer-events:none;z-index:5}.timeline-current-time{position:absolute;top:0;bottom:0;width:0;left:0;pointer-events:none}.timeline-current-time-line{position:absolute;top:0;bottom:0;left:0;width:2px;background:linear-gradient(to bottom,#2563ebf2,#2563eb33);box-shadow:0 0 0 1px #bfdbfee6}.timeline-current-time-label{position:absolute;top:-18px;left:50%;transform:translate(-50%);padding:2px 8px;font-size:1.2rem;font-weight:500;background:#111827;color:#f9fafb;border-radius:999px;box-shadow:0 2px 4px #0f172a73;white-space:nowrap}.room-row{display:grid;grid-template-columns:minmax(90px,130px) 1fr;gap:var(--spacing-sm);align-items:center;padding:3px 0}.room-label{padding-right:var(--spacing-sm);font-size:1.4rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-timeline{position:relative;height:87px;border-radius:var(--radius-md);background:linear-gradient(to bottom,#f9fafb,#e5e7eb);box-shadow:inset 0 0 0 1px #d1d5dbcc;overflow:hidden}.room-timeline:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(to right,#9ca3af 0,#9ca3af 1px,transparent 1px,transparent calc(100% / 12));opacity:.8;pointer-events:none}.theme-dark .room-timeline:before{background-image:repeating-linear-gradient(to right,var(--color-border-subtle) 0,var(--color-border-subtle) 1px,transparent 1px,transparent calc(100% / 12))}.theme-dark .room-timeline{background:linear-gradient(to bottom,#666,#4b5563);box-shadow:inset 0 0 0 1px #4b5563cc}.theme-dark .room-event-block{background:linear-gradient(135deg,#2a365e,#1e1b4b);border:1px solid #707ea1;box-shadow:0 2px 6px #030e31b3;color:#fff}.theme-dark .timeline-header{color:#d1d5db}.theme-dark .timeline-header .timeline-hours>div:after{background:#6b7280}.room-event-block{position:absolute;top:8px;bottom:8px;border-radius:var(--radius-md);background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:1px solid #93c5fd;box-shadow:0 2px 6px #2563eb4d;padding:6px 10px;display:flex;align-items:baseline;font-size:1.2rem;font-weight:500;color:#1e3a8a;overflow:hidden;white-space:normal;word-wrap:break-word;line-height:1.2}.settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;z-index:20}.settings-dialog{width:320px;max-width:90vw;padding:var(--spacing-lg);border-radius:var(--radius-lg);background:var(--color-bg-elevated);box-shadow:0 20px 40px #0f172a59;border:1px solid var(--color-border-strong)}.settings-dialog h2{margin:0 0 var(--spacing-md);font-size:1rem;font-weight:600}.settings-dialog form{display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-dialog label{display:flex;flex-direction:column;gap:4px;font-size:.8125rem;color:var(--color-text-muted)}.settings-dialog input,.settings-dialog select{padding:6px 8px;border-radius:var(--radius-md);border:1px solid var(--color-border-subtle);font-size:.875rem;background:#f9fafb}.settings-dialog input:focus,.settings-dialog select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent-soft)}.settings-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.settings-actions button{padding:6px 12px;border-radius:999px;font-size:.8125rem;border:1px solid var(--color-border-subtle);background:#f9fafb;cursor:pointer}.settings-actions button[type=submit]{background:var(--color-accent);border-color:var(--color-accent-strong);color:#f9fafb}.settings-actions button[type=submit]:hover{background:var(--color-accent-strong)}.api-tester{display:flex;align-items:center;gap:var(--spacing-sm)}.api-tester button{padding:4px 10px;font-size:.75rem;border-radius:999px;border:1px solid var(--color-border-subtle);background:#eff6ff;color:var(--color-accent-strong);cursor:pointer}.api-tester-status{font-size:.75rem}.api-tester-status-success{color:#15803d}.api-tester-status-error{color:#b91c1c}.theme-toggle{display:flex;gap:4px;background:#f3f4f6;padding:2px;border-radius:var(--radius-md);border:1px solid var(--color-border-subtle)}.theme-dark .theme-toggle{background:#374151}.theme-option{flex:1;padding:6px 12px;border:none;border-radius:4px;background:transparent;color:var(--color-text-muted);font-size:.875rem;cursor:pointer;transition:all .2s ease}.theme-option.active{background:var(--color-accent);color:#fff;box-shadow:0 1px 3px #2563eb4d}.theme-option:hover:not(.active){background:#2563eb1a;color:var(--color-accent)}.theme-dark .theme-option:hover:not(.active){background:#3b82f633}.app-logo{height:24px;width:auto;margin-right:var(--spacing-md)}.app-title{margin-right:3rem}@media (max-width: 1024px){.app-root,.timeline-grid{padding:var(--spacing-md)}.room-row,.timeline-header{grid-template-columns:minmax(80px,110px) 1fr}.timeline-current-time-container{left:calc(110px + var(--spacing-sm))}}@media (max-width: 768px){.app-title,.settings-text{display:none}.settings-icon{font-size:1.2rem}.settings-button{padding:6px 10px;min-width:auto}.app-header{flex-direction:row;align-items:center;gap:var(--spacing-sm)}.app-header-main{flex:1;min-width:0}.timeline-header{font-size:.6875rem;grid-template-columns:minmax(70px,100px) 1fr}.room-row{grid-template-columns:minmax(70px,100px) 1fr}.timeline-current-time-container{left:calc(100px + var(--spacing-sm))}}.timezone-selector{flex-shrink:0}.timezone-selector select{min-width:200px}.settings-timezone-selector{margin-top:var(--spacing-sm)}.settings-timezone-selector select{width:100%;min-width:200px;margin-top:var(--spacing-xs)}@media (max-width: 768px){.timezone-selector{align-self:flex-end}.timezone-selector select{min-width:150px;font-size:.875rem}}@media (max-width: 480px){.timezone-selector select{min-width:120px;font-size:.8125rem}}
