*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#f5efe6,#f3e8dd);color:#5b4a3c;overflow-x:hidden}.app{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.app-centered{flex-direction:column;text-align:center;gap:12px}.card{width:100%;max-width:520px;background:#fffaf5;border:1px solid #eddcc9;border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 10px 30px #795e481f}.auth-card{max-width:720px;padding:0;background:radial-gradient(circle at 15% 20%,rgba(247,231,214,.5),transparent 28%),radial-gradient(circle at 85% 78%,rgba(241,219,196,.42),transparent 26%),linear-gradient(135deg,#faf3ea,#f5ecdf);border:none;box-shadow:none}.auth-shell{width:min(100%,760px);margin:0 auto;min-height:640px;border-radius:28px;overflow:hidden;position:relative;padding:36px;display:flex;justify-content:center;background:radial-gradient(circle at top left,rgba(255,255,255,.42),transparent 28%),radial-gradient(circle at bottom right,rgba(242,224,205,.32),transparent 34%),linear-gradient(180deg,#f9f1e8,#f4e8db);box-shadow:0 30px 60px #8f6c4e29}.auth-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 18% 32%,rgba(255,255,255,.08),transparent 24%),radial-gradient(circle at 74% 78%,rgba(255,255,255,.06),transparent 22%);pointer-events:none}.auth-panel{width:min(100%,430px);min-height:568px;position:relative;z-index:1;padding:34px 34px 28px;display:flex;flex-direction:column;gap:24px;border-radius:22px;background:linear-gradient(180deg,#fffaf5,#fbf4eb);border:1px solid rgba(228,205,181,.7);box-shadow:0 14px 30px #a37d5c1f}.auth-panel-head{display:flex;flex-direction:column;gap:26px}.auth-header{display:flex;align-items:flex-start;gap:14px}.auth-brand{display:flex;flex-direction:column;gap:4px}.auth-kicker{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#96785cb8}.auth-tabs,.oauth-row{display:flex;gap:18px}.auth-tab{position:relative;padding:0 0 12px;border:0;background:none;color:#85695094;border-radius:0;text-transform:uppercase;letter-spacing:.04em;font-weight:700;cursor:pointer;transition:color .2s ease}.auth-tab.active{color:#6d4e35}.auth-tab.active:after{content:"";position:absolute;left:0;bottom:0;width:48px;height:3px;border-radius:999px;background:#e6c9ab}.auth-form{gap:18px}.auth-form-wrap{flex:1;display:flex;flex-direction:column;gap:22px}.form-intro{display:flex;flex-direction:column;gap:8px}.form-intro h2{margin:0;font-size:1.55rem;color:#5b4230}.form-intro p{color:#85684d;line-height:1.5}.field{display:flex;flex-direction:column;gap:10px}.field-label{font-size:12px;font-weight:700;text-transform:uppercase;color:#8d6d50;letter-spacing:.08em}.form-actions{display:flex;flex-direction:column;gap:10px;padding-top:4px}.auth-actions-stack{gap:12px}.auth-submit{width:100%;min-height:52px;border-radius:999px}.auth-secondary-btn{background:#fcf5ed;color:#7a5940;border-color:#e8d2bc}.auth-utility-row{display:flex;align-items:center;gap:12px;color:#8b6a4d}.auth-utility-text{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.auth-toggle{position:relative;display:inline-flex;align-items:center;width:44px;height:24px;padding:2px;border-radius:999px;background:#ead7c475;border:1px solid rgba(226,201,176,.6);cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.auth-toggle.active{background:#e7ceb2;border-color:#e7ceb2}.auth-toggle input{position:absolute;opacity:0;pointer-events:none}.auth-toggle-thumb{width:18px;height:18px;border-radius:50%;background:#fffaf5;transition:transform .2s ease;box-shadow:0 3px 6px #795e4829}.auth-toggle.active .auth-toggle-thumb{transform:translate(20px)}.auth-support{display:flex;flex-direction:column;gap:16px;margin-top:auto;padding-top:20px;border-top:1px solid rgba(228,205,181,.65)}.auth-link-btn{align-self:center;padding:0;border:0;background:none;color:#7a5940cc;font:inherit;font-weight:600;cursor:pointer}.auth-link-btn:hover{color:#6f5037}.forgot-form{padding:18px;border-radius:18px;background:#f8f0e6;border:1px solid #e9d5c1}.logo{width:44px;height:44px;border-radius:12px;background:#f1e0cc;color:#7c624a;display:grid;place-items:center;font-size:22px;font-weight:700}.auth-panel h1,.auth-panel h2,.auth-panel p,.auth-panel .subtitle{color:#7d6248}.auth-panel h1,.auth-panel h2{color:#5b4230}.auth-panel input{border:1px solid #e4cfba;background:#fff;color:#5b4a3c}.auth-panel input::placeholder{color:#aa9177}.auth-panel input:focus{border-color:#d7b89b;box-shadow:0 0 0 3px #d7b89b29}.auth-panel .btn{background:#fcf5ed;border-color:#e6d0bb;color:#75563d}.auth-panel .btn.active{background:#ead0b2;border-color:#ead0b2;color:#6d4a30}.auth-panel .status{background:#f7ede2;border:1px solid #e4cfba;color:#7a5940}.subtitle{color:#e8f1faad;margin-top:0}h1{margin:0;font-size:1.95rem;color:#f8fbff}p{margin:0}.form{display:flex;flex-direction:column;gap:10px}.form.compact{margin-top:2px}input{width:100%;border:1px solid rgba(235,243,251,.12);border-radius:999px;background:#f8fbff29;color:#f8fbff;padding:14px 18px;font-size:14px}input::placeholder{color:#ebf3fb75}textarea{width:100%;border:1px solid #e8d2bc;border-radius:12px;background:#fff;color:#5b4a3c;padding:10px 12px;font-size:14px;resize:vertical;min-height:110px;font-family:inherit}input:focus{outline:none;border-color:#d9e7f5d1;box-shadow:0 0 0 3px #d9e7f529}textarea:focus{outline:none;border-color:#ccab8f}.input-error{border-color:#d25a5a!important;box-shadow:0 0 0 2px #d25a5a1f}.field-error{margin-top:-4px;font-size:13px;color:#b03b3b}.btn{border:1px solid rgba(217,231,245,.28);background:#ebf3fb1f;color:#f8fbff;border-radius:16px;padding:12px 16px;font-weight:600;cursor:pointer;text-align:center;text-decoration:none}.btn.active{background:#d9e7f5;border-color:#d9e7f5;color:#36506b}.btn:hover{filter:brightness(.98)}.status{background:#ebf3fb1f;border:1px solid rgba(235,243,251,.16);border-radius:16px;padding:10px;font-size:14px;color:#f8fbff;overflow-wrap:anywhere}.admin-shell .btn,.memory-shell .btn,.profile-page .btn,.public-memory-shell .btn{background:#fff;border-color:#e2d0bc;color:#6b523c}.admin-shell .btn.active,.memory-shell .btn.active,.profile-page .btn.active,.public-memory-shell .btn.active{background:#ead1b3;border-color:#ead1b3;color:#6b4526}.admin-shell input,.memory-shell input,.profile-page input,.public-memory-shell input{border:1px solid #e8d2bc;background:#fff;color:#5b4a3c}.admin-shell input::placeholder,.memory-shell input::placeholder,.profile-page input::placeholder,.public-memory-shell input::placeholder{color:#a18b76}.admin-shell input:focus,.memory-shell input:focus,.profile-page input:focus,.public-memory-shell input:focus{border-color:#d5b392;box-shadow:0 0 0 3px #d5b39226}.admin-content h1,.memory-dashboard-copy h1,.profile-hero-text h1{color:#5b4a3c}.admin-shell .status,.memory-shell .status,.profile-page .status,.public-memory-shell .status{background:#f8eee3;border:1px solid #e0c5ae;color:#6b523c}@media (max-width: 640px){.app{padding:16px}.auth-card{max-width:100%}.auth-shell{min-height:auto;padding:14px;border-radius:22px}.auth-panel{width:100%;min-height:auto;padding:22px 20px;gap:18px}.auth-tabs,.oauth-row{gap:16px}.form-intro h2{font-size:1.25rem}.auth-utility-row{flex-wrap:wrap}}.admin-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.admin-sidebar{background:#f6efe6;border-right:1px solid #e7d8c7;padding:24px;display:flex;flex-direction:column;gap:14px}.admin-sidebar h2{margin:0;font-size:24px}.admin-menu{display:flex;flex-direction:column;gap:8px}.admin-user{margin-top:auto;display:flex;flex-direction:column;gap:2px}.admin-user span{color:#8f765f;font-size:13px}.admin-content{padding:28px;display:flex;flex-direction:column;gap:14px}.admin-content h1{margin:0;font-size:30px}.admin-card{max-width:980px}.roles-list{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.role-chip{display:inline-block;border:1px solid #d9c0a9;border-radius:999px;padding:6px 10px;background:#f8eee3;font-size:13px}.users-list{display:flex;flex-direction:column;gap:10px}.users-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.users-table-wrap{overflow-x:auto;overflow-y:auto;max-height:420px;border:1px solid #e8d2bc;border-radius:12px;background:#fff}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{text-align:left;padding:8px 10px;border-bottom:1px solid #f0e0d0;font-size:13px;vertical-align:middle}.users-table th{font-weight:700;color:#6c5642}.user-row{border:1px solid #e8d2bc;border-radius:12px;padding:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.user-meta{display:flex;flex-direction:column;gap:2px}.user-meta span{color:#8f765f;font-size:13px}.user-actions{display:flex;gap:8px}.user-actions.compact{justify-content:flex-end}.user-actions.compact .btn{padding:8px 10px}.user-actions.compact select{min-width:120px}select{border:1px solid #e8d2bc;border-radius:10px;padding:8px 10px;background:#fff;color:#5b4a3c}.memory-shell{min-height:100vh;padding:24px;display:flex;justify-content:center;align-items:flex-start}.memory-main-card{width:100%;max-width:860px;gap:16px}.memory-main-card h1,.memory-main-card h2,.memory-main-card strong,.profile-page h1,.profile-page h2,.profile-page strong{color:#5b4a3c}.memory-main-card .subtitle,.memory-main-card p,.profile-page .subtitle,.profile-page p{color:#7a6450}.memory-main-card .status,.profile-page .status{background:#f8eee3;border-color:#e0c5ae;color:#6b523c}.memory-dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}.memory-dashboard-copy{display:flex;flex-direction:column;gap:6px}.memory-toolbar{display:flex;flex-direction:column;gap:12px;margin-left:auto;min-width:min(100%,360px)}.memory-toolbar-user{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid #ead7c3;border-radius:16px;background:#f8ecdf8c}.memory-toolbar-user span{color:#8a6d56;font-size:14px;overflow-wrap:anywhere}.memory-toolbar-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.memory-dashboard-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.memory-summary-card{border:1px solid #ead7c3;border-radius:16px;padding:16px;background:#f8ecdf73;display:flex;flex-direction:column;gap:6px}.memory-summary-card strong{font-size:1.6rem;color:#5f4a38}.memory-summary-label{font-size:13px;font-weight:700;color:#856a54;letter-spacing:.02em}.memory-form-card{width:100%;max-width:680px}.memory-head{display:flex;align-items:center;gap:12px}.memory-head .btn{margin-left:auto}.memory-create-card{max-width:100%;box-shadow:none;border-style:dashed}.privacy-toggle{display:flex;align-items:center;gap:8px;font-size:14px}.privacy-toggle input{width:auto}.memory-list{display:flex;flex-direction:column;gap:10px}.memory-card-main{flex:1;display:flex;align-items:center;gap:14px;min-width:0;border:0;background:transparent;padding:0;color:inherit;text-align:left;cursor:pointer}.memory-avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;border:1px solid #e8d2bc;background:#fff;flex-shrink:0}.memory-avatar-fallback{display:grid;place-items:center;font-size:28px;font-weight:700;background:#ead7c4;color:#7a6049}.memory-item-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.memory-preview-text{color:#755c48;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.memory-item{background:#fff;border:1px solid #e8d2bc;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}.memory-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.memory-item-actions{display:flex;gap:8px}.memory-media-section{margin-top:8px;border-top:1px solid #efdfcf;padding-top:10px;display:flex;flex-direction:column;gap:10px}.memory-media-section h4{margin:0;font-size:15px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.media-card{border:1px solid #ead8c6;border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:8px;background:#fffdfb}.media-card img,.media-card video{width:100%;border-radius:8px;border:1px solid #e8d2bc;background:#fff}.media-text{white-space:pre-wrap;font-size:14px}.btn.danger{border-color:#d7adad;background:#f9e6e6;color:#834646}.memory-badge{border:1px solid #d9c0a9;border-radius:999px;padding:4px 8px;font-size:12px;background:#f8eee3}.memory-badge.public{background:#e8f5e7;border-color:#b7d9b5;color:#3f6b3f}.memory-badge.private{background:#f7ece4;border-color:#e0c5ae;color:#7a5b45}.memory-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.memory-form-heading{display:flex;flex-direction:column;gap:6px}.memory-form-heading h2{margin:0}.memory-form-preview{display:block;width:96px;height:96px;object-fit:cover;border-radius:16px;border:1px solid #e8d2bc;margin:8px 0 12px}.memory-form-actions{display:flex;gap:10px}.memory-form-back{align-self:flex-start}.file-input-hidden{display:none}.upload-field{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.upload-field-hint{color:#856a54;font-size:14px;overflow-wrap:anywhere}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#34251873;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{position:relative;width:min(560px,100%);max-height:calc(100vh - 40px);overflow-y:auto;background:#fffaf5;border:1px solid #e8d2bc;border-radius:20px;padding:24px;box-shadow:0 20px 50px #3222162e}.modal-close{position:absolute;top:14px;right:16px;border:0;background:transparent;font-size:28px;color:#7a5b45;cursor:pointer}.share-panel{display:flex;flex-direction:column;gap:14px}.share-panel h2{margin:0}.share-qr{display:flex;justify-content:center}.share-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.share-warning,.share-status{font-size:14px}.share-warning{color:#8b5f27}.admin-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.admin-memory-list{display:flex;flex-direction:column;gap:10px}.admin-memory-row{border:1px solid #e8d2bc;background:#fff;color:#5b4a3c;border-radius:12px;padding:12px 14px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;text-align:left;cursor:pointer}.admin-section-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-memory-detail{max-width:980px}.admin-memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-text-list,.public-memory-text-list{display:flex;flex-direction:column;gap:10px}.public-memory-shell{min-height:100vh;padding:24px;display:flex;justify-content:center}.public-memory-card{width:100%;max-width:860px}.public-memory-hero,.gallery-image{width:100%;border-radius:16px;border:1px solid #e8d2bc;background:#fff}.gallery-image{aspect-ratio:1 / 1;object-fit:cover}.public-memory-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.public-memory-text,.public-memory-meta{line-height:1.5}.public-memory-section{display:flex;flex-direction:column;gap:10px}.profile-page{width:100%;max-width:980px;gap:18px}.profile-topbar{display:flex;justify-content:flex-start}.profile-layout{display:flex;flex-direction:column;gap:18px}.profile-hero{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;border:1px solid #ead7c3;border-radius:18px;padding:20px;background:#f8ecdf73}.profile-avatar-wrap{display:flex;align-items:center;justify-content:center}.profile-avatar{width:108px;height:108px;border-radius:50%;object-fit:cover;border:1px solid #e8d2bc;background:#fff}.profile-avatar-fallback{display:grid;place-items:center;font-size:2rem;font-weight:700;background:#ead7c4;color:#7a6049}.profile-hero-text{display:flex;flex-direction:column;gap:8px}.profile-hero-text h1,.profile-section-head h2{margin:0}.profile-email{color:#8a6d56;overflow-wrap:anywhere}.profile-hero-actions{display:flex;justify-content:flex-end}.profile-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.profile-section{border:1px solid #ead7c3;border-radius:18px;padding:20px;background:#fffdfb;display:flex;flex-direction:column;gap:16px}.profile-section-head{display:flex;flex-direction:column;gap:6px}.profile-password-grid{display:grid;gap:12px}.profile-actions{display:flex;justify-content:flex-start}.profile-status-error{background:#f9e6e6;border-color:#d7adad;color:#834646}.profile-loading{padding:32px;text-align:center}@media (max-width: 1024px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{border-right:0;border-bottom:1px solid #e7d8c7}.admin-menu{flex-direction:row}.admin-user{margin-top:0}.admin-content{padding:18px}}@media (max-width: 720px){.app,.memory-shell{padding:12px}.card{padding:16px;border-radius:14px}h1{font-size:1.6rem}.switcher{grid-template-columns:1fr}.btn,input,select{min-height:42px}.admin-sidebar,.admin-content{padding:12px}.admin-menu{flex-direction:column}.memory-head{align-items:flex-start;flex-direction:column}.memory-head .btn{margin-left:0;width:100%}.memory-dashboard-head{flex-direction:column}.profile-hero,.profile-sections{grid-template-columns:1fr}.memory-toolbar{width:100%;min-width:0;margin-left:0}.memory-toolbar-actions,.profile-hero-actions,.profile-actions{flex-direction:column;align-items:stretch}.memory-dashboard-summary{grid-template-columns:1fr}.memory-item-head{flex-direction:column;align-items:flex-start}.memory-item-actions,.user-actions.compact,.memory-form-actions{flex-direction:column;align-items:stretch}.memory-form-grid,.admin-memory-grid,.admin-filters,.share-actions,.admin-memory-row{grid-template-columns:1fr}.memory-card-main{align-items:flex-start}.users-table th,.users-table td{font-size:12px;padding:7px 8px}.users-table thead{display:none}.users-table,.users-table tbody,.users-table tr,.users-table td{display:block;width:100%}.users-table tr{border-bottom:1px solid #f0e0d0;padding:10px}.users-table td{border:0;padding:6px 0}.users-table td:before{content:attr(data-label);display:block;font-size:11px;color:#8f765f;margin-bottom:4px}.user-actions.compact select,.user-actions.compact .btn,.memory-item-actions .btn,.media-card .btn,.share-actions .btn,.memory-toolbar-actions .btn,.profile-hero-actions .btn,.profile-actions .btn{width:100%}.media-grid{grid-template-columns:1fr}}@media (max-width: 420px){.card{padding:14px}h1{font-size:1.4rem}.subtitle{font-size:13px}.memory-item{padding:10px}.public-memory-shell{padding:12px}}
