html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}:root{color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f7f8fb}.app-layout{min-height:100vh}.app-header{position:sticky;top:0;z-index:100;background:#ffffffd9!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #EDEEF2;box-shadow:0 1px 4px #0000000a}.header-inner{position:relative;display:flex;align-items:center;justify-content:space-between;width:min(1400px,100%);margin:0 auto;height:64px;gap:16px}.brand-logo{display:flex;align-items:center;gap:10px;text-decoration:none;justify-self:start}.brand-title{margin:0!important;color:#3d4856!important;font-weight:600!important}.header-nav-wrap{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;pointer-events:none}.header-nav{display:flex;align-items:center;justify-content:center;gap:20px;pointer-events:auto}.header-nav-link{display:inline-flex;align-items:center;gap:8px;border:none;background:transparent;color:#4a5568;border-radius:0;padding:0;font-size:.95rem;font-weight:600;cursor:pointer;transition:color .2s ease,opacity .2s ease;pointer-events:auto}.header-nav-link:hover{background:transparent;color:#2f4e96;opacity:.9}.header-nav-link-active{background:transparent;color:#2f4e96;border-color:transparent;box-shadow:none}.header-nav-link .anticon{font-size:.95rem}.header-nav-link span{display:inline-flex;align-items:center}.header-right{display:flex;align-items:center;gap:8px;justify-self:end;position:relative;z-index:2}.signin-dropdown{background:#fff;border-radius:16px;padding:20px;width:300px;box-shadow:0 8px 32px #0000001a;border:1px solid #E4E7F1}.app-content{width:min(1400px,calc(100% - 48px));margin:0 auto;padding:40px 0 56px}.home-page{display:block}.welcome-section{text-align:center;margin-bottom:40px}.family-illustration{width:100%;max-width:860px;height:auto;margin:0 auto 32px;display:block;border-radius:20px}.welcome-text{max-width:760px;margin:0 auto}.welcome-title{color:#2d3748!important;margin-bottom:8px!important}.welcome-description{color:#5a6577!important;font-size:1rem;line-height:1.7;text-align:justify;margin-bottom:4px!important}.hero-section{background:linear-gradient(135deg,#e8edff,#fbe8f0,#fff3e0);border:1px solid #E4E7F1;border-radius:20px;padding:40px}.hero-title{margin:0!important;line-height:1.15!important;color:#2d3748!important}.hero-subtitle{max-width:640px;margin:0!important;font-size:1rem;color:#5a6577}.hero-highlight{border:1px solid #D9DFFB;border-radius:16px;padding:24px;background:#7c9fe51a}.section-title{margin-bottom:16px!important;color:#2d3748!important}.feature-card{min-height:200px;border:none!important;box-shadow:0 2px 12px #0000000a;transition:transform .2s,box-shadow .2s}.feature-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #00000012}.feature-card:nth-child(1) .ant-card-head{background:#e8f0fe;border-radius:16px 16px 0 0}.feature-card:nth-child(2) .ant-card-head{background:#f3e8fe;border-radius:16px 16px 0 0}.feature-card:nth-child(3) .ant-card-head{background:#e8fef3;border-radius:16px 16px 0 0}.cards-section .ant-col:nth-child(1) .feature-card{background:linear-gradient(180deg,#e8f0fe,#fff 40%)}.cards-section .ant-col:nth-child(2) .feature-card{background:linear-gradient(180deg,#f3e8fe,#fff 40%)}.cards-section .ant-col:nth-child(3) .feature-card{background:linear-gradient(180deg,#e8fef3,#fff 40%)}.app-footer{border-top:1px solid #EDEEF2;text-align:center;padding:24px 16px!important;background:#fff}@media(max-width:768px){.app-header{padding-inline:12px;height:auto!important;line-height:normal!important}.header-inner{gap:10px;flex-wrap:wrap;justify-content:center;height:auto;padding:8px 0}.header-nav-wrap{position:static;transform:none;width:100%;order:3;pointer-events:auto;display:flex;justify-content:center;margin-top:2px}.header-nav{width:auto;gap:12px;justify-content:center;background:#fff;border:1px solid #E4E7F1;border-radius:14px;padding:8px 12px;box-shadow:0 2px 8px #0000000f}.app-content{width:calc(100% - 24px);padding-top:24px}.hero-section{padding:24px}.family-illustration{border-radius:14px}.header-right{gap:4px}.header-nav-link{width:auto;justify-content:center}.signin-dropdown{width:260px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;width:100vw;background:#0000004d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:3000;display:flex;align-items:center;justify-content:center;transition:background .2s;overflow:auto}.modal-content{margin:0;background:#fff;border-radius:18px;box-shadow:0 8px 32px #0000002e;padding:32px 24px 24px;min-width:320px;max-width:90vw;max-height:90vh;position:relative;display:flex;flex-direction:column;align-items:center;animation:modalIn .2s cubic-bezier(.4,0,.2,1)}@keyframes modalIn{0%{opacity:0;transform:translateY(40px) scale(.98)}to{opacity:1;transform:none}}.modal-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:2rem;color:#888;cursor:pointer;z-index:10;line-height:1;padding:0}.modal-actions{display:flex;gap:12px;justify-content:center;margin-top:8px}@media(max-width:600px){.modal-content{min-width:unset;width:98vw;padding:20px 6px 16px}}.timeline-section{margin-top:0}.family-timeline{max-width:900px;margin:0 auto;padding:24px 0}.timeline-event-wrapper{padding-bottom:24px}.timeline-event-header{margin-bottom:12px}.timeline-event-title{font-size:1.25rem;font-weight:600;color:#2d3748;margin:0 0 4px}.timeline-event-date{font-size:.875rem;color:#718096!important}.timeline-event-description{color:#5a6577;margin:8px 0 16px;line-height:1.6}.timeline-event-content{margin-top:12px}.timeline-loader,.timeline-end{text-align:center;padding:24px 0;display:flex;justify-content:center;align-items:center}.loading-spinner{display:inline-block;animation:spinner-fade 1.5s ease-in-out infinite}@keyframes spinner-fade{0%,to{opacity:1}50%{opacity:.5}}.media-event{width:100%}.media-grid{display:grid;gap:4px;border-radius:12px;overflow:hidden;max-width:600px}.media-grid-single{grid-template-columns:1fr}.media-grid-two{grid-template-columns:repeat(2,1fr)}.media-grid-three{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.media-grid-three .media-item:first-child{grid-column:1 / 3}.media-grid-four{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.media-item{position:relative;aspect-ratio:1;overflow:hidden;cursor:pointer;background-color:#f0f0f0}.media-grid-single .media-item{aspect-ratio:4/3}.media-grid-three .media-item:first-child{aspect-ratio:2/1}.media-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.media-item:hover img{transform:scale(1.05)}.media-video-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;color:#fff;opacity:.9;pointer-events:none;text-shadow:0 2px 8px rgba(0,0,0,.3)}.media-more-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem;font-weight:600}.media-event-empty{padding:24px;text-align:center;color:#999;font-style:italic}.media-gallery-page{max-width:1200px;margin:0 auto}.calendar-page{max-width:1000px;margin:0 auto}.calendar-page-header{margin-bottom:16px}.calendar-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}.calendar-legend-item{display:inline-flex;align-items:center;gap:8px;font-size:.875rem;color:#4a5568}.calendar-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.calendar-vacation-markers{margin-top:4px;display:flex;flex-direction:column;gap:2px}.calendar-vacation-chip{border-radius:6px;color:#fff;font-size:.6875rem;line-height:1.3;padding:1px 6px;width:fit-content;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.create-vacation-page .vacation-period-block{border:1px solid #EDEEF2;border-radius:12px;padding:16px;margin-bottom:16px;background:#fafbfe}.create-vacation-page .vacation-period-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.create-vacation-page .vacation-period-inline-row{display:flex;align-items:flex-start;gap:16px}.create-vacation-page .vacation-period-inline-item{margin-bottom:0}.create-vacation-page .vacation-people-count{width:140px;flex:0 0 140px}.create-vacation-page .vacation-status,.create-vacation-page .vacation-notify{width:200px;flex:0 0 200px}.create-vacation-page .vacation-status .ant-radio-group,.create-vacation-page .vacation-notify .ant-radio-group{display:inline-flex}.create-vacation-page .vacation-notify .ant-form-item-control-input-content{display:flex;justify-content:flex-start}.create-vacation-page .ant-select,.create-vacation-page .ant-input-number{width:100%}@media(max-width:768px){.create-vacation-page .vacation-period-inline-row{flex-direction:column;gap:0}.create-vacation-page .vacation-people-count,.create-vacation-page .vacation-status,.create-vacation-page .vacation-notify{width:100%;flex:1 1 auto}}.back-button{margin-bottom:24px;font-size:1rem;height:auto;padding:8px 16px}.back-button:hover{background:#0000000a}.media-gallery-header{margin-bottom:32px;text-align:center}.media-gallery-header h2{color:#2d3748;margin-bottom:8px}.media-gallery-date{color:#718096!important;font-size:.95rem;margin-bottom:4px!important}.media-gallery-description{color:#2d37484d!important;font-size:1rem;line-height:1.6;max-width:600px;margin:0 auto!important}.media-gallery-grid{margin-top:32px}.media-gallery-item{position:relative;width:100%;border-radius:12px;overflow:hidden;background-color:#fff;cursor:pointer;box-shadow:0 2px 8px #00000014;transition:box-shadow .2s ease}.media-gallery-item:hover{box-shadow:0 4px 12px #0000001f}.media-gallery-photo-wrapper{position:relative;width:100%;display:flex;flex-direction:column;overflow:hidden;gap:0!important}.media-gallery-photo-wrapper .ant-image{aspect-ratio:1;flex-shrink:0;display:block!important;line-height:0!important;position:relative;overflow:hidden!important;font-size:0!important;margin:0!important;padding:0!important}.media-gallery-photo-wrapper .ant-image *{margin:0!important;padding:0!important}.media-gallery-photo-wrapper .ant-image-mask{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;height:100%!important;margin:0!important;padding:0!important}.media-gallery-photo-wrapper .ant-image img,.media-gallery-photo-wrapper .ant-image-img{display:block!important;vertical-align:top!important;margin:0!important;padding:0!important}.media-gallery-image{width:100%;height:100%;object-fit:cover;display:block}.media-gallery-video{position:relative;width:100%;display:flex;flex-direction:column}.media-gallery-video-image-wrapper{position:relative;aspect-ratio:1;flex-shrink:0}.media-gallery-video-image-wrapper>img{width:100%;height:100%;object-fit:cover}.video-play-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#0000004d;color:#fff;pointer-events:none}.media-gallery-photo-wrapper .media-description-overlay,.media-gallery-video .media-description-overlay{background:#fff;padding:12px;border-top:1px solid #EDEEF2;flex-shrink:0;margin:0}.media-description-overlay p{color:#2d3748eb;margin:0;font-size:.875rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:768px){.timeline-section{margin-top:24px}.family-timeline{padding:16px 0}.timeline-event-title{font-size:1.1rem}.media-grid{max-width:100%}.media-gallery-page{padding:0 8px}.back-button{margin-bottom:16px}.media-gallery-header{margin-bottom:24px}}.create-event-fab{position:fixed!important;right:24px!important;bottom:24px!important;width:64px!important;height:64px!important;box-shadow:0 4px 16px #7c9fe54d,0 2px 8px #0000001a!important;z-index:1000;background:linear-gradient(135deg,#7c9fe5,#9bb5f3)!important;border:none!important}.create-event-fab:hover{box-shadow:0 6px 24px #7c9fe566,0 4px 12px #00000026!important;background:linear-gradient(135deg,#6b8dd4,#8aa4e2)!important;transform:translateY(-2px)}.create-event-fab .anticon{font-size:24px!important}.ant-dropdown{z-index:1001!important}.create-event-dropdown{min-width:320px}.create-event-dropdown .ant-dropdown-arrow:before{background:#fff}.create-event-dropdown-panel{width:320px;background:#fff;border:1px solid #EDEEF2;border-radius:18px;box-shadow:0 16px 40px #21345929;overflow:hidden}.create-event-dropdown-header{display:flex;flex-direction:column;gap:4px;padding:18px 18px 14px;border-bottom:1px solid #F0F2F7;background:linear-gradient(180deg,#7c9fe51f,#7c9fe50a)}.create-event-dropdown-title{font-size:1rem;font-weight:700;color:#1f2a44}.create-event-dropdown-subtitle{font-size:.8125rem;line-height:1.45;color:#6b7280}.create-event-dropdown .ant-dropdown-menu{border-radius:0;box-shadow:none;padding:10px;min-width:320px;border:none}.create-event-dropdown .ant-dropdown-menu-item{border-radius:12px;min-height:72px;padding:14px 16px;font-weight:500;display:flex;align-items:center}.create-event-dropdown .ant-dropdown-menu-title-content{flex:1}.create-event-menu-item-content{display:flex;flex-direction:column;gap:4px}.create-event-menu-item-title{font-size:.975rem;font-weight:600;color:#1f2a44}.create-event-menu-item-description{font-size:.8125rem;line-height:1.4;color:#6b7280}.create-event-dropdown .ant-dropdown-menu-item:hover{background:#7c9fe51f}.create-event-dropdown .ant-dropdown-menu-item .anticon{font-size:20px;width:24px;margin-right:14px;color:#7c9fe5}.create-event-page{max-width:800px;margin:0 auto;padding:0 16px}.create-event-container{background:#fff;border-radius:16px;padding:32px;margin-top:24px;box-shadow:0 2px 8px #0000000a;border:1px solid #EDEEF2}.create-event-form{margin-top:32px}.create-event-form .ant-form-item-label>label{font-weight:500;font-size:.9375rem}.create-event-form .ant-upload-list-picture-card-container{width:104px;height:104px}.create-event-form .ant-upload-select-picture-card{width:104px;height:104px;border-radius:8px}.upload-item-wrapper{position:relative;display:inline-block}.upload-sort-controls{position:absolute;top:4px;left:4px;display:flex;flex-direction:row;gap:2px;z-index:10}.sort-file-btn{background:#ffffffe6;border-radius:4px;padding:0;width:22px;height:22px;min-width:22px;box-shadow:0 1px 4px #0000001a}.sort-file-btn:hover,.sort-file-btn:focus{background:#fff;color:#7c9fe5}.edit-description-btn{position:absolute;bottom:4px;left:4px;background:#ffffffe6;border-radius:4px;padding:2px 6px;z-index:10;box-shadow:0 1px 4px #0000001a}.edit-description-btn:hover{background:#fff;color:#7c9fe5}.upload-has-description-badge{position:absolute;top:4px;right:4px;background:#52c41a;color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;z-index:10;box-shadow:0 1px 4px #0003}.description-modal .ant-input-textarea-show-count{margin-bottom:20px}.description-modal .ant-input-textarea-show-count:after{margin-top:6px}.hike-strava-btn{width:100%;justify-content:center}@media(max-width:768px){.create-event-page{padding:0 12px}.create-event-container{padding:24px 16px;margin-top:16px;border-radius:12px}.create-event-fab{width:56px!important;height:56px!important;right:16px!important;bottom:16px!important}.create-event-fab .anticon{font-size:20px!important}}.ant-image-preview-operations-operation:last-child{display:none!important}.image-preview-description-overlay{position:fixed;bottom:80px;left:50%;transform:translate(-50%);z-index:1081;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:16px 24px;border-radius:12px;max-width:800px;width:calc(100% - 48px);pointer-events:none}.image-preview-description-overlay p{color:#fff;margin:0;font-size:1rem;line-height:1.6;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.5)}@media(max-width:768px){.image-preview-description-overlay{bottom:60px;padding:12px 16px}.image-preview-description-overlay p{font-size:.875rem}}
