@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
:root{--bg:#0f1922;--panel:#1a2632;--panel2:#223242;--text:#eaf2ff;--muted:#9fb0c3;--btnDark:#2a3a4a;--btnBlue:#2f67ff;--btnYellow:#f2b233;--btnRed:#ef4444;--shadow:0 16px 40px #00000059;--radius:18px}*{box-sizing:border-box}body{background:radial-gradient(1200px 700px at 50% -10%,#ffffff0f,transparent 55%),radial-gradient(900px 500px at 50% 110%,#ffffff0d,transparent 60%),var(--bg);color:var(--text);flex-direction:column;min-height:100vh;margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,Helvetica Neue,Helvetica,sans-serif;display:flex}.weather-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14202bd9;border-bottom:1px solid #ffffff1a;width:100%;padding:10px 20px;box-shadow:0 2px 12px #0003}.weather-header-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1400px;margin:0 auto;display:flex}.weather-main{flex:1;align-items:center;gap:14px;display:flex}.weather-icon{flex-shrink:0}.weather-icon img{filter:drop-shadow(0 2px 8px #0000004d);width:48px;height:48px}.weather-temp{align-items:baseline;gap:4px;font-weight:700;line-height:1;display:flex}.weather-temp-value{color:var(--text);font-size:clamp(28px,4vw,42px)}.weather-temp-unit{color:var(--muted);opacity:.8;font-size:clamp(16px,2.5vw,24px)}.weather-info{flex-direction:column;flex:1;gap:4px;display:flex}.weather-description{color:var(--text);text-transform:capitalize;font-size:clamp(14px,1.8vw,18px);font-weight:500}.weather-details{color:var(--muted);opacity:.85;font-size:clamp(11px,1.3vw,13px)}.weather-location{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:clamp(12px,1.6vw,16px);font-weight:500;display:flex}.weather-location-icon{font-size:16px}.weather-loading,.weather-error{color:var(--muted);text-align:center;width:100%;padding:8px 0;font-size:14px}.wrap{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(980px,100%);margin:0 auto;padding:24px;display:flex}.title{letter-spacing:.08em;opacity:.95;font-size:clamp(18px,3vw,26px);font-weight:700}.date{color:var(--text);opacity:.9;margin-top:10px;font-size:clamp(18px,2.6vw,34px);font-weight:500}.clock{letter-spacing:.02em;font-variant-numeric:tabular-nums;margin-top:22px;font-size:clamp(84px,16vw,170px);font-weight:700;line-height:1}.clock-separator{animation:1s infinite blink;display:inline-block}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.3}}.buttons{grid-template-columns:1fr 1fr;gap:18px;width:min(740px,100%);margin:34px auto 14px;display:grid}.buttons.secondary{margin-top:18px}button{cursor:pointer;border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:none;padding:22px 20px;font-size:clamp(22px,3vw,40px);font-weight:500;transition:transform 80ms,filter .12s}button:active{transform:translateY(2px)scale(.995)}button:disabled{opacity:.6;cursor:not-allowed}.btn-dark{background:#ffffff1a}.btn-blue{background:var(--btnBlue)}.btn-yellow{background:var(--btnYellow);color:#fff}.btn-help{background:var(--btnRed);color:#fff;justify-content:center;align-items:center;gap:8px;transition:all .2s;display:flex}.btn-help:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 8px 20px #ef44444d}.btn-pause{color:#fff;background:#e8b54f}.btn-outline{box-shadow:none;background:#ffffff14;border:1px solid #ffffff1f}.planning-scroll::-webkit-scrollbar{height:8px}.planning-scroll::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.planning-scroll::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.planning-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.modal{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;justify-content:center;align-items:center;padding:22px;display:none;position:fixed;inset:0}.modal.show{display:flex}.card{background:#14202beb;border:1px solid #ffffff1a;border-radius:26px;width:min(560px,100%);position:relative;overflow:hidden;box-shadow:0 24px 70px #0000008c}.card-large{width:min(900px,95%)!important;max-width:900px!important}.card-header{justify-content:space-between;align-items:center;gap:12px;padding:22px 22px 6px;display:flex}.card-title{color:var(--muted);text-align:left;font-size:18px}.close{width:42px;height:42px;color:var(--text);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff1a;border-radius:999px;place-items:center;font-size:22px;display:grid}.card-body{padding:8px 22px 22px}.pin-title{margin:6px 0 10px;font-size:22px;font-weight:600}.pin-sub{color:var(--muted);margin:0 0 16px;font-size:14px}.dots{justify-content:center;gap:14px;margin:10px 0 20px;display:flex}.dot{background:#ffffff2e;border:1px solid #ffffff1f;border-radius:999px;width:14px;height:14px}.dot.filled{background:#ffffffeb}.keypad{grid-template-columns:repeat(3,1fr);gap:14px;width:min(380px,100%);margin:0 auto;padding:6px 6px 0;display:grid}.key{height:72px;box-shadow:none;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:16px;font-size:28px;font-weight:600}.key.action{letter-spacing:.02em;font-size:16px;font-weight:700}.key.danger{color:#ffdfdf;background:#ffffff14}.key-ok{background:var(--btnBlue)!important;color:#fff!important;border:1px solid var(--btnBlue)!important}.btn-cancel{color:#ffb6b6!important;background:#ef444433!important;border:1px solid #ef444466!important}.btn-cancel:hover{background:#ef44444d!important;border:1px solid #ef444480!important}.keypad-azerty{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:100%;margin:0 auto;display:flex}.keypad-row{grid-template-columns:repeat(10,1fr);gap:10px;width:100%;max-width:800px;margin:0 auto;display:grid}.keypad-row:last-of-type{grid-template-columns:repeat(10,1fr)}.keypad-row-last{justify-items:center;max-width:fit-content;margin:0 auto;grid-template-columns:repeat(7,auto)!important}.keypad-row-actions{max-width:400px;margin:0 auto;grid-template-columns:1fr 1fr!important}@media (max-width:900px){.keypad-row{grid-template-columns:repeat(8,1fr);gap:8px}}@media (max-width:700px){.keypad-row{grid-template-columns:repeat(6,1fr);gap:6px}}@media (max-width:500px){.keypad-row{grid-template-columns:repeat(5,1fr);gap:5px}}.pin-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px;display:flex}.small{box-shadow:none;border-radius:16px;padding:14px 16px;font-size:16px}.status{min-height:22px;color:var(--muted);margin-top:14px;font-size:14px}.status.ok{color:#baf7c3}.status.err{color:#ffb6b6}.choice{padding:6px 22px 22px}.choice-title{color:var(--muted);text-align:center;margin:10px 0 12px;font-size:20px}.modal-clock{letter-spacing:.02em;text-align:center;font-variant-numeric:tabular-nums;color:var(--text);margin:12px 0 18px;font-size:clamp(32px,6vw,48px);font-weight:700;line-height:1}.choice-buttons{grid-template-columns:1fr;gap:14px;display:grid}.button-content{text-align:left;align-items:center;gap:16px;width:100%;display:flex}.button-icon{flex-shrink:0;font-size:32px;line-height:1}.button-text{flex-direction:column;flex:1;gap:4px;display:flex}.button-main{font-size:clamp(20px,2.5vw,28px);font-weight:600;line-height:1.2}.button-secondary{opacity:.85;font-size:clamp(14px,1.8vw,18px);font-weight:400;line-height:1.3}.logo-container{justify-content:center;align-items:center;margin-top:30px;display:flex}.logo{opacity:.9;max-width:120px;height:auto}.version{color:var(--muted);opacity:.7;text-align:center;margin-top:10px;font-size:14px}@media (max-width:520px){.buttons{grid-template-columns:1fr}button{padding:18px 16px;font-size:28px}.clock{font-size:86px}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}@keyframes birthday-pop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes birthday-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.weather-background{transition:opacity .5s ease-in-out}.rain-drop{background:linear-gradient(#add8e6e6,#add8e64d);width:2px;height:25px;animation:linear infinite rain-fall;position:absolute;top:-25px;box-shadow:0 0 3px #add8e680}.rain-drop-medium{background:linear-gradient(#add8e6b3,#add8e633);width:1.5px;height:18px;animation:linear infinite rain-fall-medium;position:absolute;top:-18px}.rain-drop-small{background:linear-gradient(#add8e699,#add8e61a);width:1px;height:12px;animation:linear infinite rain-fall-small;position:absolute;top:-12px}@keyframes rain-fall{0%{opacity:1;transform:translateY(0)translate(0)}50%{opacity:1}85%{opacity:1}to{opacity:0;transform:translateY(100vh)translate(5px)}}.rain-drop-bounce{transform-origin:bottom;--bounce-top:55vh;background:linear-gradient(#add8e6f2,#add8e680,#add8e633);border-radius:2px;width:3px;height:12px;animation:linear infinite rain-bounce-on-button;position:absolute;top:-12px;box-shadow:0 0 5px #add8e6b3}@keyframes rain-bounce-on-button{0%{opacity:1;transform:translateY(0)translate(0)rotate(0)scaleY(1)}42%{transform:translateY(calc(var(--bounce-top,55vh) - 5px))translateX(0)rotate(0deg)scaleY(1);opacity:1}45%{transform:translateY(var(--bounce-top,55vh))translateX(0)rotate(0deg)scaleY(1.2);opacity:1}48%{transform:translateY(var(--bounce-top,55vh))translateX(calc(var(--bounce-distance,25px)*.2*var(--bounce-direction,1)))rotate(calc(var(--bounce-angle,15deg)*.3))scaleY(.5);opacity:.95}52%{transform:translateY(calc(var(--bounce-top,55vh) - 12px))translateX(calc(var(--bounce-distance,25px)*.4*var(--bounce-direction,1)))rotate(calc(var(--bounce-angle,15deg)*.6))scaleY(.7);opacity:.9}58%{transform:translateY(calc(var(--bounce-top,55vh) - 6px))translateX(calc(var(--bounce-distance,25px)*.65*var(--bounce-direction,1)))rotate(calc(var(--bounce-angle,15deg)*.85))scaleY(.85);opacity:.85}65%{transform:translateY(var(--bounce-top,55vh))translateX(calc(var(--bounce-distance,25px)*.85*var(--bounce-direction,1)))rotate(calc(var(--bounce-angle,15deg)*1))scaleY(.95);opacity:.8}75%{transform:translateY(calc(var(--bounce-top,55vh) + 8px))translateX(calc(var(--bounce-distance,25px)*1*var(--bounce-direction,1)))rotate(calc(var(--bounce-angle,15deg)*1.1))scaleY(1);opacity:.7}85%{transform:translateY(calc(var(--bounce-top,55vh) + 20px))translateX(calc(var(--bounce-distance,25px)*1.1*var(--bounce-direction,1)))rotate(calc(var(--bounce-angle,15deg)*1.2))scaleY(.95);opacity:.6}to{transform:translateY(100vh)translateX(calc(var(--bounce-distance,25px)*1.3*var(--bounce-direction,1)))rotate(calc(var(--bounce-angle,15deg)*1.4))scaleY(.8);opacity:0}}@keyframes rain-fall-medium{0%{opacity:.8;transform:translateY(0)translate(0)}90%{opacity:.8}to{opacity:0;transform:translateY(100vh)translate(-3px)}}@keyframes rain-fall-small{0%{opacity:.6;transform:translateY(0)translate(0)}95%{opacity:.6}to{opacity:0;transform:translateY(100vh)translate(2px)}}.rain-splash{opacity:0;background:radial-gradient(circle,#add8e699,#0000);border-radius:50%;width:8px;height:8px;animation:linear infinite rain-splash;position:absolute}@keyframes rain-splash{0%{opacity:0;transform:scale(0)}10%{opacity:.8;transform:scale(1.2)}30%{opacity:.6;transform:scale(1.5)}50%{opacity:.4;transform:scale(1.8)}to{opacity:0;transform:scale(2.5)}}.rain-slide{opacity:0;background:linear-gradient(90deg,#add8e6b3,#0000);border-radius:2px;width:4px;height:2px;animation:linear infinite rain-slide;position:absolute}@keyframes rain-slide{0%{opacity:0;transform:translate(0)scaleX(1)}20%{opacity:.7}50%{opacity:.5;transform:translate(30px)scaleX(1.5)}80%{opacity:.3}to{opacity:0;transform:translate(60px)scaleX(2)}}.snowflake{background:#fffc;border-radius:50%;width:8px;height:8px;animation:linear infinite snow-fall;position:absolute;top:-10px;box-shadow:0 0 6px #ffffff80}.snowflake-round{background:#ffffffd9;border-radius:50%}.snowflake-star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:#ffffffe6;box-shadow:0 0 8px #fff9}.snowflake-crystal{clip-path:polygon(50% 0%,60% 20%,100% 20%,100% 40%,60% 40%,50% 60%,40% 40%,0% 40%,0% 20%,40% 20%);background:#ffffffe6;box-shadow:0 0 10px #c8dcffb3}.snowflake-medium{width:6px;height:6px;animation:linear infinite snow-fall;position:absolute;top:-6px}.snowflake-small{background:#fff9;border-radius:50%;width:4px;height:4px;animation:linear infinite snow-fall;position:absolute;top:-4px;box-shadow:0 0 3px #fff6}@keyframes snow-fall{0%{opacity:1;transform:translateY(0)translate(0)rotate(0)}50%{opacity:.9}to{opacity:0;transform:translateY(100vh)translate(60px)rotate(720deg)}}.snowflake-bounce{transform-origin:50%;--bounce-top:55vh;background:#ffffffe6;border-radius:50%;width:8px;height:8px;animation:linear infinite snow-bounce-on-button;position:absolute;top:-10px;box-shadow:0 0 8px #ffffffb3}.snowflake-bounce.snowflake-star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.snowflake-bounce.snowflake-crystal{clip-path:polygon(50% 0%,60% 20%,100% 20%,100% 40%,60% 40%,50% 60%,40% 40%,0% 40%,0% 20%,40% 20%)}@keyframes snow-bounce-on-button{0%{opacity:1;transform:translateY(0)translate(0)rotate(0)scale(1)}38%{transform:translateY(calc(var(--bounce-top,55vh) - 10px))translateX(0)rotate(160deg)scale(1);opacity:1}42%{transform:translateY(var(--bounce-top,55vh))translateX(0)rotate(180deg)scale(1.4);opacity:1}46%{transform:translateY(var(--bounce-top,55vh))translateX(calc(var(--bounce-distance,18px)*.12*var(--bounce-direction,1)))rotate(calc(200deg + var(--bounce-angle,18deg)*.15))scale(.6);opacity:.95}52%{transform:translateY(calc(var(--bounce-top,55vh) - 12px))translateX(calc(var(--bounce-distance,18px)*.3*var(--bounce-direction,1)))rotate(calc(240deg + var(--bounce-angle,18deg)*.35))scale(.75);opacity:.9}60%{transform:translateY(calc(var(--bounce-top,55vh) - 6px))translateX(calc(var(--bounce-distance,18px)*.5*var(--bounce-direction,1)))rotate(calc(280deg + var(--bounce-angle,18deg)*.55))scale(.9);opacity:.85}68%{transform:translateY(var(--bounce-top,55vh))translateX(calc(var(--bounce-distance,18px)*.7*var(--bounce-direction,1)))rotate(calc(320deg + var(--bounce-angle,18deg)*.75))scale(1);opacity:.8}76%{transform:translateY(calc(var(--bounce-top,55vh) + 10px))translateX(calc(var(--bounce-distance,18px)*.85*var(--bounce-direction,1)))rotate(calc(360deg + var(--bounce-angle,18deg)*.9))scale(1.05);opacity:.75}85%{transform:translateY(calc(var(--bounce-top,55vh) + 25px))translateX(calc(var(--bounce-distance,18px)*.95*var(--bounce-direction,1)))rotate(calc(400deg + var(--bounce-angle,18deg)*1))scale(1.02);opacity:.7}to{transform:translateY(100vh)translateX(calc(var(--bounce-distance,18px)*1.15*var(--bounce-direction,1)))rotate(calc(720deg + var(--bounce-angle,18deg)*1.2))scale(.95);opacity:0}}.wind-line{background:linear-gradient(90deg,#0000 0%,#c8c8c84d 20%,#c8c8c8b3 50%,#c8c8c84d 80%,#0000 100%);border-radius:1px;width:90px;height:2px;animation:linear infinite wind-move-curved;position:absolute;box-shadow:0 0 4px #c8c8c866}.wind-line-medium{background:linear-gradient(90deg,#0000 0%,#c8c8c840 25%,#c8c8c899 50%,#c8c8c840 75%,#0000 100%);border-radius:1px;width:70px;height:1.5px;animation:linear infinite wind-move-curved;position:absolute}.wind-line-small{background:linear-gradient(90deg,#0000,#c8c8c866,#0000);border-radius:.5px;width:50px;height:1px;animation:linear infinite wind-move;position:absolute}.wind-particle{background:#c8c8c8cc;border-radius:50%;width:2px;height:2px;animation:linear infinite wind-particle-move-realistic;position:absolute;box-shadow:0 0 4px #c8c8c899}.wind-particle-small{background:#c8c8c899;border-radius:50%;width:1px;height:1px;animation:linear infinite wind-particle-move-realistic;position:absolute;box-shadow:0 0 2px #c8c8c866}.wind-swirl{opacity:0;border:1px solid #c8c8c84d;border-radius:50%;width:40px;height:40px;animation:linear infinite wind-swirl-move;position:absolute}.wind-wave{opacity:0;filter:blur(1px);background:linear-gradient(90deg,#0000 0%,#c8c8c833 30%,#c8c8c866 50%,#c8c8c833 70%,#0000 100%);border-radius:2px;width:120px;height:3px;animation:linear infinite wind-wave-move;position:absolute}@keyframes wind-move{0%{opacity:0;transform:translate(-100px)translateY(0)}25%{opacity:.5}75%{opacity:.5}to{opacity:0;transform:translate(100vw)translateY(0)}}@keyframes wind-move-curved{0%{opacity:0;transform:translate(-100px)translateY(0)rotate(0)}20%{opacity:.6;transform:translateX(10vw)translateY(calc(var(--wind-curve,0px)*.3))rotate(calc(var(--wind-curve,0px)*.1deg))}50%{opacity:.7;transform:translateX(50vw)translateY(calc(var(--wind-curve,0px)*.6))rotate(calc(var(--wind-curve,0px)*.2deg))}80%{opacity:.6;transform:translateX(90vw)translateY(calc(var(--wind-curve,0px)*.3))rotate(calc(var(--wind-curve,0px)*.1deg))}to{opacity:0;transform:translate(100vw)translateY(0)rotate(0)}}@keyframes wind-particle-move-realistic{0%{opacity:0;transform:translate(-60px)translateY(0)rotate(0)scale(1)}15%{opacity:.8;transform:translate(5vw)translateY(-8px)rotate(45deg)scale(1.1)}30%{opacity:.9;transform:translate(20vw)translateY(-15px)rotate(90deg)scale(1.2)}50%{opacity:.85;transform:translate(50vw)translateY(-20px)rotate(135deg)scale(1.1)}70%{opacity:.8;transform:translate(80vw)translateY(-15px)rotate(180deg)scale(1)}85%{opacity:.7;transform:translate(95vw)translateY(-8px)rotate(225deg)scale(.9)}to{opacity:0;transform:translate(100vw)translateY(0)rotate(270deg)scale(.8)}}@keyframes wind-swirl-move{0%{opacity:0;transform:translate(-50px)translateY(0)rotate(0)scale(.5)}20%{opacity:.4;transform:translate(20vw)translateY(-10px)rotate(180deg)scale(1)}50%{opacity:.5;transform:translate(50vw)translateY(-15px)rotate(360deg)scale(1.2)}80%{opacity:.4;transform:translate(80vw)translateY(-10px)rotate(540deg)scale(1)}to{opacity:0;transform:translate(100vw)translateY(0)rotate(720deg)scale(.5)}}@keyframes wind-wave-move{0%{opacity:0;transform:translate(-150px)translateY(0)scaleX(.5)}25%{opacity:.4;transform:translate(25vw)translateY(-5px)scaleX(1)}50%{opacity:.5;transform:translate(50vw)translateY(0)scaleX(1.2)}75%{opacity:.4;transform:translate(75vw)translateY(5px)scaleX(1)}to{opacity:0;transform:translate(100vw)translateY(0)scaleX(.5)}}.cold-crystal{background:#c8dcffb3;width:12px;height:12px;animation:linear infinite cold-float;position:absolute;box-shadow:0 0 8px #c8dcff99}.cold-crystal-0{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.cold-crystal-1{clip-path:polygon(50% 0%,60% 20%,100% 20%,100% 40%,60% 40%,50% 60%,40% 40%,0% 40%,0% 20%,40% 20%)}.cold-crystal-2{clip-path:polygon(50% 0%,80% 10%,100% 50%,80% 90%,50% 100%,20% 90%,0% 50%,20% 10%)}.cold-crystal-3{clip-path:polygon(30% 0%,70% 0%,100% 30%,100% 70%,70% 100%,30% 100%,0% 70%,0% 30%)}.cold-crystal-medium{background:#c8dcff99;width:9px;height:9px;animation:linear infinite cold-float;position:absolute;box-shadow:0 0 6px #c8dcff80}.cold-crystal-small{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:#c8dcff80;width:6px;height:6px;animation:linear infinite cold-float;position:absolute;box-shadow:0 0 4px #c8dcff66}.frost-effect{background:radial-gradient(circle,#dcf0ff66,#0000);border-radius:50%;width:15px;height:15px;animation:linear infinite frost-glow;position:absolute;box-shadow:0 0 10px #c8dcff80}@keyframes cold-float{0%{opacity:.7;transform:translateY(0)rotate(0)}50%{opacity:.9;transform:translateY(50vh)rotate(180deg)}to{opacity:0;transform:translateY(100vh)rotate(360deg)}}@keyframes frost-glow{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}}.lightning{background:linear-gradient(#fff,#ffffff4d);width:3px;height:60px;animation:linear infinite lightning-flash;position:absolute;box-shadow:0 0 10px #fffc}.lightning-vertical{clip-path:polygon(50% 0%,60% 20%,40% 30%,55% 50%,45% 70%,50% 100%)}.lightning-diagonal{clip-path:polygon(50% 0%,65% 15%,55% 35%,70% 50%,50% 70%,30% 50%,45% 35%,35% 15%)}.lightning-zigzag{clip-path:polygon(50% 0%,60% 15%,40% 30%,60% 45%,40% 60%,60% 75%,50% 100%)}.lightning-medium{clip-path:polygon(50% 0%,60% 20%,40% 30%,55% 50%,45% 70%,50% 100%);background:linear-gradient(#ffffffe6,#ffffff40);width:2.5px;height:50px;animation:linear infinite lightning-flash;position:absolute;box-shadow:0 0 8px #ffffffb3}.lightning-small{clip-path:polygon(50% 0%,60% 20%,40% 30%,55% 50%,45% 70%,50% 100%);background:linear-gradient(#fffc,#fff3);width:2px;height:35px;animation:linear infinite lightning-flash;position:absolute;box-shadow:0 0 6px #fff9}.storm-flash{background:radial-gradient(circle,#fff9,#0000);border-radius:50%;width:100px;height:100px;animation:linear infinite storm-flash-pulse;position:absolute;box-shadow:0 0 30px #fffc}.electric-particle{background:#ffffffe6;border-radius:50%;width:2px;height:2px;animation:linear infinite electric-spark;position:absolute;box-shadow:0 0 5px #c8dcffcc}@keyframes lightning-flash{0%,88%,to{opacity:0}3%,12%{opacity:1}8%{opacity:.5}}@keyframes storm-flash-pulse{0%,85%,to{opacity:0;transform:scale(0)}5%,10%{opacity:.8;transform:scale(1.2)}7%{opacity:.6;transform:scale(1)}}@keyframes electric-spark{0%,80%,to{opacity:0;transform:scale(0)translateY(0)}5%,15%{opacity:1;transform:scale(1.5)translateY(-10px)}10%{opacity:.7;transform:scale(1)translateY(-5px)}}.weather-rain .buttons button,.weather-rain .choice-buttons button,.weather-rain .pin-actions button{position:relative;overflow:hidden}.weather-rain .buttons button:before,.weather-rain .choice-buttons button:before,.weather-rain .pin-actions button:before{content:"";background:radial-gradient(circle at var(--splash-x,50%)var(--splash-y,50%),#add8e680 0%,#add8e64d 20%,#add8e626 35%,#add8e60d 50%,transparent 70%);pointer-events:none;opacity:0;border-radius:inherit;animation:.6s ease-out infinite button-rain-impact;position:absolute;inset:0}@keyframes button-rain-impact{0%{opacity:0;transform:scale(0)rotate(0)}10%{opacity:1;transform:scale(1.2)rotate(5deg)}25%{opacity:.8;transform:scale(1.5)rotate(-3deg)}50%{opacity:.5;transform:scale(2)rotate(2deg)}to{opacity:0;transform:scale(3)rotate(0)}}.weather-rain .buttons button,.weather-rain .choice-buttons button,.weather-rain .pin-actions button{animation:.2s ease-out infinite button-rain-bounce}@keyframes button-rain-bounce{0%,to{transform:translateY(0)scale(1)}30%{transform:translateY(-1.5px)scale(1.003)}60%{transform:translateY(.5px)scale(.999)}}.weather-rain .buttons button:after,.weather-rain .choice-buttons button:after,.weather-rain .pin-actions button:after{content:"";pointer-events:none;opacity:0;transform-origin:bottom;background:linear-gradient(#add8e6,#add8e6b3,#0000);border-radius:2px;width:5px;height:12px;animation:.5s cubic-bezier(.68,-.55,.265,1.55) infinite button-rain-drop-bounce-realistic;position:absolute;top:0;left:50%;transform:translate(-50%)translateY(-20px);box-shadow:0 0 6px #add8e6e6}@keyframes button-rain-drop-bounce-realistic{0%{opacity:0;transform:translate(-50%)translateY(-20px)rotate(0)scaleY(1)}20%{opacity:1;transform:translate(-50%)translateY(0)rotate(0)scaleY(1.3)}25%{opacity:1;transform:translate(-50%)translateY(2px)rotate(5deg)scaleY(.6)}30%{opacity:.9;transform:translate(calc(8px - 50%))translateY(-5px)rotate(25deg)scaleY(.8)}40%{opacity:.8;transform:translate(calc(15px - 50%))translateY(-3px)rotate(35deg)scaleY(.9)}50%{opacity:.7;transform:translate(calc(20px - 50%))translateY(0)rotate(40deg)scaleY(1)}60%{opacity:.6;transform:translate(calc(22px - 50%))translateY(3px)rotate(42deg)scaleY(.95)}to{opacity:0;transform:translate(calc(25px - 50%))translateY(15px)rotate(45deg)scaleY(.7)}}.weather-rain .buttons button,.weather-rain .choice-buttons button,.weather-rain .pin-actions button{background-image:radial-gradient(circle at 20% 30%,#add8e64d 0%,#0000 25%),radial-gradient(circle at 60%,#add8e640 0%,#0000 30%),radial-gradient(circle at 80% 70%,#add8e633 0%,#0000 35%);background-size:100% 100%;animation:.2s ease-out infinite button-rain-bounce,1.2s ease-out infinite button-rain-splash-particles}@keyframes button-rain-splash-particles{0%,to{opacity:.3;background-position:0 0,0 0,0 0}25%{opacity:.5;background-position:10% 5%,-5% 10%,8% -5%}50%{opacity:.4;background-position:-8% 8%,12% -8%,-10% 12%}75%{opacity:.45;background-position:5% -10%,-12% 5%,10% 8%}}.weather-rain .buttons button,.weather-rain .choice-buttons button,.weather-rain .pin-actions button{box-shadow:0 16px 40px #00000059,inset 0 0 15px #add8e633,inset 0 -2px 10px #add8e626}.weather-rain .buttons button:hover,.weather-rain .choice-buttons button:hover,.weather-rain .pin-actions button:hover{filter:brightness(1.05);box-shadow:0 16px 40px #00000059,inset 0 0 25px #add8e64d,inset 0 -3px 15px #add8e633,0 2px 8px #add8e666}.weather-snow .buttons button,.weather-snow .choice-buttons button,.weather-snow .pin-actions button{position:relative;overflow:visible}.weather-snow .buttons button:before,.weather-snow .choice-buttons button:before,.weather-snow .pin-actions button:before{content:"";pointer-events:none;opacity:0;background:linear-gradient(90deg,#0000 0%,#fff9 15%,#fffc 30%,#ffffffe6 50%,#fffc 70%,#fff9 85%,#0000 100%);border-radius:3px 3px 0 0;height:5px;animation:.5s ease-out infinite button-snow-accumulate;position:absolute;top:-3px;left:0;right:0;box-shadow:0 3px 6px #fff6,0 0 10px #ffffff4d}@keyframes button-snow-accumulate{0%{opacity:0;filter:blur();height:0;transform:translateY(-10px)}25%{opacity:.8;filter:blur(.5px);height:3px;transform:translateY(-2px)}50%{opacity:1;filter:blur();height:5px;transform:translateY(0)}75%{opacity:.7;filter:blur(.3px);height:4px;transform:translateY(2px)}to{opacity:.4;filter:blur(1px);height:2px;transform:translateY(5px)}}.weather-snow .buttons button:after,.weather-snow .choice-buttons button:after,.weather-snow .pin-actions button:after{content:"";top:var(--snow-impact-y,20%);left:var(--snow-impact-x,50%);pointer-events:none;opacity:0;background:radial-gradient(circle,#fff 0%,#ffffffb3 30%,#fff6 50%,#fff3 70%,#0000 100%);border-radius:50%;width:12px;height:12px;animation:.7s ease-out infinite button-snow-impact;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 12px #fffc,0 0 20px #ffffff80,inset 0 0 8px #fff9}@keyframes button-snow-impact{0%{opacity:0;filter:blur();transform:translate(-50%,-50%)scale(0)rotate(0)}15%{opacity:1;filter:blur(.5px);transform:translate(-50%,-50%)scale(1.5)rotate(90deg)}30%{opacity:.9;filter:blur(1px);transform:translate(-50%,-50%)scale(2)rotate(180deg)}50%{opacity:.7;filter:blur(1.5px);transform:translate(-50%,-50%)scale(2.5)rotate(270deg)}to{opacity:0;filter:blur(2px);transform:translate(-50%,-50%)scale(3.5)rotate(540deg)}}.weather-snow .buttons button,.weather-snow .choice-buttons button,.weather-snow .pin-actions button{background-image:radial-gradient(circle at 15% 25%,#fff6 0%,#0000 20%),radial-gradient(circle at 55% 45%,#ffffff59 0%,#0000 25%),radial-gradient(circle at 85% 65%,#ffffff4d 0%,#0000 30%),radial-gradient(circle at 35% 75%,#ffffff40 0%,#0000 28%);background-size:100% 100%;animation:1.5s ease-out infinite button-snow-particles}@keyframes button-snow-particles{0%,to{opacity:.3;background-position:0 0,0 0,0 0,0 0}20%{opacity:.5;background-position:8% 3%,-5% 8%,10% -3%,-8% 5%}40%{opacity:.4;background-position:-10% 6%,12% -5%,-8% 10%,10% -8%}60%{opacity:.45;background-position:5% -10%,-12% 3%,8% 8%,-5% 12%}80%{opacity:.35;background-position:-8% 8%,10% -8%,-5% 5%,12% 3%}}.weather-snow .buttons button,.weather-snow .choice-buttons button,.weather-snow .pin-actions button{filter:brightness(1.02);transition:box-shadow .3s,filter .3s;box-shadow:0 16px 40px #00000059,inset 0 0 30px #fff3,inset 0 -3px 15px #ffffff40,0 2px 10px #ffffff26}.weather-snow .buttons button:hover,.weather-snow .choice-buttons button:hover,.weather-snow .pin-actions button:hover{filter:brightness(1.05)contrast(1.02);box-shadow:0 16px 40px #00000059,inset 0 0 40px #ffffff4d,inset 0 -4px 20px #ffffff59,0 3px 15px #ffffff40}.punch-feedback{z-index:10000;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px;animation:.3s fadeIn;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.punch-feedback.success{border:2px solid #22c55e80}.punch-feedback.error{border:2px solid #ef444480}.feedback-content{flex-direction:column;align-items:center;gap:16px;display:flex}.feedback-icon{width:64px;height:64px}.success-icon{color:#22c55e}.error-icon{color:#ef4444}.feedback-message{text-align:center;font-size:20px;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,-50%)scale(.9)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.animate-shake{animation:.5s shake}.punch-history{width:100%;max-width:600px;margin-top:24px}.history-title{text-align:left;margin-bottom:16px;font-size:18px;font-weight:600}.history-list{flex-direction:column;gap:12px;display:flex}.history-item{background:var(--panel);border-radius:var(--radius);border:1px solid #ffffff1a;align-items:center;gap:16px;padding:16px;display:flex}.history-icon{flex-shrink:0}.history-content{flex-direction:column;flex:1;gap:4px;display:flex}.history-time{font-size:16px;font-weight:600}.history-type{color:var(--muted);font-size:14px}.history-status{flex-shrink:0}.punch-timer{background:var(--panel);border-radius:var(--radius);border:1px solid #2f67ff4d;align-items:center;gap:12px;margin-top:16px;padding:16px;display:flex}.timer-icon{width:24px;height:24px;color:var(--btnBlue)}.timer-content{flex-direction:column;gap:4px;display:flex}.timer-label{color:var(--muted);font-size:14px}.timer-value{color:var(--btnBlue);font-size:24px;font-weight:700}.cycle-warnings{z-index:9999;flex-direction:column;gap:12px;width:min(600px,90%);display:flex;position:fixed;top:80px;left:50%;transform:translate(-50%)}.cycle-warning{border-radius:var(--radius);background:#ef44441a;border:2px solid #ef44444d;align-items:flex-start;gap:16px;padding:20px;animation:.3s slideDown;display:flex}.warning-icon{color:#ef4444;flex-shrink:0;width:24px;height:24px;margin-top:2px}.warning-content{flex:1}.warning-content strong{color:#ef4444;margin-bottom:8px;display:block}.warning-content p{margin:4px 0;font-size:14px;line-height:1.5}.warning-duration{color:var(--muted);font-size:13px}.warning-close{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;transition:background .2s}.warning-close:hover{background:#ffffff1a}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.user-stats{width:100%;max-width:800px;margin-top:24px}.stats-title{text-align:left;margin-bottom:16px;font-size:18px;font-weight:600}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.stat-card{border-radius:var(--radius);border:1px solid;align-items:center;gap:16px;padding:20px;display:flex}.stat-icon{flex-shrink:0;width:32px;height:32px}.stat-content{flex:1}.stat-label{color:var(--muted);margin-bottom:4px;font-size:13px}.stat-value{font-size:20px;font-weight:700}.offline-indicator{z-index:9998;border-radius:var(--radius);background:var(--panel);border:1px solid;padding:12px 16px;animation:.3s slideInRight;position:fixed;top:20px;right:20px}.offline-indicator.online{background:#22c55e1a;border-color:#22c55e4d}.offline-indicator.offline{background:#ef44441a;border-color:#ef44444d}.offline-content{align-items:center;gap:12px;display:flex}.offline-icon{flex-shrink:0;width:20px;height:20px}.offline-text{flex:1}.offline-title{margin-bottom:2px;font-size:14px;font-weight:600}.offline-subtitle{color:var(--muted);font-size:12px}.offline-badge{color:#ef4444;background:#ef44444d;border-radius:12px;margin-left:8px;padding:4px 8px;font-size:12px;font-weight:600}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.system-health{z-index:9998;border-radius:var(--radius);background:var(--panel);border:1px solid;align-items:center;gap:8px;padding:12px 16px;font-size:14px;animation:.3s slideInLeft;display:flex;position:fixed;top:20px;left:20px}.system-health.degraded{color:#fb923c;background:#fb923c1a;border-color:#fb923c4d}.system-health.down{color:#ef4444;background:#ef44441a;border-color:#ef44444d}@keyframes slideInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}.realtime-dashboard{background:var(--panel);border-radius:var(--radius);border:1px solid #ffffff1a;width:100%;max-width:1000px;margin-top:24px;padding:24px}.dashboard-title{text-align:center;margin-bottom:20px;font-size:20px;font-weight:600}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px;display:grid}.dashboard-card{border-radius:var(--radius);border:1px solid;align-items:center;gap:16px;padding:20px;display:flex}.dashboard-card.blue{background:#3b82f61a;border-color:#3b82f64d}.dashboard-card.green{background:#22c55e1a;border-color:#22c55e4d}.dashboard-card.orange{background:#fb923c1a;border-color:#fb923c4d}.dashboard-card.red{background:#ef44441a;border-color:#ef44444d}.dashboard-icon{flex-shrink:0;width:32px;height:32px}.dashboard-content{flex:1}.dashboard-label{color:var(--muted);margin-bottom:4px;font-size:13px}.dashboard-value{font-size:24px;font-weight:700}.dashboard-timestamp{text-align:center;color:var(--muted);margin-top:16px;font-size:12px}.confirmation-modal{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;justify-content:center;align-items:center;padding:22px;display:flex;position:fixed;inset:0}.confirmation-card{background:#14202beb;border:1px solid #ffffff1a;border-radius:26px;width:min(560px,100%);position:relative;overflow:hidden;box-shadow:0 24px 70px #0000008c}.confirmation-header{justify-content:space-between;align-items:center;gap:12px;padding:22px 22px 6px;display:flex}.confirmation-title{color:var(--muted);text-align:left;font-size:18px}.confirmation-body{padding:8px 22px 22px}.confirmation-message{color:var(--text);white-space:pre-line;text-align:center;margin:16px 0;font-size:16px;line-height:1.6}.confirmation-details{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;margin-top:16px;padding:16px}.confirmation-detail-item{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:8px 0;display:flex}.confirmation-detail-item:last-child{border-bottom:none}.confirmation-detail-label{color:var(--muted);font-size:14px}.confirmation-detail-value{color:var(--text);font-size:14px;font-weight:600}.confirmation-logical-path{color:var(--muted);text-align:center;background:#2f67ff1a;border:1px solid #2f67ff33;border-radius:8px;margin-top:12px;padding:12px;font-size:12px}.confirmation-footer{justify-content:center;gap:12px;padding:16px 22px 22px;display:flex}.confirmation-button{cursor:pointer;border:none;border-radius:12px;padding:12px 24px;font-size:16px;font-weight:600;transition:transform 80ms,filter .12s}.confirmation-button.ok{background:var(--btnBlue);color:#fff}.confirmation-button.ok:hover{filter:brightness(1.1)}.confirmation-button.ok:active{transform:translateY(2px)scale(.995)}.confirmation-error{background:#ef44441a!important;border-color:#ef44444d!important}.confirmation-error .confirmation-title{color:#ef4444}.confirmation-error .confirmation-message{color:#ffb6b6}@media (max-width:520px){.buttons{grid-template-columns:1fr}button{padding:18px 16px;font-size:28px}.clock{font-size:86px}}
