*,:before,:after{box-sizing:border-box}body{color:#333;-webkit-font-smoothing:antialiased;background:#fafafa;margin:0;font-family:Noto Sans JP,sans-serif}.glitch-text.glitching{color:#db7093;white-space:pre;font-family:Share Tech Mono,monospace;font-size:.7em}.glitch-text.corruption-0{animation:80ms steps(2,end) glitch-jitter}.glitch-text.corruption-1{animation:80ms steps(2,end) infinite glitch-jitter}.glitch-text.corruption-2{opacity:.9;animation:60ms steps(3,end) infinite glitch-jitter}.glitch-text.corruption-3{text-shadow:0 0 4px #db709366;animation:50ms steps(3,end) infinite glitch-jitter-heavy}.glitch-text.corruption-4{text-shadow:0 0 8px #db709399;opacity:.8;animation:40ms steps(4,end) infinite glitch-jitter-heavy}@keyframes glitch-jitter{0%{transform:translate(0)}25%{transform:translate(-1px,1px)}50%{transform:translate(1px,-1px)}75%{transform:translate(-1px)}to{transform:translate(0)}}@keyframes glitch-jitter-heavy{0%{transform:translate(0)skew(0)}20%{transform:translate(-3px,1px)skew(-1deg)}40%{transform:translate(2px,-2px)skew(.5deg)}60%{transform:translate(-1px,2px)skew(-.5deg)}80%{transform:translate(3px,-1px)skew(1deg)}to{transform:translate(0)skew(0)}}.login-screen{background:#fafafa;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-container{text-align:center;padding:3rem}.seifu-logo{width:80px;height:80px;margin:0 auto 2rem;position:relative}.logo-ring{border:1px solid #db70934d;border-radius:50%;animation:12s linear infinite ring-rotate;position:absolute;inset:0}.logo-ring:before{content:"";background:#db7093;border-radius:50%;width:5px;height:5px;position:absolute;top:-3px;left:50%}.logo-ring.inner{border-color:#db709326;animation-duration:8s;animation-direction:reverse;inset:12px}.logo-text{color:#db7093;justify-content:center;align-items:center;font-size:1.8rem;font-weight:300;display:flex;position:absolute;inset:0}@keyframes ring-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.seifu-title{color:#333;letter-spacing:.1em;margin:0 0 .4rem;font-size:1.4rem;font-weight:300}.seifu-subtitle{color:#bbb;letter-spacing:.05em;margin:0 0 .2rem;font-family:Share Tech Mono,monospace;font-size:.7rem}.seifu-version{color:#ccc;margin:0;font-family:Share Tech Mono,monospace;font-size:.65rem}.login-divider{background:#e0e0e0;width:120px;height:1px;margin:2rem auto}.login-prompt{color:#888;margin:0 0 1.2rem;font-size:.9rem;font-weight:300}.login-form{flex-direction:column;align-items:center;gap:.8rem;display:flex}.login-input{color:#333;text-align:center;background:#fff;border:1px solid #ddd;border-radius:4px;outline:none;width:220px;padding:.7rem 1.2rem;font-family:Noto Sans JP,sans-serif;font-size:.9rem;transition:border-color .2s}.login-input::placeholder{color:#ccc}.login-input:focus{border-color:#db7093}.login-button{color:#db7093;cursor:pointer;letter-spacing:.1em;background:0 0;border:1px solid #db7093;border-radius:4px;padding:.6rem 2.5rem;font-family:Noto Sans JP,sans-serif;font-size:.85rem;font-weight:400;transition:all .2s}.login-button:hover:not(:disabled){color:#fff;background:#db7093}.login-button:disabled{opacity:.3;cursor:not-allowed}.login-footer{color:#bbb;margin-top:2.5rem;font-size:.65rem;line-height:1.8}.login-disclaimer{color:#ccc;margin-top:1.5rem;font-size:.55rem}.modal-overlay{z-index:900;background:#0000004d;justify-content:center;align-items:center;animation:.15s ease-out modal-fade-in;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border:1px solid #eee;border-radius:8px;width:90%;max-width:500px;max-height:80vh;animation:.2s ease-out modal-slide-in;overflow-y:auto}.modal-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:1rem 1.2rem;display:flex}.modal-title{color:#333;margin:0;font-size:.85rem;font-weight:500}.modal-close{color:#aaa;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.2rem;line-height:1}.modal-close:hover{color:#333}.modal-body{padding:1.2rem}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.notif-overlay{z-index:800;position:fixed;inset:0}.notif-panel{background:#fff;border:1px solid #eee;border-radius:8px;width:340px;max-height:400px;animation:.15s ease-out modal-slide-in;position:absolute;top:50px;right:1rem;overflow:hidden;box-shadow:0 4px 20px #00000014}.notif-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:.8rem 1rem;display:flex}.notif-title{color:#333;font-size:.8rem;font-weight:500}.notif-mark-read{color:#db7093;cursor:pointer;background:0 0;border:none;font-family:Noto Sans JP,sans-serif;font-size:.65rem}.notif-list{max-height:320px;overflow-y:auto}.notif-item{border-bottom:1px solid #f8f8f8;align-items:flex-start;gap:.6rem;padding:.8rem 1rem;display:flex}.notif-item.unread{background:#fdf5f7}.notif-dot{background:#db7093;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:.4rem}.notif-content{flex:1}.notif-text{color:#444;margin:0 0 .2rem;font-size:.75rem;line-height:1.5}.notif-time{color:#bbb;font-size:.6rem}.settings-list{flex-direction:column;display:flex}.settings-row{border-bottom:1px solid #f5f5f5;justify-content:space-between;align-items:center;padding:.8rem 0;display:flex}.settings-info{flex-direction:column;gap:.15rem;display:flex}.settings-name{color:#333;font-size:.8rem}.settings-desc{color:#aaa;font-size:.65rem}.settings-toggle{cursor:pointer;border:none;border-radius:3px;padding:.3rem .8rem;font-family:Share Tech Mono,monospace;font-size:.7rem;transition:all .2s}.settings-toggle.on{color:#db7093;background:#db70931a}.settings-toggle.on:hover{background:#db709333}.settings-denied{background:#fff5f7;border:1px solid #f5c6d0;border-radius:4px;margin-top:1rem;padding:.8rem;animation:.3s ease-out denied-shake}.settings-denied-text{color:#c0506e;margin:0 0 .3rem;font-size:.8rem;font-weight:500}.settings-denied.warning .settings-denied-text{color:#e67e22}.settings-denied.warning{background:#fef9f0;border-color:#f5d6a8}.settings-denied.critical .settings-denied-text{color:#e74c3c}.settings-denied.critical{background:#fdf0f0;border-color:#f5a8a8}.settings-denied-sub{color:#888;margin:0;font-size:.7rem;line-height:1.6}.settings-footer{color:#ccc;text-align:center;margin:1rem 0 0;font-size:.6rem}@keyframes denied-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.pulse-line-container{z-index:99;background:#fff;border-bottom:1px solid #f0f0f0;width:100%;height:16px;position:sticky;top:49px}.pulse-line-canvas{width:100%;height:100%;display:block}.dashboard{color:#333;background:#fafafa;min-height:100vh;font-family:Noto Sans JP,sans-serif}.dash-header{z-index:100;background:#fff;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:.8rem 2rem;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:.6rem;display:flex}.header-logo{color:#db7093;font-size:1.2rem;font-weight:300}.header-title{color:#888;font-size:.85rem;font-weight:300}.header-right{align-items:center;gap:1rem;display:flex}.header-time{color:#aaa;font-family:Share Tech Mono,monospace;font-size:.8rem}.header-citizen{color:#bbb;font-size:.7rem}.logout-btn{color:#aaa;cursor:pointer;background:0 0;border:1px solid #ddd;border-radius:3px;padding:.3rem .8rem;font-family:Noto Sans JP,sans-serif;font-size:.7rem;transition:all .2s}.logout-btn:hover{color:#e74c3c;border-color:#e74c3c}.header-vital{color:#db7093;font-size:.75rem}.vital-pulse-icon{animation:1s ease-in-out infinite pulse-beat;display:inline-block}@keyframes pulse-beat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.header-notif-btn,.header-settings-btn{cursor:pointer;color:#aaa;background:0 0;border:none;padding:0;font-size:1rem;transition:color .2s;position:relative}.header-notif-btn:hover,.header-settings-btn:hover{color:#db7093}.header-icon{width:16px;height:16px}.notif-badge{color:#fff;background:#db7093;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;font-family:Share Tech Mono,monospace;font-size:.5rem;display:flex;position:absolute;top:-4px;right:-6px}.motion-permit-btn{color:#db7093;cursor:pointer;background:#db70930f;border:1px solid #db70934d;border-radius:4px;margin:1rem 0 0;padding:.5rem 1rem;font-family:Noto Sans JP,sans-serif;font-size:.75rem;transition:all .2s;display:block}.motion-permit-btn:hover{background:#db70931f}.shake-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;animation:.15s ease-out overlay-in;display:flex;position:fixed;inset:0}.shake-modal{text-align:center;background:#fff;border:2px solid #db7093;border-radius:8px;width:90%;max-width:360px;padding:2rem 2.5rem;animation:.2s steps(2,end) infinite modal-shake}.shake-icon{color:#fff;background:#db7093;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:1rem;font-size:1.2rem;font-weight:700;display:inline-flex}.shake-title{color:#c0506e;margin:0 0 .8rem;font-size:1rem;font-weight:500}.shake-body{color:#555;margin:0 0 .2rem;font-size:.85rem}.shake-body-sub{color:#888;margin:0 0 1rem;font-size:.8rem}.shake-meta{color:#bbb;margin:0;font-size:.6rem}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-shake{0%{transform:translate(0)}25%{transform:translate(-2px,1px)}50%{transform:translate(1px,-2px)}75%{transform:translate(2px,1px)}to{transform:translate(0)}}.dash-main{flex-direction:column;gap:1rem;max-width:1100px;margin:0 auto;padding:1.5rem 2rem;display:flex}.dash-card{background:#fff;border:1px solid #eee;border-radius:6px;padding:1.5rem}.card-title{color:#db7093;letter-spacing:.08em;text-transform:uppercase;margin:0 0 1rem;font-size:.7rem;font-weight:400}.card-note{color:#bbb;margin:1rem 0 0;font-size:.7rem}.mono{font-family:Share Tech Mono,monospace}.greeting-card{text-align:center;padding:2rem 1.5rem}.greeting-date{color:#aaa;margin:0 0 .5rem;font-size:.75rem}.greeting-text{color:#333;margin:0 0 .5rem;font-size:1.1rem;font-weight:300}.greeting-sub{color:#aaa;margin:0;font-size:.8rem}.status-list{flex-direction:column;gap:.6rem;display:flex}.status-row{align-items:center;gap:.6rem;font-size:.8rem;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-dot.active{background:#db7093}.status-dot.standby{background:#ccc}.status-name{color:#555;flex:1}.status-value{color:#aaa;font-size:.7rem}.notice-list{flex-direction:column;gap:1.2rem;display:flex}.notice{position:relative}.notice+.notice{border-top:1px solid #f5f5f5;padding-top:1.2rem}.notice-date{color:#bbb;font-size:.65rem}.notice-tag{color:#db7093;background:#db709314;border-radius:2px;margin-bottom:.3rem;padding:.15rem .5rem;font-size:.6rem;display:inline-block}.notice-title{color:#333;margin:.3rem 0;font-size:.85rem;font-weight:500}.notice-body{color:#666;margin:0;font-size:.8rem;line-height:1.8}.notice-clickable{cursor:pointer;border-radius:4px;margin:-.8rem;padding:.8rem;transition:background .15s}.notice-clickable:hover{background:#fdf5f7}.notice-clickable+.notice-clickable{margin-top:.4rem}.notice-header-row{justify-content:space-between;align-items:center;display:flex}.notice-chevron{color:#bbb;font-size:.7rem;transition:transform .2s}.notice-chevron.open{transform:rotate(180deg)}.notice-detail{color:#555;border-top:1px solid #f0f0f0;margin-top:.8rem;padding-top:.8rem;font-size:.75rem;line-height:1.7;animation:.2s ease-out notice-expand}@keyframes notice-expand{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.notice-detail-date{color:#bbb;margin:0 0 .8rem;font-size:.65rem}.notice-detail-body{color:#555;font-size:.8rem;line-height:1.7}.notice-detail-line{margin:0 0 .2rem}.notice-detail-blank{height:.6rem;margin:0}.booking-btn{color:#db7093;cursor:pointer;background:#db70930f;border:1px solid #db70934d;border-radius:4px;width:100%;margin-top:1rem;padding:.7rem;font-family:Noto Sans JP,sans-serif;font-size:.8rem;transition:all .2s;display:block}.booking-btn:hover{background:#db70931f}.booking-form{flex-direction:column;gap:.8rem;display:flex}.booking-field{flex-direction:column;gap:.2rem;display:flex}.booking-label{color:#888;font-size:.7rem}.booking-input{color:#333;background:#fafafa;border:1px solid #ddd;border-radius:4px;outline:none;padding:.5rem .7rem;font-family:Noto Sans JP,sans-serif;font-size:.8rem}.booking-input:focus{border-color:#db7093}.booking-submit{color:#fff;cursor:pointer;background:#db7093;border:none;border-radius:4px;margin-top:.3rem;padding:.7rem;font-family:Noto Sans JP,sans-serif;font-size:.85rem;transition:background .2s}.booking-submit:hover{background:#c0607e}.booking-done{text-align:center;padding:1rem 0}.booking-done-icon{color:#db7093;margin:0 0 .8rem;font-size:2rem}.booking-done-title{color:#333;margin:0 0 .5rem;font-size:.9rem;font-weight:500}.booking-done-text{color:#666;margin:0 0 .8rem;font-size:.8rem;line-height:1.6}.booking-done-sub{color:#bbb;margin:0;font-size:.65rem}.lifeism-card{border-left:3px solid #db7093}.lifeism-quote{color:#444;margin:0 0 1rem;padding:0;font-size:.95rem;font-style:normal;line-height:1.9}.lifeism-body{color:#666;margin:0 0 .5rem;font-size:.8rem;line-height:1.8}.dash-footer{color:#ccc;border-top:1px solid #eee;flex-wrap:wrap;justify-content:space-between;gap:.3rem;padding:.8rem 2rem;font-size:.6rem;display:flex}.disclaimer{text-align:center;color:#ccc;grid-column:1/-1;font-family:Noto Sans JP,sans-serif;font-size:.55rem}.final-disclaimer{color:#ccc;margin-top:.8rem;font-size:.55rem}.status-dot.error{background:#e74c3c}.dashboard-brief-shake{animation:.5s ease-out brief-shake}@keyframes brief-shake{0%,to{transform:translate(0)}10%{transform:translate(-3px)}20%{transform:translate(3px)}30%{transform:translate(-2px,1px)}40%{transform:translate(2px,-1px)}50%{transform:translate(-1px)}60%{transform:translate(1px)}}.dashboard-glitch-1 .dash-card{animation:4s ease-in-out infinite card-shake-mild}@keyframes card-shake-mild{0%,90%,to{transform:translate(0)}93%{transform:translate(-1px)}96%{transform:translate(1px)}}.dashboard-glitch-3 .dash-card{animation:.12s steps(2,end) infinite card-shake-heavy}.dashboard-glitch-3 .dash-card:nth-child(odd){animation-delay:30ms}.dashboard-glitch-3 .dash-header{animation:.1s steps(2,end) infinite header-glitch}@keyframes card-shake{0%{transform:translate(0)}25%{transform:translate(-1px,1px)}50%{transform:translate(1px,-1px)}75%{transform:translate(-1px)}to{transform:translate(0)}}@keyframes card-shake-heavy{0%{transform:translate(0)skew(0)}25%{transform:translate(-3px,1px)skew(-.5deg)}50%{transform:translate(2px,-2px)skew(.3deg)}75%{transform:translate(-2px,1px)skew(-.3deg)}to{transform:translate(0)skew(0)}}@keyframes header-glitch{0%{clip-path:inset(0);transform:translate(0)}33%{clip-path:inset(0 0 60%);transform:translate(-3px)}66%{clip-path:inset(40% 0 0);transform:translate(2px)}to{clip-path:inset(0);transform:translate(0)}}.shake-modal-2{border-color:#e67e22}.shake-modal-3{border-color:#e74c3c;animation:.1s steps(3,end) infinite modal-shake-heavy}@keyframes modal-shake-heavy{0%{transform:translate(0)rotate(0)}25%{transform:translate(-3px,2px)rotate(-.5deg)}50%{transform:translate(2px,-3px)rotate(.3deg)}75%{transform:translate(-2px,1px)rotate(-.3deg)}to{transform:translate(0)rotate(0)}}.final-screen{z-index:2000;background:#fff;justify-content:center;align-items:center;animation:3s ease-out final-fade-in;display:flex;position:fixed;inset:0}.final-content{text-align:center;max-width:480px;max-height:100vh;padding:1.5rem 2rem;overflow-y:auto}.final-etml{color:#ddd;margin:0 0 .8rem;font-size:.6rem;line-height:1.5}.final-text{color:#999;margin:0 0 .8rem;font-size:.85rem;font-weight:300;line-height:1.8}.final-text-fade-1{animation:3s ease-out 2s both final-text-appear}.final-text-fade-2{animation:3s ease-out 5s both final-text-appear}.final-text-fade-3{animation:3s ease-out 8s both final-text-appear}.final-text-fade-4{animation:3s ease-out 11s both final-text-appear}@keyframes final-fade-in{0%{opacity:0}to{opacity:1}}.final-text-fade-5{animation:3s ease-out 16s both final-text-appear}.final-author{color:#ccc;letter-spacing:.1em;margin:1rem 0 0;font-size:.75rem}.final-return{color:#ccc;cursor:pointer;background:0 0;border:1px solid #ddd;border-radius:4px;margin-top:1.5rem;padding:.5rem 1.5rem;font-family:Noto Sans JP,sans-serif;font-size:.7rem;transition:all .2s}.final-return:hover{color:#999;border-color:#bbb}@keyframes final-text-appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=800px){.dash-main{padding:1rem}.dash-header{padding:.8rem 1rem}.greeting-text{font-size:.95rem}}
