*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #faf8f5;--surface: #ffffff;--text: #2d2a26;--text-sub: #6b655e;--accent: #e8735a;--accent-dark: #d05a42;--border: #e5dfd8;--danger: #c0392b}body{background:var(--bg);color:var(--text);font-family:Apple SD Gothic Neo,Noto Sans KR,-apple-system,sans-serif;font-size:18px;line-height:1.5}button{font:inherit;cursor:pointer}input{font:inherit}.btn-primary,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:12px;border:none;font-weight:600;text-decoration:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:active{background:var(--accent-dark)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-danger{background:none;color:var(--danger);border:1px solid var(--danger);min-height:40px}.btn-big{min-height:60px;font-size:20px;padding:0 32px}.btn-icon{background:none;border:none;color:#fff;font-size:28px;min-width:48px;min-height:48px}.error-text{color:var(--danger);margin-top:8px}.center-message{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;color:var(--text-sub);text-align:center;padding:24px}.landing{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px;text-align:center;gap:16px}.landing h1{font-size:32px}.landing-sub{color:var(--text-sub);max-width:320px}.landing-form{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px}.landing-form input,.invite-form input{min-height:48px;padding:0 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.landing-hint{color:var(--text-sub);font-size:15px;max-width:320px}.top-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg);border-bottom:1px solid var(--border)}.top-bar h1{font-size:20px}.top-bar nav{display:flex;gap:8px}.month-section{padding:16px}.month-section h2{font-size:22px;margin-bottom:12px}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}@media(min-width:700px){.media-grid{grid-template-columns:repeat(5,1fr)}}.media-tile{position:relative;aspect-ratio:1;border:none;padding:0;background:var(--border);border-radius:8px;overflow:hidden}.media-tile img{width:100%;height:100%;object-fit:cover;display:block}.tag-bar{display:flex;gap:8px;overflow-x:auto;padding:12px 16px 4px;-webkit-overflow-scrolling:touch}.tag-chip{flex-shrink:0;min-height:40px;padding:0 16px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:16px}.tag-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.tag-count{opacity:.7;font-size:13px}.visibility-badge{position:absolute;top:6px;left:6px;background:#0000008c;border-radius:8px;padding:2px 6px;font-size:13px}.lightbox-tags{opacity:.8;font-size:15px}.upload-options{display:flex;flex-direction:column;gap:12px;max-width:480px;margin:16px auto 0;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.upload-options label,.edit-panel label{display:flex;flex-direction:column;gap:6px;font-size:15px;color:var(--text-sub)}.upload-options input,.upload-options select,.edit-panel input,.edit-panel select,.invite-form select{min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg);font:inherit;color:var(--text)}.group-checks{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:16px}.group-check{display:flex;align-items:center;gap:6px;flex-direction:row!important}.group-check input{width:20px;height:20px;min-height:0}.edit-panel{position:absolute;bottom:88px;left:50%;transform:translate(-50%);width:min(420px,calc(100vw - 32px));background:var(--surface);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;z-index:10}.edit-actions{display:flex;gap:8px;justify-content:flex-end}.media-tile.selected{outline:3px solid var(--accent);outline-offset:-3px}.select-check{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;background:#ffffffe6;border:2px solid var(--accent);color:var(--accent);font-weight:700;display:flex;align-items:center;justify-content:center}.select-check.on{background:var(--accent);color:#fff}.bulk-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);z-index:50}.bulk-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px}.bulk-panel{width:min(480px,100%);max-height:80vh;overflow-y:auto;background:var(--surface);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:16px}.bulk-panel h2{font-size:20px}.bulk-panel h3{font-size:16px;margin-bottom:8px;color:var(--text-sub)}.folder-picker{display:flex;flex-direction:column;gap:10px}.folder-chips{display:flex;flex-wrap:wrap;gap:8px}.folder-create{display:flex;gap:8px}.folder-create input{flex:1;min-width:0;min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg);font:inherit}.folder-row{flex-direction:column;align-items:stretch!important;gap:10px!important}.folder-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.row-tag{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:10px;background:var(--bg);border:1px solid var(--border);color:var(--text-sub);font-size:13px;font-weight:400}.thumb-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:32px;color:var(--text-sub)}.video-badge{position:absolute;bottom:6px;right:6px;background:#000000a6;color:#fff;font-size:13px;padding:2px 8px;border-radius:8px}.sentinel{min-height:60px;display:flex;align-items:center;justify-content:center;color:var(--text-sub)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;z-index:100;display:flex;flex-direction:column}.lightbox-top{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;color:#fff}.lightbox-body{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto;min-height:0}.lightbox-body img,.lightbox-body video{max-width:100%;max-height:100%;object-fit:contain}.lightbox-body img.zoomed{max-width:none;max-height:none;width:200%}.video-fallback{color:#fff;text-align:center;padding:24px}.video-fallback img{max-width:80%;border-radius:12px}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff26;border:none;color:#fff;font-size:36px;width:52px;height:72px;border-radius:12px}.lightbox-nav.prev{left:8px}.lightbox-nav.next{right:8px}.lightbox-bottom{display:flex;gap:12px;justify-content:center;padding:16px}.upload-page,.settings-page{max-width:720px;margin:0 auto;padding-bottom:48px}.upload-drop{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 16px;text-align:center}.upload-queue{list-style:none;padding:0 16px;display:flex;flex-direction:column;gap:8px}.queue-item{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 16px}.queue-name{flex:1;min-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-status{color:var(--text-sub);font-size:15px}.status-done .queue-status{color:#2e7d32}.queue-item progress{width:100%}.settings-section{padding:24px 16px 0}.settings-section h2{font-size:20px;margin-bottom:8px}.section-hint{color:var(--text-sub);font-size:15px;margin-bottom:12px}.invite-form{display:flex;gap:8px}.invite-form input{flex:1;min-width:0}.invite-result{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}.invite-result input{flex:1;min-width:200px;min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-size:14px}.row-list{list-style:none;display:flex;flex-direction:column;gap:8px}.row-list li{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 16px}.row-main{flex:1;font-weight:600}.row-sub{color:var(--text-sub);font-size:15px}.settings-section .btn-secondary{margin-right:8px}
