:root{--brand:#2f7d6d;--ink:#17212b;--muted:#6a7680;--line:#e5eaed;--soft:#f5f8fa}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f8faf9}a{text-decoration:none;color:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.visual{background:linear-gradient(160deg,#173d34,#2f7d6d);padding:50px;color:white;display:flex;flex-direction:column}.logo{font-weight:900;font-size:1.4rem;display:flex;align-items:center;gap:10px}.logo-badge{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#fff;color:var(--brand);font-size:.86rem}.visual-copy{margin:auto 0}.visual-copy h1{font-size:clamp(3rem,6vw,5.3rem);line-height:.94;letter-spacing:-.055em;max-width:720px;margin:0 0 20px}.visual-copy p{font-size:1.1rem;color:#d4e8e1;max-width:560px}.auth{padding:50px;display:flex;align-items:center;justify-content:center}.panel{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:0 20px 60px rgba(20,40,32,.08)}.panel h2{font-size:2rem;letter-spacing:-.035em;margin:0 0 8px}.panel>p{color:var(--muted);margin-top:0}.field{margin-top:17px}.field label{display:block;font-size:.86rem;font-weight:800;margin-bottom:7px}.field input{width:100%;padding:13px 14px;border:1px solid #dbe2e5;border-radius:12px;font-size:1rem}.btn{margin-top:22px;width:100%;border:0;border-radius:12px;padding:14px;background:var(--brand);color:#fff;font-weight:850;font-size:1rem;cursor:pointer}.sub{margin-top:20px;text-align:center;color:var(--muted);font-size:.9rem}.sub a{color:var(--brand);font-weight:800}.notice{padding:11px 13px;background:#edf7f3;border:1px solid #d2eae1;border-radius:12px;color:#346358;font-size:.84rem;margin:16px 0}.dashboard{min-height:100vh;display:grid;grid-template-columns:250px 1fr;background:#f7f9f8}.sidebar{background:#10251f;color:#dce8e4;padding:24px;display:flex;flex-direction:column;gap:28px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:11px 12px;border-radius:10px;color:#b9cbc5}.sidebar nav a.active,.sidebar nav a:hover{background:#1a3930;color:white}.main{padding:34px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.topbar h1{margin:0;font-size:2rem;letter-spacing:-.04em}.avatar{width:42px;height:42px;border-radius:50%;background:#dcebe5;display:grid;place-items:center;color:var(--brand);font-weight:900}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat,.dash-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.stat span{display:block;color:var(--muted);font-size:.82rem}.stat strong{font-size:1.8rem}.dash-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:16px;margin-top:16px}.upload{border:2px dashed #c9d8d2;border-radius:16px;min-height:220px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:30px;background:#fbfdfc}.family-members{display:grid;gap:10px}.member{display:flex;align-items:center;gap:11px;padding:10px;border-radius:12px;background:var(--soft)}.member-dot{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#dcebe5;color:var(--brand);font-weight:800}.badge{display:inline-block;padding:5px 8px;border-radius:99px;background:#eaf5f1;color:var(--brand);font-size:.72rem;font-weight:900}@media(max-width:900px){.shell{grid-template-columns:1fr}.visual{min-height:310px}.auth{padding:28px}.dashboard{grid-template-columns:1fr}.sidebar{display:none}.stats{grid-template-columns:1fr 1fr}.dash-grid{grid-template-columns:1fr}}@media(max-width:560px){.stats{grid-template-columns:1fr}.main{padding:22px}.panel{padding:24px}}

/* Build 1.0D Media Vault */
.media-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:18px 0 20px}
.media-toolbar .btn{width:auto;margin:0;padding:10px 14px}
.media-toolbar input,.media-toolbar select{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.media-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;position:relative}
.media-thumb{aspect-ratio:1/1;background:#e8efec;display:flex;align-items:center;justify-content:center;overflow:hidden}
.media-thumb img,.media-thumb video{width:100%;height:100%;object-fit:cover}
.media-meta{padding:11px 12px}
.media-meta strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.88rem}
.media-meta span{font-size:.76rem;color:var(--muted)}
.favorite-btn{position:absolute;top:8px;right:8px;border:0;background:rgba(255,255,255,.92);width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:1rem}
.empty-state{padding:48px 25px;border:2px dashed #cedbd6;border-radius:18px;text-align:center;background:#fbfdfc}
.upload-modal{border:0;border-radius:20px;padding:0;width:min(620px,calc(100% - 28px));box-shadow:0 20px 70px rgba(0,0,0,.22)}
.upload-modal::backdrop{background:rgba(11,23,20,.5)}
.upload-modal .modal-inner{padding:26px}
.upload-modal .modal-head{display:flex;justify-content:space-between;align-items:center}
.upload-modal .modal-head button{border:0;background:none;font-size:1.5rem;cursor:pointer}
.upload-drop{margin-top:16px;border:2px dashed #c6d7d0;border-radius:16px;padding:30px;text-align:center;background:#f8fbfa}
.progress{height:9px;border-radius:99px;background:#e8efec;overflow:hidden;margin-top:12px;display:none}
.progress>span{height:100%;display:block;width:0;background:var(--brand);transition:.2s}
.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.album-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.album-card h3{margin:0 0 6px}
.storage-bar{height:10px;background:#e5ece9;border-radius:99px;overflow:hidden;margin:10px 0}
.storage-bar span{display:block;height:100%;background:var(--brand)}
@media(max-width:1000px){.media-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.media-grid{grid-template-columns:repeat(2,1fr)}.album-grid{grid-template-columns:1fr}}
@media(max-width:430px){.media-grid{grid-template-columns:1fr}}

/* Build 1.0E */
.media-card input.bulk-check{width:18px;height:18px}
.media-card:has(.bulk-check:checked){outline:3px solid rgba(47,125,109,.35)}
.timeline-month{margin-bottom:34px}
.detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:650px){.detail-meta{grid-template-columns:1fr}}

/* Build 1.0F */
.year-cover-card{min-height:230px;border-radius:22px;padding:34px;background:linear-gradient(135deg,#173d34,#2f7d6d);color:#fff}.year-cover-card h2{font-size:2.8rem;margin:10px 0}.year-cover-card p{color:#d4e8e1}
.book-pages{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:18px}.book-draft-page{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.book-draft-page header{display:flex;justify-content:space-between;margin-bottom:12px}.book-draft-page header span,.book-draft-page footer{font-size:.7rem;color:var(--muted)}.book-draft-page footer{text-align:right;margin-top:10px}
.book-layout{display:grid;gap:7px;aspect-ratio:4/3}.book-layout.collage-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.book-layout.split-2{grid-template-columns:1fr 1fr}.book-layout.hero-1{grid-template-columns:1fr}.book-slot{background:#e7efec;border-radius:9px;overflow:hidden}.book-slot img{width:100%;height:100%;object-fit:cover}.video-memory{height:100%;display:grid;place-items:center}@media(max-width:850px){.book-pages{grid-template-columns:1fr}}

/* Build 1.0G — Yearbook Editor */
.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.cover-preview{height:250px;border-radius:16px;overflow:hidden;background:#edf2f0;display:grid;place-items:center;margin:12px 0;color:#6a7680}
.cover-preview img{width:100%;height:100%;object-fit:cover}
.editor-page{margin-bottom:18px}
.page-editor-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.page-order{display:flex;gap:6px}.page-order button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 11px;cursor:pointer}
.book-slot{position:relative}.removeMemory{position:absolute;right:5px;top:5px;width:28px;height:28px;border:0;border-radius:50%;background:rgba(20,30,27,.78);color:#fff;cursor:pointer;font-size:1rem}
.bg-white{background:#fff}.bg-soft{background:#eef4f1;padding:8px;border-radius:10px}.bg-warm{background:#f5eee6;padding:8px;border-radius:10px}.bg-dark{background:#20342e;padding:8px;border-radius:10px}
.book-layout.collage-3{grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr}.book-layout.collage-3 .book-slot:first-child{grid-row:1/3}
.book-layout.strip-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:850px){.editor-grid{grid-template-columns:1fr}}

/* Build 1.0H — VistaPrint-aligned FamPics Shop */
.provider-note{background:#edf7f3;border:1px solid #d4e8e0;border-radius:16px;padding:16px 18px;margin-bottom:18px;display:grid;gap:4px}.provider-note span{color:#587068;font-size:.86rem}
.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.shop-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.shop-visual{height:170px;background:linear-gradient(135deg,#dcebe5,#f1e6db);display:grid;place-items:center;color:#2f6659;font-weight:900;letter-spacing:.08em;text-align:center;padding:20px}.shop-card-body{padding:18px}.shop-card-body h2{margin:9px 0 7px}.shop-card-body p{color:var(--muted);min-height:68px}.shop-price{display:block;margin:12px 0;color:#234b40}
.cart-list{display:grid;gap:10px}.cart-row{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;display:flex;justify-content:space-between;gap:20px;align-items:center}.cart-row h3{margin:5px 0}.cartRemove{display:block;margin-top:8px;border:0;background:none;color:#9b4040;cursor:pointer}
@media(max-width:1050px){.shop-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.shop-grid{grid-template-columns:1fr}.cart-row{align-items:flex-start}}

/* 1.0I */
.creator-link{margin-bottom:10px}.creator-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.product-mockup{min-height:520px;border-radius:22px;background:linear-gradient(145deg,#eef3f1,#ddd8d0);display:grid;place-items:center;position:relative;overflow:hidden}.design-surface{width:64%;height:64%;background:#fff;position:relative;overflow:hidden;box-shadow:0 16px 45px rgba(0,0,0,.12)}.design-surface img{width:100%;height:100%;object-fit:cover;display:none}.design-surface #designText{position:absolute;left:8%;right:8%;bottom:8%;text-align:center;background:rgba(255,255,255,.82);padding:7px;border-radius:8px;font-weight:800}.mock-label{position:absolute;bottom:18px;font-size:.8rem;color:#61716b}.mock-mug .design-surface{width:54%;height:48%}.mock-shirt .design-surface,.mock-hoodie .design-surface{width:42%;height:48%}.mock-canvas .design-surface,.mock-poster .design-surface{width:68%;height:76%}.mock-calendar .design-surface{width:68%;height:65%}.mock-book .design-surface{width:58%;height:72%}@media(max-width:900px){.creator-grid{grid-template-columns:1fr}.product-mockup{min-height:400px}}

/* Build 1.0J — Plans & Billing */
.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}.plan-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;position:relative}.plan-card.current-plan{outline:3px solid rgba(47,125,109,.2);border-color:#94c7b7}.plan-card h2{margin:8px 0}.plan-card p{color:var(--muted);min-height:50px}.plan-price{font-size:2.2rem;font-weight:900;margin:18px 0}.plan-price small{font-size:.85rem;color:var(--muted);font-weight:600}.plan-card ul{padding-left:20px;color:#53625d;min-height:150px}.plan-card li{margin:8px 0}.plan-card .interval{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px}
@media(max-width:900px){.plans-grid{grid-template-columns:1fr}}

/* Build 1.0L */
.beta-summary{display:flex;gap:10px;flex-wrap:wrap}.beta-summary span{padding:8px 11px;border-radius:999px;font-weight:800;font-size:.82rem}.beta-pass{background:#e7f6ef;color:#246650}.beta-warning{background:#fff3d8;color:#8a6215}.beta-pending{background:#edf1f3;color:#5c6870}.beta-fail{background:#f9e3e3;color:#923e3e}

/* Build 1.0M — Admin Operations */
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.flag-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.flag-row strong,.flag-row span{display:block}.flag-row span{color:var(--muted);font-size:.82rem;margin-top:3px}
.switch{position:relative;width:50px;height:28px}.switch input{display:none}.switch span{position:absolute;inset:0;background:#cfd8d4;border-radius:999px;cursor:pointer}.switch span:after{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.2s;box-shadow:0 2px 6px rgba(0,0,0,.15)}.switch input:checked+span{background:var(--brand)}.switch input:checked+span:after{left:25px}
.admin-table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px}.admin-table{width:100%;border-collapse:collapse;min-width:780px}.admin-table th,.admin-table td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:.87rem}.admin-table th{background:#f7f9f8;color:#5e6b66}.mini-btn{border:1px solid #dbe3e0;background:#fff;border-radius:8px;padding:7px 9px;margin:2px;cursor:pointer;font-size:.75rem}
@media(max-width:900px){.admin-grid{grid-template-columns:1fr}}

/* Build 1.0N — Live User Operations */
.member-banner{background:#eef6f2;border:1px solid #d5e8e0;border-radius:13px;padding:12px 14px;margin-bottom:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.member-banner strong{color:#245f50}.member-banner span{color:#566760;flex:1}.member-banner button{border:0;background:none;color:#66756f;cursor:pointer}.beta-member-banner{background:#173d34;color:#fff;border-color:#173d34}.beta-member-banner strong,.beta-member-banner span{color:#fff}.severity-warning{background:#fff6df;border-color:#ecd7a1}.severity-critical{background:#fde9e9;border-color:#edc5c5}.severity-success{background:#e9f7ef;border-color:#cce8d7}

/* Build 1.0P — Final Regression & Launch Gate */
.qa-pass{background:#e7f6ef;color:#246650}.qa-warning{background:#fff3d8;color:#8a6215}.qa-fail{background:#f9e3e3;color:#923e3e}
.launch-stage-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}.launch-stage-row strong,.launch-stage-row span{display:block}.launch-stage-row span{color:var(--muted);font-size:.86rem;margin-top:4px}
@media(max-width:700px){.launch-stage-row{align-items:flex-start;flex-direction:column}}

/* Build 1.0Q — Controlled LIVE */
.stat strong{font-size:1.65rem}.cart-row p{margin:.5rem 0 0;color:var(--muted);max-width:900px}

.month-folder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.month-folder{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;text-decoration:none;color:#173d34;display:flex;align-items:center;gap:14px;transition:.16s ease}.month-folder:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(23,61,52,.08);border-color:#bcd6cc}.month-folder-icon{width:52px;height:44px;border-radius:9px;background:#e9f4ef;color:#2f7d6d;display:grid;place-items:center;font-size:26px}.month-folder strong,.month-folder span{display:block}.month-folder span{margin-top:4px;color:#6a7680;font-size:.82rem}@media(max-width:900px){.month-folder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.month-folder-grid{grid-template-columns:1fr}}
