.modal-overlay{background-color:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.weather-info-container{background:linear-gradient(135deg,#6ea9ff,#4a90e2);color:#fff;padding:12px 15px;border-radius:8px;margin-bottom:15px;box-shadow:0 2px 10px rgba(0,0,0,.1);cursor:pointer;transition:transform .2s ease}.weather-info-container:hover{transform:translateY(-2px)}.current-weather{justify-content:space-between;margin-bottom:8px}.current-weather,.weather-main{display:flex;align-items:center}.weather-main{gap:12px}.weather-icon-group{display:flex;align-items:center;gap:8px}.weather-icon{font-size:32px;text-shadow:2px 2px 4px rgba(0,0,0,.2);width:40px;height:40px}.weather-text{font-size:16px;font-weight:500;color:#fff}.temperature-group{display:flex;flex-direction:column;gap:8px}.main-temp{display:flex;align-items:baseline}.temp-value{font-size:42px;font-weight:700;line-height:1;transition:color .3s ease}.temp-unit{font-size:20px;margin-left:2px;opacity:.9}.weather-details{gap:15px}.forecast-row,.weather-details{display:flex;font-size:13px;align-items:center}.forecast-row{justify-content:space-between;padding-top:8px;border-top:1px solid hsla(0,0%,100%,.2)}.rain-forecast{display:flex;align-items:center;gap:8px}.rain-forecast i{color:hsla(0,0%,100%,.9);font-size:14px}.update-time{font-size:11px;opacity:.8;margin-left:auto}@media screen and (max-width:768px){.weather-info-container{padding:10px}.weather-main{gap:10px}.weather-icon{font-size:24px}.temp-value{font-size:36px}.temp-unit{font-size:18px}.weather-details{flex-wrap:wrap;gap:8px;font-size:12px}.forecast-row{padding-top:6px;font-size:12px;gap:8px}.update-time{font-size:10px}.weather-text{font-size:14px}}.hourly-weather-modal{background:#fff;border-radius:12px;padding:15px;max-width:1200px;max-height:90vh;overflow-y:auto}.hourly-weather-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid #eee}.hourly-weather-header h3{font-size:18px;margin:0;color:#333}.temp-chart{width:2000px;height:260px;margin:0 auto}@media screen and (max-width:768px){.temp-chart{width:1500px;height:240px}.hourly-weather-modal{padding:12px}.hourly-weather-header h3{font-size:16px}}.schedule-container{max-width:1200px;display:flex;justify-content:center}.schedule-calendar,.schedule-container{width:100%;margin:0 auto;padding:10px;box-sizing:border-box}.schedule-calendar{max-width:1000px;font-family:Arial,sans-serif}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 10px}.calendar-header h2{font-size:clamp(18px,4vw,24px);font-weight:700;margin:0 10px}.calendar-header button{padding:10px 20px;font-size:20px;cursor:pointer;background-color:#f8f9fa;border:1px solid #ddd;border-radius:5px;transition:all .3s ease;display:flex;align-items:center;justify-content:center;min-width:50px}.calendar-header button:hover{background-color:#e9ecef}.calendar-header button i{font-size:20px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:700;margin-bottom:10px;background-color:#f8f9fa;padding:10px}.weekday{font-size:clamp(14px,3vw,18px)}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{border:1px solid #ddd;border-radius:5px;background-color:#fff;transition:all .3s ease;position:relative;padding:6px 6px 10px 6px;display:flex;flex-direction:column}.day.clickable{cursor:pointer;justify-content:flex-start;align-items:center;margin-top:4px;margin-bottom:2px;color:inherit;gap:5px}.day.clickable:hover{box-shadow:0 2px 12px rgba(0,0,0,.1);transform:translateY(-1px)}.schedule-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;margin-top:4px;margin-bottom:2px;color:inherit}.date{font-size:14px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:center}.weather-icon{width:24px;height:24px;justify-content:center}.schedule,.weather-icon{display:flex;align-items:center}.schedule{flex-direction:column;gap:2px;color:inherit}.schedule i{font-size:18px;margin-right:5px}.schedule-info{display:flex;flex-direction:column;align-items:center;gap:2px;color:inherit}.schedule-text{font-size:12px;font-weight:700;line-height:1.1;color:inherit}.work-time-desktop{font-size:12px;margin-top:2px;opacity:.9}.work-time{font-size:12px;color:#666}.night-shift,.night-shift .schedule-text,.night-shift i{color:#e74c3c}.day-shift,.day-shift .schedule-text,.day-shift i{color:#3498db}.rest,.rest .schedule-text,.rest i{color:#2ecc71}.today{border:2px solid #42b983!important;background-color:#f0fff4!important;position:relative}.today:after{content:"今天";position:absolute;top:2px;left:2px;background-color:#42b983;color:#fff;padding:2px 6px;border-radius:3px;font-size:12px}@media screen and (max-width:768px){.schedule-calendar,.schedule-container{padding:5px}.calendar-header{padding:10px 5px}.calendar-header h2{font-size:18px}.calendar-header button{padding:5px 10px;font-size:14px}.calendar-weekdays{padding:5px}.weekday{font-size:14px;padding:5px 0}.calendar-days{padding:0 5px;gap:2px}.day{padding:4px 4px 8px 4px}.date{font-size:13px;margin-bottom:1px}.schedule-content{margin-top:2px}.schedule{gap:6px}.modal-content{width:90%;max-width:320px;padding:15px}.modal-content h3{font-size:16px;margin-bottom:10px}.cycle-box{width:32px;height:32px;padding:2px}.cycle-status{font-size:16px}.cycle-box.active:after{top:-12px;padding:1px 4px;font-size:8px}.cycle-diagram{padding:12px 5px;gap:3px}.modal-footer button{padding:6px 12px;font-size:14px}.schedule i{font-size:16px;margin-bottom:2px}.schedule-info{gap:2px}.schedule-text{font-size:11px}.work-time{font-size:10px}.work-time-desktop{display:none}}.cycle-diagram:after{content:"← 滑动查看更多 →";position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:12px;color:#999;white-space:nowrap;@media screen and (max-width:768px){font-size:10px;bottom:-15px}}.cycle-diagram{position:relative;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}@media screen and (max-width:480px){.calendar-header h2{font-size:16px}.calendar-header button{padding:5px 10px;font-size:14px}.weekday{font-size:12px}.day{padding:4px 4px 8px 4px}.schedule i{font-size:20px}.schedule-text{font-size:10px}}@media screen and (min-width:1200px){.schedule-container{padding:20px}.day{padding:6px 6px 12px 6px}.schedule i{font-size:22px}.schedule-text{font-size:13px}.work-time{font-size:14px}}.reset-button{margin-left:10px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:20px;border-radius:8px;min-width:300px;max-width:90%}.modal-content h3{margin:0 0 20px 0;text-align:center}.modal-body{margin-bottom:20px}.select-group{margin-bottom:15px}.select-group label{display:block;margin-bottom:5px}.select-group select{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px}.modal-footer{display:flex;justify-content:flex-end;gap:10px}.modal-footer button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer}.modal-footer button:first-child{background-color:#42b983;color:#fff}.modal-footer button:last-child{background-color:#666;color:#fff}@media screen and (max-width:768px){.modal-content{width:90%;margin:0 20px}.select-group select{font-size:16px}}.custom-color{color:var(--status-color)}.cycle-info{text-align:center;margin-bottom:20px;font-size:16px;color:#666}.cycle-diagram{justify-content:flex-start;gap:5px;padding:10px;padding-top:20px;overflow-x:auto;background:#f5f5f5;border-radius:8px;min-height:100px}.cycle-box,.cycle-diagram{display:flex;align-items:center}.cycle-box{flex-shrink:0;width:40px;height:40px;border:1px solid #ddd;border-radius:6px;justify-content:center;cursor:pointer;background:#fff;transition:all .2s ease;position:relative;padding:4px}.cycle-box:hover{transform:translateY(-2px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.cycle-box.active{border-color:#42b983;background:#f0fff4}.cycle-box.active:after{content:"今天";position:absolute;top:-16px;left:50%;transform:translateX(-50%);background:#42b983;color:#fff;padding:2px 8px;border-radius:10px;font-size:10px;white-space:nowrap;z-index:1;box-shadow:0 2px 4px rgba(0,0,0,.1)}.cycle-status{font-size:20px;margin:0}@media screen and (max-width:768px){.cycle-box{width:35px;height:35px;padding:2px}.cycle-status{font-size:18px}.cycle-box.active:after{top:-14px;padding:1px 6px;font-size:9px}.cycle-diagram{padding-top:16px}}.cycle-diagram::-webkit-scrollbar{height:4px}.cycle-diagram::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.cycle-diagram::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.cycle-diagram::-webkit-scrollbar-thumb:hover{background:#999}.schedule-item i{margin-right:5px}.work-time-modal{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease}.work-time-content{background:#fff;border-radius:12px;padding:20px;min-width:260px;max-width:90%;box-shadow:0 4px 24px rgba(0,0,0,.15);transform:translateY(0);animation:slideUp .3s ease}.work-time-header{font-size:18px;font-weight:700;text-align:center;padding-bottom:15px;border-bottom:1px solid #eee;margin-bottom:15px;color:#333;display:flex;align-items:center;justify-content:center;gap:8px}.work-time-header i{color:#666}.work-time-body{padding:15px 0}.work-time-info{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.work-time-icon{font-size:36px}.work-time-icon,.work-time-type{margin-bottom:5px;transition:color .3s ease}.work-time-type{font-size:24px;font-weight:500}.work-time-hours{font-size:16px;color:#666;display:flex;align-items:center;gap:6px;background:#f5f5f5;padding:8px 16px;border-radius:20px}.work-time-hours i{color:#666}.work-time-footer{margin-top:20px;text-align:center;border-top:1px solid #eee;padding-top:15px}.work-time-footer button{padding:8px 24px;border:none;border-radius:20px;background:#f5f5f5;color:#666;font-size:14px;cursor:pointer;transition:all .2s ease}.work-time-footer button:hover{background:#e0e0e0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media screen and (max-width:768px){.work-time-content{padding:16px;min-width:240px}.work-time-header{font-size:16px;padding-bottom:12px}.work-time-icon{font-size:32px}.work-time-type{font-size:20px}.work-time-hours{font-size:14px;padding:6px 12px}}@media screen and (min-width:769px){.schedule-info{gap:6px}.work-time-desktop{font-size:13px}}.debug-panel{background-color:#f8f9fa;border-radius:8px;padding:15px;margin-bottom:20px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.debug-message{font-family:monospace;padding:10px;background:#fff;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;white-space:pre-wrap;word-break:break-all}.debug-buttons{display:flex;gap:10px;justify-content:center}.debug-btn{padding:8px 16px;border:none;border-radius:4px;background-color:#4caf50;color:#fff;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .3s ease}.debug-btn:hover{background-color:#45a049}.weather-icon{font-size:20px;margin-bottom:2px}.temperature{font-size:12px;color:#666;margin-top:2px}.day-weather-info{width:100%}.weather-divider{height:1px;background:#eee;margin:15px 0;width:100%}.day-weather-content{display:flex;align-items:stretch;justify-content:space-between;gap:20px;padding:15px;background:#f8f9fa;border-radius:12px}.day-period{flex:1;display:flex;flex-direction:column;align-items:center;gap:10px}.period-label{font-size:16px;color:#666;font-weight:500}.weather-card{padding:15px;background:#fff;border-radius:8px;flex-direction:column;gap:12px;box-shadow:0 2px 6px rgba(0,0,0,.05)}.weather-card,.weather-info-row{width:100%;display:flex;align-items:center}.weather-info-row{gap:8px;padding:8px 12px;background:#f8f9fa;border-radius:20px;justify-content:center}.period-divider{width:1px;background:#eee;align-self:stretch}.day-weather-icon{font-size:36px}.day-temperature{font-size:42px;font-weight:700;transition:color .3s ease;line-height:1}.day-weather-text{font-size:16px;color:#666}@media screen and (max-width:768px){.day-weather-content{padding:12px;gap:15px}.weather-card{padding:12px}.day-weather-icon{font-size:28px}.period-label{font-size:14px}.day-temperature{font-size:36px}.day-weather-text{font-size:14px}.weather-info-row{padding:6px 10px}}.app-container{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:20px;background-color:#f8f9fa}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;overflow-x:hidden}@media screen and (max-width:768px){.app-container{width:100%}}@media screen and (max-width:480px){.app-container{padding:5px 2px}}