:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%}:global .admin-page-container{padding:24px;background:linear-gradient(135deg,#667eea,#764ba2);height:100%;animation:fadeIn .6s ease-out}:global .ant-btn{transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:600}:global .ant-btn.ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 4px 12px #667eea66}:global .ant-btn.ant-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}:global .ant-btn.ant-btn-default{border:2px solid #e0e0e0}:global .ant-btn.ant-btn-default:hover{border-color:#667eea;color:#667eea;transform:translateY(-1px)}:global .ant-input,:global .ant-input-affix-wrapper{border-radius:8px;border:2px solid #e0e0e0;transition:all .3s ease}:global .ant-input:hover,:global .ant-input-affix-wrapper:hover{border-color:#667eea}:global .ant-input:focus,:global .ant-input-affix-wrapper:focus,:global .ant-input.ant-input-affix-wrapper-focused,:global .ant-input-affix-wrapper.ant-input-affix-wrapper-focused{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}:global .ant-select .ant-select-selector{border-radius:8px;border:2px solid #e0e0e0;transition:all .3s ease}:global .ant-select:hover .ant-select-selector{border-color:#667eea}:global .ant-select.ant-select-focused .ant-select-selector{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}:global .ant-picker{border-radius:8px;border:2px solid #e0e0e0;transition:all .3s ease}:global .ant-picker:hover{border-color:#667eea}:global .ant-picker.ant-picker-focused{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}:global .ant-card{border-radius:16px;border:none;box-shadow:0 8px 32px #0000001f;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}:global .ant-card:hover{box-shadow:0 12px 40px #00000026}:global .ant-card .ant-card-head{background:linear-gradient(135deg,#667eea,#764ba2);border:none;padding:20px 24px;border-radius:16px 16px 0 0}:global .ant-card .ant-card-head .ant-card-head-title{color:#fff;font-size:18px;font-weight:600;letter-spacing:.5px}:global .ant-card .ant-card-body{padding:24px}:global .ant-table-wrapper .ant-table{background:transparent;border-radius:12px}:global .ant-table-wrapper .ant-table .ant-table-thead>tr>th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;border:none;padding:18px 16px;font-size:14px;text-shadow:0 1px 2px rgba(0,0,0,.1);letter-spacing:.5px}:global .ant-table-wrapper .ant-table .ant-table-thead>tr>th:before{display:none}:global .ant-table-wrapper .ant-table .ant-table-tbody>tr{transition:all .3s cubic-bezier(.4,0,.2,1)}:global .ant-table-wrapper .ant-table .ant-table-tbody>tr:hover{background:linear-gradient(90deg,#f0f4ff,#e8f0fe);transform:translate(4px);box-shadow:-4px 0 12px #667eea26}:global .ant-table-wrapper .ant-table .ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;padding:16px;transition:all .3s ease}:global .ant-table-wrapper .ant-table .ant-table-tbody>tr:nth-child(2n){background:#667eea05}:global .ant-tag{border-radius:12px;padding:4px 12px;font-weight:600;border:none;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;font-size:13px}:global .ant-tag:hover{transform:scale(1.05)}:global .ant-tag.ant-tag-blue{background:linear-gradient(135deg,#1890ff,#096dd9);color:#fff}:global .ant-tag.ant-tag-green{background:linear-gradient(135deg,#52c41a,#389e0d);color:#fff}:global .ant-tag.ant-tag-orange{background:linear-gradient(135deg,#faad14,#d48806);color:#fff}:global .ant-tag.ant-tag-red{background:linear-gradient(135deg,#ff4d4f,#cf1322);color:#fff}:global .ant-tag.ant-tag-processing{background:linear-gradient(135deg,#1890ff,#096dd9);color:#fff}:global .ant-tag.ant-tag-success{background:linear-gradient(135deg,#52c41a,#389e0d);color:#fff}:global .ant-tag.ant-tag-warning{background:linear-gradient(135deg,#faad14,#d48806);color:#fff}:global .ant-tag.ant-tag-error{background:linear-gradient(135deg,#ff4d4f,#cf1322);color:#fff}:global .ant-pagination .ant-pagination-item{border-radius:8px;border:1px solid #d9d9d9;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:500}:global .ant-pagination .ant-pagination-item:hover{border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 8px #667eea33}:global .ant-pagination .ant-pagination-item.ant-pagination-item-active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;box-shadow:0 4px 12px #667eea4d;transform:scale(1.1)}:global .ant-pagination .ant-pagination-item.ant-pagination-item-active a{color:#fff;font-weight:600}:global .ant-pagination .ant-pagination-prev .ant-pagination-item-link,:global .ant-pagination .ant-pagination-next .ant-pagination-item-link{border-radius:8px;transition:all .3s ease}:global .ant-pagination .ant-pagination-prev .ant-pagination-item-link:hover,:global .ant-pagination .ant-pagination-next .ant-pagination-item-link:hover{border-color:#667eea;color:#667eea;transform:scale(1.1)}:global .ant-modal .ant-modal-content{border-radius:16px;overflow:hidden}:global .ant-modal .ant-modal-header{background:linear-gradient(135deg,#667eea,#764ba2);border:none;padding:20px 24px}:global .ant-modal .ant-modal-header .ant-modal-title{color:#fff;font-size:18px;font-weight:600}:global .ant-modal .ant-modal-body{padding:32px 24px}:global .ant-modal .ant-modal-footer{border-top:1px solid #f0f0f0;padding:16px 24px}:global .ant-modal .ant-modal-footer .ant-btn{height:36px;padding:0 20px;border-radius:18px}:global .ant-descriptions.ant-descriptions-bordered .ant-descriptions-item-label{background:linear-gradient(135deg,#f8f9fa,#e9ecef);font-weight:600;color:#262626;border-right:1px solid #e0e0e0;padding:16px}:global .ant-descriptions.ant-descriptions-bordered .ant-descriptions-item-content{background:#fff;padding:16px}:global .ant-descriptions.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #e0e0e0}:global .ant-statistic .ant-statistic-title{font-size:14px;color:#8c8c8c;font-weight:500;margin-bottom:8px;letter-spacing:.5px}:global .ant-statistic .ant-statistic-content{font-size:32px;font-weight:700}:global .ant-statistic .ant-statistic-content .ant-statistic-content-value{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}:global .ant-statistic .ant-statistic-content .anticon{margin-right:8px;font-size:28px}:global .ant-spin .ant-spin-dot-item{background-color:#667eea}:global .ant-message .ant-message-notice-content{border-radius:8px;box-shadow:0 4px 12px #00000026}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.tech-gradient-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tech-card-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.tech-card-hover:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000026}.tech-button-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.tech-button-hover:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000026}.l7-marker-container{position:absolute;width:100%;height:100%;overflow:hidden}.l7-marker{position:absolute!important;top:0;left:0;z-index:5;cursor:pointer}.l7-marker-cluster{width:40px;height:40px;background-color:#b5e28c99;background-clip:padding-box;border-radius:20px}.l7-marker-cluster div{width:30px;height:30px;margin-top:5px;margin-left:5px;font:12px Helvetica Neue,Arial,Helvetica,sans-serif;text-align:center;background-color:#6ecc3999;border-radius:15px}.l7-marker-cluster span{line-height:30px}.l7-touch .l7-control-attribution,.l7-touch .l7-control-layers,.l7-touch .l7-bar{box-shadow:none}.l7-touch .l7-control-layers,.l7-touch .l7-bar{background-clip:padding-box;border:2px solid rgba(0,0,0,.2)}.mapboxgl-ctrl-logo,.amap-logo{display:none!important}.l7-select-box{border:3px dashed gray;border-radius:2px;position:absolute;z-index:999;box-sizing:border-box}.l7-control-container{font:12px/1.5 Helvetica Neue,Arial,Helvetica,sans-serif}.l7-control-container .l7-control{position:relative;z-index:999;float:left;clear:both;color:#595959;font-size:12px;pointer-events:visiblepainted;pointer-events:auto}.l7-control-container .l7-control.l7-control--hide{display:none}.l7-control-container .l7-top{top:0;display:flex;position:absolute;z-index:999;pointer-events:none}.l7-control-container .l7-top .l7-control:not(.l7-control--hide){margin-top:8px}.l7-control-container .l7-right{right:0;display:flex;position:absolute;z-index:999;pointer-events:none}.l7-control-container .l7-right .l7-control:not(.l7-control--hide){margin-right:8px}.l7-control-container .l7-bottom{bottom:0;display:flex;position:absolute;z-index:999;pointer-events:none}.l7-control-container .l7-bottom .l7-control:not(.l7-control--hide){margin-bottom:8px}.l7-control-container .l7-left{left:0;display:flex;position:absolute;z-index:999;pointer-events:none}.l7-control-container .l7-left .l7-control:not(.l7-control--hide){margin-left:8px}.l7-control-container .l7-center{position:absolute;display:flex;justify-content:center}.l7-control-container .l7-center.l7-top,.l7-control-container .l7-center.l7-bottom{width:100%}.l7-control-container .l7-center.l7-left,.l7-control-container .l7-center.l7-right{height:100%}.l7-control-container .l7-center .l7-control{margin-right:8px;margin-bottom:8px}.l7-control-container .l7-row{flex-direction:row}.l7-control-container .l7-row.l7-top{align-items:flex-start}.l7-control-container .l7-row.l7-bottom{align-items:flex-end}.l7-control-container .l7-column{flex-direction:column}.l7-control-container .l7-column.l7-left{align-items:flex-start}.l7-control-container .l7-column.l7-right{align-items:flex-end}.l7-button-control{min-width:28px;height:28px;background-color:#fff;border-width:0;border-radius:2px;outline:0;cursor:pointer;transition:all .2s;display:flex;justify-content:center;align-items:center;padding:0 6px;box-shadow:0 0 20px #00000026;line-height:16px}.l7-button-control .l7-iconfont{fill:#595959;color:#595959;width:16px;height:16px}.l7-button-control.l7-button-control--row{padding:0 16px 0 13px}.l7-button-control.l7-button-control--row *+.l7-button-control__text{margin-left:8px}.l7-button-control.l7-button-control--column{height:44px;flex-direction:column}.l7-button-control.l7-button-control--column .l7-iconfont{margin-top:3px}.l7-button-control.l7-button-control--column .l7-button-control__text{margin-top:3px;font-size:10px;transform:scale(.83333)}.l7-button-control:not(:disabled):hover{background-color:#f3f3f3}.l7-button-control:not(:disabled):active{background-color:#f3f3f3}.l7-button-control:disabled{background-color:#fafafa;color:#bdbdbd;cursor:not-allowed}.l7-button-control:disabled .l7-iconfont{fill:#bdbdbd;color:#bdbdbd}.l7-button-control:disabled:hover{background-color:#fafafa}.l7-button-control:disabled:active{background-color:#fafafa}.l7-popper{position:absolute;display:flex;justify-content:center;align-items:center;z-index:5;color:#595959}.l7-popper.l7-popper-hide{display:none}.l7-popper .l7-popper-content{min-height:28px;background:#fff;border-radius:2px;box-shadow:0 0 20px #00000026}.l7-popper .l7-popper-arrow{width:0;height:0;border-width:4px;border-style:solid;border-color:transparent;box-shadow:0 0 20px #00000026}.l7-popper.l7-popper-left{flex-direction:row}.l7-popper.l7-popper-left .l7-popper-arrow{border-left-color:#fff;margin:10px 0}.l7-popper.l7-popper-right{flex-direction:row-reverse}.l7-popper.l7-popper-right .l7-popper-arrow{border-right-color:#fff;margin:10px 0}.l7-popper.l7-popper-top{flex-direction:column}.l7-popper.l7-popper-top .l7-popper-arrow{border-top-color:#fff;margin:0 10px}.l7-popper.l7-popper-bottom{flex-direction:column-reverse}.l7-popper.l7-popper-bottom .l7-popper-arrow{border-bottom-color:#fff;margin:0 10px}.l7-popper.l7-popper-start{align-items:flex-start}.l7-popper.l7-popper-end{align-items:flex-end}.l7-select-control--normal{padding:4px 0}.l7-select-control--normal .l7-select-control-item{display:flex;align-items:center;height:24px;padding:0 16px;font-size:12px;line-height:24px}.l7-select-control--normal .l7-select-control-item>*+*{margin-left:6px}.l7-select-control--normal .l7-select-control-item input[type=checkbox]{width:14px;height:14px}.l7-select-control--normal .l7-select-control-item:hover{background-color:#f3f3f3}.l7-select-control--image{display:flex;flex-wrap:wrap;align-items:flex-start;box-sizing:content-box;max-width:460px;max-height:400px;margin:12px 0 0 12px;overflow:hidden auto}.l7-select-control--image .l7-select-control-item{position:relative;display:flex;flex:0 0 calc((100% - (12px + 9px) * 2) / 3);flex-direction:column;justify-content:center;box-sizing:content-box;margin-right:12px;margin-bottom:12px;overflow:hidden;font-size:12px;border:1px solid #fff;border-radius:2px}.l7-select-control--image .l7-select-control-item img{width:100%;height:80px}.l7-select-control--image .l7-select-control-item input[type=checkbox]{position:absolute;top:0;right:0}.l7-select-control--image .l7-select-control-item .l7-select-control-item-row{display:flex;align-items:center;justify-content:center;line-height:26px}.l7-select-control--image .l7-select-control-item .l7-select-control-item-row>*+*{margin-left:8px}.l7-select-control--image .l7-select-control-item.l7-select-control-item-active{border-color:#0370fe}.l7-select-control-item{cursor:pointer}.l7-select-control-item input[type=checkbox]{margin:0;cursor:pointer}.l7-select-control--multiple .l7-select-control-item:hover{background-color:transparent}.l7-control-logo{width:89px;height:16px;-webkit-user-select:none;user-select:none}.l7-control-logo img{height:100%;width:100%}.l7-control-logo .l7-control-logo-link{display:block;cursor:pointer}.l7-control-logo .l7-control-logo-link img{cursor:pointer}.l7-control-mouse-location{background-color:#fff;border-radius:2px;box-shadow:0 0 20px #00000026;padding:2px 4px;min-width:130px}.l7-control-zoom{overflow:hidden;border-radius:2px;box-shadow:0 0 20px #00000026}.l7-control-zoom .l7-button-control{font-size:16px;border-bottom:1px solid #f0f0f0;border-radius:0;box-shadow:0 0}.l7-control-zoom .l7-button-control .l7-iconfont{width:14px;height:14px}.l7-control-zoom .l7-button-control:last-child{border-bottom:0}.l7-control-zoom .l7-control-zoom__number{color:#595959;padding:0}.l7-control-zoom .l7-control-zoom__number:hover{background-color:#fff}.l7-control-scale{display:flex;flex-direction:column}.l7-control-scale .l7-control-scale-line{box-sizing:border-box;padding:2px 5px 1px;overflow:hidden;color:#595959;font-size:10px;line-height:1.1;white-space:nowrap;background:#fff;border:2px solid #000;border-top:0;transition:width .1s}.l7-control-scale .l7-control-scale-line+.l7-control-scale .l7-control-scale-line{margin-top:-2px;border-top:2px solid #777;border-bottom:none}.l7-right .l7-control-scale{display:flex;align-items:flex-end}.l7-right .l7-control-scale .l7-control-scale-line{text-align:right}.l7-popup{position:absolute;top:0;left:0;z-index:5;display:flex;will-change:transform;pointer-events:none}.l7-popup.l7-popup-hide{display:none}.l7-popup .l7-popup-content{position:relative;padding:16px;font-size:14px;background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a}.l7-popup .l7-popup-content .l7-popup-content__title{margin-bottom:8px;font-weight:700}.l7-popup .l7-popup-content .l7-popup-close-button,.l7-popup .l7-popup-content .l7-popup-content__title,.l7-popup .l7-popup-content .l7-popup-content__panel{white-space:normal;-webkit-user-select:text;user-select:text;pointer-events:initial}.l7-popup .l7-popup-content .l7-popup-close-button{position:absolute;top:0;right:0;width:18px;height:18px;padding:0;font-size:14px;line-height:18px;text-align:center;background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer}.l7-popup .l7-popup-tip{position:relative;z-index:1;width:0;height:0;border:10px solid transparent}.l7-popup.l7-popup-anchor-bottom,.l7-popup.l7-popup-anchor-bottom-left,.l7-popup.l7-popup-anchor-bottom-right{flex-direction:column-reverse}.l7-popup.l7-popup-anchor-bottom .l7-popup-tip,.l7-popup.l7-popup-anchor-bottom-left .l7-popup-tip,.l7-popup.l7-popup-anchor-bottom-right .l7-popup-tip{bottom:1px}.l7-popup.l7-popup-anchor-top,.l7-popup.l7-popup-anchor-top-left,.l7-popup.l7-popup-anchor-top-right{flex-direction:column}.l7-popup.l7-popup-anchor-top .l7-popup-tip,.l7-popup.l7-popup-anchor-top-left .l7-popup-tip,.l7-popup.l7-popup-anchor-top-right .l7-popup-tip{top:1px}.l7-popup.l7-popup-anchor-left{flex-direction:row}.l7-popup.l7-popup-anchor-right{flex-direction:row-reverse}.l7-popup-anchor-top .l7-popup-tip{position:relative;align-self:center;border-top:none;border-bottom-color:#fff}.l7-popup-anchor-top-left .l7-popup-tip{align-self:flex-start;border-top:none;border-bottom-color:#fff;border-left:none}.l7-popup-anchor-top-right .l7-popup-tip{align-self:flex-end;border-top:none;border-right:none;border-bottom-color:#fff}.l7-popup-anchor-bottom .l7-popup-tip{align-self:center;border-top-color:#fff;border-bottom:none}.l7-popup-anchor-bottom-left .l7-popup-tip{align-self:flex-start;border-top-color:#fff;border-bottom:none;border-left:none}.l7-popup-anchor-bottom-right .l7-popup-tip{align-self:flex-end;border-top-color:#fff;border-right:none;border-bottom:none}.l7-popup-anchor-left .l7-popup-tip{align-self:center;border-right-color:#fff;border-left:none}.l7-popup-anchor-right .l7-popup-tip{right:1px;align-self:center;border-right:none;border-left-color:#fff}.l7-popup-anchor-top-left .l7-popup-content{border-top-left-radius:0}.l7-popup-anchor-top-right .l7-popup-content{border-top-right-radius:0}.l7-popup-anchor-bottom-left .l7-popup-content{border-bottom-left-radius:0}.l7-popup-anchor-bottom-right .l7-popup-content{border-bottom-right-radius:0}.l7-popup-track-pointer{display:none}.l7-popup-track-pointer *{-webkit-user-select:none;user-select:none;pointer-events:none}.l7-map:hover .l7-popup-track-pointer{display:flex}.l7-map:active .l7-popup-track-pointer{display:none}.l7-layer-popup__row{font-size:12px}.l7-layer-popup__row+.l7-layer-popup__row{margin-top:4px}.l7-control-swipe{position:absolute;top:50%;left:50%;z-index:6;transform:translate(-50%,-50%);touch-action:none}.l7-control-swipe_hide{display:none}.l7-control-swipe:before{position:absolute;top:-5000px;bottom:-5000px;left:50%;z-index:-1;width:4px;background:#fff;transform:translate(-2px);content:""}.l7-control-swipe.horizontal:before{inset:50% -5000px auto;width:auto;height:4px}.l7-control-swipe__button{display:block;width:28px;height:28px;margin:0;padding:0;color:#595959;font-weight:700;font-size:inherit;text-align:center;text-decoration:none;background-color:#fff;border:none;border-radius:2px;outline:none}.l7-control-swipe,.l7-control-swipe__button{cursor:ew-resize}.l7-control-swipe.horizontal,.l7-control-swipe.horizontal button{cursor:ns-resize}.l7-control-swipe:after,.l7-control-swipe__button:before,.l7-control-swipe__button:after{position:absolute;top:25%;bottom:25%;left:50%;width:2px;background:currentcolor;transform:translate(-1px);content:""}.l7-control-swipe__button:after{transform:translate(4px)}.l7-control-swipe__button:before{transform:translate(-6px)}@keyframes fleetPulseRing{0%{transform:scale(1);opacity:.6}to{transform:scale(2.8);opacity:0}}@keyframes fleetGlow{0%,to{box-shadow:0 0 8px #00c8ff99,0 0 20px #00c8ff4d}50%{box-shadow:0 0 16px #00c8ffe6,0 0 40px #00c8ff80}}@keyframes markerFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes scanLine{0%{top:-2px}to{top:100%}}@keyframes arrivalBurst{0%{transform:scale(0);opacity:1}50%{opacity:.6}to{transform:scale(6);opacity:0}}@keyframes arrivalFirework1{0%{transform:translate(0) scale(0);opacity:1}to{transform:translate(-40px,-60px) scale(1);opacity:0}}@keyframes arrivalFirework2{0%{transform:translate(0) scale(0);opacity:1}to{transform:translate(40px,-50px) scale(1);opacity:0}}@keyframes arrivalFirework3{0%{transform:translate(0) scale(0);opacity:1}to{transform:translate(-20px,-70px) scale(1);opacity:0}}.fleet-map-wrapper{width:100%;position:relative;overflow:hidden;background:#0a0e1a}.fleet-map-wrapper .map-container{width:100%;height:100%}.fleet-map-wrapper .map-vignette{position:absolute;inset:0;pointer-events:none;z-index:10;background:radial-gradient(ellipse at center,transparent 50%,rgba(10,14,26,.4) 100%);border:1px solid rgba(0,200,255,.08);border-radius:inherit}.fleet-map-wrapper .map-scan-line{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(0,200,255,.15),transparent);pointer-events:none;z-index:11;animation:scanLine 8s linear infinite}.fleet-map-wrapper .corner-decor{position:absolute;width:20px;height:20px;pointer-events:none;z-index:12}.fleet-map-wrapper .corner-decor:before,.fleet-map-wrapper .corner-decor:after{content:"";position:absolute;background:#00c8ff66}.fleet-map-wrapper .corner-decor.top-left{top:8px;left:8px}.fleet-map-wrapper .corner-decor.top-left:before{top:0;left:0;width:20px;height:2px}.fleet-map-wrapper .corner-decor.top-left:after{top:0;left:0;width:2px;height:20px}.fleet-map-wrapper .corner-decor.top-right{top:8px;right:8px}.fleet-map-wrapper .corner-decor.top-right:before{top:0;right:0;width:20px;height:2px}.fleet-map-wrapper .corner-decor.top-right:after{top:0;right:0;width:2px;height:20px}.fleet-map-wrapper .corner-decor.bottom-left{bottom:8px;left:8px}.fleet-map-wrapper .corner-decor.bottom-left:before{bottom:0;left:0;width:20px;height:2px}.fleet-map-wrapper .corner-decor.bottom-left:after{bottom:0;left:0;width:2px;height:20px}.fleet-map-wrapper .corner-decor.bottom-right{bottom:8px;right:8px}.fleet-map-wrapper .corner-decor.bottom-right:before{bottom:0;right:0;width:20px;height:2px}.fleet-map-wrapper .corner-decor.bottom-right:after{bottom:0;right:0;width:2px;height:20px}.fleet-map-wrapper .arrival-overlay{position:absolute;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;pointer-events:none}.fleet-map-wrapper .arrival-overlay .arrival-burst{width:60px;height:60px;border-radius:50%;background:radial-gradient(circle,rgba(255,215,0,.8),rgba(255,107,107,.4),transparent);animation:arrivalBurst 2s ease-out forwards}.fleet-map-wrapper .arrival-overlay .arrival-firework{position:absolute;width:12px;height:12px;border-radius:50%}.fleet-map-wrapper .arrival-overlay .arrival-firework.fw-1{background:#ff6b6b;animation:arrivalFirework1 1.5s ease-out .3s forwards}.fleet-map-wrapper .arrival-overlay .arrival-firework.fw-2{background:#ffd93d;animation:arrivalFirework2 1.5s ease-out .5s forwards}.fleet-map-wrapper .arrival-overlay .arrival-firework.fw-3{background:#4ecdc4;animation:arrivalFirework3 1.5s ease-out .4s forwards}@keyframes blessingScroll{0%{transform:translate(-100%)}to{transform:translate(100vw)}}@keyframes subwayPulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.7}to{transform:translate(-50%,-50%) scale(2.2);opacity:0}}@keyframes subwayGlow{0%,to{box-shadow:0 0 10px #ff6b6bcc,0 0 20px #ff6b6b59}50%{box-shadow:0 0 16px #ff6b6b,0 0 30px #ff6b6b80}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes glow{0%,to{box-shadow:0 0 5px #ff6b6b80,0 0 10px #ff6b6b4d}50%{box-shadow:0 0 10px #ff6b6bcc,0 0 20px #ff6b6b80}}@keyframes headerGlow{0%{opacity:.3;transform:translateY(0) scale(1)}to{opacity:.6;transform:translateY(10px) scale(1.1)}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes logoPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes titleShine{0%{background-position:0% center}to{background-position:300% center}}@keyframes shimmer{0%{left:-100%}to{left:200%}}@keyframes weatherRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes weatherPulse{0%,to{opacity:.3;transform:scale(.95)}50%{opacity:.5;transform:scale(1.05)}}@keyframes separatorBlink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.95)}}@keyframes flipAnimation{0%{transform:rotateX(0)}50%{transform:rotateX(-90deg)}to{transform:rotateX(-180deg)}}@keyframes timeBlink{0%,to{transform:scale(1);box-shadow:0 0 15px #ff6b6b4d,inset 0 0 10px #ff6b6b1a}50%{transform:scale(1.05);box-shadow:0 0 25px #ff6b6b80,inset 0 0 15px #ff6b6b33}}@keyframes rotateGlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes heartFloat{0%{opacity:0;transform:scale(0) rotate(0) translateZ(0)}30%{opacity:.8;transform:scale(1.3) rotate(15deg) translateZ(20px)}50%{opacity:1;transform:scale(1.2) rotate(10deg) translateZ(30px)}70%{opacity:1;transform:scale(1.1) rotate(-5deg) translateZ(20px)}to{opacity:.9;transform:scale(1) rotate(0) translateZ(0)}}@keyframes heartFloatCenter{0%{opacity:0;transform:translate(-50%,-50%) scale(0) rotate(0)}20%{opacity:.5;transform:translate(-50%,-50%) scale(.8) rotate(10deg)}40%{opacity:.8;transform:translate(-50%,-50%) scale(1.3) rotate(-10deg)}60%{opacity:1;transform:translate(-50%,-50%) scale(1.2) rotate(5deg)}80%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(-3deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0);animation:heartBeat 1.5s ease-in-out infinite}}@keyframes heartBeat{0%,to{transform:translate(-50%,-50%) scale(1)}25%{transform:translate(-50%,-50%) scale(1.1)}50%{transform:translate(-50%,-50%) scale(1)}75%{transform:translate(-50%,-50%) scale(1.05)}}@keyframes pulseGlow{0%,to{opacity:.3;transform:translate(-50%,-50%) scale(1)}50%{opacity:.6;transform:translate(-50%,-50%) scale(1.2)}}@keyframes textFadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes chartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes networkPulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes numberGlow{0%,to{opacity:.3;transform:translate(-50%) scale(1)}50%{opacity:.6;transform:translate(-50%) scale(1.2)}}@keyframes numberCount{0%{transform:scale(1.3);opacity:.5}to{transform:scale(1);opacity:1}}@keyframes dividerPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}@keyframes checkMark{0%,to{opacity:.15;transform:scale(1) rotate(0)}50%{opacity:.3;transform:scale(1.1) rotate(5deg)}}.wedding-dashboard{width:100vw;height:100vh;background:linear-gradient(135deg,#0a0e27,#0d1428,#0a1229);display:flex;flex-direction:column;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.wedding-dashboard .dashboard-header{height:clamp(60px,8vh,100px);background:linear-gradient(135deg,#1a1a2ef2,#ff6b6b14 30%,#4ecdc414 70%,#1a1a2ef2);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 4px 30px #0000004d,inset 0 1px #ffffff1a,0 8px 60px #ff6b6b26;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(20px,3vw,50px);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative;overflow:hidden}.wedding-dashboard .dashboard-header:before{content:"";position:absolute;top:-50%;left:-10%;width:40%;height:200%;background:radial-gradient(ellipse,rgba(255,107,107,.15) 0%,transparent 70%);animation:headerGlow 8s ease-in-out infinite alternate}.wedding-dashboard .dashboard-header:after{content:"";position:absolute;top:-50%;right:-10%;width:40%;height:200%;background:radial-gradient(ellipse,rgba(78,205,196,.15) 0%,transparent 70%);animation:headerGlow 8s ease-in-out infinite alternate-reverse}.wedding-dashboard .dashboard-header .header-left{display:flex;align-items:center;gap:clamp(12px,2vw,24px);position:relative;z-index:1}.wedding-dashboard .dashboard-header .header-left .logo{font-size:clamp(32px,4vw,56px);filter:drop-shadow(0 0 20px rgba(255,107,107,.8));animation:logoFloat 3s ease-in-out infinite;position:relative}.wedding-dashboard .dashboard-header .header-left .logo:after{content:"💒";position:absolute;top:0;left:0;filter:blur(15px);opacity:.6;animation:logoPulse 2s ease-in-out infinite}.wedding-dashboard .dashboard-header .header-left .title{font-size:clamp(18px,2.5vw,36px);font-weight:800;background:linear-gradient(120deg,#ff6b6b,#ffd93d,#4ecdc4,#ffd93d,#ff6b6b);background-size:300% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:clamp(1px,.2vw,3px);animation:titleShine 6s linear infinite;position:relative;text-shadow:none}.wedding-dashboard .dashboard-header .header-left .title:before{content:"婚礼实时调度中心";position:absolute;top:0;left:0;background:linear-gradient(120deg,#ff6b6b,#ffd93d,#4ecdc4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:blur(10px);opacity:.5;z-index:-1}.wedding-dashboard .dashboard-header .header-right{display:flex;gap:clamp(10px,1.5vw,20px);align-items:center;justify-content:flex-end;position:relative;z-index:1}.wedding-dashboard .dashboard-header .header-right .weather-widget{display:flex;align-items:center;gap:clamp(8px,1vw,14px);padding:clamp(6px,.8vh,10px) clamp(10px,1.2vw,16px);background:transparent;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.wedding-dashboard .dashboard-header .header-right .weather-widget:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,217,61,.08) 0%,transparent 70%);animation:weatherRotate 10s linear infinite}.wedding-dashboard .dashboard-header .header-right .weather-widget:hover{background:#ffffff0d}.wedding-dashboard .dashboard-header .header-right .weather-widget .weather-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:clamp(32px,3vw,44px);height:clamp(32px,3vw,44px);background:linear-gradient(135deg,#ffd93d26,#ffd93d14);border-radius:10px}.wedding-dashboard .dashboard-header .header-right .weather-widget .weather-icon-wrapper .weather-icon{font-size:clamp(20px,2vw,28px);filter:drop-shadow(0 2px 6px rgba(255,217,61,.5));position:relative;z-index:1}.wedding-dashboard .dashboard-header .header-right .weather-widget .weather-icon-wrapper .weather-glow{position:absolute;width:80%;height:80%;background:radial-gradient(circle,rgba(255,217,61,.25) 0%,transparent 70%);border-radius:50%;animation:weatherPulse 2s ease-in-out infinite}.wedding-dashboard .dashboard-header .header-right .weather-widget .weather-info{display:flex;flex-direction:column;gap:2px}.wedding-dashboard .dashboard-header .header-right .weather-widget .weather-info .weather-temp{font-size:clamp(16px,1.6vw,22px);font-weight:700;background:linear-gradient(135deg,#ffd93d,#ffed4e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1;letter-spacing:-.5px}.wedding-dashboard .dashboard-header .header-right .weather-widget .weather-info .weather-condition{font-size:clamp(10px,.8vw,11px);color:#ffffffa6;font-weight:500;letter-spacing:.5px}.wedding-dashboard .dashboard-header .header-right .time-widget{display:flex;align-items:center;padding:clamp(6px,.8vh,10px) clamp(10px,1.2vw,16px);background:transparent;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.wedding-dashboard .dashboard-header .header-right .time-widget:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(78,205,196,.08) 0%,transparent 70%);animation:weatherRotate 10s linear infinite reverse}.wedding-dashboard .dashboard-header .header-right .time-widget:hover{background:#ffffff0d}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock{display:flex;align-items:center;gap:clamp(3px,.5vw,6px)}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-group{display:flex;gap:clamp(2px,.3vw,3px)}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-separator{font-size:clamp(18px,2vw,28px);font-weight:700;background:linear-gradient(135deg,#f5e8f0,#d8c8d8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:separatorBlink 2s ease-in-out infinite;line-height:1;padding:0 2px;margin:0 2px;filter:drop-shadow(0 2px 4px rgba(198,75,151,.3))}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number{perspective:400px}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number .flip-card{position:relative;width:clamp(24px,2.2vw,32px);height:clamp(32px,3vw,42px)}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number .flip-card .flip-card-inner{position:relative;width:100%;height:100%;transition:transform .6s;transform-style:preserve-3d}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number .flip-card.flipping .flip-card-inner{animation:flipAnimation .6s cubic-bezier(.4,0,.2,1)}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number .flip-card .flip-card-front,.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number .flip-card .flip-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;font-size:clamp(18px,1.8vw,26px);font-weight:800;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Courier New,monospace;background:linear-gradient(180deg,#3c3241d9,#2d2837f2,#3c3241d9);border:1px solid rgba(200,180,200,.3);border-radius:6px;box-shadow:0 4px 15px #0009,inset 0 1px #ffffff1f,0 0 25px #ffc8dc26;color:#f5e8f0;text-shadow:0 1px 2px rgba(0,0,0,.8),0 0 15px rgba(245,232,240,.3);position:relative}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number .flip-card .flip-card-front:before,.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number .flip-card .flip-card-back:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.5),transparent);z-index:2}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number .flip-card .flip-card-front:after,.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number .flip-card .flip-card-back:after{content:"";position:absolute;top:0;left:0;right:0;height:45%;background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,transparent 100%);border-radius:6px 6px 0 0;z-index:1}.wedding-dashboard .dashboard-header .header-right .time-widget .flip-clock .flip-number .flip-card .flip-card-back{transform:rotateX(180deg)}.wedding-dashboard .dashboard-main{flex:1;display:grid;grid-template-columns:minmax(280px,22%) 1fr minmax(240px,19%);gap:clamp(10px,1.2vw,16px);padding:clamp(10px,1.2vh,16px);overflow:hidden}.wedding-dashboard .dashboard-main .panel-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:clamp(10px,.9vw,14px);padding:clamp(10px,1vw,14px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #0000004d}.wedding-dashboard .dashboard-main .panel-card .card-title{font-size:clamp(12px,1.1vw,15px);font-weight:600;color:#ffd93d;margin-bottom:clamp(8px,1vh,12px);padding-bottom:clamp(5px,.6vh,8px);border-bottom:2px solid rgba(255,217,61,.3);text-shadow:0 0 10px rgba(255,217,61,.5)}.wedding-dashboard .dashboard-main .left-panel{display:flex;flex-direction:column;gap:clamp(8px,1vh,12px);min-width:0;overflow-y:auto;overflow-x:hidden}.wedding-dashboard .dashboard-main .left-panel .main-info-card{flex-shrink:0;position:relative;overflow:hidden;padding:clamp(14px,1.4vw,22px)}.wedding-dashboard .dashboard-main .left-panel .main-info-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 50%,rgba(255,107,107,.08) 0%,transparent 50%);animation:rotateGlow 20s linear infinite;pointer-events:none}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section{display:flex;justify-content:center;align-items:center;gap:clamp(8px,.8vw,14px);padding:clamp(8px,1vh,14px) 0;position:relative;z-index:1}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section .person{text-align:center;flex:0 0 auto}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section .person .avatar{width:clamp(52px,4.5vw,72px);height:clamp(52px,4.5vw,72px);border-radius:50%;border:2.5px solid #ff6b6b;box-shadow:0 0 16px #ff6b6b80;margin-bottom:4px;animation:glow 2s ease-in-out infinite;object-fit:cover;object-position:center;display:block;margin-left:auto;margin-right:auto}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section .person .name{font-size:clamp(13px,1.2vw,17px);font-weight:700;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 4px rgba(0,0,0,.3)}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section .heart-connection{display:flex;align-items:center;gap:0;flex-shrink:0}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section .heart-connection .ecg-line{width:clamp(18px,1.8vw,28px);height:clamp(16px,1.6vw,22px)}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section .heart-connection .ecg-line.ecg-left{margin-right:-2px}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section .heart-connection .ecg-line.ecg-right{margin-left:-2px}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section .heart-connection .ecg-line .ecg-path{stroke-dasharray:200;stroke-dashoffset:200;animation:ecgFlow 3s ease-in-out infinite;filter:drop-shadow(0 0 3px rgba(255,107,107,.6))}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section .heart-connection .heart-icon{font-size:clamp(18px,1.8vw,26px);animation:heartBeatPulse 1.5s ease-in-out infinite;filter:drop-shadow(0 0 10px #ff6b6b);flex-shrink:0}.wedding-dashboard .dashboard-main .left-panel .main-info-card .date-row{display:flex;align-items:center;justify-content:center;gap:clamp(6px,.6vw,10px);padding:clamp(4px,.5vh,8px) 0;position:relative;z-index:1}.wedding-dashboard .dashboard-main .left-panel .main-info-card .date-row .date-icon{font-size:clamp(15px,1.3vw,20px);flex-shrink:0}.wedding-dashboard .dashboard-main .left-panel .main-info-card .date-row .date-text{font-size:clamp(13px,1.2vw,16px);font-weight:600;color:#ffd93d;letter-spacing:.5px;text-shadow:0 0 10px rgba(255,217,61,.4)}.wedding-dashboard .dashboard-main .left-panel .main-info-card .date-row .date-weekday{font-size:clamp(10px,.9vw,13px);color:#fff9;padding:2px 8px;background:#ffffff14;border-radius:4px}.wedding-dashboard .dashboard-main .left-panel .main-info-card .section-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);margin:clamp(8px,1vh,14px) 0;position:relative;z-index:1}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:clamp(10px,1.2vh,16px) clamp(10px,1vw,16px);background:linear-gradient(135deg,#ffd93d12,#4ecdc412);border-radius:10px;border-left:3px solid rgba(255,217,61,.7);position:relative;z-index:1}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .venue-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .venue-main .venue-name{font-size:clamp(14px,1.3vw,18px);font-weight:700;color:#ffd93d;text-shadow:0 0 10px rgba(255,217,61,.4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .venue-main .venue-hall{font-size:clamp(11px,1vw,14px);color:#fff9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:12px;flex-shrink:0;transition:all .4s ease}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge .signal-bars{display:flex;align-items:flex-end;gap:2px;height:14px}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge .signal-bars .bar{width:3.5px;border-radius:1px;transition:background .4s ease}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge .signal-bars .bar-1{height:5px}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge .signal-bars .bar-2{height:9px}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge .signal-bars .bar-3{height:14px}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge .network-text{font-size:11px;font-weight:600;letter-spacing:.3px;white-space:nowrap}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.connected{background:#4ecdc41a}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.connected .signal-bars .bar{background:#4ecdc4}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.connected .network-text{color:#4ecdc4}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.unstable{background:#ffaa001f;border:1px solid rgba(255,170,0,.2);animation:networkPulse 2s ease-in-out infinite}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.unstable .signal-bars .bar-1,.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.unstable .signal-bars .bar-2{background:#fa0}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.unstable .signal-bars .bar-3{background:#ffffff26}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.unstable .network-text{color:#fa0}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.disconnected{background:#ff4d4f26;border:1px solid rgba(255,77,79,.25);animation:networkPulse 1.5s ease-in-out infinite}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.disconnected .signal-bars .bar-1{background:#ff4d4f}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.disconnected .signal-bars .bar-2,.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.disconnected .signal-bars .bar-3{background:#ffffff26}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-row .network-badge.disconnected .network-text{color:#ff4d4f}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-stats{display:flex;align-items:center;justify-content:space-around;padding:clamp(10px,1.2vh,16px) 0;margin-top:clamp(8px,1vh,14px);background:#ffffff08;border-radius:8px;position:relative;z-index:1}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-stats .venue-stat{display:flex;align-items:center;gap:5px;flex:1;justify-content:center}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-stats .venue-stat .stat-icon{font-size:clamp(15px,1.4vw,20px)}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-stats .venue-stat .stat-val{font-size:clamp(14px,1.3vw,18px);font-weight:700;color:#4ecdc4;text-shadow:0 0 10px rgba(78,205,196,.4);font-family:Courier New,monospace}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-stats .venue-stat .stat-val .stat-unit{font-size:clamp(10px,.9vw,12px);font-weight:400;color:#ffffff80;margin-left:2px}.wedding-dashboard .dashboard-main .left-panel .main-info-card .venue-stats .venue-stat-divider{width:1px;height:clamp(22px,2.8vh,32px);background:linear-gradient(180deg,transparent,rgba(255,255,255,.18),transparent);flex-shrink:0}.wedding-dashboard .dashboard-main .left-panel .guest-card{position:relative;overflow:hidden;flex:4;min-height:0;display:flex;flex-direction:column}.wedding-dashboard .dashboard-main .left-panel .guest-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,107,107,.1) 0%,transparent 70%);animation:rotateGlow 15s linear infinite}.wedding-dashboard .dashboard-main .left-panel .guest-card .guest-arrival-info{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(10px,1.2vh,16px) 0 clamp(6px,.8vh,10px);position:relative;z-index:1;gap:clamp(4px,.5vh,6px)}.wedding-dashboard .dashboard-main .left-panel .guest-card .guest-arrival-info .arrival-label{font-size:clamp(12px,1.1vw,15px);color:#fff;font-weight:500;letter-spacing:2px}.wedding-dashboard .dashboard-main .left-panel .guest-card .guest-arrival-info .arrival-count{font-size:clamp(36px,3.5vw,52px);font-weight:700;color:#ffd93d;text-shadow:0 0 20px rgba(255,217,61,.6),0 2px 4px rgba(0,0,0,.5);font-family:Courier New,monospace;line-height:1}.wedding-dashboard .dashboard-main .left-panel .guest-card .guest-arrival-info .arrival-count .arrival-unit{font-size:.35em;font-weight:400;margin-left:3px;color:#fff;text-shadow:none}.wedding-dashboard .dashboard-main .left-panel .guest-card .guest-welcome-carousel{position:relative;z-index:1;height:clamp(32px,3.5vh,42px);overflow:hidden;border-top:1px solid rgba(255,255,255,.08);margin-top:clamp(4px,.5vh,6px)}.wedding-dashboard .dashboard-main .left-panel .guest-card .guest-welcome-carousel .guest-welcome-track{transition:transform .5s cubic-bezier(.4,0,.2,1)}.wedding-dashboard .dashboard-main .left-panel .guest-card .guest-welcome-carousel .guest-welcome-track .guest-welcome-item{height:clamp(32px,3.5vh,42px);display:flex;align-items:center;justify-content:center;gap:clamp(6px,.6vw,8px)}.wedding-dashboard .dashboard-main .left-panel .guest-card .guest-welcome-carousel .guest-welcome-track .guest-welcome-item .welcome-icon{font-size:clamp(14px,1.2vw,16px);flex-shrink:0}.wedding-dashboard .dashboard-main .left-panel .guest-card .guest-welcome-carousel .guest-welcome-track .guest-welcome-item .welcome-text{font-size:clamp(11px,1vw,13px);color:#ffffff8c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wedding-dashboard .dashboard-main .left-panel .guest-card .guest-welcome-carousel .guest-welcome-track .guest-welcome-item .welcome-text .guest-name{color:#ffd93d;font-weight:600;text-shadow:0 0 8px rgba(255,217,61,.4)}.wedding-dashboard .dashboard-main .left-panel .timeline-card{flex:1;min-height:0;max-height:100%;display:flex;flex-direction:column;overflow:hidden}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line{position:relative;flex:1;display:flex;flex-direction:column;justify-content:space-evenly;overflow-y:auto;overflow-x:hidden;padding-left:clamp(4px,.5vw,8px)}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item{display:flex;gap:clamp(10px,1vw,14px);align-items:center;position:relative;padding:clamp(4px,.5vh,8px) clamp(5px,.6vw,7px);border-radius:8px;transition:all .3s ease;flex:1 1 0}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item:hover{background:#ffffff0a}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item .subway-connector{position:absolute;left:clamp(10px,1vw,13px);top:50%;width:3px;height:100%;background:#ffffff1f;border-radius:2px;z-index:0;transition:background .4s ease}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item .subway-connector.lit{background:linear-gradient(180deg,#4ecdc4,#4ecdc4);box-shadow:0 0 6px #4ecdc466}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item .timeline-dot{width:clamp(12px,1.1vw,16px);height:clamp(12px,1.1vw,16px);border-radius:50%;border:2.5px solid rgba(255,255,255,.2);background:#ffffff0f;flex-shrink:0;position:relative;z-index:1;transition:all .3s ease}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item .timeline-dot .dot-pulse-ring{position:absolute;top:50%;left:50%;width:200%;height:200%;border-radius:50%;transform:translate(-50%,-50%);border:2px solid rgba(255,107,107,.6);animation:subwayPulse 2s ease-out infinite}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item .timeline-content{flex:1;min-width:0}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item .timeline-content .step-name{font-size:clamp(11px,1vw,13px);color:#ffffff80;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:all .3s ease}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item.arrived .timeline-dot{background:#4ecdc4;border-color:#4ecdc4;box-shadow:0 0 8px #4ecdc4b3}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item.arrived .step-name{color:#4ecdc4;font-weight:500}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item.active{background:#ff6b6b0f}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item.active .timeline-dot{width:clamp(14px,1.3vw,18px);height:clamp(14px,1.3vw,18px);background:#ff6b6b;border-color:#ff6b6b;box-shadow:0 0 10px #ff6b6bcc,0 0 20px #ff6b6b59;animation:subwayGlow 2s ease-in-out infinite}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item.active .step-name{color:#ff6b6b;font-weight:600}.wedding-dashboard .dashboard-main .left-panel .timeline-card .timeline.subway-line .timeline-item.pending{opacity:.5}.wedding-dashboard .dashboard-main .left-panel .timeline-card .no-data-hint{color:#ffffff73;font-size:clamp(12px,1vw,14px);text-align:center;padding:clamp(16px,2vh,24px) 0}.wedding-dashboard .dashboard-main .center-area{flex:1;display:flex;flex-direction:column;gap:clamp(8px,1vh,12px);min-height:0;overflow:hidden}.wedding-dashboard .dashboard-main .center-area .map-container{flex:1;min-height:0;border-radius:16px;overflow:hidden;border:2px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;position:relative}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition{width:100%;height:100%;background:linear-gradient(135deg,#1a1a2ef2,#3c1e32f2,#1a1a2ef2);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,107,107,.15) 0%,transparent 70%);animation:rotateGlow 10s linear infinite}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .hearts-container{position:absolute;width:100%;height:100%;top:0;left:0;perspective:1000px}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .hearts-container:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:300px;height:300px;background:radial-gradient(circle,rgba(255,107,107,.3) 0%,transparent 70%);border-radius:50%;animation:pulseGlow 2s ease-in-out infinite;filter:blur(40px)}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .hearts-container .heart{position:absolute;font-size:60px;opacity:0;animation:heartFloat 3s ease-in-out forwards;filter:drop-shadow(0 0 20px rgba(255,107,107,.8)) drop-shadow(0 0 40px rgba(255,107,107,.6)) drop-shadow(0 5px 15px rgba(0,0,0,.5));transform-style:preserve-3d;text-shadow:2px 2px 4px rgba(0,0,0,.5),-1px -1px 2px rgba(255,255,255,.3),0 0 30px rgba(255,107,107,.8),0 0 60px rgba(255,107,107,.5)}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .hearts-container .heart.heart-1{top:20%;left:15%;animation-delay:0s}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .hearts-container .heart.heart-2{top:30%;right:20%;animation-delay:.3s}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .hearts-container .heart.heart-3{bottom:25%;left:25%;animation-delay:.6s}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .hearts-container .heart.heart-4{top:50%;left:50%;transform:translate(-50%,-50%);font-size:100px;animation:heartFloatCenter 3s ease-in-out forwards;animation-delay:.9s;filter:drop-shadow(0 0 30px #ff6b6b) drop-shadow(0 0 60px rgba(255,107,107,.8)) drop-shadow(0 10px 25px rgba(0,0,0,.6));text-shadow:3px 3px 6px rgba(0,0,0,.6),-2px -2px 4px rgba(255,255,255,.4),0 0 40px #ff6b6b,0 0 80px rgba(255,107,107,.7),0 0 120px rgba(255,107,107,.5)}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .hearts-container .heart.heart-5{bottom:30%;right:15%;animation-delay:1.2s}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .transition-text{position:relative;z-index:10;text-align:center}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .transition-text .text-line{font-size:32px;font-weight:600;color:#fff;margin:15px 0;opacity:0;transform:translateY(30px);text-shadow:0 2px 10px rgba(0,0,0,.8),0 0 30px rgba(255,107,107,.6)}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .transition-text .text-line.line-1{animation:textFadeIn .8s ease-out 1.5s forwards}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .transition-text .text-line.line-2{animation:textFadeIn .8s ease-out 2s forwards}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .transition-text .text-line.line-3{animation:textFadeIn .8s ease-out 2.5s forwards;font-size:38px;font-weight:700;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.9),0 0 40px rgba(255,217,61,.8),0 0 60px rgba(255,107,107,.6),2px 2px 0 rgba(255,107,107,.5),-1px -1px 0 rgba(255,217,61,.5);filter:drop-shadow(0 0 20px rgba(255,217,61,.8))}.wedding-dashboard .dashboard-main .center-area .map-container .arrival-transition .transition-text .text-line.line-4{animation:textFadeIn .8s ease-out 3s forwards;font-size:38px;font-weight:700;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.9),0 0 40px rgba(255,217,61,.8),0 0 60px rgba(255,107,107,.6),2px 2px 0 rgba(255,107,107,.5),-1px -1px 0 rgba(255,217,61,.5);filter:drop-shadow(0 0 20px rgba(255,217,61,.8))}.wedding-dashboard .dashboard-main .center-area .map-container .photo-slideshow{width:100%;height:100%;position:relative;background:#000}.wedding-dashboard .dashboard-main .center-area .map-container .photo-slideshow .photo-slide{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat;opacity:0;transition:opacity 1.5s ease-in-out}.wedding-dashboard .dashboard-main .center-area .map-container .photo-slideshow .photo-slide.active{opacity:1;z-index:1}.wedding-dashboard .dashboard-main .center-area .map-container .photo-slideshow .photo-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.3) 0%,transparent 20%,transparent 80%,rgba(0,0,0,.3) 100%)}.wedding-dashboard .dashboard-main .center-area .map-container .photo-slideshow .photo-indicators{position:absolute;bottom:30px;left:50%;transform:translate(-50%);display:flex;gap:10px;z-index:10}.wedding-dashboard .dashboard-main .center-area .map-container .photo-slideshow .photo-indicators .photo-indicator{width:10px;height:10px;border-radius:50%;background:#fff6;transition:all .3s ease;cursor:pointer}.wedding-dashboard .dashboard-main .center-area .map-container .photo-slideshow .photo-indicators .photo-indicator.active{width:30px;border-radius:5px;background:#ff6b6b;box-shadow:0 0 15px #ff6b6bcc}.wedding-dashboard .dashboard-main .center-area .map-container .photo-slideshow .photo-indicators .photo-indicator:hover{background:#ffffffb3}.wedding-dashboard .dashboard-main .center-area .stats-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(130px,14vw,180px),1fr));gap:clamp(8px,1vw,12px);flex-shrink:0}.wedding-dashboard .dashboard-main .center-area .stats-bar .stat-box{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:clamp(8px,1vw,12px);display:flex;align-items:center;gap:clamp(6px,.8vw,10px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.wedding-dashboard .dashboard-main .center-area .stats-bar .stat-box:hover{background:#ffffff14;transform:translateY(-2px);box-shadow:0 4px 16px #0000004d}.wedding-dashboard .dashboard-main .center-area .stats-bar .stat-box .stat-icon{font-size:clamp(20px,2.2vw,28px);filter:drop-shadow(0 0 8px rgba(255,217,61,.4));flex-shrink:0}.wedding-dashboard .dashboard-main .center-area .stats-bar .stat-box .stat-content{flex:1;min-width:0}.wedding-dashboard .dashboard-main .center-area .stats-bar .stat-box .stat-content .stat-label{font-size:clamp(10px,.9vw,12px);color:#fff9;margin-bottom:4px}.wedding-dashboard .dashboard-main .center-area .stats-bar .stat-box .stat-content .stat-value{font-size:clamp(13px,1.3vw,16px);font-weight:700;color:#4ecdc4;font-family:Courier New,monospace}.wedding-dashboard .dashboard-main .right-panel{display:flex;flex-direction:column;gap:clamp(8px,1vh,12px);min-width:0;overflow-y:auto;overflow-x:hidden}.wedding-dashboard .dashboard-main .right-panel .fleet-status-card{flex-shrink:0}.wedding-dashboard .dashboard-main .right-panel .fleet-status-card .status-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,1vw,12px)}.wedding-dashboard .dashboard-main .right-panel .fleet-status-card .status-grid .status-item{text-align:center;padding:clamp(10px,1.2vh,14px);background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.wedding-dashboard .dashboard-main .right-panel .fleet-status-card .status-grid .status-item.full-width{grid-column:1 / -1}.wedding-dashboard .dashboard-main .right-panel .fleet-status-card .status-grid .status-item .status-label{font-size:clamp(10px,.85vw,11px);color:#fff9;margin-bottom:clamp(4px,.5vh,6px)}.wedding-dashboard .dashboard-main .right-panel .fleet-status-card .status-grid .status-item .status-value{font-size:clamp(18px,1.8vw,24px);font-weight:700;font-family:Courier New,monospace}.wedding-dashboard .dashboard-main .right-panel .fleet-status-card .status-grid .status-item .status-value.speed{color:#4ecdc4;text-shadow:0 0 10px rgba(78,205,196,.5)}.wedding-dashboard .dashboard-main .right-panel .fleet-status-card .status-grid .status-item .status-value.distance{color:#ffd93d;text-shadow:0 0 10px rgba(255,217,61,.5)}.wedding-dashboard .dashboard-main .right-panel .fleet-status-card .status-grid .status-item .status-value.eta{color:#ff6b6b;text-shadow:0 0 10px rgba(255,107,107,.5)}.wedding-dashboard .dashboard-main .right-panel .fleet-status-card .status-grid .status-item .status-value .unit{font-size:clamp(11px,1vw,13px);margin-left:4px;color:#fff9}.wedding-dashboard .dashboard-main .right-panel .vehicles-card{flex:6;min-height:0;display:flex;flex-direction:column;overflow:hidden}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list{display:flex;flex-direction:column;gap:clamp(6px,.8vh,8px);flex:1;overflow-y:auto}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .vehicle-item{background:#ffffff0d;border-radius:8px;padding:clamp(8px,1vh,10px) clamp(10px,1.2vw,12px);border-left:3px solid #4ecdc4;transition:all .3s ease}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .vehicle-item:hover{background:#ffffff14;transform:translate(4px)}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .vehicle-item .vehicle-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(4px,.5vh,6px)}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-name{font-size:clamp(11px,1vw,13px);font-weight:600;color:#fff}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-status{font-size:clamp(9px,.8vw,10px);padding:2px clamp(4px,.5vw,6px);border-radius:8px;background:#4ecdc433;color:#4ecdc4;white-space:nowrap}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-status.moving{background:#4ecdc433;color:#4ecdc4}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .vehicle-item .vehicle-details{display:flex;gap:clamp(6px,.8vw,10px);font-size:clamp(10px,.85vw,11px);color:#fff9;flex-wrap:wrap;align-items:center}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .vehicle-item .vehicle-details .brand{font-weight:600;color:#ffd93d;display:flex;align-items:center;gap:4px}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .vehicle-item .vehicle-details .brand .brand-icon{font-size:clamp(12px,1.1vw,14px);color:#fff;filter:drop-shadow(0 0 6px rgba(255,217,61,.8))}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .vehicle-item .vehicle-details .detail{display:flex;align-items:center;gap:2px}.wedding-dashboard .dashboard-main .right-panel .vehicles-card .vehicles-list .no-vehicles{text-align:center;color:#ffffff80;padding:clamp(16px,2vh,24px);font-size:clamp(12px,1vw,14px)}.wedding-dashboard .dashboard-main .right-panel .activity-card{flex-shrink:0;--activity-item-height: clamp(60px, 7vh, 80px)}.wedding-dashboard .dashboard-main .right-panel .activity-card .activity-content{display:flex;gap:clamp(8px,1vw,12px)}.wedding-dashboard .dashboard-main .right-panel .activity-card .activity-carousel{position:relative;height:var(--activity-item-height);overflow:hidden;flex:1}.wedding-dashboard .dashboard-main .right-panel .activity-card .activity-carousel .activity-track{transition:transform .5s ease;display:flex;flex-direction:column;gap:0}.wedding-dashboard .dashboard-main .right-panel .activity-card .activity-carousel .activity-track .activity-item{height:var(--activity-item-height);min-height:var(--activity-item-height);padding:clamp(8px,1vh,12px);background:#ffffff0d;border-radius:8px;border-left:3px solid #4ecdc4;display:flex;flex-direction:column;justify-content:center;flex-shrink:0;box-sizing:border-box}.wedding-dashboard .dashboard-main .right-panel .activity-card .activity-carousel .activity-track .activity-item.success{border-left-color:#4ecdc4}.wedding-dashboard .dashboard-main .right-panel .activity-card .activity-carousel .activity-track .activity-item.info{border-left-color:#ffd93d}.wedding-dashboard .dashboard-main .right-panel .activity-card .activity-carousel .activity-track .activity-item .activity-time{font-size:clamp(10px,.85vw,11px);color:#ffffff80;margin-bottom:clamp(4px,.5vh,6px)}.wedding-dashboard .dashboard-main .right-panel .activity-card .activity-carousel .activity-track .activity-item .activity-event{font-size:clamp(11px,1vw,13px);color:#fffc;line-height:1.4}.wedding-dashboard .dashboard-main .right-panel .activity-card .carousel-indicators{display:flex;flex-direction:column;justify-content:center;gap:clamp(6px,.7vh,8px);padding:4px 0}.wedding-dashboard .dashboard-main .right-panel .activity-card .carousel-indicators .indicator{width:clamp(5px,.5vw,6px);height:clamp(5px,.5vw,6px);border-radius:50%;background:#ffffff4d;transition:all .3s ease}.wedding-dashboard .dashboard-main .right-panel .activity-card .carousel-indicators .indicator.active{height:clamp(16px,1.8vh,20px);border-radius:3px;background:#ffd93d;box-shadow:0 0 8px #ffd93d99}.wedding-dashboard .dashboard-footer{height:clamp(40px,5vh,60px);background:linear-gradient(90deg,#1a1a2ef2,#ff6b6b1a,#1a1a2ef2);border-top:1px solid rgba(255,107,107,.2);display:flex;align-items:center;overflow:hidden}.wedding-dashboard .dashboard-footer .footer-label{flex-shrink:0;font-size:clamp(13px,1.2vw,16px);font-weight:600;color:#ffd93d;white-space:nowrap;text-shadow:0 0 10px rgba(255,217,61,.5);padding:0 clamp(14px,1.5vw,22px);height:100%;display:flex;align-items:center}.wedding-dashboard .dashboard-footer .blessing-scroll{flex:1;min-width:0;overflow:hidden;height:100%;position:relative}.wedding-dashboard .dashboard-footer .blessing-scroll .blessing-track{display:inline-flex;white-space:nowrap;height:100%;align-items:center;animation:blessingScroll 20s linear infinite}.wedding-dashboard .dashboard-footer .blessing-scroll .blessing-track .blessing-item{display:inline-flex;align-items:center;white-space:nowrap;padding:0 clamp(20px,2.5vw,36px);flex-shrink:0}.wedding-dashboard .dashboard-footer .blessing-scroll .blessing-track .blessing-item .blessing-time{color:#fff6;margin-right:6px;font-size:clamp(11px,.95vw,13px);font-family:Courier New,monospace}.wedding-dashboard .dashboard-footer .blessing-scroll .blessing-track .blessing-item .blessing-guest{font-weight:600;color:#4ecdc4;margin-right:4px;font-size:clamp(12px,1.1vw,15px);text-shadow:0 0 8px rgba(78,205,196,.4)}.wedding-dashboard .dashboard-footer .blessing-scroll .blessing-track .blessing-item .blessing-message{color:#ffffffbf;font-size:clamp(12px,1.1vw,15px)}.wedding-dashboard ::-webkit-scrollbar{width:6px}.wedding-dashboard ::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.wedding-dashboard ::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.wedding-dashboard ::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media(max-width:1600px){.wedding-dashboard .dashboard-main{grid-template-columns:minmax(260px,20%) 1fr minmax(240px,19%)}}@media(max-width:1400px){.wedding-dashboard .dashboard-main{grid-template-columns:minmax(200px,16%) 1fr minmax(220px,18%)}.wedding-dashboard .dashboard-main .stats-bar{grid-template-columns:repeat(2,1fr)}}@media(max-width:1200px){.wedding-dashboard .dashboard-header .header-left .title{font-size:clamp(16px,2vw,24px)}.wedding-dashboard .dashboard-main{grid-template-columns:minmax(180px,15%) 1fr minmax(200px,17%)}.wedding-dashboard .dashboard-main .left-panel .main-info-card .couple-section .person .avatar{width:clamp(50px,5vw,70px);height:clamp(50px,5vw,70px)}}@media(max-width:1024px){.wedding-dashboard .dashboard-main{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;gap:clamp(10px,1.2vh,16px)}.wedding-dashboard .dashboard-main .left-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:clamp(10px,1.2vh,16px)}.wedding-dashboard .dashboard-main .left-panel .timeline-card{grid-column:1 / -1}.wedding-dashboard .dashboard-main .center-area{order:-1}.wedding-dashboard .dashboard-main .right-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(10px,1.2vh,16px)}.wedding-dashboard .dashboard-main .stats-bar{grid-template-columns:repeat(4,1fr)}}@media(max-width:768px){.wedding-dashboard .dashboard-header{padding:0 clamp(12px,2vw,20px)}.wedding-dashboard .dashboard-header .header-left .logo{font-size:clamp(28px,3.5vw,40px)}.wedding-dashboard .dashboard-header .header-left .title{font-size:clamp(14px,2vw,18px);letter-spacing:1px}.wedding-dashboard .dashboard-header .header-right{gap:clamp(8px,1vw,12px)}.wedding-dashboard .dashboard-header .header-right .weather-widget,.wedding-dashboard .dashboard-header .header-right .time-widget{padding:clamp(4px,.6vh,8px) clamp(8px,1vw,12px)}.wedding-dashboard .dashboard-main .stats-bar{grid-template-columns:repeat(2,1fr)}.wedding-dashboard .dashboard-main .left-panel,.wedding-dashboard .dashboard-main .right-panel{grid-template-columns:1fr}.wedding-dashboard .dashboard-footer .footer-label{display:none}}@media(max-width:480px){.wedding-dashboard .dashboard-header .header-left .title{display:none}.wedding-dashboard .dashboard-main{padding:clamp(8px,1vh,12px)}.wedding-dashboard .dashboard-main .stats-bar{grid-template-columns:1fr}}@media(min-aspect-ratio:21/9){.wedding-dashboard .dashboard-main{grid-template-columns:minmax(280px,18%) 1fr minmax(320px,20%)}}@media(max-aspect-ratio:3/4){.wedding-dashboard .dashboard-main{grid-template-columns:1fr}.wedding-dashboard .dashboard-main .center-area{order:-1;min-height:40vh}}@keyframes gentleGlow{0%,to{box-shadow:0 0 8px #b76e434d}50%{box-shadow:0 0 16px #b76e4380}}@keyframes cornerShine{0%,to{opacity:.15}50%{opacity:.3}}.wedding-dashboard-2{width:100vw;height:100vh;background:linear-gradient(160deg,#4a1520,#5c1a2a,#6b2035 60%,#4a1520);display:flex;flex-direction:column;overflow:hidden;font-family:PingFang SC,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:#f5efe6;position:relative}.wedding-dashboard-2 .cn-decorations{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.wedding-dashboard-2 .cn-decorations .cn-corner{position:absolute;width:clamp(60px,6vw,100px);height:clamp(60px,6vw,100px);border:2px solid rgba(183,110,67,.2);animation:cornerShine 4s ease-in-out infinite}.wedding-dashboard-2 .cn-decorations .cn-corner.cn-tl{top:8px;left:8px;border-right:none;border-bottom:none;border-radius:4px 0 0}.wedding-dashboard-2 .cn-decorations .cn-corner.cn-tr{top:8px;right:8px;border-left:none;border-bottom:none;border-radius:0 4px 0 0}.wedding-dashboard-2 .cn-decorations .cn-corner.cn-bl{bottom:8px;left:8px;border-right:none;border-top:none;border-radius:0 0 0 4px}.wedding-dashboard-2 .cn-decorations .cn-corner.cn-br{bottom:8px;right:8px;border-left:none;border-top:none;border-radius:0 0 4px}.wedding-dashboard-2 .cn-header{height:clamp(56px,7vh,80px);background:linear-gradient(135deg,#4a1520f2,#7a2e3f26,#4a1520f2);border-bottom:1px solid rgba(183,110,67,.3);box-shadow:0 4px 20px #0000004d;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(16px,2.5vw,40px);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);position:relative;z-index:2}.wedding-dashboard-2 .cn-header .header-left{display:flex;align-items:center;gap:clamp(8px,1.2vw,16px)}.wedding-dashboard-2 .cn-header .header-left .logo{font-size:clamp(28px,3.5vw,44px);color:#b76e43;filter:drop-shadow(0 0 10px rgba(183,110,67,.6));font-weight:900}.wedding-dashboard-2 .cn-header .header-left .title{font-size:clamp(16px,2vw,28px);font-weight:700;background:linear-gradient(120deg,#b76e43,#d4a574,#b76e43);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:2px}.wedding-dashboard-2 .cn-header .header-center{flex:1}.wedding-dashboard-2 .cn-header .header-right{display:flex;align-items:center;gap:clamp(10px,1.5vw,20px)}.wedding-dashboard-2 .cn-header .header-right .weather-widget{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#b76e4314;border-radius:10px}.wedding-dashboard-2 .cn-header .header-right .weather-widget .weather-icon{font-size:clamp(18px,1.8vw,24px)}.wedding-dashboard-2 .cn-header .header-right .weather-widget .weather-info .weather-temp{font-size:clamp(14px,1.4vw,18px);font-weight:700;color:#b76e43;line-height:1}.wedding-dashboard-2 .cn-header .header-right .weather-widget .weather-info .weather-condition{font-size:clamp(10px,.8vw,11px);color:#f5efe699}.wedding-dashboard-2 .cn-header .header-right .time-widget .time-display{font-size:clamp(18px,2vw,26px);font-weight:700;font-family:Courier New,monospace;color:#d4a574;letter-spacing:1px;text-shadow:0 0 10px rgba(183,110,67,.4)}.wedding-dashboard-2 .cn-main{flex:1;display:flex;flex-direction:column;padding:clamp(8px,1vh,12px);overflow:hidden;position:relative;z-index:1}.wedding-dashboard-2 .cn-main .top-section{flex:1;display:grid;grid-template-columns:minmax(240px,20%) 1fr minmax(240px,22%);gap:clamp(8px,1vw,14px);min-height:0}.wedding-dashboard-2 .cn-card{background:#5c1a2abf;border:1px solid rgba(183,110,67,.3);border-radius:clamp(8px,.8vw,12px);padding:clamp(8px,.9vw,12px);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #0003;overflow:hidden}.wedding-dashboard-2 .cn-card .card-label{font-size:clamp(11px,1vw,14px);font-weight:600;color:#b76e43;margin-bottom:clamp(6px,.8vh,10px);padding-bottom:clamp(4px,.5vh,6px);border-bottom:1px solid rgba(183,110,67,.25);letter-spacing:1px}.wedding-dashboard-2 .cn-card .no-data{color:#f5efe659;font-size:12px;text-align:center;padding:10px 0}.wedding-dashboard-2 .side-panel{display:flex;flex-direction:column;gap:clamp(6px,.8vh,10px);min-width:0;overflow-y:auto;overflow-x:hidden}.wedding-dashboard-2 .side-panel::-webkit-scrollbar{width:3px}.wedding-dashboard-2 .side-panel::-webkit-scrollbar-thumb{background:#b76e434d;border-radius:3px}.wedding-dashboard-2 .info-card{flex-shrink:0}.wedding-dashboard-2 .info-card .venue-main-row{display:flex;align-items:center;gap:clamp(8px,.8vw,12px);padding:clamp(6px,.7vh,10px);background:linear-gradient(135deg,#b76e4314,#d4a57414);border-radius:10px;border-left:3px solid #b76e43;margin-bottom:clamp(6px,.7vh,10px)}.wedding-dashboard-2 .info-card .venue-main-row .venue-icon-wrap{width:clamp(36px,3vw,46px);height:clamp(36px,3vw,46px);border-radius:10px;background:linear-gradient(135deg,#b76e4326,#b76e430d);display:flex;align-items:center;justify-content:center;font-size:clamp(18px,1.8vw,24px);flex-shrink:0}.wedding-dashboard-2 .info-card .venue-main-row .venue-text{flex:1;min-width:0}.wedding-dashboard-2 .info-card .venue-main-row .venue-text .venue-name{font-size:clamp(14px,1.3vw,18px);font-weight:700;color:#b76e43;text-shadow:0 0 8px rgba(183,110,67,.3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.wedding-dashboard-2 .info-card .venue-main-row .venue-text .venue-hall{font-size:clamp(11px,.9vw,13px);color:#f5efe68c;line-height:1.3}.wedding-dashboard-2 .info-card .venue-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(4px,.4vw,8px);margin-bottom:clamp(6px,.7vh,10px)}.wedding-dashboard-2 .info-card .venue-stats-grid .venue-stat-cell{display:flex;flex-direction:column;align-items:center;padding:clamp(6px,.6vh,10px) 4px;background:#b76e430f;border-radius:8px;border:1px solid rgba(183,110,67,.1);gap:2px}.wedding-dashboard-2 .info-card .venue-stats-grid .venue-stat-cell .stat-emoji{font-size:clamp(14px,1.3vw,18px)}.wedding-dashboard-2 .info-card .venue-stats-grid .venue-stat-cell .stat-number{font-size:clamp(16px,1.5vw,22px);font-weight:700;color:#d4a574;font-family:Courier New,monospace;line-height:1}.wedding-dashboard-2 .info-card .venue-stats-grid .venue-stat-cell .stat-label{font-size:clamp(9px,.7vw,11px);color:#f5efe666}.wedding-dashboard-2 .info-card .venue-footer-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.wedding-dashboard-2 .info-card .venue-footer-row .weather-mini{display:flex;align-items:center;gap:4px;font-size:clamp(10px,.85vw,12px);color:#f5efe680;padding:3px 8px;background:#b76e430f;border-radius:8px}.wedding-dashboard-2 .info-card .network-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:10px;font-size:11px}.wedding-dashboard-2 .info-card .network-badge .dot{width:6px;height:6px;border-radius:50%}.wedding-dashboard-2 .info-card .network-badge.connected{background:#b76e4326;color:#d4a574}.wedding-dashboard-2 .info-card .network-badge.connected .dot{background:#d4a574}.wedding-dashboard-2 .info-card .network-badge.unstable{background:#d4a57426;color:#d4a574}.wedding-dashboard-2 .info-card .network-badge.unstable .dot{background:#d4a574}.wedding-dashboard-2 .info-card .network-badge.disconnected{background:#b4645026;color:#c87060}.wedding-dashboard-2 .info-card .network-badge.disconnected .dot{background:#c87060}.wedding-dashboard-2 .guest-card{flex-shrink:0}.wedding-dashboard-2 .guest-card .guest-count-row{display:flex;align-items:baseline;gap:6px;padding:4px 0}.wedding-dashboard-2 .guest-card .guest-count-row .guest-big-number{font-size:clamp(28px,2.8vw,40px);font-weight:700;color:#d4a574;font-family:Courier New,monospace;text-shadow:0 0 12px rgba(183,110,67,.4);line-height:1}.wedding-dashboard-2 .guest-card .guest-count-row .guest-unit{font-size:clamp(11px,1vw,13px);color:#f5efe680}.wedding-dashboard-2 .guest-card .guest-carousel{height:32px;overflow:hidden;border-top:1px solid rgba(183,110,67,.15);margin-top:6px;padding-top:4px}.wedding-dashboard-2 .guest-card .guest-carousel .guest-carousel-track{transition:transform .5s cubic-bezier(.4,0,.2,1)}.wedding-dashboard-2 .guest-card .guest-carousel .guest-carousel-item{height:32px;display:flex;align-items:center;font-size:clamp(11px,.9vw,13px);color:#f5efe68c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wedding-dashboard-2 .guest-card .guest-carousel .guest-carousel-item .guest-name-hl{color:#d4a574;font-weight:600;margin:0 3px}.wedding-dashboard-2 .timeline-card{flex:1;min-height:0;display:flex;flex-direction:column}.wedding-dashboard-2 .timeline-card .cn-timeline{flex:1;display:flex;flex-direction:column;justify-content:space-evenly;overflow-y:auto;padding-left:4px}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item{display:flex;align-items:center;gap:clamp(8px,.8vw,12px);padding:clamp(3px,.4vh,6px) 4px;border-radius:6px;position:relative;transition:background .3s ease}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item:hover{background:#b76e430f}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item .connector{position:absolute;left:clamp(7px,.7vw,10px);top:50%;width:2px;height:100%;background:#b76e4326;border-radius:2px;z-index:0}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item .connector.lit{background:#b76e43;box-shadow:0 0 4px #b76e4366}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item .dot{width:clamp(10px,1vw,14px);height:clamp(10px,1vw,14px);border-radius:50%;border:2px solid rgba(183,110,67,.3);background:#b76e4314;flex-shrink:0;position:relative;z-index:1}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item .dot .dot-pulse{position:absolute;top:50%;left:50%;width:200%;height:200%;border-radius:50%;border:2px solid #b76e43;margin-top:-100%;margin-left:-100%;transform-origin:center;animation:dotPulse 2s ease-out infinite}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item.arrived .dot{background:#b76e43;border-color:#b76e43;box-shadow:0 0 6px #b76e4380}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item.active .dot{background:#d4a574;border-color:#d4a574;box-shadow:0 0 8px #d4a57499}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item .step-name{flex:1;font-size:clamp(11px,1vw,14px);color:#f5efe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item.arrived .step-name{color:#b76e43}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item.active .step-name{color:#d4a574;font-weight:600}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item.pending .step-name{color:#f5efe666}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item .step-time{font-size:clamp(10px,.9vw,13px);font-family:Courier New,monospace;flex-shrink:0;margin-left:auto}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item.arrived .step-time{color:#b76e43;font-weight:600;text-shadow:0 0 6px rgba(183,110,67,.4)}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item.active .step-time{color:#d4a574}.wedding-dashboard-2 .timeline-card .cn-timeline .timeline-item.pending .step-time{color:#f5efe640}.wedding-dashboard-2 .map-area{border-radius:clamp(8px,.8vw,12px);overflow:hidden;border:1px solid rgba(183,110,67,.3);box-shadow:0 4px 20px #00000040;position:relative}.wedding-dashboard-2 .map-area .map-loading{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#5c1a2a80;color:#f5efe680;font-size:14px}.wedding-dashboard-2 .map-area .arrival-transition{width:100%;height:100%;background:linear-gradient(135deg,#4a1520,#5c1a2a,#6b2035);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.wedding-dashboard-2 .map-area .arrival-transition .cn-fireworks{position:absolute;width:100%;height:100%}.wedding-dashboard-2 .map-area .arrival-transition .cn-fireworks .fw{position:absolute;font-size:36px;animation:fadeInUp 3s ease-in-out infinite}.wedding-dashboard-2 .map-area .arrival-transition .cn-fireworks .fw-1{top:10%;left:15%;animation-delay:0s}.wedding-dashboard-2 .map-area .arrival-transition .cn-fireworks .fw-2{top:20%;right:20%;animation-delay:.5s}.wedding-dashboard-2 .map-area .arrival-transition .cn-fireworks .fw-3{bottom:25%;left:25%;animation-delay:1s}.wedding-dashboard-2 .map-area .arrival-transition .cn-fireworks .fw-4{top:35%;right:10%;animation-delay:1.5s}.wedding-dashboard-2 .map-area .arrival-transition .cn-fireworks .fw-5{bottom:15%;right:30%;animation-delay:2s}.wedding-dashboard-2 .map-area .arrival-transition .transition-text{text-align:center;z-index:1}.wedding-dashboard-2 .map-area .arrival-transition .transition-text .text-line{font-size:clamp(20px,3vw,36px);font-weight:300;color:#f5efe6;letter-spacing:4px;margin:10px 0;animation:fadeInUp 1s ease-out both}.wedding-dashboard-2 .map-area .arrival-transition .transition-text .text-line.line-1{animation-delay:.3s}.wedding-dashboard-2 .map-area .arrival-transition .transition-text .text-line.line-2{animation-delay:.8s}.wedding-dashboard-2 .map-area .arrival-transition .transition-text .text-line.line-3{animation-delay:1.3s;color:#b76e43;font-weight:600}.wedding-dashboard-2 .map-area .arrival-transition .transition-text .text-line.line-4{animation-delay:1.8s;color:#d4a574}.wedding-dashboard-2 .map-area .photo-slideshow{width:100%;height:100%;position:relative}.wedding-dashboard-2 .map-area .photo-slideshow .photo-slide{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:0;transition:opacity 1.5s ease-in-out}.wedding-dashboard-2 .map-area .photo-slideshow .photo-slide.active{opacity:1}.wedding-dashboard-2 .map-area .photo-slideshow .photo-indicators{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:2}.wedding-dashboard-2 .map-area .photo-slideshow .photo-indicators .photo-indicator{width:8px;height:8px;border-radius:50%;background:#f5efe64d;transition:all .3s ease}.wedding-dashboard-2 .map-area .photo-slideshow .photo-indicators .photo-indicator.active{background:#b76e43;box-shadow:0 0 8px #b76e4399;transform:scale(1.3)}.wedding-dashboard-2 .couple-card{flex-shrink:0}.wedding-dashboard-2 .couple-card .couple-section{display:flex;align-items:center;justify-content:center;gap:clamp(4px,.5vw,8px);padding:clamp(6px,.6vh,10px) 0}.wedding-dashboard-2 .couple-card .couple-section .person{display:flex;flex-direction:column;align-items:center;gap:4px}.wedding-dashboard-2 .couple-card .couple-section .person .avatar{width:clamp(42px,4.5vw,58px);height:clamp(42px,4.5vw,58px);border-radius:50%;object-fit:cover;border:2.5px solid #b76e43;box-shadow:0 0 12px #b76e4366,0 2px 8px #0000004d;transition:transform .3s ease}.wedding-dashboard-2 .couple-card .couple-section .person .avatar:hover{transform:scale(1.08)}.wedding-dashboard-2 .couple-card .couple-section .person.bride .avatar{border-color:#d4a574;box-shadow:0 0 12px #d4a57466,0 2px 8px #0000004d}.wedding-dashboard-2 .couple-card .couple-section .person .name{font-size:clamp(12px,1.1vw,15px);font-weight:600;color:#f5efe6;letter-spacing:1px}.wedding-dashboard-2 .couple-card .couple-section .heart-connection{display:flex;align-items:center;gap:0;flex:1;min-width:0}.wedding-dashboard-2 .couple-card .couple-section .heart-connection .ecg-line{flex:1;height:clamp(24px,2.5vw,36px);min-width:0}.wedding-dashboard-2 .couple-card .couple-section .heart-connection .ecg-line .ecg-path{stroke-dasharray:200;animation:ecgFlow 2.5s ease-in-out infinite}.wedding-dashboard-2 .couple-card .couple-section .heart-connection .ecg-right .ecg-path{animation-delay:.3s}.wedding-dashboard-2 .couple-card .couple-section .heart-connection .heart-icon{font-size:clamp(20px,2vw,28px);flex-shrink:0;animation:heartBeatPulse 1.5s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(183,110,67,.5))}.wedding-dashboard-2 .couple-card .couple-date-row{display:flex;align-items:center;justify-content:center;gap:8px;padding:clamp(6px,.6vh,8px) 0 2px;border-top:1px solid rgba(183,110,67,.15)}.wedding-dashboard-2 .couple-card .couple-date-row .date-icon{font-size:clamp(14px,1.2vw,18px)}.wedding-dashboard-2 .couple-card .couple-date-row .date-text{font-size:clamp(14px,1.3vw,18px);font-weight:700;color:#b76e43;letter-spacing:1.5px;text-shadow:0 0 10px rgba(183,110,67,.4)}.wedding-dashboard-2 .couple-card .couple-date-row .date-weekday{font-size:clamp(11px,.9vw,13px);color:#f5efe680}.wedding-dashboard-2 .stats-card{flex-shrink:0}.wedding-dashboard-2 .stats-card .stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(6px,.6vw,10px)}.wedding-dashboard-2 .stats-card .stats-grid .stat-item{text-align:center;padding:clamp(6px,.6vh,10px) 4px;background:#b76e430f;border-radius:8px;border:1px solid rgba(183,110,67,.1)}.wedding-dashboard-2 .stats-card .stats-grid .stat-item .stat-val{font-size:clamp(16px,1.5vw,22px);font-weight:700;color:#d4a574;font-family:Courier New,monospace;line-height:1.2}.wedding-dashboard-2 .stats-card .stats-grid .stat-item .stat-val .stat-unit{font-size:.55em;font-weight:400;color:#f5efe673;margin-left:2px}.wedding-dashboard-2 .stats-card .stats-grid .stat-item .stat-lbl{font-size:clamp(10px,.8vw,12px);color:#f5efe673;margin-top:2px}.wedding-dashboard-2 .guest-card-right{flex-shrink:0}.wedding-dashboard-2 .guest-card-right .guest-count-row{display:flex;align-items:baseline;gap:6px;padding:4px 0}.wedding-dashboard-2 .guest-card-right .guest-count-row .guest-big-number{font-size:clamp(26px,2.5vw,36px);font-weight:700;color:#d4a574;font-family:Courier New,monospace;text-shadow:0 0 12px rgba(183,110,67,.4);line-height:1}.wedding-dashboard-2 .guest-card-right .guest-count-row .guest-unit{font-size:clamp(11px,.9vw,13px);color:#f5efe680}.wedding-dashboard-2 .vehicles-card{flex:1;min-height:0;display:flex;flex-direction:column}.wedding-dashboard-2 .vehicles-card .vehicles-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:clamp(4px,.4vh,6px)}.wedding-dashboard-2 .vehicles-card .vehicles-list::-webkit-scrollbar{width:3px}.wedding-dashboard-2 .vehicles-card .vehicles-list::-webkit-scrollbar-thumb{background:#b76e434d;border-radius:3px}.wedding-dashboard-2 .vehicles-card .vehicles-list .vehicle-item{padding:clamp(6px,.6vh,8px) clamp(6px,.6vw,10px);background:#b76e430f;border-radius:8px;border-left:3px solid #b76e43;transition:background .3s ease}.wedding-dashboard-2 .vehicles-card .vehicles-list .vehicle-item:hover{background:#b76e431a}.wedding-dashboard-2 .vehicles-card .vehicles-list .vehicle-item .vehicle-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}.wedding-dashboard-2 .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-name{font-size:clamp(12px,1vw,14px);font-weight:600;color:#f5efe6}.wedding-dashboard-2 .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-status{font-size:10px;padding:1px 8px;border-radius:8px}.wedding-dashboard-2 .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-status.moving{background:#b76e4333;color:#d4a574}.wedding-dashboard-2 .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-status.waiting{background:#d4a57433;color:#d4a574}.wedding-dashboard-2 .vehicles-card .vehicles-list .vehicle-item .vehicle-details{display:flex;gap:clamp(6px,.6vw,10px);font-size:clamp(10px,.8vw,12px);color:#f5efe680;flex-wrap:wrap}.wedding-dashboard-2 .vehicles-card .vehicles-list .vehicle-item .vehicle-details .brand{display:flex;align-items:center;gap:3px}.wedding-dashboard-2 .vehicles-card .vehicles-list .vehicle-item .vehicle-details .brand .brand-icon{font-size:11px;color:#b76e43}.wedding-dashboard-2 .cn-footer{height:clamp(32px,4vh,44px);background:linear-gradient(135deg,#4a1520e6,#7a2e3f1a,#4a1520e6);border-top:1px solid rgba(183,110,67,.3);display:flex;align-items:center;padding:0 clamp(12px,1.5vw,24px);position:relative;z-index:2;overflow:hidden}.wedding-dashboard-2 .cn-footer .footer-label{font-size:clamp(11px,1vw,13px);color:#b76e43;font-weight:600;white-space:nowrap;margin-right:16px;flex-shrink:0}.wedding-dashboard-2 .cn-footer .blessing-scroll{flex:1;overflow:hidden;position:relative}.wedding-dashboard-2 .cn-footer .blessing-scroll .blessing-track{display:flex;gap:40px;white-space:nowrap;animation:blessingScroll 30s linear infinite}.wedding-dashboard-2 .cn-footer .blessing-scroll .blessing-scroll-item{font-size:clamp(11px,.9vw,13px);color:#f5efe699;white-space:nowrap;flex-shrink:0}@keyframes leafFloat{0%,to{transform:translateY(0) rotate(0);opacity:.4}50%{transform:translateY(-15px) rotate(10deg);opacity:.7}}@keyframes leafFloat2{0%,to{transform:translateY(0) rotate(-5deg);opacity:.3}50%{transform:translateY(-20px) rotate(5deg);opacity:.6}}@keyframes blessingScroll{0%{transform:translate(100%)}to{transform:translate(-100%)}}@keyframes dotPulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.8);opacity:0}}@keyframes gentleGlow{0%,to{box-shadow:0 0 8px #a3b18a4d}50%{box-shadow:0 0 16px #a3b18a80}}@keyframes ecgFlow{0%{stroke-dashoffset:200;opacity:.6}50%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-200;opacity:.6}}@keyframes heartBeatPulse{0%,to{transform:scale(1)}10%{transform:scale(1.15)}20%{transform:scale(1)}30%{transform:scale(1.1)}40%,to{transform:scale(1)}}.wedding-dashboard-3{width:100vw;height:100vh;background:linear-gradient(160deg,#1a2e1a,#2d3a2e,#3a4a3a 60%,#2a3828);display:flex;flex-direction:column;overflow:hidden;font-family:PingFang SC,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:#f5f0e8;position:relative}.wedding-dashboard-3 .forest-decorations{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.wedding-dashboard-3 .forest-decorations .leaf{position:absolute;font-size:24px;opacity:.3}.wedding-dashboard-3 .forest-decorations .leaf-1{top:8%;left:3%;animation:leafFloat 8s ease-in-out infinite}.wedding-dashboard-3 .forest-decorations .leaf-2{top:15%;right:5%;animation:leafFloat2 10s ease-in-out infinite 1s}.wedding-dashboard-3 .forest-decorations .leaf-3{bottom:20%;left:8%;animation:leafFloat 12s ease-in-out infinite 2s}.wedding-dashboard-3 .forest-decorations .leaf-4{top:40%;right:2%;animation:leafFloat2 9s ease-in-out infinite .5s}.wedding-dashboard-3 .forest-decorations .leaf-5{bottom:10%;right:10%;animation:leafFloat 11s ease-in-out infinite 3s}.wedding-dashboard-3 .forest-header{height:clamp(56px,7vh,80px);background:linear-gradient(135deg,#2d3a2ef2,#5a724726,#2d3a2ef2);border-bottom:1px solid rgba(163,177,138,.3);box-shadow:0 4px 20px #0000004d;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(16px,2.5vw,40px);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);position:relative;z-index:2}.wedding-dashboard-3 .forest-header .header-left{display:flex;align-items:center;gap:clamp(8px,1.2vw,16px)}.wedding-dashboard-3 .forest-header .header-left .logo{font-size:clamp(28px,3.5vw,44px);filter:drop-shadow(0 0 10px rgba(163,177,138,.6));animation:leafFloat 4s ease-in-out infinite}.wedding-dashboard-3 .forest-header .header-left .title{font-size:clamp(16px,2vw,28px);font-weight:700;background:linear-gradient(120deg,#a3b18a,#c9a96e,#8faa7b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:2px}.wedding-dashboard-3 .forest-header .header-center .header-date{font-size:clamp(12px,1.1vw,15px);color:#f5f0e880;letter-spacing:1px}.wedding-dashboard-3 .forest-header .header-right{display:flex;align-items:center;gap:clamp(10px,1.5vw,20px)}.wedding-dashboard-3 .forest-header .header-right .weather-widget{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#a3b18a14;border-radius:10px}.wedding-dashboard-3 .forest-header .header-right .weather-widget .weather-icon{font-size:clamp(18px,1.8vw,24px)}.wedding-dashboard-3 .forest-header .header-right .weather-widget .weather-info .weather-temp{font-size:clamp(14px,1.4vw,18px);font-weight:700;color:#c9a96e;line-height:1}.wedding-dashboard-3 .forest-header .header-right .weather-widget .weather-info .weather-condition{font-size:clamp(10px,.8vw,11px);color:#f5f0e899}.wedding-dashboard-3 .forest-header .header-right .time-widget{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.wedding-dashboard-3 .forest-header .header-right .time-widget .time-display{font-size:clamp(18px,2vw,26px);font-weight:700;font-family:Courier New,monospace;color:#a3b18a;letter-spacing:1px;text-shadow:0 0 10px rgba(163,177,138,.4)}.wedding-dashboard-3 .forest-main{flex:1;display:flex;flex-direction:column;padding:clamp(8px,1vh,12px);overflow:hidden;position:relative;z-index:1}.wedding-dashboard-3 .forest-main .top-section{flex:1;display:grid;grid-template-columns:minmax(240px,20%) 1fr minmax(240px,22%);gap:clamp(8px,1vw,14px);min-height:0}.wedding-dashboard-3 .forest-card{background:#2d3a2ebf;border:1px solid rgba(163,177,138,.3);border-radius:clamp(8px,.8vw,12px);padding:clamp(8px,.9vw,12px);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #0003;overflow:hidden}.wedding-dashboard-3 .forest-card .card-label{font-size:clamp(11px,1vw,14px);font-weight:600;color:#c9a96e;margin-bottom:clamp(6px,.8vh,10px);padding-bottom:clamp(4px,.5vh,6px);border-bottom:1px solid rgba(201,169,110,.25);letter-spacing:1px}.wedding-dashboard-3 .forest-card .no-data{color:#f5f0e859;font-size:12px;text-align:center;padding:10px 0}.wedding-dashboard-3 .side-panel{display:flex;flex-direction:column;gap:clamp(6px,.8vh,10px);min-width:0;overflow-y:auto;overflow-x:hidden}.wedding-dashboard-3 .side-panel::-webkit-scrollbar{width:3px}.wedding-dashboard-3 .side-panel::-webkit-scrollbar-thumb{background:#a3b18a4d;border-radius:3px}.wedding-dashboard-3 .info-card{flex-shrink:0}.wedding-dashboard-3 .info-card .venue-main-row{display:flex;align-items:center;gap:clamp(8px,.8vw,12px);padding:clamp(6px,.7vh,10px);background:linear-gradient(135deg,#c9a96e14,#8faa7b14);border-radius:10px;border-left:3px solid #c9a96e;margin-bottom:clamp(6px,.7vh,10px)}.wedding-dashboard-3 .info-card .venue-main-row .venue-icon-wrap{width:clamp(36px,3vw,46px);height:clamp(36px,3vw,46px);border-radius:10px;background:linear-gradient(135deg,#c9a96e26,#c9a96e0d);display:flex;align-items:center;justify-content:center;font-size:clamp(18px,1.8vw,24px);flex-shrink:0}.wedding-dashboard-3 .info-card .venue-main-row .venue-text{flex:1;min-width:0}.wedding-dashboard-3 .info-card .venue-main-row .venue-text .venue-name{font-size:clamp(14px,1.3vw,18px);font-weight:700;color:#c9a96e;text-shadow:0 0 8px rgba(201,169,110,.3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.wedding-dashboard-3 .info-card .venue-main-row .venue-text .venue-hall{font-size:clamp(11px,.9vw,13px);color:#f5f0e88c;line-height:1.3}.wedding-dashboard-3 .info-card .venue-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(4px,.4vw,8px);margin-bottom:clamp(6px,.7vh,10px)}.wedding-dashboard-3 .info-card .venue-stats-grid .venue-stat-cell{display:flex;flex-direction:column;align-items:center;padding:clamp(6px,.6vh,10px) 4px;background:#8faa7b0f;border-radius:8px;border:1px solid rgba(163,177,138,.1);gap:2px}.wedding-dashboard-3 .info-card .venue-stats-grid .venue-stat-cell .stat-emoji{font-size:clamp(14px,1.3vw,18px)}.wedding-dashboard-3 .info-card .venue-stats-grid .venue-stat-cell .stat-number{font-size:clamp(16px,1.5vw,22px);font-weight:700;color:#8faa7b;font-family:Courier New,monospace;line-height:1}.wedding-dashboard-3 .info-card .venue-stats-grid .venue-stat-cell .stat-label{font-size:clamp(9px,.7vw,11px);color:#f5f0e866}.wedding-dashboard-3 .info-card .venue-footer-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.wedding-dashboard-3 .info-card .venue-footer-row .weather-mini{display:flex;align-items:center;gap:4px;font-size:clamp(10px,.85vw,12px);color:#f5f0e880;padding:3px 8px;background:#8faa7b0f;border-radius:8px}.wedding-dashboard-3 .info-card .network-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:10px;font-size:11px}.wedding-dashboard-3 .info-card .network-badge .dot{width:6px;height:6px;border-radius:50%}.wedding-dashboard-3 .info-card .network-badge.connected{background:#8faa7b26;color:#8faa7b}.wedding-dashboard-3 .info-card .network-badge.connected .dot{background:#8faa7b}.wedding-dashboard-3 .info-card .network-badge.unstable{background:#c9a96e26;color:#c9a96e}.wedding-dashboard-3 .info-card .network-badge.unstable .dot{background:#c9a96e}.wedding-dashboard-3 .info-card .network-badge.disconnected{background:#b4645026;color:#c87060}.wedding-dashboard-3 .info-card .network-badge.disconnected .dot{background:#c87060}.wedding-dashboard-3 .guest-card{flex-shrink:0}.wedding-dashboard-3 .guest-card .guest-count-row{display:flex;align-items:baseline;gap:6px;padding:4px 0}.wedding-dashboard-3 .guest-card .guest-count-row .guest-big-number{font-size:clamp(28px,2.8vw,40px);font-weight:700;color:#8faa7b;font-family:Courier New,monospace;text-shadow:0 0 12px rgba(143,170,123,.4);line-height:1}.wedding-dashboard-3 .guest-card .guest-count-row .guest-unit{font-size:clamp(11px,1vw,13px);color:#f5f0e880}.wedding-dashboard-3 .guest-card .guest-carousel{height:32px;overflow:hidden;border-top:1px solid rgba(163,177,138,.15);margin-top:6px;padding-top:4px}.wedding-dashboard-3 .guest-card .guest-carousel .guest-carousel-track{transition:transform .5s cubic-bezier(.4,0,.2,1)}.wedding-dashboard-3 .guest-card .guest-carousel .guest-carousel-item{height:32px;display:flex;align-items:center;font-size:clamp(11px,.9vw,13px);color:#f5f0e88c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wedding-dashboard-3 .guest-card .guest-carousel .guest-carousel-item .guest-name-hl{color:#8faa7b;font-weight:600;margin:0 3px}.wedding-dashboard-3 .timeline-card{flex:1;min-height:0;display:flex;flex-direction:column}.wedding-dashboard-3 .timeline-card .forest-timeline{flex:1;display:flex;flex-direction:column;justify-content:space-evenly;overflow-y:auto;padding-left:4px}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item{display:flex;align-items:center;gap:clamp(8px,.8vw,12px);padding:clamp(3px,.4vh,6px) 4px;border-radius:6px;position:relative;transition:background .3s ease}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item:hover{background:#a3b18a0f}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item .connector{position:absolute;left:clamp(7px,.7vw,10px);top:50%;width:2px;height:100%;background:#a3b18a26;border-radius:2px;z-index:0}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item .connector.lit{background:#8faa7b;box-shadow:0 0 4px #8faa7b66}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item .dot{width:clamp(10px,1vw,14px);height:clamp(10px,1vw,14px);border-radius:50%;border:2px solid rgba(163,177,138,.3);background:#a3b18a14;flex-shrink:0;position:relative;z-index:1}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item .dot .dot-pulse{position:absolute;top:50%;left:50%;width:200%;height:200%;border-radius:50%;border:2px solid #8faa7b;margin-top:-100%;margin-left:-100%;transform-origin:center;animation:dotPulse 2s ease-out infinite}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item.arrived .dot{background:#8faa7b;border-color:#8faa7b;box-shadow:0 0 6px #8faa7b80}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item.active .dot{background:#c9a96e;border-color:#c9a96e;box-shadow:0 0 8px #c9a96e99}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item .step-name{flex:1;font-size:clamp(11px,1vw,14px);color:#f5f0e8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item.arrived .step-name{color:#8faa7b}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item.active .step-name{color:#c9a96e;font-weight:600}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item.pending .step-name{color:#f5f0e866}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item .step-time{font-size:clamp(10px,.9vw,13px);font-family:Courier New,monospace;flex-shrink:0;margin-left:auto}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item.arrived .step-time{color:#8faa7b;font-weight:600;text-shadow:0 0 6px rgba(143,170,123,.4)}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item.active .step-time{color:#c9a96e}.wedding-dashboard-3 .timeline-card .forest-timeline .timeline-item.pending .step-time{color:#f5f0e840}.wedding-dashboard-3 .map-area{border-radius:clamp(8px,.8vw,12px);overflow:hidden;border:1px solid rgba(163,177,138,.3);box-shadow:0 4px 20px #00000040;position:relative}.wedding-dashboard-3 .map-area .map-loading{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#2d3a2e80;color:#f5f0e880;font-size:14px}.wedding-dashboard-3 .map-area .arrival-transition{width:100%;height:100%;background:linear-gradient(135deg,#1a2e1a,#2d3a2e,#3a4a3a);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.wedding-dashboard-3 .map-area .arrival-transition .forest-hearts{position:absolute;width:100%;height:100%}.wedding-dashboard-3 .map-area .arrival-transition .forest-hearts .fh{position:absolute;font-size:36px;animation:leafFloat 3s ease-in-out infinite}.wedding-dashboard-3 .map-area .arrival-transition .forest-hearts .fh-1{top:10%;left:15%;animation-delay:0s}.wedding-dashboard-3 .map-area .arrival-transition .forest-hearts .fh-2{top:20%;right:20%;animation-delay:.5s}.wedding-dashboard-3 .map-area .arrival-transition .forest-hearts .fh-3{bottom:25%;left:25%;animation-delay:1s}.wedding-dashboard-3 .map-area .arrival-transition .forest-hearts .fh-4{top:35%;right:10%;animation-delay:1.5s}.wedding-dashboard-3 .map-area .arrival-transition .forest-hearts .fh-5{bottom:15%;right:30%;animation-delay:2s}.wedding-dashboard-3 .map-area .arrival-transition .transition-text{text-align:center;z-index:1}.wedding-dashboard-3 .map-area .arrival-transition .transition-text .text-line{font-size:clamp(20px,3vw,36px);font-weight:300;color:#f5f0e8;letter-spacing:4px;margin:10px 0;animation:fadeInUp 1s ease-out both}.wedding-dashboard-3 .map-area .arrival-transition .transition-text .text-line.line-1{animation-delay:.3s}.wedding-dashboard-3 .map-area .arrival-transition .transition-text .text-line.line-2{animation-delay:.8s}.wedding-dashboard-3 .map-area .arrival-transition .transition-text .text-line.line-3{animation-delay:1.3s;color:#c9a96e;font-weight:600}.wedding-dashboard-3 .map-area .arrival-transition .transition-text .text-line.line-4{animation-delay:1.8s;color:#8faa7b}.wedding-dashboard-3 .map-area .photo-slideshow{width:100%;height:100%;position:relative}.wedding-dashboard-3 .map-area .photo-slideshow .photo-slide{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:0;transition:opacity 1.5s ease-in-out}.wedding-dashboard-3 .map-area .photo-slideshow .photo-slide.active{opacity:1}.wedding-dashboard-3 .map-area .photo-slideshow .photo-indicators{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:2}.wedding-dashboard-3 .map-area .photo-slideshow .photo-indicators .photo-indicator{width:8px;height:8px;border-radius:50%;background:#f5f0e84d;transition:all .3s ease}.wedding-dashboard-3 .map-area .photo-slideshow .photo-indicators .photo-indicator.active{background:#8faa7b;box-shadow:0 0 8px #8faa7b99;transform:scale(1.3)}.wedding-dashboard-3 .couple-card{flex-shrink:0}.wedding-dashboard-3 .couple-card .couple-section{display:flex;align-items:center;justify-content:center;gap:clamp(4px,.5vw,8px);padding:clamp(6px,.6vh,10px) 0}.wedding-dashboard-3 .couple-card .couple-section .person{display:flex;flex-direction:column;align-items:center;gap:4px}.wedding-dashboard-3 .couple-card .couple-section .person .avatar{width:clamp(42px,4.5vw,58px);height:clamp(42px,4.5vw,58px);border-radius:50%;object-fit:cover;border:2.5px solid #8faa7b;box-shadow:0 0 12px #8faa7b66,0 2px 8px #0000004d;transition:transform .3s ease}.wedding-dashboard-3 .couple-card .couple-section .person .avatar:hover{transform:scale(1.08)}.wedding-dashboard-3 .couple-card .couple-section .person.bride .avatar{border-color:#c9a96e;box-shadow:0 0 12px #c9a96e66,0 2px 8px #0000004d}.wedding-dashboard-3 .couple-card .couple-section .person .name{font-size:clamp(12px,1.1vw,15px);font-weight:600;color:#f5f0e8;letter-spacing:1px}.wedding-dashboard-3 .couple-card .couple-section .heart-connection{display:flex;align-items:center;gap:0;flex:1;min-width:0}.wedding-dashboard-3 .couple-card .couple-section .heart-connection .ecg-line{flex:1;height:clamp(24px,2.5vw,36px);min-width:0}.wedding-dashboard-3 .couple-card .couple-section .heart-connection .ecg-line .ecg-path{stroke-dasharray:200;animation:ecgFlow 2.5s ease-in-out infinite}.wedding-dashboard-3 .couple-card .couple-section .heart-connection .ecg-right .ecg-path{animation-delay:.3s}.wedding-dashboard-3 .couple-card .couple-section .heart-connection .heart-icon{font-size:clamp(20px,2vw,28px);flex-shrink:0;animation:heartBeatPulse 1.5s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(143,170,123,.5))}.wedding-dashboard-3 .couple-card .couple-date-row{display:flex;align-items:center;justify-content:center;gap:8px;padding:clamp(6px,.6vh,8px) 0 2px;border-top:1px solid rgba(163,177,138,.15)}.wedding-dashboard-3 .couple-card .couple-date-row .date-icon{font-size:clamp(14px,1.2vw,18px)}.wedding-dashboard-3 .couple-card .couple-date-row .date-text{font-size:clamp(14px,1.3vw,18px);font-weight:700;color:#c9a96e;letter-spacing:1.5px;text-shadow:0 0 10px rgba(201,169,110,.4)}.wedding-dashboard-3 .couple-card .couple-date-row .date-weekday{font-size:clamp(11px,.9vw,13px);color:#f5f0e880}.wedding-dashboard-3 .stats-card{flex-shrink:0}.wedding-dashboard-3 .stats-card .stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(6px,.6vw,10px)}.wedding-dashboard-3 .stats-card .stats-grid .stat-item{text-align:center;padding:clamp(6px,.6vh,10px) 4px;background:#8faa7b0f;border-radius:8px;border:1px solid rgba(163,177,138,.1)}.wedding-dashboard-3 .stats-card .stats-grid .stat-item .stat-val{font-size:clamp(16px,1.5vw,22px);font-weight:700;color:#8faa7b;font-family:Courier New,monospace;line-height:1.2}.wedding-dashboard-3 .stats-card .stats-grid .stat-item .stat-val .stat-unit{font-size:.55em;font-weight:400;color:#f5f0e873;margin-left:2px}.wedding-dashboard-3 .stats-card .stats-grid .stat-item .stat-lbl{font-size:clamp(10px,.8vw,12px);color:#f5f0e873;margin-top:2px}.wedding-dashboard-3 .guest-card-right{flex-shrink:0}.wedding-dashboard-3 .guest-card-right .guest-count-row{display:flex;align-items:baseline;gap:6px;padding:4px 0}.wedding-dashboard-3 .guest-card-right .guest-count-row .guest-big-number{font-size:clamp(26px,2.5vw,36px);font-weight:700;color:#8faa7b;font-family:Courier New,monospace;text-shadow:0 0 12px rgba(143,170,123,.4);line-height:1}.wedding-dashboard-3 .guest-card-right .guest-count-row .guest-unit{font-size:clamp(11px,.9vw,13px);color:#f5f0e880}.wedding-dashboard-3 .vehicles-card{flex:1;min-height:0;display:flex;flex-direction:column}.wedding-dashboard-3 .vehicles-card .vehicles-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:clamp(4px,.4vh,6px)}.wedding-dashboard-3 .vehicles-card .vehicles-list::-webkit-scrollbar{width:3px}.wedding-dashboard-3 .vehicles-card .vehicles-list::-webkit-scrollbar-thumb{background:#a3b18a4d;border-radius:3px}.wedding-dashboard-3 .vehicles-card .vehicles-list .vehicle-item{padding:clamp(6px,.6vh,8px) clamp(6px,.6vw,10px);background:#8faa7b0f;border-radius:8px;border-left:3px solid #8faa7b;transition:background .3s ease}.wedding-dashboard-3 .vehicles-card .vehicles-list .vehicle-item:hover{background:#8faa7b1a}.wedding-dashboard-3 .vehicles-card .vehicles-list .vehicle-item .vehicle-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}.wedding-dashboard-3 .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-name{font-size:clamp(12px,1vw,14px);font-weight:600;color:#f5f0e8}.wedding-dashboard-3 .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-status{font-size:10px;padding:1px 8px;border-radius:8px}.wedding-dashboard-3 .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-status.moving{background:#8faa7b33;color:#8faa7b}.wedding-dashboard-3 .vehicles-card .vehicles-list .vehicle-item .vehicle-header .vehicle-status.waiting{background:#c9a96e33;color:#c9a96e}.wedding-dashboard-3 .vehicles-card .vehicles-list .vehicle-item .vehicle-details{display:flex;gap:clamp(6px,.6vw,10px);font-size:clamp(10px,.8vw,12px);color:#f5f0e880;flex-wrap:wrap}.wedding-dashboard-3 .vehicles-card .vehicles-list .vehicle-item .vehicle-details .brand{display:flex;align-items:center;gap:3px}.wedding-dashboard-3 .vehicles-card .vehicles-list .vehicle-item .vehicle-details .brand .brand-icon{font-size:11px;color:#8faa7b}.wedding-dashboard-3 .forest-footer{height:clamp(32px,4vh,44px);background:linear-gradient(135deg,#2d3a2ee6,#5a72471a,#2d3a2ee6);border-top:1px solid rgba(163,177,138,.3);display:flex;align-items:center;padding:0 clamp(12px,1.5vw,24px);position:relative;z-index:2;overflow:hidden}.wedding-dashboard-3 .forest-footer .footer-label{font-size:clamp(11px,1vw,13px);color:#c9a96e;font-weight:600;white-space:nowrap;margin-right:16px;flex-shrink:0}.wedding-dashboard-3 .forest-footer .blessing-scroll{flex:1;overflow:hidden;position:relative}.wedding-dashboard-3 .forest-footer .blessing-scroll .blessing-track{display:flex;gap:40px;white-space:nowrap;animation:blessingScroll 30s linear infinite}.wedding-dashboard-3 .forest-footer .blessing-scroll .blessing-scroll-item{font-size:clamp(11px,.9vw,13px);color:#f5f0e899;white-space:nowrap;flex-shrink:0}@keyframes rowFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.simple-table-row-animate{animation:rowFadeIn .35s ease-out forwards;opacity:0}.admin-layout{height:100vh;overflow:hidden;background:linear-gradient(90deg,#667eea,#764ba2)}.admin-layout :global(.ant-layout-sider){background:transparent!important;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border-right:1px solid rgba(255,255,255,.1);user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.admin-layout :global(.ant-layout-sider) *{user-select:none!important;-webkit-user-select:none!important}.admin-layout :global(.ant-layout-sider).tech-sider{position:relative;background:transparent!important}.admin-layout :global(.ant-layout-sider).tech-sider:before{display:none}.admin-layout :global(.ant-layout-sider) .ant-layout-sider-children{background:transparent!important}.admin-layout :global(.ant-layout-sider) .ant-layout-sider-trigger{background:#667eea4d!important;color:#fff;border-top:1px solid rgba(255,255,255,.15);transition:all .3s ease;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-layout :global(.ant-layout-sider) .ant-layout-sider-trigger:hover{background:#667eea80!important}.admin-layout :global(.ant-layout-sider).ant-layout-sider-dark{background:transparent!important}.admin-layout :global(.ant-layout-sider).ant-layout-sider-dark .ant-layout-sider-children{background:transparent!important}.admin-layout .logo{height:64px;display:flex;align-items:center;justify-content:center;gap:16px;padding:20px;border-bottom:1px solid rgba(255,255,255,.1);position:relative;background:transparent}.admin-layout .logo:after{display:none}.admin-layout .logo .logo-icon{scale:1.25;margin-top:10px;display:flex;align-items:center;justify-content:center;border-radius:12px;overflow:hidden}.admin-layout .logo .logo-icon img{width:100%;height:100%;object-fit:cover}.admin-layout .logo .logo-icon .anticon{font-size:28px;color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.admin-layout .logo .logo-text{display:flex;flex-direction:column;gap:2px}.admin-layout .logo .logo-text .logo-title{font-size:16px;font-weight:700;color:#fff;letter-spacing:1px;text-shadow:0 2px 8px rgba(0,0,0,.2)}.admin-layout .logo .logo-text .logo-subtitle{font-size:11px;font-weight:500;color:#fffc;letter-spacing:.5px}.admin-layout :global .tech-menu{background:transparent!important;border:none;padding:12px 8px;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;caret-color:transparent!important}.admin-layout :global .tech-menu *{user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;caret-color:transparent!important}.admin-layout :global .tech-menu.ant-menu-dark{background:transparent!important}.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item{color:#fff!important}.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected){color:#fff!important}.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected) .ant-menu-title-content{color:#fff!important}.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected) .anticon{color:#fff!important}.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover{background:#ffffff2e!important;color:#fff!important}.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover .ant-menu-title-content,.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover span,.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover .anticon{color:#fff!important}.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:hover{background:#ffffff2e!important;color:#fff!important}.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:hover .ant-menu-title-content,.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:hover span,.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:hover .anticon{color:#fff!important}.admin-layout :global .tech-menu .ant-menu-item{margin:6px 0;border-radius:12px;height:48px;line-height:48px;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:600;font-size:15px;color:#fff!important;position:relative;overflow:hidden;background:transparent!important;cursor:pointer;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;caret-color:transparent!important;-webkit-tap-highlight-color:transparent!important}.admin-layout :global .tech-menu .ant-menu-item .ant-menu-title-content{color:#fff!important;font-weight:600;user-select:none!important;-webkit-user-select:none!important;cursor:pointer;caret-color:transparent!important}.admin-layout :global .tech-menu .ant-menu-item span{color:#fff!important;user-select:none!important;-webkit-user-select:none!important;caret-color:transparent!important}.admin-layout :global .tech-menu .ant-menu-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#fff;opacity:0;transition:opacity .3s ease}.admin-layout :global .tech-menu .ant-menu-item:hover{background:#ffffff2e!important;color:#fff!important;transform:translate(4px);box-shadow:0 2px 8px #0000001f;cursor:pointer}.admin-layout :global .tech-menu .ant-menu-item:hover .ant-menu-title-content{color:#fff!important}.admin-layout :global .tech-menu .ant-menu-item:hover span{color:#fff!important}.admin-layout :global .tech-menu .ant-menu-item:hover .anticon{color:#fff!important}.admin-layout :global .tech-menu .ant-menu-item:hover:before{opacity:1}.admin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected{background:#fff!important;color:#667eea!important;font-weight:700;box-shadow:0 2px 12px #00000026;cursor:pointer}.admin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected .ant-menu-title-content{color:#667eea!important;font-weight:700}.admin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected span{color:#667eea!important}.admin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected .anticon{color:#667eea!important}.admin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected:before{opacity:1;background:#667eea}.admin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected:after{display:none}.admin-layout :global .tech-menu .ant-menu-item:active{outline:none;background:#ffffff59!important}.admin-layout :global .tech-menu .ant-menu-item:focus{outline:none}.admin-layout :global .tech-menu .ant-menu-item .anticon{font-size:22px;transition:all .3s ease;margin-right:12px;color:#fff!important;user-select:none!important;-webkit-user-select:none!important;caret-color:transparent!important}.admin-layout :global .tech-menu .ant-menu-item:hover .anticon,.admin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected .anticon{transform:scale(1.15)}.admin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:hover:not(.ant-menu-item-selected){background:#ffffff2e!important;color:#fff!important}.admin-layout :global .tech-menu .ant-menu-item:hover:not(.ant-menu-item-selected){background:#ffffff2e!important;color:#fff!important}.admin-layout .admin-header{background:linear-gradient(90deg,#667eea,#764ba2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:0 32px;height:64px;line-height:64px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000001a;z-index:10;border-bottom:1px solid rgba(255,255,255,.15);position:relative}.admin-layout .admin-header:before{display:none}.admin-layout .admin-header .header-left h2{margin:0;font-size:20px;font-weight:600;color:#fff;letter-spacing:.5px;text-shadow:0 2px 8px rgba(0,0,0,.2)}.admin-layout .admin-header .header-right{display:flex;align-items:center;height:100%}.admin-layout .admin-header .header-right .user-info{display:flex;align-items:center;gap:10px;cursor:pointer;height:40px;padding:4px 14px 4px 4px;border-radius:20px;transition:all .3s ease}.admin-layout .admin-header .header-right .user-info:hover{background:#ffffff26}.admin-layout .admin-header .header-right .user-info .user-avatar{border:2px solid rgba(255,255,255,.6);background:#fff3;color:#fff}.admin-layout .admin-header .header-right .user-info .user-name{font-size:14px;font-weight:500;color:#ffffffe6;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-layout .admin-content{margin:0;padding:0;background:transparent;border-radius:0;overflow:hidden;height:calc(100vh - 64px);display:flex;flex-direction:column}.admin-layout .admin-content .content-wrapper{padding:0;flex:1;min-height:0;overflow:auto;background:transparent}.dashboard-page{height:100%;overflow-y:auto;overflow-x:hidden;padding:24px;background:linear-gradient(90deg,#667eea,#764ba2)}.dashboard-page h1{margin-bottom:32px;font-size:36px;font-weight:700;color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.2);letter-spacing:1px;animation:fadeInDown .6s ease-out;display:flex;align-items:center;gap:12px;-webkit-user-select:none;user-select:none;cursor:default}.dashboard-page .ant-row{animation:fadeInUp .8s ease-out}.dashboard-page .stat-card{position:relative;overflow:hidden;animation:fadeInUp .8s ease-out both}.dashboard-page .stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2);opacity:0;transition:opacity .3s ease}.dashboard-page .stat-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 16px 48px #667eea40}.dashboard-page .stat-card:hover:before{opacity:1}.dashboard-page .stat-card:hover .card-decoration{opacity:.15;transform:scale(1.2) rotate(10deg)}.dashboard-page .stat-card .card-decoration{position:absolute;top:-50%;right:-20%;width:200px;height:200px;border-radius:50%;opacity:.08;transition:all .6s cubic-bezier(.4,0,.2,1);pointer-events:none}.dashboard-page :global .ant-card{border-radius:16px;overflow:hidden;border:none;box-shadow:0 8px 24px #0000001f;transition:all .4s cubic-bezier(.4,0,.2,1);background:linear-gradient(135deg,#fff,#f8f9fa);position:relative}.dashboard-page :global .ant-card .ant-card-body{padding:24px;position:relative;z-index:1}.dashboard-page :global .ant-statistic .ant-statistic-title{font-size:14px;color:#8c8c8c;font-weight:500;margin-bottom:12px;letter-spacing:.5px;text-transform:uppercase;-webkit-user-select:none;user-select:none;cursor:default}.dashboard-page :global .ant-statistic .ant-statistic-content{font-size:36px;font-weight:700;-webkit-user-select:none;user-select:none;cursor:default}.dashboard-page :global .ant-statistic .ant-statistic-content .ant-statistic-content-value{background:linear-gradient(90deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:pulse 2s ease-in-out infinite}.dashboard-page :global .ant-statistic .ant-statistic-content .anticon{margin-right:12px;font-size:32px;animation:float 3s ease-in-out infinite}.dashboard-page :global .today-weddings-card{animation:fadeInUp 1s ease-out}.dashboard-page :global .today-weddings-card .ant-card-head{background:linear-gradient(90deg,#667eea,#764ba2);border:none;padding:20px 24px}.dashboard-page :global .today-weddings-card .ant-card-head .ant-card-head-title{color:#fff;font-size:20px;font-weight:600;letter-spacing:.5px;display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none;cursor:default}@media screen and (max-width:1600px){.dashboard-page{padding:20px}.dashboard-page h1{font-size:32px}.dashboard-page :global .ant-statistic-content{font-size:30px!important}}@media screen and (max-width:1366px){.dashboard-page{padding:16px}.dashboard-page h1{font-size:28px}.dashboard-page :global .ant-statistic-content{font-size:28px!important}.dashboard-page :global .ant-card-body{padding:20px!important}}@media screen and (max-width:1280px){.dashboard-page{padding:12px}.dashboard-page h1{font-size:24px}.dashboard-page :global .ant-statistic-content{font-size:24px!important}.dashboard-page :global .ant-card-body{padding:16px!important}}.wedding-list{height:100%;overflow:hidden;padding:24px;display:flex;flex-direction:column;background:linear-gradient(135deg,#667eea,#764ba2)}.wedding-list>:global(.ant-card){flex:1;min-height:0;display:flex;flex-direction:column;border-radius:16px;border:none;box-shadow:0 8px 32px #0000001f;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:cardFadeIn .4s ease-out}.wedding-list>:global(.ant-card) :global(.ant-card-body){flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.wedding-list .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-shrink:0;animation:slideInLeft .3s ease-out}.wedding-list .page-header h1{margin:0;font-size:24px;font-weight:700;color:#1a1a1a;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1px;position:relative;-webkit-user-select:none;user-select:none;cursor:default;display:inline-flex;align-items:center;gap:8px}.wedding-list .page-header h1 .title-heart{color:#ff4d4f;-webkit-text-fill-color:#ff4d4f;animation:heartBeat 1.5s ease-in-out infinite}.wedding-list .page-header h1:after{content:"";position:absolute;bottom:-8px;left:0;width:100%;height:4px;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px}.wedding-list .page-header :global(.ant-btn-primary){height:40px;padding:0 24px;border-radius:20px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;font-weight:600;box-shadow:0 4px 12px #667eea66;transition:all .3s cubic-bezier(.4,0,.2,1)}.wedding-list .page-header :global(.ant-btn-primary):hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.wedding-list .search-bar{margin-bottom:16px;padding:16px 20px;flex-shrink:0;background:linear-gradient(135deg,#fffffff2,#f8f9faf2);border-radius:12px;box-shadow:0 4px 16px #00000014;border:1px solid rgba(102,126,234,.1);animation:slideInRight .3s ease-out}.wedding-list .search-bar :global .ant-input{border-radius:8px;border:1px solid #e0e0e0;transition:all .3s ease}.wedding-list .search-bar :global .ant-input:hover,.wedding-list .search-bar :global .ant-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.wedding-list .search-bar :global .ant-picker{border-radius:8px;border:1px solid #e0e0e0;transition:all .3s ease}.wedding-list .search-bar :global .ant-picker:hover,.wedding-list .search-bar :global .ant-picker.ant-picker-focused{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.wedding-list .search-bar :global .ant-btn{border-radius:8px;height:36px;font-weight:500;transition:all .3s ease}.wedding-list .search-bar :global .ant-btn.ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 2px 8px #667eea4d}.wedding-list .search-bar :global .ant-btn.ant-btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.wedding-list .tech-table-wrapper{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;animation:fadeInUp .4s ease-out;overflow:hidden}.wedding-list .tech-table-wrapper :global .ant-table{background:transparent;border-radius:12px;overflow:hidden}.wedding-list .tech-table-wrapper :global .ant-table-container{border-radius:12px;box-shadow:0 4px 16px #0000000f}.wedding-list .tech-table-wrapper :global .ant-table-thead>tr>th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;border:none;padding:18px 16px;font-size:14px;text-shadow:0 1px 2px rgba(0,0,0,.1);letter-spacing:.5px;position:relative}.wedding-list .tech-table-wrapper :global .ant-table-thead>tr>th:before{display:none}.wedding-list .tech-table-wrapper :global .ant-table-thead>tr>th:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#fff0,#ffffff80,#fff0)}.wedding-list .tech-table-wrapper :global .ant-table-tbody>tr{transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff}.wedding-list .tech-table-wrapper :global .ant-table-tbody>tr:hover{background:linear-gradient(90deg,#f0f4ff,#e8f0fe);transform:translate(4px);box-shadow:-4px 0 12px #667eea26}.wedding-list .tech-table-wrapper :global .ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;padding:16px;transition:all .3s ease}.wedding-list .tech-table-wrapper :global .ant-table-tbody>tr:nth-child(2n){background:#667eea05}.wedding-list .tech-table-wrapper .couple-cell{display:flex;align-items:center;justify-content:center;gap:12px}.wedding-list .tech-table-wrapper .couple-cell .person-info{display:flex;flex-direction:column;align-items:center;gap:4px}.wedding-list .tech-table-wrapper .couple-cell .person-info .person-name{font-size:13px;font-weight:600;color:#1a1a1a;white-space:nowrap}.wedding-list .tech-table-wrapper .couple-cell .avatar-groom{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff;box-shadow:0 2px 8px #4facfe66}.wedding-list .tech-table-wrapper .couple-cell .avatar-bride{background:linear-gradient(135deg,#ff6b9d,#ff4d4f);color:#fff;box-shadow:0 2px 8px #ff6b9d66}.wedding-list .tech-table-wrapper .couple-cell .couple-heart{color:#ff4d4f;font-size:16px;animation:heartbeat 1.5s ease-in-out infinite;margin-top:-10px}.wedding-list .tech-table-wrapper .name-cell{font-weight:600;color:#1a1a1a;font-size:14px}.wedding-list .tech-table-wrapper .date-cell{color:#595959;font-family:Monaco,Courier New,monospace;font-size:13px;font-weight:500}.wedding-list .tech-table-wrapper .count-tag{border-radius:16px;padding:5px 16px;font-weight:600;border:1px solid #13c2c2;background:linear-gradient(135deg,#13c2c2,#08979c);color:#fff!important;box-shadow:0 2px 8px #13c2c24d;font-size:14px;cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none}.wedding-list .tech-table-wrapper .status-tag{border-radius:16px;padding:5px 16px;font-weight:600;border:none;box-shadow:0 2px 8px #0000001a;font-size:14px;cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none}.wedding-list .tech-table-wrapper .status-tag .anticon{margin-right:4px}.wedding-list .tech-table-wrapper .status-active{animation:pulse-glow 2s ease-in-out infinite}.wedding-list .tech-table-wrapper .status-active .bars-icon{display:inline-flex;align-items:flex-end;gap:2px;height:14px;margin-right:6px;vertical-align:middle}.wedding-list .tech-table-wrapper .status-active .bars-icon i{display:block;width:3px;border-radius:1.5px;background:currentColor;animation:bar-bounce 1s ease-in-out infinite}.wedding-list .tech-table-wrapper .status-active .bars-icon i:nth-child(1){height:40%;animation-delay:0s}.wedding-list .tech-table-wrapper .status-active .bars-icon i:nth-child(2){height:70%;animation-delay:.15s}.wedding-list .tech-table-wrapper .status-active .bars-icon i:nth-child(3){height:50%;animation-delay:.3s}.wedding-list .tech-table-wrapper .status-completed .anticon{animation:pop-in .5s cubic-bezier(.175,.885,.32,1.275)}.wedding-list .tech-table-wrapper .action-buttons-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:2px 0;justify-items:center}.wedding-list .tech-table-wrapper .action-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;height:28px;padding:0 8px;border-radius:6px;transition:all .25s ease;border:none;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;background:transparent}.wedding-list .tech-table-wrapper .action-btn:hover{transform:translateY(-1px)}.wedding-list .tech-table-wrapper .action-btn .anticon{font-size:14px}.wedding-list .tech-table-wrapper .action-btn .action-label{margin-left:4px}.wedding-list .tech-table-wrapper .view-btn{color:#1677ff;background:#1677ff0f}.wedding-list .tech-table-wrapper .view-btn:hover{color:#4096ff;background:#1677ff1f}.wedding-list .tech-table-wrapper .dashboard-btn{color:#52c41a;background:#52c41a0f}.wedding-list .tech-table-wrapper .dashboard-btn:hover{color:#73d13d;background:#52c41a1f}.wedding-list .tech-table-wrapper .game-btn{color:#eb2f96;background:#eb2f960f}.wedding-list .tech-table-wrapper .game-btn:hover{color:#f759ab;background:#eb2f961f}.wedding-list .tech-table-wrapper .delete-btn{color:#ff4d4f;background:#ff4d4f0f}.wedding-list .tech-table-wrapper .delete-btn:hover{color:#ff7875;background:#ff4d4f1f}.wedding-list .tech-table-wrapper :global .ant-pagination{margin-top:24px}.wedding-list .tech-table-wrapper :global .ant-pagination .ant-pagination-item{border-radius:8px;border:1px solid #d9d9d9;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:500}.wedding-list .tech-table-wrapper :global .ant-pagination .ant-pagination-item:hover{border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 8px #667eea33}.wedding-list .tech-table-wrapper :global .ant-pagination .ant-pagination-item.ant-pagination-item-active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;box-shadow:0 4px 12px #667eea4d;transform:scale(1.1)}.wedding-list .tech-table-wrapper :global .ant-pagination .ant-pagination-item.ant-pagination-item-active a{color:#fff;font-weight:600}.wedding-list .tech-table-wrapper :global .ant-pagination .ant-pagination-prev .ant-pagination-item-link,.wedding-list .tech-table-wrapper :global .ant-pagination .ant-pagination-next .ant-pagination-item-link{border-radius:8px;transition:all .3s ease}.wedding-list .tech-table-wrapper :global .ant-pagination .ant-pagination-prev .ant-pagination-item-link:hover,.wedding-list .tech-table-wrapper :global .ant-pagination .ant-pagination-next .ant-pagination-item-link:hover{border-color:#667eea;color:#667eea;transform:scale(1.1)}@media screen and (max-width:1600px){.wedding-list{padding:20px}.wedding-list .page-header h1{font-size:26px}}@media screen and (max-width:1366px){.wedding-list{padding:16px}.wedding-list .page-header h1{font-size:24px}.wedding-list .search-bar{padding:16px}.wedding-list :global .ant-table-thead>tr>th{padding:14px 12px!important;font-size:13px!important}.wedding-list :global .ant-table-tbody>tr>td{padding:12px!important}.wedding-list .tech-table-wrapper .action-btn{font-size:12px;padding:0 4px;height:26px}.wedding-list .tech-table-wrapper .action-buttons-wrapper{gap:2px}.wedding-list .tech-table-wrapper .couple-cell{gap:8px}.wedding-list .tech-table-wrapper .couple-cell .person-info :global(.ant-avatar){width:60px!important;height:60px!important;line-height:60px!important;font-size:24px!important}}@media screen and (max-width:1280px){.wedding-list{padding:12px}.wedding-list .page-header{gap:12px}.wedding-list .page-header h1{font-size:22px}.wedding-list .search-bar{padding:12px}.wedding-list .tech-table-wrapper .action-btn{padding:0 6px;height:28px;font-size:12px}.wedding-list .tech-table-wrapper .action-btn .action-label{display:none}.wedding-list .tech-table-wrapper .action-btn .anticon{margin:0;font-size:14px}.wedding-list .tech-table-wrapper .action-buttons-wrapper{gap:2px}.wedding-list .tech-table-wrapper .couple-cell{gap:6px}.wedding-list .tech-table-wrapper .couple-cell .person-info :global(.ant-avatar){width:50px!important;height:50px!important;line-height:50px!important;font-size:20px!important}.wedding-list .tech-table-wrapper .couple-cell .person-info .person-name{font-size:12px}.wedding-list .tech-table-wrapper .couple-cell .couple-heart{font-size:14px}}@media screen and (max-width:1024px){.wedding-list{padding:12px}.wedding-list .page-header{margin-bottom:10px;flex-direction:row;align-items:center}.wedding-list .page-header h1{font-size:20px}.wedding-list .page-header :global(.ant-btn-primary){height:34px;padding:0 16px;font-size:13px}.wedding-list .search-bar{padding:10px 12px;margin-bottom:10px}.wedding-list .search-bar :global .ant-input{height:32px;font-size:13px}.wedding-list .search-bar :global .ant-picker{font-size:13px}.wedding-list .search-bar :global .ant-btn{height:32px;font-size:13px}.wedding-list .tech-table-wrapper :global .ant-table-thead>tr>th{padding:10px 8px!important;font-size:12px!important}.wedding-list .tech-table-wrapper :global .ant-table-tbody>tr>td{padding:8px!important;font-size:13px}.wedding-list .tech-table-wrapper .action-btn{height:28px;padding:0 6px;font-size:12px}.wedding-list .tech-table-wrapper .action-btn .action-label{display:none}.wedding-list .tech-table-wrapper .action-btn .anticon{margin:0;font-size:14px}.wedding-list .tech-table-wrapper .action-buttons-wrapper{gap:2px}.wedding-list .tech-table-wrapper .count-tag,.wedding-list .tech-table-wrapper .status-tag{font-size:13px;padding:4px 12px}.wedding-list .tech-table-wrapper .couple-cell{gap:6px}.wedding-list .tech-table-wrapper .couple-cell .person-info :global(.ant-avatar){width:44px!important;height:44px!important;line-height:44px!important;font-size:18px!important}.wedding-list .tech-table-wrapper .couple-cell .person-info .person-name,.wedding-list .tech-table-wrapper .couple-cell .couple-heart{font-size:12px}}@media screen and (max-width:768px){.wedding-list{padding:8px}.wedding-list .page-header{margin-bottom:8px;flex-direction:row;align-items:center;gap:8px}.wedding-list .page-header h1{font-size:18px}.wedding-list .page-header :global(.ant-btn-primary){height:30px;padding:0 12px;font-size:12px;border-radius:16px}.wedding-list .search-bar{padding:8px 10px;margin-bottom:8px}.wedding-list .search-bar :global .ant-space{flex-wrap:wrap;gap:6px!important}.wedding-list .search-bar :global .ant-input{height:30px;font-size:12px;width:160px!important}.wedding-list .search-bar :global .ant-picker{font-size:12px}.wedding-list .search-bar :global .ant-btn{height:30px;font-size:12px}.wedding-list .tech-table-wrapper :global .ant-table-thead>tr>th{padding:8px 6px!important;font-size:11px!important}.wedding-list .tech-table-wrapper :global .ant-table-tbody>tr>td{padding:6px!important;font-size:12px}.wedding-list .tech-table-wrapper .name-cell{font-size:12px}.wedding-list .tech-table-wrapper .date-cell{font-size:11px}.wedding-list .tech-table-wrapper .action-btn{height:26px;padding:0 4px;font-size:11px}.wedding-list .tech-table-wrapper .action-btn .action-label{display:none}.wedding-list .tech-table-wrapper .action-btn .anticon{margin:0;font-size:13px}.wedding-list .tech-table-wrapper .action-buttons-wrapper{gap:1px}.wedding-list .tech-table-wrapper .count-tag,.wedding-list .tech-table-wrapper .status-tag{font-size:12px;padding:3px 10px}.wedding-list .tech-table-wrapper .couple-cell{gap:4px}.wedding-list .tech-table-wrapper .couple-cell .person-info :global(.ant-avatar){width:36px!important;height:36px!important;line-height:36px!important;font-size:14px!important}.wedding-list .tech-table-wrapper .couple-cell .person-info .person-name{font-size:11px}.wedding-list .tech-table-wrapper .couple-cell .couple-heart{font-size:10px}}.wedding-detail{width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;overflow:hidden}.wedding-detail .page-header{height:52px;margin-top:20px;padding:0 24px;display:flex;align-items:center;flex-shrink:0;gap:24px}.wedding-detail .page-header .back-btn{flex-shrink:0;border:none;background:#fff3;color:#fff;font-weight:500;transition:all .3s}.wedding-detail .page-header .back-btn:hover{background:#ffffff4d;transform:translate(-4px)}.wedding-detail .wedding-steps{flex:1;cursor:pointer}.wedding-detail .wedding-steps :global .ant-steps-item-icon,.wedding-detail .wedding-steps :global .ant-steps-item-wait .ant-steps-item-icon{background:transparent!important;border:2px solid #fff!important}.wedding-detail .wedding-steps :global .ant-steps-item-icon .ant-steps-icon,.wedding-detail .wedding-steps :global .ant-steps-item-wait .ant-steps-item-icon .ant-steps-icon{color:#fff!important}.wedding-detail .wedding-steps :global .ant-steps-item-active .ant-steps-item-icon,.wedding-detail .wedding-steps :global .ant-steps-item-active>.ant-steps-item-container>.ant-steps-item-icon{background:#fff!important;border-color:#fff!important;box-shadow:0 0 12px #ffffff80}.wedding-detail .wedding-steps :global .ant-steps-item-active .ant-steps-item-icon .ant-steps-icon,.wedding-detail .wedding-steps :global .ant-steps-item-active>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#5b2d8e!important;font-weight:700!important}.wedding-detail .wedding-steps :global .ant-steps-item-finish .ant-steps-item-icon,.wedding-detail .wedding-steps :global .ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-icon{background:#fff!important;border-color:#fff!important}.wedding-detail .wedding-steps :global .ant-steps-item-finish .ant-steps-item-icon .ant-steps-icon,.wedding-detail .wedding-steps :global .ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#5b2d8e!important}.wedding-detail .wedding-steps :global .ant-steps-item-tail:after{background:#ffffff73!important}.wedding-detail .wedding-steps :global .ant-steps-item-finish .ant-steps-item-tail:after{background:#fff!important}.wedding-detail .wedding-steps :global .ant-steps-item-active .ant-steps-item-title,.wedding-detail .wedding-steps :global .ant-steps-item-finish .ant-steps-item-title{background:linear-gradient(135deg,#ffe566,#ffc53d)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important;font-weight:700!important}.wedding-detail .wedding-steps :global .ant-steps-item-wait .ant-steps-item-title{-webkit-text-fill-color:rgba(255,255,255,.7)!important;color:#ffffffb3!important;font-weight:500!important}.wedding-detail .detail-container{flex:1;padding:8px 24px 12px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.wedding-detail .step-content{flex:1;display:flex;min-height:0;overflow:hidden;flex-direction:column}.wedding-detail .info-section{flex:1;overflow-y:auto;padding:20px 24px;background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #00000014}.wedding-detail .info-section::-webkit-scrollbar{width:4px}.wedding-detail .info-section::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:4px}.wedding-detail .info-section::-webkit-scrollbar-track{background:transparent}.wedding-detail .info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.wedding-detail .info-header .info-header-title{font-size:16px;font-weight:600;color:#333}.wedding-detail .avatar-row{display:flex;align-items:center;justify-content:center;gap:24px;padding:16px 0 20px}.wedding-detail .avatar-row .avatar-item{display:flex;flex-direction:column;align-items:center;gap:8px}.wedding-detail .avatar-row .avatar-item .avatar-name{font-size:16px;font-weight:600;color:#333}.wedding-detail .avatar-row .heart-icon{font-size:28px;color:#ff4d4f;animation:heartBeat 1.5s ease-in-out infinite}.wedding-detail .detail-desc :global .ant-descriptions-item-label{background:linear-gradient(135deg,#f8f9fa,#e9ecef);font-weight:600;color:#262626}.wedding-detail .detail-grid{border:1px solid #e8e8e8;border-radius:8px;overflow:hidden}.wedding-detail .detail-row{display:flex;border-bottom:1px solid #e8e8e8}.wedding-detail .detail-row:last-child{border-bottom:none}.wedding-detail .detail-cell{flex:1;display:flex;min-height:48px}.wedding-detail .detail-cell:not(:last-child){border-right:1px solid #e8e8e8}.wedding-detail .detail-cell .cell-label{width:120px;flex-shrink:0;padding:12px 16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);font-weight:600;color:#262626;font-size:13px;display:flex;align-items:center;gap:6px}.wedding-detail .detail-cell .cell-label :global(.anticon){color:#667eea;font-size:14px}.wedding-detail .detail-cell .cell-value{flex:1;padding:12px 16px;display:flex;align-items:center;flex-wrap:wrap;gap:4px;color:#333;font-size:13px}.wedding-detail .detail-cell .cell-value .value-text{font-weight:500;color:#1a1a1a;letter-spacing:.2px}.wedding-detail .detail-cell .cell-value .value-muted{color:#999;font-weight:400;font-size:12px}.wedding-detail .detail-grid :global .ant-input,.wedding-detail .detail-grid :global .ant-picker,.wedding-detail .detail-grid :global .ant-select,.wedding-detail .detail-grid :global .ant-input-number{width:100%}.wedding-detail .detail-grid :global .ant-form-item{margin-bottom:0}.wedding-detail .qr-inline{display:inline-flex;flex-direction:column;align-items:center;gap:6px;padding:8px 0}.wedding-detail .qr-inline .qr-tip{margin:0;color:#999;font-size:12px}.wedding-detail .qr-inline .wxacode-img{width:140px;height:140px;border-radius:8px;border:1px solid #f0f0f0;object-fit:contain}.wedding-detail .qr-inline .qr-placeholder{width:140px;height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fafafa;border:1px dashed #d9d9d9;border-radius:8px;color:#999;font-size:13px;gap:8px}.wedding-detail .qr-inline .qr-placeholder p{margin:0}.wedding-detail .table-section{margin-top:16px}.wedding-detail .table-section .section-title{font-size:16px;font-weight:600;color:#333;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.wedding-detail :global .ant-tag{border-radius:12px;padding:2px 10px;font-weight:600;border:none}@keyframes heartBeat{0%,to{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.15)}60%{transform:scale(1)}}@media(max-height:900px){.wedding-detail .page-header{height:46px;padding:0 16px;gap:16px}.wedding-detail .detail-container{padding:6px 16px 8px}.wedding-detail .info-section{padding:16px 20px}.wedding-detail .avatar-row{padding:12px 0 16px;gap:16px}}@media(max-height:768px){.wedding-detail .page-header{height:40px;padding:0 12px;gap:12px}.wedding-detail .detail-container{padding:4px 12px 6px}.wedding-detail .info-section{padding:12px 16px}.wedding-detail .avatar-row{padding:8px 0 12px;gap:12px}}@media(max-width:1366px){.wedding-detail .page-header{margin-top:12px;padding:0 16px;gap:16px}.wedding-detail .detail-container{padding:6px 16px 8px}.wedding-detail .info-section{padding:16px 20px}.wedding-detail .detail-cell .cell-label{width:110px;padding:10px 12px;font-size:12px}.wedding-detail .detail-cell .cell-value{padding:10px 12px;font-size:12px}.wedding-detail .avatar-row{padding:12px 0 16px;gap:16px}.wedding-detail .avatar-row :global(.ant-avatar){width:64px!important;height:64px!important}.wedding-detail .avatar-row .avatar-item .avatar-name{font-size:14px}.wedding-detail .avatar-row .heart-icon{font-size:24px}.wedding-detail .qr-inline .wxacode-img,.wedding-detail .qr-inline .qr-placeholder{width:120px;height:120px}}@media(max-width:1280px){.wedding-detail .page-header{margin-top:8px;padding:0 12px;gap:12px}.wedding-detail .detail-container{padding:4px 12px 6px}.wedding-detail .info-section{padding:12px 16px}.wedding-detail .detail-cell .cell-label{width:100px;padding:8px 10px;font-size:12px}.wedding-detail .detail-cell .cell-value{padding:8px 10px;font-size:12px}.wedding-detail .avatar-row{padding:8px 0 12px;gap:12px}.wedding-detail .avatar-row :global(.ant-avatar){width:56px!important;height:56px!important}.wedding-detail .avatar-row .avatar-item .avatar-name{font-size:13px}.wedding-detail .avatar-row .heart-icon{font-size:20px}.wedding-detail .qr-inline .wxacode-img,.wedding-detail .qr-inline .qr-placeholder{width:100px;height:100px}}@media(max-width:1024px){.wedding-detail .page-header{height:40px;margin-top:8px;padding:0 12px;gap:10px}.wedding-detail .page-header .back-btn{font-size:12px;padding:0 10px;height:30px}.wedding-detail .detail-container{padding:4px 12px 6px}.wedding-detail .info-section{padding:10px 14px}.wedding-detail .info-header .info-header-title{font-size:14px}.wedding-detail .detail-row{flex-wrap:wrap}.wedding-detail .detail-cell{min-width:50%}.wedding-detail .detail-cell .cell-label{width:90px;padding:8px;font-size:11px}.wedding-detail .detail-cell .cell-value{padding:8px;font-size:12px}.wedding-detail .avatar-row{padding:8px 0 10px;gap:10px}.wedding-detail .avatar-row :global(.ant-avatar){width:50px!important;height:50px!important}.wedding-detail .avatar-row .avatar-item .avatar-name{font-size:12px}.wedding-detail .avatar-row .heart-icon{font-size:18px}.wedding-detail .qr-inline .wxacode-img{width:90px;height:90px}.wedding-detail .qr-inline .qr-placeholder{width:90px;height:90px;font-size:11px}.wedding-detail .qr-inline .qr-tip{font-size:11px}.wedding-detail .table-section .section-title{font-size:14px}}@media(max-width:768px){.wedding-detail .page-header{height:36px;margin-top:4px;padding:0 8px;gap:8px}.wedding-detail .page-header .back-btn{font-size:11px;padding:0 8px;height:26px}.wedding-detail .detail-container{padding:4px 8px 6px}.wedding-detail .info-section{padding:8px 10px}.wedding-detail .detail-row{flex-direction:column}.wedding-detail .detail-cell{min-width:100%}.wedding-detail .detail-cell:not(:last-child){border-right:none;border-bottom:1px solid #e8e8e8}.wedding-detail .detail-cell .cell-label{width:90px;padding:6px 8px;font-size:11px}.wedding-detail .detail-cell .cell-value{padding:6px 8px;font-size:11px}.wedding-detail .avatar-row{gap:8px;padding:6px 0 8px}.wedding-detail .avatar-row :global(.ant-avatar){width:44px!important;height:44px!important}.wedding-detail .avatar-row .avatar-item .avatar-name{font-size:12px}.wedding-detail .avatar-row .heart-icon{font-size:16px}.wedding-detail .qr-inline .wxacode-img{width:80px;height:80px}.wedding-detail .qr-inline .qr-placeholder{width:80px;height:80px;font-size:10px}.wedding-detail .qr-inline .qr-tip{font-size:10px}}.route-point-picker{display:flex;flex-direction:column;width:100%;gap:8px}.route-point-picker .picker-search{flex-shrink:0;display:flex;flex-direction:column;gap:6px}.route-point-picker .picker-search .picker-tip{font-size:12px;color:#8c8c8c;padding:2px 0}.route-point-picker .picker-search :global .ant-input-affix-wrapper,.route-point-picker .picker-search :global .ant-input{height:40px;font-size:14px}.route-point-picker .picker-search :global .ant-btn{height:40px;font-size:14px;padding:0 18px;font-weight:500}.route-point-picker .picker-search :global .ant-select-selector{height:40px!important}.route-point-picker .picker-body{display:flex;flex-direction:row;gap:12px;height:calc(100vh - 330px);min-height:300px}.route-point-picker .picker-map{flex:3;min-width:0;height:100%;border-radius:8px;overflow:hidden;border:1px solid #e8e8e8}.route-point-picker .picker-points{flex:1;min-width:260px;max-width:340px;height:100%;display:flex;flex-direction:column;gap:8px;overflow:hidden;background:#fafafa;border-radius:8px;padding:12px;border:1px solid #e8e8e8}.route-point-picker .picker-points .points-header{display:flex;justify-content:space-between;align-items:center;padding:0;margin-bottom:10px;font-weight:600;font-size:14px;color:#262626;flex-shrink:0}.route-point-picker .picker-points .points-header .points-tip{font-size:12px;color:#52c41a;font-weight:500}.route-point-picker .picker-points .points-list{flex:1;display:flex;flex-direction:column;gap:8px;overflow-y:auto;overflow-x:hidden;padding:0;min-height:0}.route-point-picker .picker-points .points-list::-webkit-scrollbar{width:6px}.route-point-picker .picker-points .points-list::-webkit-scrollbar-track{background:#f0f0f0;border-radius:3px}.route-point-picker .picker-points .points-list::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:3px}.route-point-picker .picker-points .points-list::-webkit-scrollbar-thumb:hover{background:#bfbfbf}.route-point-picker .picker-points .points-list .point-item{padding:10px;border:1px solid #e8e8e8;border-radius:6px;background:#fff;transition:all .3s;flex-shrink:0}.route-point-picker .picker-points .points-list .point-item:hover{border-color:#ff7875;box-shadow:0 2px 6px #ff4d4f1a}.route-point-picker .picker-points .points-list .point-item .point-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.route-point-picker .picker-points .points-list .point-item .point-address{font-size:12px;color:#595959;margin-bottom:4px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-point-picker .picker-points .points-list .point-item .point-coords{font-size:11px;color:#8c8c8c;font-family:Courier New,monospace}.route-point-picker .picker-points .points-list .point-item :global .ant-input{font-size:13px;padding:4px 8px}.route-point-picker .picker-points .points-list .point-item :global .ant-btn-link{padding:0;height:auto;font-size:12px}.route-point-picker .picker-points .points-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;color:#8c8c8c;background:#fff;border-radius:6px;border:1px dashed #d9d9d9;min-height:0}.route-point-picker .picker-points .points-empty :global .anticon{font-size:32px;color:#d9d9d9}.route-point-picker .picker-points .points-empty p{margin-top:8px;margin-bottom:0;font-size:13px}.avatar-upload-wrapper{display:flex;justify-content:center;align-items:center}.avatar-uploader :global .ant-upload-wrapper,.avatar-uploader :global .ant-upload-list,.avatar-uploader :global .ant-upload-list-item-container,.avatar-uploader :global .ant-upload-list-item,.avatar-uploader :global .ant-upload-select{border-radius:50%!important;overflow:hidden!important;background:transparent!important}.avatar-uploader :global .ant-upload-select{width:90px!important;height:90px!important;border:3px dashed #d9d9d9!important;transition:all .3s ease;background:linear-gradient(135deg,#f5f5f5,#fafafa)!important;position:relative}.avatar-uploader :global .ant-upload-select:hover{border-color:#ff7875!important;border-style:solid!important;box-shadow:0 0 0 4px #ff78751a;transform:scale(1.02)}.avatar-uploader :global .ant-upload{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0;border-radius:50%!important}.avatar-uploader :global .ant-upload-list-item{border:none!important;padding:0!important}.avatar-uploader .upload-button{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8c8c8c;width:100%;height:100%}.avatar-uploader .upload-button .upload-icon{font-size:26px;margin-bottom:4px;color:#ff7875;transition:all .3s ease}.avatar-uploader .upload-button .upload-text{font-size:12px;font-weight:500;color:#595959;-webkit-user-select:none;user-select:none;cursor:default;transition:all .3s ease}.avatar-uploader .upload-button:hover .upload-icon{transform:scale(1.1);color:#ff4d4f}.avatar-uploader .upload-button:hover .upload-text{transform:scale(1.05);color:#ff4d4f}.avatar-uploader .avatar-preview{width:100%;height:100%;position:relative;cursor:pointer;border-radius:50%;overflow:hidden}.avatar-uploader .avatar-preview .avatar-image{width:100%;height:100%;object-fit:cover;border-radius:50%;transition:all .3s ease}.avatar-uploader .avatar-preview .avatar-mask{position:absolute;inset:0;background:#0009;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:all .3s ease;border-radius:50%;color:#fff}.avatar-uploader .avatar-preview .avatar-mask .avatar-mask-icon{font-size:22px;margin-bottom:2px;transition:all .3s ease}.avatar-uploader .avatar-preview .avatar-mask span{font-size:11px;font-weight:500;-webkit-user-select:none;user-select:none;cursor:default;transition:all .3s ease}.avatar-uploader .avatar-preview:hover .avatar-image{transform:scale(1.05)}.avatar-uploader .avatar-preview:hover .avatar-mask{opacity:1}.avatar-uploader .avatar-preview:hover .avatar-mask .avatar-mask-icon{transform:scale(1.1)}.avatar-uploader .avatar-preview:hover .avatar-mask span{transform:scale(1.05)}:global .ant-upload-select .anticon-loading{font-size:36px;color:#ff7875}@media(max-width:1024px){.avatar-uploader :global .ant-upload-select{width:76px!important;height:76px!important}}@media(max-width:768px){.avatar-uploader :global .ant-upload-select{width:68px!important;height:68px!important;border-width:2px!important}.avatar-uploader .upload-button .upload-icon{font-size:20px}.avatar-uploader .upload-button .upload-text{font-size:11px}}.photos-uploader{width:100%}.photos-uploader .photos-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;margin-bottom:12px}.photos-uploader .photo-item{position:relative;width:110px;height:110px;border-radius:10px;overflow:hidden;border:2px solid #f0f0f0;transition:all .3s ease;background:#fafafa}.photos-uploader .photo-item:hover{border-color:#ff7875;box-shadow:0 4px 12px #ff787533;transform:translateY(-2px)}.photos-uploader .photo-item:hover .photo-mask{opacity:1}.photos-uploader .photo-item .photo-image{width:100%;height:100%;object-fit:cover;transition:all .3s ease}.photos-uploader .photo-item .photo-mask{position:absolute;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;gap:16px;opacity:0;transition:all .3s ease}.photos-uploader .photo-item .photo-mask .photo-action-icon{font-size:20px;color:#fff;cursor:pointer;transition:all .3s ease;padding:8px;border-radius:50%;background:#ffffff1a}.photos-uploader .photo-item .photo-mask .photo-action-icon:hover{transform:scale(1.2);background:#fff3}.photos-uploader .photo-item .photo-mask .photo-action-icon:active{transform:scale(1.1)}.photos-uploader .photo-upload-btn{width:110px;height:110px;border:2px dashed #d9d9d9;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;background:linear-gradient(135deg,#f5f5f5,#fafafa)}.photos-uploader .photo-upload-btn:hover{border-color:#ff7875;border-style:solid;box-shadow:0 0 0 4px #ff78751a;transform:translateY(-2px)}.photos-uploader .photo-upload-btn:hover .upload-icon{transform:scale(1.1);color:#ff4d4f}.photos-uploader .photo-upload-btn:hover .upload-text{transform:scale(1.05);color:#ff4d4f}.photos-uploader .photo-upload-btn .upload-button{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8c8c8c}.photos-uploader .photo-upload-btn .upload-button .upload-icon{font-size:28px;margin-bottom:6px;color:#ff7875;transition:all .3s ease}.photos-uploader .photo-upload-btn .upload-button .upload-text{font-size:13px;font-weight:500;color:#595959;-webkit-user-select:none;user-select:none;cursor:default;transition:all .3s ease}.photos-uploader .photos-tip{font-size:13px;color:#8c8c8c;text-align:center;padding:8px;background:#f5f5f5;border-radius:6px;font-weight:500;-webkit-user-select:none;user-select:none;cursor:default}.wedding-create{width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;overflow:hidden}.wedding-create .page-header{height:52px;margin-top:20px;padding:0 24px;display:flex;align-items:center;flex-shrink:0;gap:24px}.wedding-create .page-header .back-btn{flex-shrink:0;border:none;background:#fff3;color:#fff;font-weight:500;transition:all .3s}.wedding-create .page-header .back-btn:hover{background:#ffffff4d;transform:translate(-4px)}.wedding-create .wedding-steps{flex:1}.wedding-create .wedding-steps :global .ant-steps-item-icon,.wedding-create .wedding-steps :global .ant-steps-item-wait .ant-steps-item-icon{background:transparent!important;border:2px solid #fff!important}.wedding-create .wedding-steps :global .ant-steps-item-icon .ant-steps-icon,.wedding-create .wedding-steps :global .ant-steps-item-wait .ant-steps-item-icon .ant-steps-icon{color:#fff!important}.wedding-create .wedding-steps :global .ant-steps-item-active .ant-steps-item-icon,.wedding-create .wedding-steps :global .ant-steps-item-active>.ant-steps-item-container>.ant-steps-item-icon{background:#fff!important;border-color:#fff!important;box-shadow:0 0 12px #ffffff80}.wedding-create .wedding-steps :global .ant-steps-item-active .ant-steps-item-icon .ant-steps-icon,.wedding-create .wedding-steps :global .ant-steps-item-active>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#5b2d8e!important;font-weight:700!important}.wedding-create .wedding-steps :global .ant-steps-item-finish .ant-steps-item-icon,.wedding-create .wedding-steps :global .ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-icon{background:#fff!important;border-color:#fff!important}.wedding-create .wedding-steps :global .ant-steps-item-finish .ant-steps-item-icon .ant-steps-icon,.wedding-create .wedding-steps :global .ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#5b2d8e!important}.wedding-create .wedding-steps :global .ant-steps-item-tail:after{background:#ffffff73!important}.wedding-create .wedding-steps :global .ant-steps-item-finish .ant-steps-item-tail:after,.wedding-create .wedding-steps :global .ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background:#fff!important}.wedding-create .wedding-steps :global .ant-steps-item-active .ant-steps-item-title,.wedding-create .wedding-steps :global .ant-steps-item-finish .ant-steps-item-title,.wedding-create .wedding-steps :global .ant-steps-item-active>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title,.wedding-create .wedding-steps :global .ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{background:linear-gradient(135deg,#ffe566,#ffc53d)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important;font-weight:700!important;text-shadow:none!important}.wedding-create .wedding-steps :global .ant-steps-item-wait .ant-steps-item-title,.wedding-create .wedding-steps :global .ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{-webkit-text-fill-color:rgba(255,255,255,.7)!important;color:#ffffffb3!important;font-weight:500!important}.wedding-create .create-container{flex:1;padding:8px 24px 12px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.wedding-create .step-form{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.wedding-create .step-content{flex:1;display:flex;min-height:0;overflow:hidden;flex-direction:column}.wedding-create .info-section{flex:1;overflow-y:auto;padding:16px 20px;background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #00000014}.wedding-create .info-section::-webkit-scrollbar{width:4px}.wedding-create .info-section::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:4px}.wedding-create .info-section::-webkit-scrollbar-track{background:transparent}.wedding-create .info-section .avatar-section{display:flex;justify-content:center;padding:8px 0}.wedding-create .info-section .avatar-container{display:flex;align-items:center;justify-content:center;gap:16px}.wedding-create .info-section .avatar-item{display:flex;flex-direction:column;align-items:center;gap:6px}.wedding-create .info-section .avatar-item .avatar-label{font-size:14px;font-weight:600;color:#333}.wedding-create .info-section .avatar-divider{display:flex;align-items:center;gap:4px;padding:0 4px}.wedding-create .info-section .avatar-divider .ecg-line{width:50px;height:20px}.wedding-create .info-section .avatar-divider .ecg-line .ecg-path{stroke-dasharray:200;stroke-dashoffset:200;animation:ecgFlow 2s ease-in-out infinite}.wedding-create .info-section .avatar-divider .ecg-right .ecg-path{animation-delay:.3s}.wedding-create .info-section .avatar-divider .heart-icon{font-size:22px;color:#ff4d4f;animation:heartBeatPulse 1.5s ease-in-out infinite}.wedding-create .info-section :global .ant-form-item{margin-bottom:12px}.wedding-create .info-section :global .ant-form-item-label>label{font-weight:500;color:#333}.wedding-create .info-section :global .ant-input,.wedding-create .info-section :global .ant-picker{border-radius:8px}.wedding-create .info-section :global .ant-input:hover,.wedding-create .info-section :global .ant-picker:hover,.wedding-create .info-section :global .ant-input:focus,.wedding-create .info-section :global .ant-picker:focus{border-color:#764ba2}.wedding-create .info-section :global .ant-input:focus,.wedding-create .info-section :global .ant-picker:focus{box-shadow:0 0 0 2px #764ba21a}.wedding-create .info-section .form-row{display:flex;gap:16px}.wedding-create .info-section .form-row .form-row-item{flex:1;min-width:0}.wedding-create .info-section .privacy-notice{margin-top:4px;padding:12px 16px;background:linear-gradient(135deg,#667eea0a,#764ba20a);border-radius:8px;border:1px solid rgba(102,126,234,.12)}.wedding-create .info-section .privacy-notice :global .ant-alert{border-radius:8px;border:none;background:#fffc}.wedding-create .info-section .privacy-notice :global .ant-alert-message{font-weight:600;color:#333}.wedding-create .info-section .privacy-notice :global .ant-alert-description{font-size:13px;color:#666;line-height:1.6}.wedding-create .info-section .privacy-notice :global .ant-checkbox-wrapper{font-size:13px;color:#555}.wedding-create .route-section{flex:1;overflow-y:auto;background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #00000014;padding:16px}.wedding-create .route-section::-webkit-scrollbar{width:4px}.wedding-create .route-section::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:4px}.wedding-create .route-section::-webkit-scrollbar-track{background:transparent}.wedding-create .route-section :global .ant-form-item{margin-bottom:0}.wedding-create .route-section .picker-body{height:calc(100vh - 330px);min-height:300px}.wedding-create .step-actions{display:flex;justify-content:center;gap:12px;padding:12px 0 4px;flex-shrink:0}.wedding-create .step-actions :global .ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;font-weight:500;box-shadow:0 4px 15px #764ba24d}.wedding-create .step-actions :global .ant-btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 6px 20px #764ba266}.wedding-create .step-actions :global .ant-btn-default{border-radius:8px;font-weight:500;background:#ffffffe6}.wedding-create .step-actions :global .ant-btn-default:hover{border-color:#764ba2;color:#764ba2}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes heartBeatPulse{0%,to{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.15)}60%{transform:scale(1)}}@keyframes ecgFlow{0%{stroke-dashoffset:200}50%{stroke-dashoffset:0}to{stroke-dashoffset:-200}}@media(max-height:900px){.wedding-create .page-header{height:46px;padding:0 16px;gap:16px}.wedding-create .create-container{padding:6px 16px 8px}.wedding-create .info-section{padding:12px 16px}.wedding-create .info-section .avatar-container{gap:12px}.wedding-create .info-section .avatar-divider .ecg-line{width:36px;height:16px}.wedding-create .info-section .avatar-divider .heart-icon{font-size:18px}.wedding-create .info-section :global .ant-form-item{margin-bottom:8px}.wedding-create .route-section .picker-body{height:calc(100vh - 360px);min-height:280px}.wedding-create .step-actions{padding:8px 0 2px}}@media(max-height:768px){.wedding-create .page-header{height:40px;padding:0 12px;gap:12px}.wedding-create .create-container{padding:4px 12px 6px}.wedding-create .info-section{padding:10px 12px}.wedding-create .info-section .avatar-section{padding:4px 0}.wedding-create .info-section .avatar-divider .ecg-line{width:28px;height:14px}.wedding-create .info-section .avatar-divider .heart-icon{font-size:16px}.wedding-create .info-section :global .ant-form-item{margin-bottom:6px}.wedding-create .route-section{padding:12px}.wedding-create .route-section .picker-body{height:calc(100vh - 330px);min-height:260px}.wedding-create .step-actions{padding:6px 0 2px}}@media(max-width:1024px){.wedding-create .page-header{height:44px;margin-top:8px;padding:0 16px;gap:12px}.wedding-create .create-container{padding:6px 16px 8px}.wedding-create .info-section{padding:12px 14px}.wedding-create .info-section .avatar-section{padding:4px 0}.wedding-create .info-section .avatar-container{gap:10px}.wedding-create .info-section .avatar-divider{gap:2px}.wedding-create .info-section .avatar-divider .ecg-line{width:30px;height:14px}.wedding-create .info-section .avatar-divider .heart-icon{font-size:16px}.wedding-create .info-section .avatar-item .avatar-label{font-size:13px}.wedding-create .info-section :global .ant-form-item{margin-bottom:8px}.wedding-create .info-section :global .ant-form-item-label>label{font-size:13px}.wedding-create .info-section :global .ant-input,.wedding-create .info-section :global .ant-picker{height:32px;font-size:13px}.wedding-create .route-section{padding:12px}.wedding-create .route-section .picker-body{height:calc(100vh - 350px);min-height:300px}.wedding-create .step-actions{padding:8px 0 2px}.wedding-create .step-actions :global .ant-btn-lg{height:36px;font-size:14px;padding:0 20px}}@media(max-width:768px){.wedding-create .page-header{height:40px;margin-top:4px;padding:0 12px;gap:8px}.wedding-create .page-header .back-btn{font-size:12px;padding:0 8px;height:28px}.wedding-create .wedding-steps :global .ant-steps-item-title{font-size:13px!important}.wedding-create .wedding-steps :global .ant-steps-item-icon{width:24px!important;height:24px!important;line-height:24px!important;font-size:12px!important}.wedding-create .create-container{padding:4px 12px 6px}.wedding-create .info-section{padding:10px 12px}.wedding-create .info-section .avatar-section{padding:2px 0}.wedding-create .info-section .avatar-container{gap:8px}.wedding-create .info-section .avatar-divider .ecg-line{width:24px;height:12px}.wedding-create .info-section .avatar-divider .heart-icon{font-size:14px}.wedding-create .info-section .avatar-item .avatar-label{font-size:12px}.wedding-create .info-section .form-row{flex-direction:column;gap:0}.wedding-create .info-section :global .ant-form-item{margin-bottom:6px}.wedding-create .info-section :global .ant-form-item-label>label{font-size:12px}.wedding-create .info-section :global .ant-input,.wedding-create .info-section :global .ant-picker{height:30px;font-size:12px}.wedding-create .info-section :global .ant-divider{margin:8px 0}.wedding-create .route-section{padding:10px}.wedding-create .route-section .picker-body{flex-direction:column;height:calc(100vh - 340px);min-height:400px}.wedding-create .route-section .picker-map{flex:2}.wedding-create .route-section .picker-points{flex:1;min-width:unset;max-width:unset;min-height:150px}.wedding-create .step-actions{padding:6px 0 2px}.wedding-create .step-actions :global .ant-btn-lg{height:34px;font-size:13px;padding:0 16px}}.template-gallery{height:100%;overflow-y:auto;overflow-x:hidden;padding:32px;background:linear-gradient(135deg,#667eea,#764ba2)}.template-gallery .gallery-header{margin-bottom:40px;text-align:center;animation:slideInDown .6s ease-out}.template-gallery .gallery-header h2{font-size:clamp(20px,2.8vw,42px);font-weight:800;background:linear-gradient(135deg,#fff,#f0f0f0,#fff,#e8e8e8,#fff,#f5f5f5);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 20px;letter-spacing:clamp(2px,.3vw,4px);animation:gentleShine 8s ease-in-out infinite;position:relative;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5)) drop-shadow(0 4px 16px rgba(255,255,255,.3));-webkit-user-select:none;user-select:none;cursor:default}.template-gallery .gallery-header h2:before{content:"大屏模板库";position:absolute;top:0;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#fff,#f0f0f0,#fff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:blur(12px);opacity:.4;z-index:-1}.template-gallery .gallery-header .gallery-subtitle{background:linear-gradient(90deg,gold,#ffed4e,#fff9c4,#ffed4e,gold);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:17px;font-weight:600;max-width:800px;margin:0 auto;line-height:1.6;filter:drop-shadow(0 0 8px rgba(255,215,0,.8)) drop-shadow(0 0 15px rgba(255,215,0,.6)) drop-shadow(0 0 25px rgba(255,215,0,.4));animation:goldGlow 2s ease-in-out infinite,goldShine 3s linear infinite;-webkit-user-select:none;user-select:none;cursor:default}.template-gallery .template-grid{max-width:1400px;margin:0 auto}.template-gallery .template-grid .template-card{border-radius:16px;overflow:hidden;cursor:pointer;border:1px solid rgba(0,0,0,.06);box-shadow:0 10px 24px #0000001f;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease!important;opacity:0;animation:cardFadeInUp .45s ease-out forwards;position:relative;height:100%}.template-gallery .template-grid .template-card:before{display:none}.template-gallery .template-grid .template-card .ant-card-body{padding:0}.template-gallery .template-grid .template-card:hover{transform:translateY(-6px) scale(1.02)!important;box-shadow:0 16px 36px #0000002e!important;border-color:#667eea8c!important}.template-gallery .template-grid .template-card:hover .preview-overlay{opacity:1}.template-gallery .template-grid .template-card:hover .preview-icon-wrapper{transform:scale(1.06)}.template-gallery .template-grid .template-card .template-preview{position:relative;width:100%;padding-top:56.25%;background:linear-gradient(135deg,#1a1a2e,#16213e);overflow:hidden;flex-shrink:0}.template-gallery .template-grid .template-card .template-preview .preview-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.template-gallery .template-grid .template-card .template-preview .preview-overlay{position:absolute;inset:0;background:linear-gradient(135deg,#667eeab3,#764ba2b3);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .22s ease,transform .22s ease;z-index:2}.template-gallery .template-grid .template-card .template-preview .preview-overlay .preview-icon-wrapper{width:90px;height:90px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center;margin-bottom:20px;transition:transform .3s ease;box-shadow:0 10px 30px #0000004d;border:4px solid rgba(255,255,255,.4)}.template-gallery .template-grid .template-card .template-preview .preview-overlay .preview-icon-wrapper .preview-icon{font-size:44px;color:#fff;filter:drop-shadow(0 3px 6px rgba(0,0,0,.3))}.template-gallery .template-grid .template-card .template-preview .preview-overlay .preview-text{color:#fff;font-size:20px;font-weight:700;text-shadow:0 3px 6px rgba(0,0,0,.3);letter-spacing:2px}.template-gallery .template-grid .template-card .template-info{padding:24px 20px;background:#fff;transition:all .4s ease;position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:center;min-height:120px}.template-gallery .template-grid .template-card .template-info .template-title{color:#1a1a1a;font-size:22px;font-weight:700;text-align:center;margin-bottom:12px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1px;-webkit-user-select:none;user-select:none;cursor:default}.template-gallery .template-grid .template-card .template-info .template-description{color:#595959;font-size:14px;text-align:center;line-height:1.7;font-weight:500;-webkit-user-select:none;user-select:none;cursor:default}@keyframes goldGlow{0%{filter:drop-shadow(0 0 4px rgba(255,215,0,.4)) drop-shadow(0 0 8px rgba(255,215,0,.2))}50%{filter:drop-shadow(0 0 15px #ffd700) drop-shadow(0 0 30px rgba(255,215,0,.8)) drop-shadow(0 0 50px rgba(255,215,0,.5)) drop-shadow(0 0 80px rgba(255,215,0,.3))}to{filter:drop-shadow(0 0 4px rgba(255,215,0,.4)) drop-shadow(0 0 8px rgba(255,215,0,.2))}}@keyframes gentleShine{0%,to{background-position:0% center;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5)) drop-shadow(0 4px 16px rgba(255,255,255,.3))}50%{background-position:100% center;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5)) drop-shadow(0 4px 20px rgba(255,255,255,.5)) drop-shadow(0 6px 30px rgba(255,255,255,.2))}}.guest-list{height:100%;overflow:hidden;padding:24px;display:flex;flex-direction:column;background:linear-gradient(135deg,#667eea,#764ba2)}.guest-list>:global(.ant-card){flex:1;min-height:0;display:flex;flex-direction:column;border-radius:16px;border:none;box-shadow:0 8px 32px #0000001f;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:cardFadeIn .4s ease-out}.guest-list>:global(.ant-card) :global(.ant-card-body){flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.guest-list .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-shrink:0}.guest-list .page-header h1{margin:0;font-size:24px;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1px;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;gap:8px}.guest-list .page-header h1 .title-icon{color:#faad14;-webkit-text-fill-color:#faad14;animation:iconBounce 2s ease-in-out infinite}.guest-list .page-header h1:after{content:"";position:absolute;bottom:-8px;left:0;width:100%;height:4px;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px}.guest-list .search-bar{margin-bottom:10px;padding:12px 16px;flex-shrink:0;background:linear-gradient(135deg,#fffffff2,#f8f9faf2);border-radius:12px;box-shadow:0 4px 16px #00000014;border:1px solid rgba(102,126,234,.1)}.guest-list .wedding-info-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;margin-bottom:8px;flex-shrink:0;background:linear-gradient(135deg,#fff1f0,#fff0f6);border-radius:10px;font-size:15px;font-weight:600;color:#cf1322}.guest-list .wedding-info-bar :global(.anticon){font-size:18px}.guest-list .tech-table-wrapper{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;animation:fadeInUp .4s ease-out}.guest-list .tech-table-wrapper :global .ant-table{background:transparent;border-radius:12px;overflow:hidden}.guest-list .tech-table-wrapper :global .ant-table-container{border-radius:12px;box-shadow:0 4px 16px #0000000f}.guest-list .tech-table-wrapper :global .ant-table-thead>tr>th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;border:none;padding:12px 16px}.guest-list .tech-table-wrapper :global .ant-table-thead>tr>th:before{display:none}.guest-list .tech-table-wrapper :global .ant-table-tbody>tr{background:#fff}.guest-list .tech-table-wrapper :global .ant-table-tbody>tr:hover{background:linear-gradient(90deg,#f0f4ff,#e8f0fe);transform:translate(4px);transition:background .3s ease,transform .3s ease}.guest-list .tech-table-wrapper :global .ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;padding:10px 16px}.guest-list .tech-table-wrapper :global .ant-table-tbody>tr:nth-child(2n){background:#667eea05}.guest-list .tech-table-wrapper .name-cell{font-weight:600;color:#1a1a1a}.guest-list .tech-table-wrapper .date-cell{color:#595959;font-family:Monaco,Courier New,monospace;font-size:13px}.guest-list .action-btn{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 10px;border-radius:6px;border:1px solid transparent;font-size:12px;font-weight:600;cursor:pointer;transition:all .3s ease}.guest-list .action-btn .anticon{margin-right:3px}.guest-list .action-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000026}.guest-list .view-btn{color:#fff;background:linear-gradient(135deg,#1890ff,#096dd9)}.guest-list .view-btn:hover{background:linear-gradient(135deg,#40a9ff,#1890ff)}.guest-list .delete-btn{color:#fff;background:linear-gradient(135deg,#ff4d4f,#cf1322)}.guest-list .delete-btn:hover{background:linear-gradient(135deg,#ff7875,#ff4d4f)}@keyframes cardFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes iconBounce{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.2) rotate(-10deg)}50%{transform:scale(1) rotate(0)}75%{transform:scale(1.15) rotate(10deg)}}@media screen and (max-width:1024px){.guest-list{padding:12px}.guest-list .page-header{margin-bottom:8px}.guest-list .page-header h1{font-size:20px}.guest-list .search-bar{padding:10px 12px;margin-bottom:8px}.guest-list .search-bar :global .ant-select{width:220px!important;font-size:13px}.guest-list .search-bar :global .ant-input{height:32px;font-size:13px;width:160px!important}.guest-list .wedding-info-bar{padding:6px 12px;font-size:13px;margin-bottom:6px}.guest-list .tech-table-wrapper :global .ant-table-thead>tr>th{padding:10px!important;font-size:12px!important}.guest-list .tech-table-wrapper :global .ant-table-tbody>tr>td{padding:8px 10px!important;font-size:13px}.guest-list .action-btn{font-size:12px;height:28px;padding:0 8px}}@media screen and (max-width:768px){.guest-list{padding:8px}.guest-list .page-header{margin-bottom:6px}.guest-list .page-header h1{font-size:18px}.guest-list .search-bar{padding:8px 10px;margin-bottom:6px}.guest-list .search-bar :global .ant-space{flex-wrap:wrap;gap:6px!important}.guest-list .search-bar :global .ant-select{width:100%!important;font-size:12px}.guest-list .search-bar :global .ant-input{height:30px;font-size:12px;width:100%!important}.guest-list .wedding-info-bar{padding:6px 10px;font-size:12px;margin-bottom:4px;gap:8px;flex-wrap:wrap}.guest-list .wedding-info-bar :global(.anticon){font-size:14px}.guest-list .tech-table-wrapper :global .ant-table-thead>tr>th{padding:8px 6px!important;font-size:11px!important}.guest-list .tech-table-wrapper :global .ant-table-tbody>tr>td{padding:6px!important;font-size:12px}.guest-list .tech-table-wrapper :global .ant-avatar{width:32px!important;height:32px!important}.guest-list .action-btn{font-size:11px;height:24px;padding:0 6px}}.game-template-gallery{height:100%;overflow-y:auto;overflow-x:hidden;padding:32px;background:linear-gradient(135deg,#667eea,#764ba2)}.game-template-gallery .gallery-header{margin-bottom:40px;text-align:center;animation:slideInDown .6s ease-out}.game-template-gallery .gallery-header h2{font-size:clamp(20px,2.8vw,42px);font-weight:800;background:linear-gradient(135deg,#fff,#f0f0f0,#fff,#e8e8e8,#fff,#f5f5f5);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 20px;letter-spacing:clamp(2px,.3vw,4px);animation:gentleShine 8s ease-in-out infinite;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5)) drop-shadow(0 4px 16px rgba(255,255,255,.3));-webkit-user-select:none;user-select:none;cursor:default}.game-template-gallery .gallery-header .gallery-subtitle{background:linear-gradient(90deg,gold,#ffed4e,#fff9c4,#ffed4e,gold);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 auto;font-size:17px;font-weight:600;max-width:800px;line-height:1.6;filter:drop-shadow(0 0 8px rgba(255,215,0,.8)) drop-shadow(0 0 15px rgba(255,215,0,.6));animation:goldGlow 2s ease-in-out infinite,goldShine 3s linear infinite;-webkit-user-select:none;user-select:none;cursor:default}.game-template-gallery .template-grid{max-width:1400px;margin:0 auto}.game-template-gallery .template-grid .template-card{border-radius:16px;overflow:hidden;border:1px solid rgba(0,0,0,.06);box-shadow:0 10px 24px #0000001f;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease!important;opacity:0;animation:cardFadeInUp .45s ease-out forwards;height:100%}.game-template-gallery .template-grid .template-card .ant-card-body{padding:0}.game-template-gallery .template-grid .template-card:hover{transform:translateY(-6px) scale(1.02)!important;box-shadow:0 16px 36px #0000002e!important;border-color:#667eea8c!important}.game-template-gallery .template-grid .template-card.playable{cursor:pointer}.game-template-gallery .template-grid .template-card.playable .template-preview:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#667eea4d,#764ba24d);opacity:0;transition:opacity .3s}.game-template-gallery .template-grid .template-card.playable:hover .template-preview:after{opacity:1}.game-template-gallery .template-grid .template-card .template-preview{position:relative;width:100%;padding-top:56.25%;overflow:hidden;display:flex;align-items:center;justify-content:center}.game-template-gallery .template-grid .template-card .template-preview .play-badge{position:absolute;top:12px;right:12px;padding:4px 12px;background:#ffd700e6;color:#1a1a1a;font-size:12px;font-weight:700;border-radius:12px;letter-spacing:1px;box-shadow:0 2px 8px #ffd70066;z-index:2}.game-template-gallery .template-grid .template-card .template-preview .preview-emoji{position:absolute;top:50%;left:50%;transform:translate(-50%,-65%);font-size:72px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3));animation:floatEmoji 3s ease-in-out infinite}.game-template-gallery .template-grid .template-card .template-preview .preview-name{position:absolute;bottom:16px;left:50%;transform:translate(-50%);color:#fff;font-size:20px;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.4);letter-spacing:2px}.game-template-gallery .template-grid .template-card .template-info{padding:24px 20px;background:#fff;min-height:140px;display:flex;flex-direction:column;justify-content:center}.game-template-gallery .template-grid .template-card .template-info .template-title{color:#1a1a1a;font-size:22px;font-weight:700;text-align:center;margin-bottom:12px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1px;-webkit-user-select:none;user-select:none}.game-template-gallery .template-grid .template-card .template-info .template-description{color:#595959;font-size:14px;text-align:center;line-height:1.7;font-weight:500;margin-bottom:14px;-webkit-user-select:none;user-select:none}.game-template-gallery .template-grid .template-card .template-info .template-tags{text-align:center}.game-template-gallery .template-grid .template-card .template-info .template-tags :global(.ant-tag){margin-bottom:4px;border-radius:10px;font-size:12px}@keyframes slideInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes cardFadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes floatEmoji{0%,to{transform:translate(-50%,-65%)}50%{transform:translate(-50%,-72%)}}@keyframes goldGlow{0%{filter:drop-shadow(0 0 4px rgba(255,215,0,.4)) drop-shadow(0 0 8px rgba(255,215,0,.2))}50%{filter:drop-shadow(0 0 15px #ffd700) drop-shadow(0 0 30px rgba(255,215,0,.8)) drop-shadow(0 0 50px rgba(255,215,0,.5))}to{filter:drop-shadow(0 0 4px rgba(255,215,0,.4)) drop-shadow(0 0 8px rgba(255,215,0,.2))}}@keyframes goldShine{0%{background-position:0% center}to{background-position:200% center}}@keyframes gentleShine{0%,to{background-position:0% center}50%{background-position:100% center}}.avatar-lottery{position:relative;width:100vw;height:100vh;overflow:hidden;background:linear-gradient(135deg,#1e1a3a,#2d1b69,#4a1a8a 60%,#6b21a8);display:flex;flex-direction:column;align-items:center}.avatar-lottery .bg-decor{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.avatar-lottery .circle{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35}.avatar-lottery .circle.c1{width:500px;height:500px;background:radial-gradient(circle,#667eea 0%,transparent 70%);top:-120px;left:-100px;animation:floatSlow 12s ease-in-out infinite}.avatar-lottery .circle.c2{width:400px;height:400px;background:radial-gradient(circle,#ff6b9d 0%,transparent 70%);bottom:-80px;right:-60px;animation:floatSlow 15s ease-in-out infinite reverse}.avatar-lottery .circle.c3{width:300px;height:300px;background:radial-gradient(circle,#ffd700 0%,transparent 70%);top:40%;left:60%;opacity:.2;animation:floatSlow 10s ease-in-out infinite 2s}.avatar-lottery .heart{position:absolute;font-size:28px;opacity:.15;animation:heartFloat 8s ease-in-out infinite}.avatar-lottery .heart.h1{top:12%;left:8%;animation-delay:0s;font-size:36px}.avatar-lottery .heart.h2{top:25%;right:10%;animation-delay:2s;font-size:24px}.avatar-lottery .heart.h3{bottom:18%;left:15%;animation-delay:4s;font-size:30px}.avatar-lottery .heart.h4{bottom:30%;right:6%;animation-delay:1s;font-size:20px}.avatar-lottery .sparkle{position:absolute;font-size:18px;opacity:0;animation:sparkleBlink 3s ease-in-out infinite}.avatar-lottery .sparkle.s1{top:8%;left:25%;animation-delay:0s}.avatar-lottery .sparkle.s2{top:15%;right:20%;animation-delay:.8s}.avatar-lottery .sparkle.s3{bottom:25%;left:30%;animation-delay:1.6s;font-size:22px}.avatar-lottery .sparkle.s4{top:50%;left:5%;animation-delay:2.4s}.avatar-lottery .sparkle.s5{bottom:12%;right:25%;animation-delay:.4s;font-size:20px}.avatar-lottery .ring{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.06)}.avatar-lottery .ring.r1{width:600px;height:600px;top:50%;left:50%;transform:translate(-50%,-50%);animation:ringRotate 30s linear infinite}.avatar-lottery .ring.r2{width:750px;height:750px;top:50%;left:50%;transform:translate(-50%,-50%);border-style:dashed;border-color:#ffffff0a;animation:ringRotate 45s linear infinite reverse}.avatar-lottery .top-bar{position:relative;z-index:10;margin-top:24px;display:flex;flex-direction:column;align-items:center;gap:12px}.avatar-lottery .top-bar .title-row{display:flex;align-items:center;gap:20px}.avatar-lottery .top-bar .title-row .game-title{font-size:28px;font-weight:800;color:#fff;letter-spacing:3px;text-shadow:0 2px 12px rgba(102,126,234,.5)}.avatar-lottery .top-bar .title-row .wedding-label{padding:6px 18px;background:#ffffff1f;border-radius:20px;color:#ffffffd9;font-size:15px;font-weight:600;border:1px solid rgba(255,255,255,.15)}.avatar-lottery .top-bar .control-row{display:flex;align-items:center;gap:14px;padding:8px 20px;background:#ffffff14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:30px;border:1px solid rgba(255,255,255,.12)}.avatar-lottery .top-bar .control-row .guest-count{color:#ffffffbf;font-size:13px;font-weight:500;white-space:nowrap}.avatar-lottery .top-bar .control-row .guest-count .guest-count-num{display:inline-block;font-size:22px;font-weight:800;color:gold;min-width:28px;text-align:center;text-shadow:0 0 12px rgba(255,215,0,.5);transition:transform .3s ease;animation:countPulse .4s ease}.avatar-lottery .top-bar .control-row .demo-badge{padding:3px 12px;background:#ff6b6b40;border:1px solid rgba(255,107,107,.4);border-radius:12px;color:#ff6b6b;font-size:12px;font-weight:600}.avatar-lottery .sphere-area{position:relative;flex:1;display:flex;align-items:center;justify-content:center;width:100%;min-height:0;z-index:1}.avatar-lottery .winner-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:20;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlayFadeIn .3s ease-out}.avatar-lottery .winner-card{display:flex;flex-direction:column;align-items:center;padding:40px 56px 36px;background:#fffffff5;border-radius:28px;box-shadow:0 24px 80px #0000004d,0 0 100px #ffd70026,inset 0 1px #fffc;animation:winnerFlyIn .6s cubic-bezier(.34,1.56,.64,1)}.avatar-lottery .winner-card .winner-avatar-ring{width:130px;height:130px;border-radius:50%;padding:4px;background:conic-gradient(gold,#ff6b6b,#764ba2,#667eea,gold);box-shadow:0 0 40px #ffd70059;animation:ringPulse 2s ease-in-out infinite,ringSpin 4s linear infinite}.avatar-lottery .winner-card .winner-avatar-ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;border:3px solid #fff}.avatar-lottery .winner-card .winner-trophy{margin-top:18px;font-size:36px;color:gold;filter:drop-shadow(0 2px 8px rgba(255,215,0,.5));animation:trophyBounce 1s ease-in-out infinite}.avatar-lottery .winner-card .winner-label{margin-top:10px;font-size:17px;font-weight:600;color:#999;letter-spacing:4px}.avatar-lottery .winner-card .winner-name{margin-top:8px;font-size:32px;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:2px}.avatar-lottery .action-bar{position:relative;z-index:10;margin-bottom:32px;display:flex;gap:16px}.avatar-lottery .action-bar .draw-btn{height:56px;padding:0 48px;border-radius:28px;font-size:20px;font-weight:700;background:linear-gradient(135deg,#ff6b6b,#ee5a24);border:none;box-shadow:0 4px 24px #ff6b6b73,0 0 40px #ff6b6b26;letter-spacing:3px;transition:all .3s ease}.avatar-lottery .action-bar .draw-btn:hover:not(:disabled){transform:translateY(-3px) scale(1.02);box-shadow:0 8px 36px #ff6b6b8c,0 0 60px #ff6b6b33}.avatar-lottery .action-bar .draw-btn:disabled{opacity:.65;cursor:not-allowed}.avatar-lottery .action-bar .reset-btn{height:56px;padding:0 32px;border-radius:28px;font-size:16px;font-weight:600;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#ffffffd9;transition:all .3s ease}.avatar-lottery .action-bar .reset-btn:hover{background:#fff3;border-color:#fff6;color:#fff}@keyframes floatSlow{0%,to{transform:translate(0)}33%{transform:translate(30px,-20px)}66%{transform:translate(-20px,15px)}}@keyframes heartFloat{0%,to{transform:translateY(0) rotate(0);opacity:.15}50%{transform:translateY(-20px) rotate(10deg);opacity:.25}}@keyframes sparkleBlink{0%,to{opacity:0;transform:scale(.6)}50%{opacity:.5;transform:scale(1.1)}}@keyframes ringRotate{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes winnerFlyIn{0%{opacity:0;transform:scale(.2) translateY(80px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes ringPulse{0%,to{box-shadow:0 0 20px #ffd7004d}50%{box-shadow:0 0 40px #ffd70099,0 0 80px #ffd70033}}@keyframes ringSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes trophyBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes countPulse{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.settings-loading{display:flex;justify-content:center;align-items:center;height:400px}.settings-page{padding:32px 24px;min-height:100%;animation:fadeSlideUp .5s ease-out}.settings-page .settings-container{max-width:640px;margin:0 auto}.settings-page .settings-section{background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;padding:32px;box-shadow:0 4px 24px #667eea14,0 1px 4px #0000000a;border:1px solid rgba(255,255,255,.6);animation:fadeSlideUp .5s ease-out}.settings-page .section-header{display:flex;align-items:center;gap:14px;margin-bottom:28px}.settings-page .section-header .section-icon{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;flex-shrink:0;box-shadow:0 4px 12px #667eea4d}.settings-page .section-header h3{margin:0;font-size:18px;font-weight:600;color:#1a1a2e}.settings-page .section-header p{margin:2px 0 0;font-size:13px;color:#999}.settings-page .section-header-inner{margin-top:12px;padding-top:24px;border-top:1px solid rgba(102,126,234,.1)}.settings-page .logo-area{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding:16px;background:#667eea0a;border-radius:14px;border:1px dashed rgba(102,126,234,.2);transition:all .3s ease}.settings-page .logo-area:hover{border-color:#667eea66;background:#667eea0f}.settings-page .logo-area .logo-hint{font-size:13px;color:#999}.settings-page .settings-form .field-icon{color:#bbb;font-size:15px}.settings-page .settings-form :global .ant-form-item-label>label{font-weight:500;color:#555}.settings-page .settings-form :global .ant-input-affix-wrapper,.settings-page .settings-form :global .ant-input{border-radius:10px;border-color:#e8e8ef;transition:all .3s ease}.settings-page .settings-form :global .ant-input-affix-wrapper:hover,.settings-page .settings-form :global .ant-input:hover{border-color:#667eea}.settings-page .settings-form :global .ant-input-affix-wrapper:focus,.settings-page .settings-form :global .ant-input:focus,.settings-page .settings-form :global .ant-input-affix-wrapper-focused,.settings-page .settings-form :global .ant-input-focused{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.settings-page .settings-form :global .ant-input-affix-wrapper-lg{padding:8px 14px}.settings-page .password-toggle{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;margin:20px 0 16px;background:#667eea0a;border-radius:12px;border:1px solid rgba(102,126,234,.1);transition:all .3s ease}.settings-page .password-toggle:hover{background:#667eea12}.settings-page .password-toggle .toggle-left{display:flex;align-items:center;gap:10px;font-weight:500;color:#555;font-size:14px}.settings-page .password-toggle .toggle-icon{color:#667eea;font-size:16px}.settings-page .password-fields{max-height:0;overflow:hidden;opacity:0;transition:all .4s cubic-bezier(.4,0,.2,1);transform:translateY(-8px)}.settings-page .password-fields.expanded{max-height:400px;opacity:1;transform:translateY(0);padding-top:4px}.settings-page .save-area{margin-top:28px;margin-bottom:0}.settings-page .save-area .save-btn{width:100%;height:48px;border-radius:12px;font-size:16px;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 4px 16px #667eea59;transition:all .3s ease}.settings-page .save-area .save-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px #667eea73}.settings-page .save-area .save-btn:active{transform:translateY(0)}.superadmin-layout{height:100vh;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2)}.superadmin-layout :global(.ant-layout-sider){background:transparent!important;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border-right:1px solid rgba(255,255,255,.1);user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.superadmin-layout :global(.ant-layout-sider) *{user-select:none!important;-webkit-user-select:none!important}.superadmin-layout :global(.ant-layout-sider).tech-sider{position:relative;background:transparent!important}.superadmin-layout :global(.ant-layout-sider).tech-sider:before{display:none}.superadmin-layout :global(.ant-layout-sider) .ant-layout-sider-children{background:transparent!important}.superadmin-layout :global(.ant-layout-sider) .ant-layout-sider-trigger{background:#667eea4d!important;color:#fff;border-top:1px solid rgba(255,255,255,.15);transition:all .3s ease;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.superadmin-layout :global(.ant-layout-sider) .ant-layout-sider-trigger:hover{background:#667eea80!important}.superadmin-layout :global(.ant-layout-sider).ant-layout-sider-dark{background:transparent!important}.superadmin-layout :global(.ant-layout-sider).ant-layout-sider-dark .ant-layout-sider-children{background:transparent!important}.superadmin-layout .logo{scale:1.25;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:16px;padding:20px;border-bottom:1px solid rgba(255,255,255,.1);position:relative;background:transparent}.superadmin-layout .logo:after{display:none}.superadmin-layout .logo .logo-icon{width:168px;height:68px;display:flex;align-items:center;justify-content:center;border-radius:12px;overflow:hidden}.superadmin-layout .logo .logo-icon img{width:100%;height:100%;object-fit:cover}.superadmin-layout .logo .logo-icon .anticon{font-size:28px;color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.superadmin-layout .logo .logo-text{display:flex;flex-direction:column;gap:2px}.superadmin-layout .logo .logo-text .logo-title{font-size:16px;font-weight:700;color:#fff;letter-spacing:1px;text-shadow:0 2px 8px rgba(0,0,0,.2)}.superadmin-layout .logo .logo-text .logo-subtitle{font-size:11px;font-weight:500;color:#fffc;letter-spacing:.5px}.superadmin-layout :global .tech-menu{background:transparent!important;border:none;padding:12px 8px;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;caret-color:transparent!important}.superadmin-layout :global .tech-menu *{user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;caret-color:transparent!important}.superadmin-layout :global .tech-menu.ant-menu-dark{background:transparent!important}.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item{color:#fff!important}.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected){color:#fff!important}.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected) .ant-menu-title-content{color:#fff!important}.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected) .anticon{color:#fff!important}.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover{background:#ffffff2e!important;color:#fff!important}.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover .ant-menu-title-content,.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover span,.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover .anticon{color:#fff!important}.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:hover{background:#ffffff2e!important;color:#fff!important}.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:hover .ant-menu-title-content,.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:hover span,.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:hover .anticon{color:#fff!important}.superadmin-layout :global .tech-menu .ant-menu-item{margin:6px 0;border-radius:12px;height:48px;line-height:48px;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:600;font-size:15px;color:#fff!important;position:relative;overflow:hidden;background:transparent!important;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.superadmin-layout :global .tech-menu .ant-menu-item .ant-menu-title-content{color:#fff!important;font-weight:600;user-select:none;-webkit-user-select:none;cursor:pointer}.superadmin-layout :global .tech-menu .ant-menu-item span{color:#fff!important;user-select:none;-webkit-user-select:none}.superadmin-layout :global .tech-menu .ant-menu-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#fff;opacity:0;transition:opacity .3s ease}.superadmin-layout :global .tech-menu .ant-menu-item:hover{background:#ffffff2e!important;color:#fff!important;transform:translate(4px);box-shadow:0 2px 8px #0000001f;cursor:pointer}.superadmin-layout :global .tech-menu .ant-menu-item:hover .ant-menu-title-content{color:#fff!important}.superadmin-layout :global .tech-menu .ant-menu-item:hover span{color:#fff!important}.superadmin-layout :global .tech-menu .ant-menu-item:hover .anticon{color:#fff!important}.superadmin-layout :global .tech-menu .ant-menu-item:hover:before{opacity:1}.superadmin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected{background:#fff!important;color:#667eea!important;font-weight:700;box-shadow:0 2px 12px #00000026;cursor:pointer}.superadmin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected .ant-menu-title-content{color:#667eea!important;font-weight:700}.superadmin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected span{color:#667eea!important}.superadmin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected .anticon{color:#667eea!important}.superadmin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected:before{opacity:1;background:#667eea}.superadmin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected:after{display:none}.superadmin-layout :global .tech-menu .ant-menu-item:active{outline:none;background:#ffffff59!important}.superadmin-layout :global .tech-menu .ant-menu-item:focus{outline:none}.superadmin-layout :global .tech-menu .ant-menu-item .anticon{font-size:22px;transition:all .3s ease;margin-right:12px;color:#fff!important;user-select:none;-webkit-user-select:none}.superadmin-layout :global .tech-menu .ant-menu-item:hover .anticon,.superadmin-layout :global .tech-menu .ant-menu-item.ant-menu-item-selected .anticon{transform:scale(1.15)}.superadmin-layout :global .tech-menu.ant-menu-dark .ant-menu-item:hover:not(.ant-menu-item-selected){background:#ffffff2e!important;color:#fff!important}.superadmin-layout :global .tech-menu .ant-menu-item:hover:not(.ant-menu-item-selected){background:#ffffff2e!important;color:#fff!important}.superadmin-layout .superadmin-header{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:0 32px;height:64px;line-height:64px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000001a;z-index:10;border-bottom:1px solid rgba(255,255,255,.15);position:relative}.superadmin-layout .superadmin-header:before{display:none}.superadmin-layout .superadmin-header .header-left h2{margin:0;font-size:20px;font-weight:600;color:#fff;letter-spacing:.5px;text-shadow:0 2px 8px rgba(0,0,0,.2)}.superadmin-layout .superadmin-header .header-right{display:flex;align-items:center;height:100%}.superadmin-layout .superadmin-header .header-right .user-info{display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;height:44px;padding:0 16px;box-sizing:border-box;border-radius:22px;line-height:1;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid transparent;background:#ffffff1a}.superadmin-layout .superadmin-header .header-right .user-info:hover{background:#fff3;border-color:#ffffff47;transform:translateY(-1px)}.superadmin-layout .superadmin-header .header-right .user-info .ant-avatar{flex-shrink:0;background:#ffffff40;color:#fff;border:1px solid rgba(255,255,255,.3)}.superadmin-layout .superadmin-header .header-right .user-info .username{font-size:14px;line-height:1;font-weight:600;color:#fff}.superadmin-layout .superadmin-content{margin:0;padding:0;background:transparent;border-radius:0;overflow:hidden;height:calc(100vh - 64px);display:flex;flex-direction:column}.superadmin-layout .superadmin-content .content-wrapper{padding:0;flex:1;min-height:0;overflow:auto;background:transparent}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(2deg)}}:global .ant-dropdown .ant-dropdown-menu{background:#fffffff2;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border-radius:12px;box-shadow:0 8px 32px #00000026;padding:8px;border:1px solid rgba(255,255,255,.3)}:global .ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item{border-radius:8px;padding:10px 16px;transition:all .3s ease;color:#667eea}:global .ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item:hover{background:#667eea1a;color:#667eea}:global .ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-danger{color:#ff4d4f}:global .ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover{background:#ff4d4f1a}:global .ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item .anticon{color:inherit}:global .ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-divider{background:linear-gradient(90deg,transparent 0%,rgba(102,126,234,.2) 50%,transparent 100%)}.superadmin-dashboard{height:100%;overflow-y:auto;overflow-x:hidden;padding:24px;background:linear-gradient(135deg,#667eea,#764ba2)}.superadmin-dashboard h1{margin-bottom:32px;font-size:36px;font-weight:700;color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.2);letter-spacing:1px;animation:fadeInDown .6s ease-out;display:flex;align-items:center;gap:12px;-webkit-user-select:none;user-select:none;cursor:default}.superadmin-dashboard .ant-row{animation:fadeInUp .8s ease-out}.superadmin-dashboard .stat-card{position:relative;overflow:hidden;animation:fadeInUp .8s ease-out both;background:#fffffffa!important;border:1px solid rgba(102,126,234,.2)}.superadmin-dashboard .stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2);opacity:0;transition:opacity .3s ease}.superadmin-dashboard .stat-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 16px 48px #667eea40;border-color:#667eea66}.superadmin-dashboard .stat-card:hover:before{opacity:1}.superadmin-dashboard .stat-card:hover .card-decoration{opacity:.15;transform:scale(1.2) rotate(10deg)}.superadmin-dashboard .stat-card .card-decoration{position:absolute;top:-50%;right:-20%;width:200px;height:200px;border-radius:50%;opacity:.08;transition:all .6s cubic-bezier(.4,0,.2,1);pointer-events:none}.superadmin-dashboard :global .ant-card{border-radius:16px;overflow:hidden;border:none;box-shadow:0 8px 24px #0000001f;transition:all .4s cubic-bezier(.4,0,.2,1);background:#fffffffa;position:relative}.superadmin-dashboard :global .ant-card .ant-card-body{padding:24px;position:relative;z-index:1}.superadmin-dashboard :global .ant-statistic .ant-statistic-title{font-size:14px;color:#595959;font-weight:500;margin-bottom:12px;letter-spacing:.5px;text-transform:uppercase;-webkit-user-select:none;user-select:none;cursor:default}.superadmin-dashboard :global .ant-statistic .ant-statistic-content{font-size:36px;font-weight:700;-webkit-user-select:none;user-select:none;cursor:default}.superadmin-dashboard :global .ant-statistic .ant-statistic-content .ant-statistic-content-value{animation:pulse 2s ease-in-out infinite}.superadmin-dashboard :global .ant-statistic .ant-statistic-content .anticon{margin-right:12px;font-size:32px;animation:float 3s ease-in-out infinite}.superadmin-dashboard :global .ant-card-head{background:linear-gradient(135deg,#667eea,#764ba2);border:none;padding:20px 24px}.superadmin-dashboard :global .ant-card-head .ant-card-head-title{color:#fff;font-size:20px;font-weight:600;letter-spacing:.5px;display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none;cursor:default}@media screen and (max-width:1600px){.superadmin-dashboard{padding:20px}.superadmin-dashboard h1{font-size:32px}}@media screen and (max-width:1366px){.superadmin-dashboard{padding:16px}.superadmin-dashboard h1{font-size:28px}.superadmin-dashboard :global .ant-statistic-content{font-size:30px!important}}@media screen and (max-width:1280px){.superadmin-dashboard{padding:12px}.superadmin-dashboard h1{font-size:24px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.company-list{height:100%;overflow-y:auto;overflow-x:hidden;padding:24px;background:linear-gradient(135deg,#667eea,#764ba2);animation:fadeIn .6s ease-out}.company-list>:global(.ant-card){border-radius:16px;border:none;box-shadow:0 8px 32px #0000001f;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.company-list .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;animation:slideInLeft .6s ease-out}.company-list .page-header h1{margin:0;font-size:28px;font-weight:700;color:#1a1a1a;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1px;position:relative;-webkit-user-select:none;user-select:none;cursor:default;display:inline-block}.company-list .page-header h1:after{content:"";position:absolute;bottom:-8px;left:0;width:100%;height:4px;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px}.company-list .page-header :global(.ant-btn-primary){height:40px;padding:0 24px;border-radius:20px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;font-weight:600;box-shadow:0 4px 12px #667eea66;transition:all .3s cubic-bezier(.4,0,.2,1)}.company-list .page-header :global(.ant-btn-primary):hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.company-list .search-bar{margin-bottom:20px;padding:20px;background:linear-gradient(135deg,#fffffff2,#f8f9faf2);border-radius:12px;box-shadow:0 4px 16px #00000014;border:1px solid rgba(102,126,234,.1);animation:slideInRight .6s ease-out}.company-list .search-bar :global .ant-input{border-radius:8px;border:1px solid #e0e0e0;transition:all .3s ease}.company-list .search-bar :global .ant-input:hover,.company-list .search-bar :global .ant-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.company-list .search-bar :global .ant-btn{border-radius:8px;height:36px;font-weight:500;transition:all .3s ease}.company-list .search-bar :global .ant-btn.ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 2px 8px #667eea4d}.company-list .search-bar :global .ant-btn.ant-btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}@media screen and (max-width:1600px){.company-list{padding:20px}.company-list .page-header h1{font-size:26px}}@media screen and (max-width:1366px){.company-list{padding:16px}.company-list .page-header h1{font-size:24px}.company-list .search-bar{padding:16px}}@media screen and (max-width:1280px){.company-list{padding:12px}.company-list .page-header h1{font-size:22px}}.superadmin-wedding-list{height:100%;overflow-y:auto;overflow-x:hidden;padding:24px;background:linear-gradient(135deg,#667eea,#764ba2);animation:fadeIn .6s ease-out}.superadmin-wedding-list>:global(.ant-card){border-radius:16px;border:none;box-shadow:0 8px 32px #0000001f;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.superadmin-wedding-list .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;animation:slideInLeft .6s ease-out}.superadmin-wedding-list .page-header h1{margin:0;font-size:28px;font-weight:700;color:#1a1a1a;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1px;position:relative;-webkit-user-select:none;user-select:none;cursor:default;display:inline-block}.superadmin-wedding-list .page-header h1:after{content:"";position:absolute;bottom:-8px;left:0;width:100%;height:4px;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px}.superadmin-wedding-list .search-bar{margin-bottom:20px;padding:20px;background:linear-gradient(135deg,#fffffff2,#f8f9faf2);border-radius:12px;box-shadow:0 4px 16px #00000014;border:1px solid rgba(102,126,234,.1);animation:slideInRight .6s ease-out}.superadmin-wedding-list .search-bar :global .ant-input{border-radius:8px;border:1px solid #e0e0e0;transition:all .3s ease}.superadmin-wedding-list .search-bar :global .ant-input:hover,.superadmin-wedding-list .search-bar :global .ant-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.superadmin-wedding-list .search-bar :global .ant-select .ant-select-selector{border-radius:8px;border:1px solid #e0e0e0;transition:all .3s ease}.superadmin-wedding-list .search-bar :global .ant-select:hover .ant-select-selector,.superadmin-wedding-list .search-bar :global .ant-select.ant-select-focused .ant-select-selector{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.superadmin-wedding-list .search-bar :global .ant-picker{border-radius:8px;border:1px solid #e0e0e0;transition:all .3s ease}.superadmin-wedding-list .search-bar :global .ant-picker:hover,.superadmin-wedding-list .search-bar :global .ant-picker.ant-picker-focused{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.superadmin-wedding-list .search-bar :global .ant-btn{border-radius:8px;height:36px;font-weight:500;transition:all .3s ease}.superadmin-wedding-list .search-bar :global .ant-btn.ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 2px 8px #667eea4d}.superadmin-wedding-list .search-bar :global .ant-btn.ant-btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.superadmin-wedding-list .tech-table-wrapper{position:relative;animation:fadeInUp .8s ease-out}.superadmin-wedding-list .tech-table-wrapper :global .ant-table{background:transparent}.superadmin-wedding-list .tech-table-wrapper :global .ant-table .ant-table-thead>tr>th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;border:none;padding:18px 16px;font-size:14px;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.1)}.superadmin-wedding-list .tech-table-wrapper :global .ant-table .ant-table-thead>tr>th:before{display:none}.superadmin-wedding-list .tech-table-wrapper :global .ant-table .ant-table-tbody>tr{transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff}.superadmin-wedding-list .tech-table-wrapper :global .ant-table .ant-table-tbody>tr:hover{background:linear-gradient(90deg,#f0f4ff,#e8f0fe);transform:translate(4px);box-shadow:-4px 0 12px #667eea26}.superadmin-wedding-list .tech-table-wrapper :global .ant-table .ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;padding:16px}.superadmin-wedding-list .tech-table-wrapper :global .ant-table .ant-table-tbody>tr:nth-child(2n){background:#667eea05}.superadmin-wedding-list .tech-table-wrapper .name-cell{font-weight:600;color:#1a1a1a;font-size:14px}.superadmin-wedding-list .tech-table-wrapper .couple-cell{display:flex;align-items:center;justify-content:center;gap:12px}.superadmin-wedding-list .tech-table-wrapper .couple-cell .person-info{display:flex;flex-direction:column;align-items:center;gap:4px}.superadmin-wedding-list .tech-table-wrapper .couple-cell .person-info .person-name{font-size:13px;font-weight:600;color:#1a1a1a;white-space:nowrap}.superadmin-wedding-list .tech-table-wrapper .couple-cell .avatar-groom{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff;box-shadow:0 2px 8px #4facfe66}.superadmin-wedding-list .tech-table-wrapper .couple-cell .avatar-bride{background:linear-gradient(135deg,#ff6b9d,#ff4d4f);color:#fff;box-shadow:0 2px 8px #ff6b9d66}.superadmin-wedding-list .tech-table-wrapper .couple-cell .couple-heart{color:#ff4d4f;font-size:16px;animation:heartbeat 1.5s ease-in-out infinite;margin-top:-10px}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.superadmin-wedding-list .tech-table-wrapper .date-cell{color:#595959;font-family:Monaco,Courier New,monospace;font-size:13px;font-weight:500}.superadmin-wedding-list .tech-table-wrapper .status-tag{border-radius:16px;padding:5px 16px;font-weight:600;border:none;box-shadow:0 2px 8px #0000001a;font-size:14px}.superadmin-wedding-list .tech-table-wrapper .status-tag .anticon{margin-right:4px}.superadmin-wedding-list .tech-table-wrapper .status-active{animation:pulse-glow 2s ease-in-out infinite}.superadmin-wedding-list .tech-table-wrapper .status-active .bars-icon{display:inline-flex;align-items:flex-end;gap:2px;height:14px;margin-right:6px;vertical-align:middle}.superadmin-wedding-list .tech-table-wrapper .status-active .bars-icon i{display:block;width:3px;border-radius:1.5px;background:currentColor;animation:bar-bounce 1s ease-in-out infinite}.superadmin-wedding-list .tech-table-wrapper .status-active .bars-icon i:nth-child(1){height:40%;animation-delay:0s}.superadmin-wedding-list .tech-table-wrapper .status-active .bars-icon i:nth-child(2){height:70%;animation-delay:.15s}.superadmin-wedding-list .tech-table-wrapper .status-active .bars-icon i:nth-child(3){height:50%;animation-delay:.3s}.superadmin-wedding-list .tech-table-wrapper .status-completed .anticon{animation:pop-in .5s cubic-bezier(.175,.885,.32,1.275)}@media screen and (max-width:1600px){.superadmin-wedding-list{padding:20px}.superadmin-wedding-list .page-header h1{font-size:26px}}@media screen and (max-width:1366px){.superadmin-wedding-list{padding:16px}.superadmin-wedding-list .page-header h1{font-size:24px}.superadmin-wedding-list .search-bar{padding:16px}}@media screen and (max-width:1280px){.superadmin-wedding-list{padding:12px}.superadmin-wedding-list .page-header h1{font-size:22px}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px #1677ff4d}50%{box-shadow:0 0 12px #1677ff99}}@keyframes bar-bounce{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}@keyframes pop-in{0%{transform:scale(0);opacity:0}60%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}.stats-page{height:100%;overflow-y:auto;overflow-x:hidden;padding:24px;background:linear-gradient(135deg,#1a1a2e,#16213e);animation:fadeIn .6s ease-out}.stats-page h1{margin-bottom:32px;font-size:36px;font-weight:700;color:gold;text-shadow:0 4px 12px rgba(255,215,0,.3);letter-spacing:1px;animation:fadeInDown .6s ease-out;display:flex;align-items:center;gap:12px}.stats-page :global .ant-card{background:#1a1a2ecc;border:1px solid rgba(255,215,0,.2);box-shadow:0 8px 24px #0000004d}.stats-page :global .ant-card .ant-card-head{background:linear-gradient(135deg,gold,#ffed4e)}.stats-page :global .ant-card .ant-card-head .ant-card-head-title{color:#1a1a2e}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.home-page{min-height:100vh;background:#fff;overflow-x:hidden;cursor:default;-webkit-user-select:none;user-select:none}.home-page .home-header{position:fixed;top:0;left:0;right:0;height:70px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #0000000f;z-index:1000}.home-page .home-header .header-content{max-width:1200px;margin:0 auto;height:100%;padding:0 24px;display:flex;justify-content:space-between;align-items:center}.home-page .home-header .logo{display:flex;align-items:center;gap:12px;margin-left:-60px;margin-top:10px;font-size:20px;font-weight:600;color:#262626}.home-page .home-header .logo .logo-image{height:180px;width:auto;object-fit:contain}.home-page .home-header .logo .logo-icon{font-size:28px;color:#ff4d4f}.home-page .home-header .header-actions{display:flex;gap:12px}.home-page .home-header .header-btn{font-size:15px;height:38px;padding:0 20px;cursor:pointer}.home-page .home-header .header-btn:hover{color:#ff4d4f}.home-page .home-header .header-btn-primary{height:38px;padding:0 24px;font-size:15px;background:linear-gradient(135deg,#ff6b9d,#ff4d4f);border:none;box-shadow:0 4px 12px #ff4d4f4d;cursor:pointer}.home-page .home-header .header-btn-primary:hover{background:linear-gradient(135deg,#ff4d4f,#cf1322);transform:translateY(-2px);box-shadow:0 6px 16px #ff4d4f66}.home-page .hero-section{padding:140px 0 100px;background:linear-gradient(135deg,#ffeef0,#fff5f7,#fff);position:relative;overflow:hidden}.home-page .hero-section:before{content:"";position:absolute;top:-50%;right:-10%;width:600px;height:600px;background:radial-gradient(circle,rgba(255,77,79,.1) 0%,transparent 70%);border-radius:50%}.home-page .hero-section .hero-content{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:80px;position:relative;z-index:1}.home-page .hero-section .hero-text{flex:1}.home-page .hero-section .hero-title{font-size:52px;font-weight:700;line-height:1.3;margin-bottom:24px;color:#262626}.home-page .hero-section .hero-title .highlight{background:linear-gradient(135deg,#ff6b9d,#ff4d4f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-page .hero-section .hero-subtitle{font-size:20px;line-height:1.8;color:#595959;margin-bottom:32px}.home-page .hero-section .hero-features{display:flex;gap:24px;margin-bottom:40px;flex-wrap:wrap}.home-page .hero-section .hero-features .hero-feature-item{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#ff4d4f1a;border-radius:24px;border:1px solid rgba(255,77,79,.2)}.home-page .hero-section .hero-features .hero-feature-item .feature-icon{font-size:20px;color:#ff4d4f}.home-page .hero-section .hero-features .hero-feature-item span{font-size:15px;font-weight:500;color:#262626}.home-page .hero-section .hero-buttons{display:flex;gap:16px}.home-page .hero-section .cta-button{height:50px;padding:0 40px;font-size:18px;background:linear-gradient(135deg,#ff6b9d,#ff4d4f);border:none;box-shadow:0 8px 20px #ff4d4f4d;cursor:pointer}.home-page .hero-section .cta-button:hover{background:linear-gradient(135deg,#ff4d4f,#cf1322);transform:translateY(-3px);box-shadow:0 12px 28px #ff4d4f66}.home-page .hero-section .learn-more-button{height:50px;padding:0 40px;font-size:18px;border:2px solid #ff4d4f;color:#ff4d4f;cursor:pointer}.home-page .hero-section .learn-more-button:hover{background:#ff4d4f;color:#fff;transform:translateY(-3px);box-shadow:0 8px 20px #ff4d4f4d}.home-page .hero-section .hero-image{flex:1;display:flex;justify-content:center;align-items:center;gap:20px;flex-wrap:wrap}.home-page .hero-section .hero-card{width:240px;height:240px;background:linear-gradient(135deg,#fff,#fff5f7);border-radius:20px;box-shadow:0 20px 60px #ff4d4f33;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;transition:all .3s ease}.home-page .hero-section .hero-card:hover{transform:translateY(-10px);box-shadow:0 30px 80px #ff4d4f4d}.home-page .hero-section .hero-card .hero-card-icon{font-size:80px;color:#ff4d4f}.home-page .hero-section .hero-card p{font-size:18px;font-weight:500;color:#262626;margin:0}.home-page .hero-section .hero-card-1{animation:float 3s ease-in-out infinite}.home-page .hero-section .hero-card-2{animation:float 3s ease-in-out infinite 1.5s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.home-page .wechat-login-divider{text-align:center;margin:16px 0;position:relative}.home-page .wechat-login-divider:before{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:#f0f0f0}.home-page .wechat-login-divider span{position:relative;background:#fff;padding:0 16px;color:#8c8c8c;font-size:13px}.home-page .wechat-login-btn{background:#07c160!important;border-color:#07c160!important;color:#fff!important;border-radius:8px;font-weight:500}.home-page .wechat-login-btn:hover{background:#06ad56!important;border-color:#06ad56!important;color:#fff!important}.home-page .wechat-qr-container{text-align:center;padding:24px 0}.home-page .wechat-qr-container .wechat-qr-iframe{width:300px;height:340px;border:none;border-radius:8px}.home-page .wechat-qr-container .wechat-qr-tip{margin-top:16px;color:#595959;font-size:14px}.home-page .wechat-qr-container .wechat-qr-status{margin-top:8px;color:#8c8c8c;font-size:13px;display:flex;align-items:center;justify-content:center;gap:8px}.home-page .pain-points-section{padding:100px 0;background:#fafafa}.home-page .pain-points-section .section-content{max-width:1200px;margin:0 auto;padding:0 24px}.home-page .pain-points-section .section-title{font-size:40px;font-weight:700;text-align:center;margin-bottom:16px;color:#262626}.home-page .pain-points-section .section-subtitle{font-size:18px;text-align:center;color:#8c8c8c;margin-bottom:60px}.home-page .pain-points-section .pain-points-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}.home-page .pain-points-section .pain-point-card{background:#fff;padding:40px 30px;border-radius:16px;text-align:center;box-shadow:0 4px 12px #00000014;transition:all .3s ease}.home-page .pain-points-section .pain-point-card:hover{transform:translateY(-8px);box-shadow:0 12px 28px #00000026}.home-page .pain-points-section .pain-point-card .pain-icon{font-size:60px;margin-bottom:20px}.home-page .pain-points-section .pain-point-card h3{font-size:20px;font-weight:600;margin-bottom:12px;color:#262626}.home-page .pain-points-section .pain-point-card p{font-size:15px;color:#8c8c8c;line-height:1.6;margin:0}.home-page .features-section{padding:100px 0;background:#fff}.home-page .features-section .section-content{max-width:1200px;margin:0 auto;padding:0 24px}.home-page .features-section .section-title{font-size:40px;font-weight:700;text-align:center;margin-bottom:16px;color:#262626}.home-page .features-section .section-subtitle{font-size:18px;text-align:center;color:#8c8c8c;margin-bottom:60px}.home-page .features-section .features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:32px}.home-page .features-section .feature-card{background:#fff;padding:40px 32px;border-radius:16px;border:1px solid #f0f0f0;transition:all .3s ease}.home-page .features-section .feature-card:hover{transform:translateY(-8px);box-shadow:0 12px 28px #0000001f;border-color:transparent}.home-page .features-section .feature-card .feature-icon{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;box-shadow:0 8px 16px #00000026}.home-page .features-section .feature-card .feature-icon .anticon{font-size:32px;color:#fff}.home-page .features-section .feature-card h3{font-size:22px;font-weight:600;margin-bottom:12px;color:#262626}.home-page .features-section .feature-card p{font-size:15px;color:#8c8c8c;line-height:1.8;margin:0}.home-page .process-section{padding:100px 0;background:linear-gradient(135deg,#ffeef0,#fff5f7)}.home-page .process-section .section-content{max-width:1200px;margin:0 auto;padding:0 24px}.home-page .process-section .section-title{font-size:40px;font-weight:700;text-align:center;margin-bottom:80px;color:#262626}.home-page .process-section .process-timeline{display:flex;align-items:center;justify-content:center;gap:40px}.home-page .process-section .process-step{flex:1;max-width:300px;text-align:center}.home-page .process-section .process-step .step-number{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#ff6b9d,#ff4d4f);color:#fff;font-size:36px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;box-shadow:0 8px 20px #ff4d4f4d}.home-page .process-section .process-step .step-content h3{font-size:22px;font-weight:600;margin-bottom:12px;color:#262626}.home-page .process-section .process-step .step-content p{font-size:15px;color:#8c8c8c;line-height:1.6;margin:0}.home-page .process-section .process-arrow{font-size:32px;color:#ff4d4f;font-weight:700}.home-page .home-footer{padding:80px 0 40px;background:#1a1a1a!important;color:#fff!important;width:100%;clear:both;min-height:400px}.home-page .home-footer .footer-content{max-width:1200px;margin:0 auto;padding:0 24px}.home-page .home-footer .footer-main{display:flex;justify-content:space-between;gap:60px;padding-bottom:60px;border-bottom:1px solid #333}.home-page .home-footer .footer-info{flex:1;max-width:300px}.home-page .home-footer .footer-logo{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:600;margin-bottom:16px}.home-page .home-footer .footer-logo .footer-logo-image{height:36px;width:auto;object-fit:contain}.home-page .home-footer .footer-logo .footer-logo-icon{font-size:28px;color:#ff4d4f}.home-page .home-footer .footer-desc{font-size:14px;color:#999;margin:0;line-height:1.6}.home-page .home-footer .footer-links{flex:2;display:grid;grid-template-columns:repeat(4,1fr);gap:40px}.home-page .home-footer .footer-column h4{font-size:16px;font-weight:600;margin-bottom:16px;color:#fff}.home-page .home-footer .footer-column a,.home-page .home-footer .footer-column p{display:block;font-size:14px;color:#999;margin-bottom:12px;text-decoration:none;transition:color .3s;line-height:1.6;cursor:pointer}.home-page .home-footer .footer-column a:hover,.home-page .home-footer .footer-column p:hover{color:#ff4d4f}.home-page .home-footer .footer-column p{margin-bottom:12px}.home-page .home-footer .footer-column p .anticon{margin-right:8px;color:#ff4d4f}.home-page .home-footer .footer-column .contact-email{white-space:nowrap;word-break:normal}.home-page .home-footer .footer-bottom{padding:40px 0;text-align:center}.home-page .home-footer .footer-legal{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:20px;font-size:13px;color:#999;-webkit-user-select:text;user-select:text}.home-page .home-footer .footer-legal a{color:#999;text-decoration:none;transition:color .3s;cursor:pointer}.home-page .home-footer .footer-legal a:hover{color:#ff4d4f}.home-page .home-footer .footer-legal .divider{color:#666;margin:0 8px}.home-page .home-footer .footer-address{margin-bottom:20px;-webkit-user-select:text;user-select:text}.home-page .home-footer .footer-address p{font-size:13px;color:#999;margin:8px 0;line-height:1.6}.home-page .home-footer .footer-license .license-link{display:inline-block;padding:8px 20px;background:#ff4d4f1a;border:1px solid #ff4d4f;border-radius:4px;color:#ff4d4f;font-size:13px;text-decoration:none;transition:all .3s}.home-page .home-footer .footer-license .license-link:hover{background:#ff4d4f;color:#fff}.home-page .floating-contact{position:fixed;right:30px;top:50%;transform:translateY(-50%);width:60px;height:80px;background:linear-gradient(135deg,#ff6b9d,#ff4d4f);border-radius:30px;box-shadow:0 8px 20px #ff4d4f66;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer!important;transition:all .3s ease;z-index:999}.home-page .floating-contact:hover{transform:translateY(-50%) scale(1.1);box-shadow:0 12px 28px #ff4d4f80}.home-page .floating-contact .contact-icon{font-size:24px;color:#fff}.home-page .floating-contact .contact-text{font-size:12px;color:#fff;font-weight:500;writing-mode:horizontal-tb}@media(max-width:768px){.home-page .hero-section{padding:100px 24px 60px}.home-page .hero-section .hero-content{flex-direction:column;gap:40px}.home-page .hero-section .hero-title{font-size:36px}.home-page .hero-section .hero-subtitle{font-size:16px}.home-page .hero-section .hero-buttons{flex-direction:column}.home-page .hero-section .hero-card{width:250px;height:250px}.home-page .hero-section .hero-card .hero-card-icon{font-size:80px}.home-page .hero-section .hero-card p{font-size:18px}.home-page .section-title{font-size:32px!important}.home-page .features-grid{grid-template-columns:1fr!important}.home-page .process-timeline{flex-direction:column;gap:40px!important}.home-page .process-arrow{transform:rotate(90deg)}.home-page .footer-main{flex-direction:column;gap:40px!important}.home-page .footer-links{grid-template-columns:repeat(2,1fr)!important;gap:30px!important}.home-page .floating-contact{right:20px;width:50px;height:70px}.home-page .floating-contact .contact-icon{font-size:20px}.home-page .floating-contact .contact-text{font-size:11px}}.demo-page{min-height:100vh;background:#0a0a0f;color:#fff;position:relative;overflow-x:hidden}.demo-page .demo-bg-orb{position:fixed;border-radius:50%;filter:blur(120px);opacity:.3;pointer-events:none;z-index:0}.demo-page .demo-bg-orb-1{width:600px;height:600px;background:#ff4d4f;top:-200px;right:-100px}.demo-page .demo-bg-orb-2{width:500px;height:500px;background:#667eea;bottom:-150px;left:-100px}.demo-page .demo-bg-orb-3{width:400px;height:400px;background:#722ed1;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.15}.demo-page .demo-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:16px 40px;background:#0a0a0fcc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.06)}.demo-page .demo-back-btn{color:#ffffffb3!important;font-size:15px}.demo-page .demo-back-btn:hover{color:#fff!important}.demo-page .demo-header-title{font-size:16px;font-weight:600;letter-spacing:1px;color:#ffffffe6}.demo-page .demo-header-right :global(.ant-tag){border:none;font-weight:600;font-size:13px;padding:2px 12px}.demo-page .demo-main{position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:0 40px 80px}.demo-page .demo-hero{text-align:center;padding:64px 0 48px}.demo-page .demo-hero h1{font-size:44px;font-weight:800;line-height:1.3;margin-bottom:16px;color:#fff}.demo-page .demo-hero .gradient-text{background:linear-gradient(135deg,#ff6b9d,#ff4d4f 40%,#ffa940);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.demo-page .demo-hero p{font-size:18px;color:#ffffff80;max-width:560px;margin:0 auto;line-height:1.7}.demo-page .demo-category-section{margin-bottom:64px}.demo-page .category-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.06)}.demo-page .category-label{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:700;color:#fff}.demo-page .category-label .anticon{font-size:24px;color:#ff4d4f}.demo-page .category-count{font-size:14px;color:#ffffff59;font-weight:500}.demo-page .template-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.demo-page .template-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:20px;overflow:hidden;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1)}.demo-page .template-card:hover{transform:translateY(-8px);border-color:#ff4d4f4d;box-shadow:0 20px 60px #0006,0 0 40px #ff4d4f14}.demo-page .template-card:hover .card-hover-mask{opacity:1}.demo-page .template-card:hover .card-preview img{transform:scale(1.05)}.demo-page .template-card.card-locked{cursor:default}.demo-page .template-card.card-locked:hover{transform:none;border-color:#ffffff0f;box-shadow:none}.demo-page .card-preview{position:relative;height:220px;overflow:hidden}.demo-page .card-preview img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.demo-page .card-preview.game-preview{display:flex;align-items:center;justify-content:center}.demo-page .game-icon-large{font-size:72px;filter:drop-shadow(0 4px 20px rgba(0,0,0,.3))}.demo-page .card-hover-mask{position:absolute;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .35s ease}.demo-page .hover-action{display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff}.demo-page .hover-action .anticon{font-size:36px}.demo-page .hover-action span{font-size:15px;font-weight:600;letter-spacing:1px}.demo-page .card-locked-mask{position:absolute;inset:0;background:#00000059;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#ffffffb3}.demo-page .card-locked-mask .anticon{font-size:28px}.demo-page .card-locked-mask span{font-size:14px;font-weight:600;letter-spacing:2px}.demo-page .card-badge{position:absolute;top:14px;left:14px;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 12px #00000040}.demo-page .card-body{padding:20px}.demo-page .card-body h3{font-size:18px;font-weight:700;color:#fff;margin-bottom:8px}.demo-page .card-body p{font-size:13px;color:#fff6;line-height:1.6;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.demo-page .card-tags{display:flex;flex-wrap:wrap;gap:6px}.demo-page .feature-tag{font-size:11px;padding:2px 10px;border-radius:20px;background:#ffffff0f;color:#ffffff80;border:1px solid rgba(255,255,255,.08)}@media(max-width:960px){.demo-page .template-grid{grid-template-columns:repeat(2,1fr)}.demo-page .demo-hero h1{font-size:32px}}@media(max-width:640px){.demo-page .demo-main{padding:0 20px 60px}.demo-page .demo-header{padding:12px 20px}.demo-page .template-grid{grid-template-columns:1fr}.demo-page .demo-hero{padding:40px 0 32px}.demo-page .demo-hero h1{font-size:28px}.demo-page .demo-hero p{font-size:15px}}.guest-checkin-page{min-height:100vh;background:linear-gradient(135deg,#fff5f5,#ffe0e6,#ffd6e0);padding:0 0 40px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.guest-checkin-page .loading-state,.guest-checkin-page .error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px}.guest-checkin-page .error-icon{font-size:48px}.guest-checkin-page .error-text{font-size:16px;color:#999}.guest-checkin-page .wedding-header{text-align:center;padding:40px 20px 30px;background:linear-gradient(180deg,rgba(255,107,129,.15) 0%,transparent 100%)}.guest-checkin-page .wedding-header .couple-avatars{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}.guest-checkin-page .wedding-header .couple-avatars .avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 4px 12px #ff6b814d}.guest-checkin-page .wedding-header .couple-avatars .heart-icon{font-size:28px}.guest-checkin-page .wedding-header .couple-names{font-size:24px;font-weight:700;color:#d63384;margin:0 0 8px}.guest-checkin-page .wedding-header .wedding-date{font-size:14px;color:#e77}.guest-checkin-page .wedding-header .wedding-subtitle{font-size:14px;color:#c77;margin-top:8px}.guest-checkin-page .checkin-form,.guest-checkin-page .checkin-success{margin:20px 16px;padding:24px 20px;background:#fff;border-radius:16px;box-shadow:0 4px 20px #d633841a}.guest-checkin-page .form-title{font-size:18px;font-weight:600;color:#333;margin:0 0 20px;text-align:center}.guest-checkin-page .form-group{margin-bottom:16px}.guest-checkin-page .form-group label{display:block;font-size:14px;font-weight:500;color:#555;margin-bottom:8px}.guest-checkin-page .form-group .optional{color:#aaa;font-weight:400;font-size:12px}.guest-checkin-page .form-input,.guest-checkin-page .form-textarea{width:100%;padding:12px 14px;border:1.5px solid #eee;border-radius:10px;font-size:15px;outline:none;transition:border-color .2s;box-sizing:border-box;background:#fafafa}.guest-checkin-page .form-input:focus,.guest-checkin-page .form-textarea:focus{border-color:#d63384;background:#fff}.guest-checkin-page .form-textarea{resize:none;line-height:1.5}.guest-checkin-page .char-count{text-align:right;font-size:12px;color:#bbb;margin-top:4px}.guest-checkin-page .checkin-btn,.guest-checkin-page .blessing-btn{width:100%;padding:14px;border:none;border-radius:12px;font-size:16px;font-weight:600;color:#fff;background:linear-gradient(135deg,#ff6b81,#d63384);cursor:pointer;margin-top:8px;transition:opacity .2s}.guest-checkin-page .checkin-btn:disabled,.guest-checkin-page .blessing-btn:disabled{opacity:.6;cursor:not-allowed}.guest-checkin-page .checkin-btn:active:not(:disabled),.guest-checkin-page .blessing-btn:active:not(:disabled){opacity:.85}.guest-checkin-page .blessing-btn{background:linear-gradient(135deg,#ffa07a,#e77);margin-top:12px}.guest-checkin-page .checkin-success{text-align:center}.guest-checkin-page .checkin-success .success-icon{font-size:48px;margin-bottom:8px}.guest-checkin-page .checkin-success .success-text{font-size:20px;font-weight:700;color:#d63384}.guest-checkin-page .checkin-success .success-hint{font-size:14px;color:#999;margin-top:4px}.guest-checkin-page .checkin-success .blessing-form{margin-top:24px;text-align:left}.guest-checkin-page .checkin-success .blessing-form h3{font-size:16px;font-weight:600;color:#333;margin:0 0 12px;text-align:center}.guest-checkin-page .checkin-success .blessing-sent{margin-top:20px;padding:16px;background:#fff5f5;border-radius:12px}.guest-checkin-page .checkin-success .blessing-sent span{font-size:15px;color:#d63384;font-weight:500}.guest-checkin-page .checkin-success .blessing-sent .sent-message{font-size:14px;color:#666;margin:8px 0 0;font-style:italic}.guest-checkin-page .blessing-wall{margin:20px 16px}.guest-checkin-page .blessing-wall .wall-title{font-size:18px;font-weight:600;color:#333;margin:0 0 16px;text-align:center}.guest-checkin-page .blessing-wall .blessing-list{display:flex;flex-direction:column;gap:12px}.guest-checkin-page .blessing-wall .blessing-card{background:#fff;border-radius:12px;padding:14px 16px;box-shadow:0 2px 10px #0000000d}.guest-checkin-page .blessing-wall .blessing-card .blessing-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.guest-checkin-page .blessing-wall .blessing-card .blessing-header .guest-name{font-size:14px;font-weight:600;color:#d63384}.guest-checkin-page .blessing-wall .blessing-card .blessing-header .blessing-time{font-size:12px;color:#bbb}.guest-checkin-page .blessing-wall .blessing-card .blessing-content{font-size:14px;color:#555;line-height:1.5}
