:root{--bg:#f8f7f4;--surface:#fff;--ink:#263143;--sub:#8a8e98;--line:#eaeaf0;--soft:#f6f7fb;--accent:#3975f6;--accent-soft:#edf2ff;color-scheme:light}.dark{--bg:#181d29;--surface:#232a39;--ink:#e9edf6;--sub:#a3adc1;--line:#343e50;--soft:#2b3345;--accent:#90afff;--accent-soft:#303e5e;color-scheme:dark}body{font-family:Inter,'Pretendard','Segoe UI','Malgun Gothic',sans-serif;-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--ink);line-height:1.55}button,input,select,textarea{font:inherit}button{transition:background .18s,transform .18s,box-shadow .18s}button:hover{filter:none}button:disabled{cursor:wait;opacity:.65}.primary{background:var(--accent);color:#fff;border-radius:11px;box-shadow:0 5px 12px #3975f619;font-weight:600}.primary:hover{background:#2c63df;transform:translateY(-1px);box-shadow:0 7px 16px #3975f62b}.dark .primary{color:#17233e}.secondary{border-radius:11px;color:var(--ink)}.secondary:hover{background:var(--soft)}:focus-visible{outline:3px solid #84a8ff;outline-offset:4px}.sidebar{position:sticky;top:0;inset:auto;display:flex;align-items:center;width:100%;height:82px;padding:0 max(30px,calc((100vw - 1240px)/2));border-right:0;border-bottom:1px solid var(--line);background:var(--surface);z-index:10;gap:50px}.brand{gap:10px;flex-shrink:0;padding:0;margin:0}.brand strong{font-size:24px;letter-spacing:-1.2px}.brand small{font-size:9px;letter-spacing:0;color:#8f94a0;margin-top:0;font-weight:400}.brand-dots{gap:3px}.brand-dots i{border-radius:40%}.brand-dots i:nth-child(1){background:#f2b8b0}.brand-dots i:nth-child(2){background:#84a4ef}.brand-dots i:nth-child(3){background:#acc3a1}.brand-dots i:nth-child(4){background:#efd28d}.sidebar nav{flex-direction:row;align-items:center;gap:6px;margin-left:auto}.sidebar nav>a{gap:8px;font-size:13px;min-height:41px;padding:9px 15px;border-radius:11px;color:#7a8292;white-space:nowrap}.sidebar nav>a[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:700}.nav-icon{font-size:18px;line-height:1}.sidebar .side-family,.sidebar>footer{display:none}.shell{margin:0}.topbar{height:64px;max-width:1240px;margin:auto;padding:0 0;border:0;background:none;gap:15px}.topbar>span{font-size:11px}.account-name{margin-left:auto;margin-right:5px}.topbar>div{gap:9px}.topbar .small{font-size:12px}.quiet{border:1px solid var(--line);border-radius:10px;background:var(--surface);width:35px;height:35px;min-height:35px}.topbar .mobile-brand{display:none}main{padding:0 0 70px;max-width:1240px;margin:auto}.welcome{background:#ffede2;border-radius:25px;position:relative;min-height:260px;display:flex;align-items:center;overflow:hidden;padding:34px 45px;margin-bottom:24px}.welcome-copy{position:relative;z-index:1;max-width:58%}.welcome-date{font-size:11px;color:#a08377}.welcome h1{font-size:42px;line-height:1.3;letter-spacing:-2.3px;color:#51413d;margin:8px 0 12px}.welcome h1 span{color:#3f6fce}.welcome p{font-size:13px;color:#a3877b}.welcome-actions{display:flex;gap:9px;margin-top:22px}.welcome-actions button{min-height:38px;font-size:11px}.welcome-actions .secondary{background:#fff9f2;border-color:#f4dccc;color:#a07863;box-shadow:none}.welcome-art{position:absolute;right:5px;width:51%;height:275px;object-fit:contain;pointer-events:none;bottom:-3px}.family-strip{gap:12px;margin-bottom:28px}.family-chip{border:0;box-shadow:0 3px 11px #39455b03;border-radius:16px;padding:15px 20px;gap:13px;position:relative}.family-chip:hover{box-shadow:0 6px 20px #39455b0d;transform:translateY(-2px)}.family-chip strong{font-size:13px;font-weight:650}.family-chip small{font-size:10px;color:#9da1aa;margin-top:3px}.family-chip .avatar{border-radius:14px;width:43px;height:43px;font-size:13px;font-weight:700;position:relative}.avatar.rose{background:#ffdedc;color:#b87f7c}.avatar.blue{background:#dfe8ff;color:#6f8bc5}.avatar.green{background:#e5eddc;color:#84986f}.avatar.amber{background:#fff0ca;color:#b89b55}.family-chip::after{content:'↗';margin-left:auto;font-size:12px;color:#c8ccd4}.home-grid{grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);gap:23px}.column{gap:23px}.panel{border:0;box-shadow:0 4px 20px #354c7304;border-radius:20px;padding:25px 28px}.panel h2{font-size:16px;letter-spacing:-.5px}.panel h3{font-size:13px}.panel-head{margin-bottom:18px}.text-button{color:#9098a8;font-size:11px}.text-button:hover{color:var(--accent)}.week-strip{gap:9px;margin-bottom:24px}.week-day{border-radius:13px;background:var(--soft);padding:13px 4px 10px;transition:transform .15s,background .15s}.week-day:hover{transform:translateY(-2px);background:var(--accent-soft)}.week-day small{font-size:10px}.week-day b{font-size:22px;line-height:1.4;margin:4px 0}.week-day.selected{background:var(--accent);box-shadow:0 5px 12px #3975f627;color:#fff}.week-day.selected:hover{background:#346ce6}.empty{padding:22px 0;color:#a5aab4;font-size:12px}.event-row{border-color:var(--line);padding:15px 0}.event-row strong{font-size:13px}.event-row small{font-size:11px}.event-row time{font-size:11px}.notice{background:#fff0ce;box-shadow:none;position:relative;min-height:175px;padding-bottom:27px}.notice::after{content:'';position:absolute;right:0;bottom:0;border-top:19px solid #f0d9a0;border-right:19px solid var(--bg);border-bottom-right-radius:0}.notice .notice-label{font-size:10px;font-weight:500;letter-spacing:.2px;color:#aa924f}.notice h3{font-size:19px;color:#736541;margin:13px 0 4px;letter-spacing:-.7px;font-weight:650}.notice p{color:#b1a174;font-size:12px}.notice .text-button{color:#9d8c5b;margin-top:6px;font-size:11px}.notice footer{font-size:10px}.panel-head .count{color:#a2a9b6;font-size:11px}.quick-input{border:0;border-radius:12px;background:var(--soft);padding:6px 8px;margin-top:15px}.quick-input>span{font-size:16px;color:#a5afc4}.quick-input input{font-size:12px;min-height:35px}.quick-input input::placeholder{color:#a1a8b7}.quick-input .primary{font-size:11px;min-height:32px;padding:5px 11px;border-radius:9px}.check-row{gap:12px}.check-button{border-radius:50%;width:21px;height:21px;min-width:21px;border-color:#dce2ee}.row-copy strong{font-size:13px}.member-tag{font-size:10px;background:var(--accent-soft);color:#8d9dbb;padding:3px 8px}.row-delete{width:24px;font-size:16px}.album-banner{margin-top:0;background:#e9eefb;border:0;border-radius:19px;padding:25px;position:relative;overflow:hidden;min-height:135px}.album-banner h3{color:#6079b4;font-size:17px;letter-spacing:-.6px}.album-banner p{color:#98a7c6;font-size:11px}.album-banner::before{content:'▧';position:absolute;right:28px;top:-18px;font-size:108px;line-height:1.4;color:#b9c9ec;opacity:.38;rotate:12deg}.album-banner .secondary{position:relative;background:#fff9;border:0;color:#6a84bd;font-size:10px;white-space:nowrap}.page-title{margin-top:14px;margin-bottom:27px}.page-title h1{font-size:31px;letter-spacing:-1.5px}.page-title p{font-size:12px;margin-top:7px}.page-title .eyebrow{font-size:10px}.filter{background:var(--surface);border:0;padding:8px 17px;font-size:12px}.filter.selected{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px #abc2fa}.month-nav button{font-size:16px;border:0;background:var(--soft);border-radius:10px}.month-nav [data-action=month-today]{font-size:10px;width:43px}.month-cell{border-radius:11px;min-height:72px}.month-cell.selected{border:0;background:var(--accent);color:white}.month-cell.selected i{background:white}.month-cell.selected small{color:inherit}.storage-note{font-size:10px;color:#b1b4bb;display:flex;flex-wrap:wrap;align-items:center;gap:3px;margin-top:24px}.storage-note .text-button,.storage-note .file-action,.storage-note a{font-size:10px;color:#9da6b7}.loading-state{padding:45px;color:var(--sub)}dialog{border-radius:22px;border:0;box-shadow:0 20px 100px #2631432b}dialog::backdrop{background:#27364b55;backdrop-filter:blur(7px)}dialog form{padding:30px}dialog label{font-size:12px;color:var(--sub)}dialog input,dialog select,dialog textarea{border-color:var(--line);border-radius:11px;background:var(--soft)}dialog footer{border:0;padding-top:10px}#toast{left:50%;background:#243148;color:white;font-size:12px;border-radius:12px;padding:12px 19px}.dark .welcome{background:#313244}.dark .welcome h1{color:#f1e2d9}.dark .welcome h1 span{color:#a6bfff}.dark .welcome p,.dark .welcome-date{color:#aaa2aa}.dark .welcome-actions .secondary{background:#454154;border-color:#635365;color:#e9caba}.dark .welcome-art{opacity:.78}.dark .notice{background:#403b2f}.dark .notice h3{color:#e8d59f}.dark .notice p,.dark .notice .notice-label,.dark .notice .text-button{color:#b5a574}.dark .notice::after{border-top-color:#62563b}.dark .album-banner{background:#2c3954}.dark .album-banner h3{color:#adc4f8}.dark .album-banner .secondary{background:#435476;color:#b5c9ee}.dark .family-chip .avatar{filter:saturate(.7) brightness(.85)}.dark .brand small{color:#8c98af}.dark .sidebar nav>a{color:#a7b1c8}.dark .sidebar nav>a[aria-current=page]{color:#a7bfff}.dark .week-day.selected,.dark .month-cell.selected{color:#172746}.dark .week-day.selected i,.dark .month-cell.selected i{background:#172746}.dark .week-day.selected:hover{background:#a6bdff}.dark .auth-card{background:var(--surface)}.welcome,.family-strip,.home-grid{animation:arrive .45s both}.family-strip{animation-delay:.05s}.home-grid{animation-delay:.1s}@keyframes arrive{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@media(max-width:1340px){.sidebar{padding-left:30px;padding-right:30px;gap:20px}main,.topbar{margin-left:35px;margin-right:35px}.sidebar nav>a{padding:8px 12px}}@media(max-width:1050px){.sidebar{height:76px}.sidebar nav>a{font-size:12px;padding:8px 10px}.brand small{display:none}.home-grid{grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr);gap:18px}.panel{padding:22px}.welcome{padding:32px 35px;min-height:250px}.welcome-art{right:-45px;width:58%}.family-chip{padding:14px;gap:9px}.family-chip::after{display:none}.week-strip{gap:5px}.calendar-layout{grid-template-columns:1fr}}@media(max-width:780px){.sidebar{position:fixed;top:auto;bottom:0;display:block;height:73px;padding:0 7px calc(env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);border-bottom:0}.sidebar .brand{display:none}.sidebar nav{height:70px;margin:0;justify-content:space-around;gap:0;display:flex}.sidebar nav>a{flex:1;padding:8px 1px 6px;flex-direction:column;gap:4px;color:#a5aab5;border-radius:0;min-width:0}.sidebar nav>a .nav-icon{font-size:21px;line-height:1.2}.sidebar nav>a span:not(.nav-icon){font-size:10px;margin:0}.sidebar nav>a[aria-current=page]{background:none;color:var(--accent)}.shell{margin:0}.topbar{height:70px;margin:0 20px;padding:0;gap:5px}.topbar .mobile-brand{display:block;font-size:21px;color:var(--ink);letter-spacing:-1px;font-weight:750}.topbar #breadcrumb{display:none}.topbar .account-name{font-size:10px;margin-right:7px}.topbar .primary{min-height:34px;font-size:10px;padding:7px 11px}.topbar .quiet{width:30px;height:30px;min-height:30px}main{padding:0 0 105px;margin:0 20px}.welcome{border-radius:20px;min-height:205px;padding:24px;margin-bottom:17px}.welcome-copy{max-width:71%}.welcome h1{font-size:31px;letter-spacing:-1.8px;margin-top:10px}.welcome p{font-size:10px}.welcome-date{font-size:9px}.welcome-art{height:180px;width:68%;right:-80px;bottom:-14px;opacity:.86}.welcome-actions{gap:7px;margin-top:18px;position:relative;z-index:2}.welcome-actions button{min-height:32px;font-size:9px;padding:7px 11px;border-radius:9px}.welcome-actions .secondary{background:#fff8ef}.family-strip{gap:7px;margin-bottom:22px}.family-chip{padding:11px 3px;border-radius:14px;gap:7px;flex-direction:column}.family-chip .avatar{width:34px;height:34px;border-radius:11px;font-size:11px}.family-chip strong{font-size:11px}.family-chip small{font-size:9px;margin-top:2px}.home-grid{display:block}.column{gap:18px}.home-grid>.column+.column{margin-top:18px}.panel{padding:22px;border-radius:18px}.panel h2{font-size:15px}.panel-head{margin-bottom:17px;gap:4px}.panel-head .count{font-size:10px;margin-left:5px}.week-strip{gap:6px;margin-bottom:20px}.week-day{padding:11px 3px 8px;border-radius:11px}.week-day b{font-size:21px}.week-day small{font-size:9px}.notice{min-height:165px}.notice h3{font-size:20px}.album-banner{min-height:130px;padding:24px}.quick-input input{font-size:16px}.quick-input{padding:5px 6px}.quick-input .primary{min-height:35px;font-size:11px}.storage-note{line-height:1.8;font-size:9px;display:block}.storage-note .text-button{font-size:9px}.calendar-layout{display:block}.calendar-layout>section+section{margin-top:18px}.month-cell{min-height:57px;font-size:12px}.month-grid{gap:2px}.month-nav{gap:6px}.page-title{margin-top:10px;margin-bottom:24px}.page-title h1{font-size:27px}.page-title p{font-size:11px}.page-title .secondary{font-size:10px;padding:8px 10px;min-height:35px}.filters{gap:6px}.filter{font-size:11px;padding:8px 13px}.filters select{font-size:12px}.row-delete{opacity:1}.photo-grid{gap:12px}.photo-card h3{font-size:12px}.photo-card>div{padding:13px}dialog form{padding:24px}dialog input,dialog select,dialog textarea{font-size:16px}.dark .welcome-actions .secondary{background:#464151}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
