@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap');
:root{--bg:#faf9f6;--surface:#fff;--surface-alt:#f3f1eb;--ink:#242620;--ink-2:#5d6058;--muted:#888b83;--line:#e5e5dc;--brand:#275a47;--brand-2:#e1eade;--accent:#d89a72;--shadow:0 12px 42px rgba(28,45,33,.055);--radius:18px;--font:'DM Sans',Inter,Arial,sans-serif}
:root[data-theme='dark']{--bg:#161c19;--surface:#202822;--surface-alt:#29332c;--ink:#ecf2e9;--ink-2:#c0c7be;--muted:#9da79e;--line:#354139;--brand:#8fc4a0;--brand-2:#344f3f;--shadow:0 16px 50px rgba(0,0,0,.18)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.55;min-width:320px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}img{max-width:100%}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{line-height:1.15}h1{letter-spacing:-.055em}h2,h3{letter-spacing:-.035em}.container{max-width:1230px;margin-inline:auto;padding-inline:26px}.site-header{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.header-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:25px}.logo{display:flex;align-items:center;font-size:19px;font-weight:800;letter-spacing:-.055em;white-space:nowrap}.logo-mark{height:30px;width:30px;border-radius:9px;background:var(--brand);color:var(--surface);display:inline-flex;align-items:center;justify-content:center;margin-right:10px;font-size:22px}.logo-thin{color:var(--muted);font-size:15px;letter-spacing:-.045em;font-weight:500}.main-nav,.nav-user{display:flex;align-items:center;gap:28px}.nav-link{color:var(--ink-2);font-size:13px;font-weight:700}.nav-link:hover,.text-button:hover,a:hover{color:var(--brand)}.nav-user{gap:12px}.account-name{color:var(--muted);font-size:13px}.inline-form{display:inline}.text-button,.icon-button,.ghost-button{border:0;background:transparent;color:var(--ink-2)}.text-button{font-size:13px}.icon-button{height:35px;width:35px;border:1px solid var(--line);border-radius:10px;font-size:18px}.btn{border:1px solid transparent;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:13px 20px;font-size:13px;font-weight:800;white-space:nowrap;transition:transform .16s,background .16s,color .16s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--brand);color:var(--surface)!important;border-color:var(--brand)}.btn-primary:hover{filter:brightness(1.14)}.btn-outline{color:var(--ink);border-color:var(--line);background:var(--surface)}.btn-secondary{background:var(--brand-2);color:var(--brand)}.btn-danger{background:#fee9e6;color:#a43b30}.btn-small{padding:8px 14px}.flash-stack{padding-top:14px}.flash{background:var(--brand-2);border-radius:12px;padding:12px 18px}.site-footer{border-top:1px solid var(--line);padding-block:33px;display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-top:54px}.site-footer span:first-child{color:var(--brand);font-weight:800}
.eyebrow{color:var(--brand);font-weight:800;letter-spacing:.14em;font-size:10px;display:inline-flex;align-items:center;gap:9px}.eyebrow-dot{width:7px;height:7px;border-radius:50%;background:#ca8d61}.eyebrow.muted{color:var(--muted)}.hero{min-height:450px;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:30px;padding-block:46px 64px}.hero-copy{max-width:580px}.hero h1{font-size:clamp(40px,5.1vw,68px);line-height:1.08;letter-spacing:-.062em;margin:17px 0 18px;font-weight:800}.hero h1 em{font-family:'Playfair Display',Georgia,serif;font-weight:600;color:var(--brand);letter-spacing:-.06em}.hero p{max-width:440px;font-size:16px;color:var(--ink-2);line-height:1.8;margin-bottom:28px}.hero-note{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--muted);margin-top:30px}.avatar-stack{display:flex;padding-left:8px}.avatar-stack i{font-style:normal;display:grid;place-items:center;border:3px solid var(--bg);border-radius:50%;width:31px;height:31px;margin-left:-8px;color:#fff;background:#e6a47f}.avatar-stack i:nth-child(2){background:#8bb29a}.avatar-stack i:nth-child(3){background:#cca5ba}.hero-visual{height:370px;position:relative;border-radius:32px;background:radial-gradient(circle at 65% 33%,rgba(255,255,255,.7),transparent 28%),linear-gradient(140deg,#e8ede0,#dce8df 47%,#f2e2d6);overflow:hidden}.float-card{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 28px 60px rgba(38,57,37,.18);border:8px solid rgba(255,255,255,.8);border-radius:17px;transform:rotate(-10deg);color:#fff}.float-card-a{background:radial-gradient(circle at top left,#e8b68c,#bd647e 80%);height:230px;width:207px;top:42px;left:52px}.float-card-b{background:radial-gradient(circle at top,#6b9581,#1c5250 90%);height:235px;width:210px;top:100px;right:52px;transform:rotate(10deg)}.float-card strong{font-family:Georgia,serif;font-size:26px;max-width:160px;line-height:1.18}.float-card small{font-size:10px;margin-top:17px;opacity:.9}.float-icon{font-size:38px;margin-bottom:20px}.hero-spark{position:absolute;font-size:56px;color:#d08d63}.spark-one{right:34px;top:15px}.spark-two{left:10px;bottom:6px;color:#6b9e85}.browse{padding-block:12px 55px}.section-heading,.template-heading,.page-title-row{display:flex;align-items:end;justify-content:space-between;gap:20px}.section-heading h2{font-size:33px;margin:10px 0 0}.section-heading p,.template-heading p{font-size:13px;color:var(--muted);margin:0}.occasion-pills{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 45px}.pill{border:1px solid var(--line);background:var(--surface);padding:10px 16px;border-radius:999px;font-weight:700;font-size:12px;transition:all .2s}.pill:hover,.pill.active{background:var(--brand);color:var(--surface);border-color:var(--brand)}.template-heading{align-items:center;margin-bottom:24px}.template-heading h3{font-size:24px;margin-bottom:6px}.search-box{display:flex;align-items:center;gap:6px;border:1px solid var(--line);padding:5px 5px 5px 14px;border-radius:10px;background:var(--surface)}.search-box span{font-size:23px;color:var(--muted)}.search-box input{width:180px;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.search-box button{border:0;background:var(--surface-alt);padding:9px 11px;color:var(--ink-2);border-radius:7px;font-size:12px}.theme-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.theme-card{min-width:0}.theme-cover{height:268px;position:relative;overflow:hidden;border-radius:16px;background-color:#6d927f;background-image:linear-gradient(140deg,#b5dbaf,#204f51);background-position:center;background-size:cover;box-shadow:var(--shadow);transition:transform .25s}.theme-card:hover .theme-cover{transform:translateY(-4px)}.cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.16),transparent 46%,rgba(0,0,0,.25))}.cover-content{position:absolute;top:12%;left:8%;right:8%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;text-shadow:0 2px 9px rgba(0,0,0,.3)}.cover-content .cover-small{color:#fff;font-size:8px;letter-spacing:.23em}.cover-content strong{font-family:Georgia,serif;font-size:22px;line-height:1.13;max-width:240px}.cover-year{font-size:13px;font-weight:800}.cover-photo-count{position:absolute;bottom:12px;left:12px;color:#fff;font-size:10px;border:1px solid rgba(255,255,255,.45);background:rgba(0,0,0,.22);padding:4px 9px;border-radius:99px;backdrop-filter:blur(5px)}.theme-card-meta{display:flex;justify-content:space-between;align-items:center;padding:15px 3px}.theme-kicker{color:var(--muted);font-size:10px}.theme-card-meta h4{font-size:14px;margin:3px 0 0}.theme-arrow{border:1px solid var(--line);border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-weight:800}.empty-state{grid-column:1/-1;text-align:center;border:1px dashed var(--line);border-radius:18px;padding:55px 20px}.empty-state>span{font-size:50px;color:var(--accent)}.empty-state p{color:var(--muted)}.steps{padding-block:35px 70px}.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:22px}.step-grid>div{padding:25px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.step-n{color:var(--brand);font-weight:800}.step-grid h3{margin:18px 0 6px;font-size:20px}.step-grid p{color:var(--muted);font-size:13px;max-width:260px;margin:0}
.editor-top{display:flex;align-items:end;gap:28px;justify-content:space-between;padding-block:25px 22px}.back-link{color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.editor-top h1{font-size:28px;margin:4px 0 0}.autosave-indicator{color:var(--muted);font-size:11px;display:flex;align-items:center;gap:7px}.autosave-indicator>span{background:#81b596;width:7px;height:7px;border-radius:50%}.editor-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:22px;align-items:start}.editor-panel,.preview-area{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.editor-panel{overflow:hidden}.panel-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);padding:5px 14px 0;gap:2px}.tab{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:15px 5px;font-size:12px;font-weight:800}.tab.active{color:var(--brand);border-bottom-color:var(--brand)}.panel-scroll{padding:24px;min-height:440px;max-height:790px;overflow:auto}.panel-section{display:none}.panel-section.active{display:block}.panel-head h2{font-size:20px;margin:0 0 9px}.panel-head p,.small-help{font-size:12px;color:var(--muted);line-height:1.7}.photo-upload-list{display:flex;flex-direction:column;gap:15px;margin-top:18px}.photo-input-card{padding:12px;background:var(--surface-alt);border:1px solid var(--line);border-radius:13px}.photo-input-card label{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:800;margin-bottom:10px}.photo-input-card label small{font-size:10px;color:var(--muted);font-weight:400}.photo-picker{display:flex;align-items:center;gap:12px}.photo-mini{width:57px;height:57px;flex-shrink:0;display:grid;place-items:center;background:var(--surface);border:1px dashed var(--line);border-radius:10px;color:var(--muted);overflow:hidden;font-size:21px}.photo-mini img{width:100%;height:100%;object-fit:cover}.upload-trigger{display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:9px;font-weight:800;padding:9px 13px;font-size:11px;cursor:pointer}.photo-picker input[type=file]{position:absolute;opacity:0;width:1px;height:1px}.photo-zoom{display:flex;align-items:center;gap:10px;margin-top:12px}.photo-zoom span{font-size:11px;color:var(--muted)}.photo-zoom input{min-width:0;flex:1;accent-color:var(--brand)}.photo-zoom button{border:0;color:var(--brand);background:none;font-size:11px;font-weight:700}.field-block{margin-top:22px}.field-block label,.form-field span{display:block;font-size:12px;font-weight:800;margin-bottom:8px}.form-stack{display:flex;flex-direction:column;gap:17px;margin-top:18px}.field-block input[type=text],.field-block textarea,.form-field input:not([type=checkbox]):not([type=color]),.form-field textarea,.form-field select{display:block;width:100%;min-height:41px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);outline:none}.field-block textarea{resize:vertical;min-height:73px}.field-block input:focus,.field-block textarea:focus{border-color:var(--brand)}.field-block small,.form-field small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.locked-line{background:var(--surface-alt);border:1px solid var(--line);padding:11px 12px;border-radius:9px;color:var(--ink-2);font-size:13px}.lock-tag{font-size:9px;color:var(--muted);border:1px solid var(--line);padding:2px 7px;border-radius:40px;margin-left:8px}.color-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.color-control{font-size:11px;font-weight:800;background:var(--surface-alt);padding:12px;border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:8px}.color-control input{border:0;width:37px;height:34px;padding:1px;background:transparent;cursor:pointer}.ghost-button{padding:8px 0;font-weight:700;font-size:12px;color:var(--brand);margin-top:12px}.background-upload input{width:100%;color:var(--ink-2);font-size:11px}.note-box{font-size:12px;color:var(--ink-2);border:1px dashed var(--line);border-radius:10px;padding:15px;background:var(--surface-alt);margin-top:18px}.preview-area{padding:20px 24px 22px}.preview-top{display:flex;justify-content:space-between;align-items:start;padding:2px 0 18px}.preview-top strong{display:block;font-size:14px}.preview-top span,.preview-size{color:var(--muted);font-size:11px}.canvas-stage{background:repeating-conic-gradient(#deded7 0 25%,#f1f0e9 0 50%) 50%/22px 22px;display:flex;align-items:center;justify-content:center;min-height:520px;padding:20px;border-radius:14px;overflow:hidden}.canvas-stage canvas{display:block;object-fit:contain;max-width:100%;max-height:610px;width:auto;height:auto;box-shadow:0 12px 30px rgba(0,0,0,.17);touch-action:none;cursor:default}.preview-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:20px}.preview-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:end}.preview-actions .btn{padding:11px 13px;font-size:11px}.stage-hint{color:var(--muted);font-size:11px;white-space:nowrap}.status-note{color:var(--brand);font-size:12px;margin:12px 0 0;min-height:16px}.status-note.error{color:#c34b41}
.page-section{padding-block:42px 58px;min-height:54vh}.page-title-row{margin-bottom:35px}.page-title-row h1,.page-section>h1{font-size:38px;margin:10px 0}.page-title-row p,.page-section>p{color:var(--muted);font-size:13px}.page-narrow{max-width:850px}.form-intro{line-height:1.8}.admin-form fieldset{border:1px solid var(--line);padding:27px;border-radius:15px;background:var(--surface);margin:25px 0}.admin-form legend{padding:0 8px;font-weight:800;font-size:14px;color:var(--brand)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .wide{grid-column:1/-1}.form-field{display:block}.form-field input[type=color]{width:100%;height:42px;cursor:pointer}.form-field input[type=file]{max-width:100%;font-size:12px}.form-field input[type=checkbox]{width:19px;height:19px}.toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:20px}.toggle-label{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:11px;font-size:12px;font-weight:700}.toggle-label input{accent-color:var(--brand)}.field-help{font-size:12px;color:var(--muted);margin-bottom:16px}.field-error,.form-errors{color:#b33c32!important}.form-actions{display:flex;justify-content:flex-end;gap:12px}.table-wrap{overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px}.data-table{border-collapse:collapse;width:100%;text-align:left;min-width:650px}.data-table th,.data-table td{padding:17px;border-bottom:1px solid var(--line);font-size:12px}.data-table th{color:var(--muted);font-weight:800}.data-table td small{color:var(--muted)}.data-table td a,.muted-copy a{color:var(--brand);font-weight:800}.status-pill{background:var(--brand-2);color:var(--brand);border-radius:15px;font-size:10px;padding:5px 9px}.muted-copy{color:var(--muted);margin-top:20px;font-size:12px}.saved-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.saved-card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.saved-card img{width:100%;height:230px;object-fit:cover;display:block}.saved-card div{padding:12px 15px;display:flex;flex-direction:column;gap:3px}.saved-card small{color:var(--muted)}.detail-page{text-align:center}.detail-page>.back-link{display:block;text-align:left}.detail-art{max-width:480px;margin:30px auto}.detail-art img{width:100%;box-shadow:var(--shadow);border-radius:9px}.detail-actions{display:flex;justify-content:center;gap:14px}.auth-wrap{min-height:68vh;display:grid;place-items:center;padding:45px 18px}.auth-card{width:min(100%,425px);background:var(--surface);padding:36px;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.auth-card h1{font-size:33px;margin:12px 0}.auth-card p{font-size:12px;color:var(--muted);margin-bottom:23px}.auth-card .form-field{margin-bottom:16px}.block-btn{width:100%;margin-top:10px}.auth-card .auth-foot{margin:19px 0 0;text-align:center}.auth-foot a{color:var(--brand);font-weight:800}
@media(max-width:1100px){.theme-grid{grid-template-columns:repeat(3,1fr)}.editor-layout{grid-template-columns:310px minmax(0,1fr)}.stage-hint{display:none}.canvas-stage{min-height:420px}}@media(max-width:790px){.container{padding-inline:17px}.header-inner{gap:12px;height:64px}.main-nav{gap:10px}.nav-link{font-size:11px}.logo{font-size:17px}.logo-thin{font-size:12px}.account-name{display:none}.hero{grid-template-columns:1fr;min-height:auto;gap:25px;padding-block:52px 28px}.hero-visual{height:245px;max-width:510px;width:100%;justify-self:center}.float-card-a{height:175px;width:155px;left:12%;top:20px}.float-card-b{height:175px;width:155px;right:10%;top:62px}.float-card strong{font-size:18px}.float-icon{font-size:22px;margin-bottom:8px}.theme-grid{grid-template-columns:repeat(2,1fr)}.editor-top{align-items:start}.autosave-indicator{display:none}.editor-layout{grid-template-columns:1fr}.editor-panel{order:2}.preview-area{order:1}.panel-scroll{min-height:unset;max-height:none}.canvas-stage{min-height:350px}.saved-grid{grid-template-columns:repeat(2,1fr)}.search-box input{width:110px}}@media(max-width:510px){.header-inner{flex-wrap:wrap;height:auto;min-height:68px;padding-block:9px}.main-nav{order:3;width:100%;justify-content:center;border-top:1px solid var(--line);padding-top:8px}.logo-thin{display:none}.hero h1{font-size:43px}.hero-visual{height:210px}.section-heading,.template-heading,.page-title-row{align-items:start;flex-direction:column}.template-heading{gap:16px}.search-box{width:100%}.search-box input{flex:1;width:auto}.theme-grid{gap:12px}.theme-cover{height:220px}.cover-content strong{font-size:16px}.cover-content .cover-small{font-size:7px}.theme-card-meta h4{font-size:12px}.step-grid{grid-template-columns:1fr}.occasion-pills{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px;margin-bottom:26px}.pill{white-space:nowrap}.editor-top{display:block}.editor-top h1{margin:10px 0}.preview-area{padding:10px}.preview-top{padding:7px 6px 12px}.canvas-stage{min-height:0;padding:12px}.canvas-stage canvas{max-height:460px}.preview-bottom{align-items:stretch;flex-direction:column}.preview-actions{justify-content:stretch}.preview-actions .btn{flex:1}.panel-scroll{padding:20px}.form-grid,.toggle-grid{grid-template-columns:1fr}.saved-grid{grid-template-columns:1fr 1fr;gap:10px}.saved-card img{height:150px}.admin-form fieldset{padding:18px}.detail-actions{flex-direction:column}.site-footer{gap:10px;flex-direction:column}.auth-card{padding:26px}}

.pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:28px;font-size:12px;color:var(--muted)}.pagination a{padding:9px 16px;background:var(--surface);border:1px solid var(--line);border-radius:9px;color:var(--brand);font-weight:800}

/* =============================================================
   Banaune system tokens: matched to shared banaune.css reference.
   This appended layer improves tap targets and responsive layouts.
   ============================================================= */
:root {
  color-scheme:light;
  --bg:#f7f8fb;--surface:#ffffff;--surface-alt:#f1f4f9;
  --ink:#152238;--ink-2:#647189;--muted:#647189;--line:#e0e6ef;
  --brand:#2457e6;--brand-2:#edf3ff;--accent:#2457e6;
  --shadow:0 6px 26px rgba(21,34,56,.035);--radius:18px;
  --focus:rgba(36,87,230,.20);--header:rgba(255,255,255,.94)
}
:root[data-theme="dark"] {
  color-scheme:dark;
  --bg:#0c1524;--surface:#152236;--surface-alt:#1c2c43;
  --ink:#eef3fc;--ink-2:#a5b5cf;--muted:#a5b5cf;--line:#2c3f5a;
  --brand:#a8c4ff;--brand-2:#213754;--accent:#a8c4ff;
  --shadow:0 6px 26px rgba(0,0,0,.13);--header:rgba(12,21,36,.94);
  --focus:rgba(168,196,255,.28)
}
html{scroll-padding-top:88px} body{min-width:280px;overflow-x:hidden;background:radial-gradient(ellipse at 6% 0,rgba(36,87,230,.055),transparent 42rem),var(--bg)}
button,a,input,select,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none!important;border-color:var(--accent)!important;box-shadow:0 0 0 4px var(--focus)}
.skip-link{position:fixed;top:6px;left:16px;z-index:300;transform:translateY(-200%);background:var(--surface);padding:12px;border:2px solid var(--brand);border-radius:10px}
.skip-link:focus{transform:none}
.site-header{z-index:70;background:var(--header);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.header-inner{height:76px;gap:24px;justify-content:space-between}
.brand-area{min-width:0;flex-shrink:0}.banaune-brand{display:inline-flex;align-items:center;gap:11px;white-space:nowrap}
.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;background:#2457e6;color:white;font-size:25px;font-weight:900;flex-shrink:0}
.brand-copy{display:flex;flex-direction:column;line-height:1.1;gap:4px}.brand-copy strong{font-size:18px;font-weight:800;letter-spacing:-.6px;color:var(--ink)}.brand-product{font-weight:650;font-size:15px;color:var(--ink-2)}
.brand-copy small{color:var(--muted);font-size:10px;letter-spacing:.02em}.main-nav{gap:8px;min-width:0}.nav-user{gap:10px;flex-shrink:0}
.main-nav .nav-link{display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:9px;min-height:40px;font-size:12px;color:var(--ink-2)}
.main-nav .nav-link:hover{background:var(--surface-alt);color:var(--ink)}
.nav-email,.nav-mobile-signin{display:none!important}.main-nav .inline-form{display:flex}.main-nav .nav-logout{background:transparent;border:0;cursor:pointer;font-weight:700}
.theme-toggle,.menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);flex-shrink:0}
.theme-toggle:hover,.menu-toggle:hover{color:var(--brand);background:var(--surface-alt)}
.theme-toggle .sun{display:none}.theme-toggle .moon{display:block}:root[data-theme="dark"] .theme-toggle .moon{display:none}:root[data-theme="dark"] .theme-toggle .sun{display:block}
.menu-toggle{display:none;gap:8px}.menu-toggle span{font-size:12px;font-weight:700}
.header-account{font-size:11px;color:var(--muted);white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}
.btn-primary{background:#2457e6!important;border-color:#2457e6!important;color:white!important}.btn-primary:hover{background:#1944ba!important}
.btn-secondary{color:var(--brand)}.btn{min-height:43px}.theme-card,.saved-card,.editor-layout>*{min-width:0}
.form-field label{display:block;font-size:12px;font-weight:800;margin-bottom:8px}.form-field input{font-size:16px!important}
.form-field input[type=email],.form-field input[type=password]{min-height:48px}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.field-label-row a{font-size:12px;font-weight:700;color:var(--brand);margin-bottom:8px}
.form-errors{padding:12px;background:var(--surface-alt);border:1px solid var(--line);border-radius:9px;font-size:13px}
.auth-card{width:min(100%,460px)}.auth-card .field-error{font-size:12px;line-height:1.5;color:#d75145;margin-top:6px}
.auth-card .errorlist{list-style:none;margin:0 0 15px;padding:0}.auth-card p{font-size:13px;line-height:1.7}
.editor-layout{max-width:1230px}.editor-panel,.preview-area{min-width:0}.photo-picker input[type=file]{width:1px;min-height:1px}
.preview-area{min-width:0}.canvas-stage{background:repeating-conic-gradient(#cbd3e1 0 25%,#e6ebf4 0 50%) 50%/22px 22px}
[data-theme="dark"] .canvas-stage{background:repeating-conic-gradient(#1c2c43 0 25%,#283a54 0 50%) 50%/22px 22px}
.edit-details-link{display:none;color:var(--brand);font-size:12px;font-weight:750;align-self:center}
.mobile-export-bar{display:none}.theme-grid{align-items:start}.theme-cover{box-shadow:var(--shadow)}
.saved-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid{min-width:0}
.site-footer small{color:var(--muted);font-weight:500}
@media(max-width:1020px){.header-account{display:none}.main-nav{gap:1px}.main-nav .nav-link{padding-inline:8px}}
@media(max-width:900px){
  .header-inner{position:relative;height:67px;min-height:67px;flex-wrap:nowrap;padding-block:0}
  .menu-toggle{display:inline-flex}.main-nav{display:none;position:absolute;top:calc(100% + 1px);left:15px;right:15px;z-index:100;background:var(--surface);border:1px solid var(--line);box-shadow:0 16px 48px rgba(0,0,0,.12);border-radius:13px;padding:12px;flex-direction:column;align-items:stretch;gap:3px;max-height:min(72vh,530px);overflow:auto}
  .main-nav.open{display:flex}.main-nav .nav-link{justify-content:flex-start;min-height:46px;padding:12px;font-size:14px}
  .nav-email{display:block!important;overflow-wrap:anywhere;font-size:12px;color:var(--muted);padding:9px 12px;border-top:1px solid var(--line)}
  .nav-mobile-signin{display:flex!important}.main-nav .inline-form{display:block}.main-nav .nav-logout{width:100%;text-align:left}
  .editor-layout{grid-template-columns:1fr}.preview-area{order:1}.editor-panel{order:2}
  .panel-scroll{max-height:none;min-height:unset;overflow:visible}.panel-tabs{position:sticky;top:67px;z-index:10;background:var(--surface)}
  .preview-area{padding:14px}.canvas-stage{min-height:0;padding:14px}.canvas-stage canvas{max-height:min(62vh,570px)}
  .edit-details-link{display:inline-flex}.preview-size{display:none}
  .preview-bottom{gap:10px}.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .saved-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:650px){
  .container{padding-inline:16px}.header-inner{gap:8px}.brand-copy strong{font-size:16px}.brand-product{font-size:13px}.brand-copy small{font-size:9px}
  .brand-mark{width:34px;height:34px;font-size:21px}.nav-user{gap:7px}.theme-toggle,.menu-toggle{height:40px;width:40px}.header-sign-in{padding:9px 12px;font-size:12px;min-height:40px}
  .hero{padding-top:32px;gap:12px}.hero h1{font-size:clamp(35px,9vw,52px)}.hero-visual{height:175px}
  .float-card-a,.float-card-b{height:150px;width:148px}.float-card-a{left:7%;top:2px}.float-card-b{right:4%;top:29px}
  .section-heading,.template-heading{flex-direction:column;align-items:stretch;gap:12px}.occasion-pills{margin-bottom:18px;scrollbar-width:thin}
  .theme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.theme-cover{height:auto;aspect-ratio:3/4;border-radius:12px}.theme-cover.ratio-landscape{aspect-ratio:3/4}
  .theme-cover .cover-content strong{font-size:clamp(13px,4vw,23px);overflow-wrap:anywhere}.cover-photo-count{font-size:10px}
  .editor-top{padding-block:18px;gap:8px}.editor-top h1{font-size:25px}.editor-top .back-link{white-space:normal}
  .preview-area{padding:10px;border-radius:15px}.preview-top{padding:7px 6px 10px}.preview-top span{font-size:11px}.canvas-stage{padding:9px;border-radius:10px}.canvas-stage canvas{max-height:52vh}
  .panel-tabs{padding-inline:8px}.tab{min-height:49px;padding:11px 4px;font-size:12px}.panel-scroll{padding:17px}
  .preview-bottom{flex-direction:column;align-items:stretch}.preview-actions{gap:8px}.preview-actions .btn{min-height:44px;white-space:normal;font-size:12px}
  .mobile-export-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;align-items:center;gap:10px;padding:10px max(16px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:var(--header);border-top:1px solid var(--line);backdrop-filter:blur(15px)}
  .mobile-export-bar>*{flex:1;min-width:0}.mobile-export-bar .btn{font-size:13px;min-height:46px}
  body:has(.mobile-export-bar){padding-bottom:84px}.search-box{width:100%;display:flex}.search-box input{min-width:0;flex:1;font-size:16px}
  .site-footer{padding-block:22px}.form-grid,.toggle-grid{grid-template-columns:1fr}.admin-form fieldset{padding:15px}
  .auth-wrap{padding:26px 12px;min-height:60vh}.auth-card{padding:24px 19px}.saved-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-section{padding-block:25px 42px}.page-title-row h1,.page-section>h1{font-size:30px}.data-table{min-width:600px}
}
@media(max-width:390px){
  .header-sign-in{display:none}.brand-product{font-size:12px}.brand-copy small{font-size:8px}
  .theme-toggle,.menu-toggle{height:39px;width:39px}.hero-visual{height:155px}
  .float-card-a,.float-card-b{width:138px;height:138px}.float-card strong{font-size:16px}
  .theme-grid{gap:9px}.theme-card-meta{padding-block:8px}.theme-card-meta h4{font-size:12px}
  .preview-actions .btn{flex:1 1 46%}.saved-card img{height:125px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Compact nav icons at very narrow sizes; accessible labels stay on buttons. */
@media(max-width:900px){.menu-toggle span{display:none}}
@media(max-width:350px){.brand-product{display:none}.brand-copy small{font-size:9px}}
[data-theme="dark"] .btn-outline{background:var(--surface-alt);color:var(--ink);border-color:var(--line)}
[data-theme="dark"] .btn-secondary{background:var(--brand-2);color:var(--brand)}
/* V5: Saved, re-editable cards */
.saved-card-editable{display:flex;flex-direction:column;overflow:hidden}
.saved-preview-link{display:block;min-width:0}
.saved-preview-link img{display:block;width:100%;object-fit:cover}
.saved-card-info{padding:12px 13px 14px;display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.saved-card-info strong{overflow-wrap:anywhere}
.saved-card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.saved-card-actions .btn{font-size:12px;min-height:40px;padding:8px 13px;flex:1;text-align:center}
.legacy-flag{font-size:11px;color:var(--muted);border:1px solid var(--line);padding:8px;border-radius:9px}
.legacy-note{margin:20px 0;line-height:1.55;padding:14px 17px;border:1px solid var(--line);border-radius:12px;background:var(--surface-alt);color:var(--muted)}
.field-block input#design-title{min-height:45px;width:100%}
@media(max-width:600px){
  .saved-card-actions{gap:6px}
  .saved-card-actions .btn{font-size:12px;min-height:44px;padding:9px 8px}
  .detail-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px}
  .detail-actions .btn,.detail-actions form,.detail-actions form button{width:100%}
}
@media(max-width:350px){.saved-card-actions{flex-direction:column;align-items:stretch}}

/* V6: lightweight progressive listings and lazy card images */
.theme-cover-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:0}
.theme-cover .cover-shade,.theme-cover .cover-content,.theme-cover .cover-photo-count{z-index:1}
.listing-loading #listing-results{opacity:.60;pointer-events:none;transition:opacity .15s}
.listing-status{font-size:12px;color:var(--muted);min-height:1.1em;margin:0 0 9px}
.listing-status:empty{display:none}
.library-search{width:min(100%,440px);margin:0 0 24px;display:flex}
.library-search input{min-width:0;flex:1;font-size:16px}
.library-search button{flex:none}
.visually-hidden{position:absolute!important;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}
@media(max-width:650px){.library-search{width:100%}}

/* Editor history and accessible text positioning (V7) */
.editor-history{display:flex;gap:9px;flex-wrap:wrap;align-items:center;padding:10px 12px}
.editor-history button{min-height:38px;min-width:88px}
.editor-history button:disabled{opacity:.45;cursor:not-allowed}
.editor-history span{font-size:12px;color:var(--muted,#777);line-height:1.4}
.editor-tip{margin-top:14px}
.canvas-stage canvas{touch-action:none;cursor:grab;outline-offset:4px}
.canvas-stage canvas:focus-visible{outline:3px solid var(--accent,#377cca)}
.saved-card-actions form,.detail-actions form{display:inline-flex;margin:0}
@media(max-width:640px){.editor-history{padding:9px;gap:7px}.editor-history button{min-height:44px;flex:1}.editor-history span{width:100%;text-align:center}.saved-card-actions{flex-wrap:wrap}}

.auth-social{margin-top:18px;text-align:center}.auth-social>span{display:block;margin-bottom:11px;font-size:12px;color:var(--muted,#777)}.google-button{font-weight:650;min-height:45px}


/* V7.3: direct touch/mouse dragging with a compact, accessible toolbar */
.editor-drag-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 2px 12px;flex-wrap:wrap}
.editor-drag-toolbar p{font-size:12px;line-height:1.45;color:var(--muted);margin:0;flex:1 1 230px}
.editor-drag-toolbar .editor-history{display:flex;gap:8px;align-items:center;padding:0;margin:0;flex:0 0 auto}
.editor-drag-toolbar .editor-history .ghost-button{min-width:0;min-height:38px;margin:0;padding:7px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-weight:700}
.editor-drag-toolbar .editor-history .ghost-button:disabled{opacity:.45}
.canvas-stage canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab}
.canvas-stage canvas.is-dragging{cursor:grabbing}
@media(max-width:550px){.editor-drag-toolbar{gap:8px;padding:5px 2px 10px}.editor-drag-toolbar p{flex-basis:100%;font-size:11px;text-align:center}.editor-drag-toolbar .editor-history{width:100%;justify-content:center}.editor-drag-toolbar .editor-history .ghost-button{min-height:44px;flex:1}}

/* V7.4: text handles are overlaid on the preview only, never exported. */
.canvas-stage{position:relative}
.text-drag-layer{position:absolute;pointer-events:none;z-index:5;overflow:visible}
.text-drag-handle{
  display:block;position:absolute;box-sizing:border-box;margin:0;padding:0;
  pointer-events:auto;touch-action:none !important;-webkit-touch-callout:none;
  -webkit-user-select:none;user-select:none;cursor:grab;
  background:rgba(255,255,255,.015);border:1px dashed rgba(255,255,255,.35);
  border-radius:5px;outline-offset:2px;min-width:32px;min-height:28px;
  -webkit-tap-highlight-color:transparent;
}
.text-drag-handle:hover,.text-drag-handle:focus-visible,.text-drag-handle.is-selected{
  background:rgba(56,189,248,.10);border:2px dashed #4dd9ff;
  box-shadow:0 0 0 2px rgba(0,0,0,.20);
}
.text-drag-handle:active{cursor:grabbing}
.text-drag-handle[hidden]{display:none !important}
@media(hover:none){.text-drag-handle{border-color:rgba(255,255,255,.48);background:rgba(255,255,255,.025)}}
