*{box-sizing:border-box} body{margin:0;background:#fff;color:#1f2937;font-family:Apple SD Gothic Neo,Malgun Gothic,Arial,sans-serif}.hero{text-align:center;padding:28px 16px 16px}.logo{width:min(520px,90vw);height:auto;display:block;margin:0 auto 8px}.hero h1{font-size:34px;margin:8px 0 24px;color:#111}nav{display:flex;gap:26px;justify-content:center;flex-wrap:wrap}.nav{border:0;background:white;color:#6b7280;font-weight:700;padding:10px 14px;cursor:pointer}.nav.active{color:#0f766e;border-bottom:3px solid #0f766e}.wrap{max-width:1180px;margin:0 auto;padding:10px 18px 40px}.calendar-card,.album-card{border:1px solid #e5e7eb;border-radius:10px;background:#fff;margin-top:22px;box-shadow:0 2px 12px rgba(0,0,0,.03)}.calendar-card{padding:18px}.month-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}.month-bar h2{font-size:30px;margin:0}.month-bar button,.album-head button,.upload-box button{border:1px solid #dbe3e8;border-radius:8px;background:#fff;padding:10px 16px;font-weight:700;cursor:pointer}.calendar{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;margin-top:16px}.day-name,.day{min-height:78px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:12px;text-align:center;font-weight:700}.day-name{min-height:38px;background:#fafafa}.day:nth-child(7n),.day-name:nth-child(7n){border-right:0}.sun{color:#dc2626}.sat{color:#2563eb}.day{cursor:pointer;position:relative;background:#fff}.day:hover,.day.selected{background:#ecfdf5}.empty{background:#fafafa;cursor:default}.photo-badge{display:block;margin-top:10px;color:#0f766e;font-size:13px}.hint{text-align:center;color:#6b7280}.album-card{padding:16px}.album-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eef2f7;padding-bottom:14px}.album-head>div{display:flex;align-items:center;gap:12px}.album-head h2{margin:0;font-size:26px}.back{font-size:24px;border:0!important}.album-head #toggleUpload,.upload-box button{background:#0f766e;color:white;border-color:#0f766e}.album-body{display:grid;grid-template-columns:260px 1fr;gap:28px;padding:18px 0}.upload-box{border:1px solid #e5e7eb;border-radius:8px;padding:18px;height:max-content}.upload-box h3{margin-top:0}.upload-box label{display:block;margin:14px 0 7px;font-weight:700}.upload-box input,.upload-box textarea{width:100%;border:1px solid #dbe3e8;border-radius:8px;padding:11px;font-family:inherit}.upload-box textarea{height:86px;resize:vertical}.upload-box button{width:100%;margin-top:16px}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.photo-card{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:white}.photo-card img{width:100%;height:150px;object-fit:cover;display:block;cursor:pointer}.photo-info{padding:10px}.photo-info h4{margin:0 0 6px}.photo-info p{margin:0 0 8px;color:#4b5563;font-size:14px}.meta{font-size:12px;color:#6b7280;display:flex;gap:8px;flex-wrap:wrap}.delete{margin-top:8px;border:0;background:#fee2e2;color:#991b1b;padding:6px 8px;border-radius:6px;cursor:pointer}.empty-msg{color:#6b7280;text-align:center;padding:60px 0}.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:10;align-items:center;justify-content:center;flex-direction:column;padding:24px}.lightbox.show{display:flex}.lightbox img{max-width:92vw;max-height:72vh;border-radius:10px}.lightbox button{position:absolute;top:22px;right:30px;font-size:42px;background:transparent;color:white;border:0;cursor:pointer}.lightbox div{color:white;margin-top:16px;text-align:center;max-width:720px}footer{text-align:center;color:#6b7280;padding:30px}@media(max-width:900px){.album-body{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}.day{min-height:64px;padding:8px}.month-bar h2{font-size:24px}.hero h1{font-size:28px}}@media(max-width:520px){.gallery{grid-template-columns:1fr 1fr}.photo-card img{height:120px}.month-bar button{padding:8px}.album-head{align-items:flex-start;gap:10px;flex-direction:column}}
.contact-card{border:1px solid #e5e7eb;border-radius:10px;background:#fff;margin-top:22px;box-shadow:0 2px 12px rgba(0,0,0,.03);padding:24px;text-align:center}.contact-card h2{margin-top:0}.contact-card p{color:#4b5563}
.day{border:0;font:inherit;text-align:center}.small-note{font-size:12px;color:#6b7280;line-height:1.4;margin:10px 0 0}
