:root{--bg: #f6f3ef;--surface: #ffffff;--text: #1c1917;--text-muted: #78716c;--accent: #c2410c;--accent-soft: #fff7ed;--border: rgba(28, 25, 23, .08);--shadow: 0 12px 40px rgba(28, 25, 23, .08);--radius: 18px;--radius-sm: 12px;--header-h: 72px;font-family:Manrope,system-ui,sans-serif;color:var(--text);background:var(--bg);line-height:1.5}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:50;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.25rem;padding:.75rem 1.25rem;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.logo{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:inherit;font-weight:700;font-size:1.15rem}.logo__mark{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#ea580c);color:#fff;display:grid;place-items:center;font-size:1rem}.logo__text{letter-spacing:-.02em}.nav{display:flex;flex-wrap:wrap;gap:.35rem;flex:1;min-width:0;justify-content:center}.nav__chip{border:none;background:transparent;color:var(--text-muted);font:inherit;font-size:.875rem;font-weight:500;padding:.4rem .85rem;border-radius:999px;cursor:pointer;transition:background .15s,color .15s}.nav__chip:hover{background:var(--border);color:var(--text)}.nav__chip--active{background:var(--text);color:#fafaf9}.header__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-left:auto}.search{display:flex;align-items:center;gap:.4rem;padding:.45rem .85rem;background:var(--surface);border-radius:999px;border:1px solid var(--border);min-width:min(280px,100%);box-shadow:0 2px 8px #1c19170a}.search__icon{color:var(--text-muted);display:flex;flex-shrink:0}.search__input{border:none;background:transparent;font:inherit;font-size:.9rem;min-width:0;flex:1;outline:none}.search__input::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border);background:var(--surface);font:inherit;font-size:.875rem;font-weight:600;padding:.45rem .9rem;border-radius:999px;cursor:pointer;color:var(--text);transition:background .15s,border-color .15s,box-shadow .15s}.btn:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:0 2px 12px #c2410c1f}.btn[aria-pressed=true]{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent)}.btn__icon{font-size:1rem;line-height:1}.badge{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700}.main{flex:1;padding:1.5rem 1.25rem 3rem;max-width:1440px;margin:0 auto;width:100%}.hero{text-align:center;margin-bottom:1.5rem;padding:.5rem 0}.hero__title{margin:0 0 .35rem;font-size:clamp(1.75rem,4vw,2.35rem);font-weight:700;letter-spacing:-.03em}.hero__subtitle{margin:0;color:var(--text-muted);font-size:1rem;max-width:36rem;margin-inline:auto}.toolbar{margin-bottom:1rem}.toolbar__hint{margin:0;font-size:.875rem;color:var(--text-muted)}.masonry{column-count:2;column-gap:1rem}@media (min-width: 640px){.masonry{column-count:3;column-gap:1.15rem}}@media (min-width: 900px){.masonry{column-count:4;column-gap:1.25rem}}@media (min-width: 1200px){.masonry{column-count:5}}.card{break-inside:avoid;margin-bottom:1rem;border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--border);transition:transform .2s ease,box-shadow .2s ease}.card:hover{transform:translateY(-3px);box-shadow:0 20px 48px #1c19171f}.card__inner{position:relative;overflow:hidden}.card__img{display:block;width:100%;height:auto;vertical-align:middle}.card__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(28,25,23,.55),transparent 45%);opacity:0;display:flex;align-items:flex-start;justify-content:flex-end;padding:.75rem;transition:opacity .2s ease;pointer-events:none}.card:hover .card__overlay{opacity:1;pointer-events:auto}.card__save{border:none;font:inherit;font-size:.8rem;font-weight:600;padding:.45rem .85rem;border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer;box-shadow:0 4px 14px #00000026;transition:background .15s,color .15s,transform .15s}.card__save:hover{transform:scale(1.02)}.card__save--active{background:var(--accent);color:#fff}.card__body{padding:.75rem .9rem .95rem}.card__title{margin:0 0 .45rem;font-size:.9rem;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card__tags{display:flex;flex-wrap:wrap;gap:.35rem}.tag{font-size:.7rem;font-weight:500;color:var(--text-muted);background:var(--bg);padding:.15rem .5rem;border-radius:6px}.empty{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty__title{margin:0 0 .5rem;font-size:1.15rem;font-weight:600;color:var(--text)}.empty__text{margin:0}.footer{padding:1.25rem;text-align:center;font-size:.8rem;color:var(--text-muted);border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 70%,var(--bg))}body.modal-open{overflow:hidden}.header__auth{display:flex;align-items:center;flex-shrink:0}.auth-guest,.auth-user{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.auth-user__name{font-size:.85rem;font-weight:600;max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.btn--ghost{background:transparent;border-color:transparent}.btn--ghost:hover{background:var(--border);border-color:transparent;box-shadow:none}.btn--primary{background:var(--accent);color:#fff;border-color:color-mix(in srgb,var(--accent) 85%,#000)}.btn--primary:hover{filter:brightness(1.05);box-shadow:0 4px 16px #c2410c59}.btn--block{width:100%;justify-content:center;margin-top:.25rem}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:grid;place-items:center;padding:1rem}.modal[hidden]{display:none!important}.modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#1c191773;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal__panel{position:relative;width:min(100%,400px);max-height:min(90vh,640px);overflow:auto;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:0 24px 64px #1c191733;padding:1.25rem 1.35rem 1.5rem}.modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.modal__title{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.modal__close{border:none;background:var(--bg);width:2.25rem;height:2.25rem;border-radius:999px;font-size:1.35rem;line-height:1;cursor:pointer;color:var(--text-muted);flex-shrink:0}.modal__close:hover{color:var(--text);background:var(--border)}.auth-tabs{display:flex;gap:.35rem;margin-bottom:1rem;padding:.2rem;background:var(--bg);border-radius:999px}.auth-tabs__btn{flex:1;border:none;background:transparent;font:inherit;font-size:.875rem;font-weight:600;padding:.45rem .75rem;border-radius:999px;cursor:pointer;color:var(--text-muted)}.auth-tabs__btn--active{background:var(--surface);color:var(--text);box-shadow:0 2px 8px #1c191714}.auth-panel{min-height:12rem}.auth-error{margin:0 0 .75rem;font-size:.85rem;font-weight:500;color:#b91c1c;min-height:1.25rem}.auth-form{display:flex;flex-direction:column;gap:.85rem}.field{display:flex;flex-direction:column;gap:.35rem}.field__label{font-size:.8rem;font-weight:600;color:var(--text-muted)}.field__input{font:inherit;font-size:.95rem;padding:.55rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.field__input:focus{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.modal--wide .modal__panel{width:min(100%,720px)}.modal__panel--scroll{max-height:min(88vh,800px);overflow-y:auto}.btn--sm{font-size:.8rem;padding:.3rem .65rem}.profile-hint{margin:0 0 1rem;font-size:.875rem;color:var(--text-muted)}.profile-upload{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin-bottom:.75rem}.profile-upload__btn{cursor:pointer}.profile-upload__note{font-size:.75rem;color:var(--text-muted);max-width:36rem;line-height:1.4}.profile-empty{margin:1rem 0 0;color:var(--text-muted);font-size:.9rem}.profile-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-top:1rem}.profile-card{border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);background:var(--bg)}.profile-card__img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.profile-card__bar{padding:.35rem .5rem;display:flex;justify-content:flex-end;background:var(--surface)}.admin-stats{font-size:.9rem;margin-bottom:1.25rem;line-height:1.5}.admin-section-title{margin:0 0 .5rem;font-size:1rem;font-weight:700}.admin-table-wrap{overflow-x:auto;margin-bottom:1.5rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-table{width:100%;border-collapse:collapse;font-size:.8rem}.admin-table th,.admin-table td{padding:.5rem .65rem;text-align:left;border-bottom:1px solid var(--border)}.admin-table th{background:var(--bg);font-weight:600;color:var(--text-muted)}.admin-table tr:last-child td{border-bottom:none}.admin-recent{display:flex;flex-direction:column;gap:.65rem}.admin-recent__row{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg)}.admin-recent__thumb{width:56px;height:56px;object-fit:cover;border-radius:8px;flex-shrink:0}.admin-recent__meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;font-size:.8rem}.admin-recent__email{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-recent__date{color:var(--text-muted);font-size:.75rem}@media (max-width: 720px){.header{flex-direction:column;align-items:stretch}.nav{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.25rem;-webkit-overflow-scrolling:touch}.header__actions{margin-left:0;flex-direction:column;align-items:stretch}.search{width:100%}}
