/* Generated by scripts/build-styles.py. Edit styles/ sources. */

/* styles.css */
@charset "UTF-8";
:root{--ink:#343d35;--muted:#90948a;--green:#52694f;--soft:#e8ecdf;--paper:#f8f5e9;--desk:#e9e9de;--border:#e5e7dc;--serif:'Noto Serif SC','Songti SC',SimSun,serif;--sans:Inter,'PingFang SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}body{margin:0;background:#f8f9f3;color:var(--ink);font:13px/1.6 var(--sans)}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{border:0;background:none}button:disabled{opacity:.28;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:4px}a{color:inherit;text-decoration:none}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button{display:inline-flex;align-items:center;justify-content:center;gap:8px}input,textarea,select{color:var(--ink);border:1px solid var(--border);border-radius:7px;background:#fff;padding:11px 13px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px #52694f10}textarea{resize:vertical;min-height:125px;line-height:1.8}[hidden]{display:none!important}.svg-defs{display:none}.sidebar{width:220px;background:#f0f2e9;border-right:1px solid #e5e8dc;position:fixed;inset:0 auto 0 0;z-index:20;display:flex;flex-direction:column;padding:39px 23px 25px}.brand{display:flex;gap:11px;align-items:center;padding-left:8px;margin-bottom:55px}.brand-mark{width:35px;height:38px;display:grid;place-items:center;color:#4f654d}.brand-mark svg{width:34px;height:34px;stroke-width:1.3}.brand>span:nth-child(2){font:600 29px/1.2 var(--serif);letter-spacing:5px}.brand small{display:block;font:8px/1.7 var(--sans);letter-spacing:2.8px;margin-top:7px}.brand i{font-style:normal;font-size:10px;align-self:flex-start;color:#89917f}.sidebar-label{font-size:10px;letter-spacing:1.6px;color:#949a8d;padding:0 13px 15px}.navigation{display:flex;flex-direction:column;gap:8px}.nav-item{width:100%;justify-content:flex-start;padding:11px 13px;border-radius:6px;color:#828a7b;gap:12px;font-size:12px}.nav-item svg{width:18px;height:18px}.nav-item.active{background:#e2e8d9;color:#455d43;font-weight:600}.nav-item b{font:10px var(--sans);margin-left:auto}.tiny-dot{width:5px;height:5px;border-radius:50%;background:#b79a69;margin-left:auto}.side-section-title{display:flex;justify-content:space-between;align-items:center;margin:43px 9px 12px;font-size:10px;color:#969c8f;letter-spacing:1.3px}.icon-btn{width:34px;height:34px;padding:7px;border-radius:6px}.icon-btn:hover{background:#52694f0b}.icon-btn.small{width:23px;height:23px;padding:3px}.icon-btn.small svg{width:15px}.album-list{display:flex;flex-direction:column;gap:6px}.album-entry{width:100%;justify-content:flex-start;text-align:left;gap:11px;padding:10px 12px;border-radius:5px}.album-entry.active{background:#e9eddf}.mini-cover{width:25px;height:33px;border-radius:1px 3px 3px 1px;box-shadow:inset 3px 0 #0002,1px 2px 3px #0001;display:grid;place-items:center;color:#fff8;background-size:cover;font:9px var(--serif)}.album-entry strong{display:block;font-size:11px;font-weight:500}.album-entry small{font-size:9px;color:#a1a596}.new-album-link{justify-content:flex-start;color:#909a86;font-size:10px;margin:17px 5px;gap:9px}.new-album-link svg{width:14px}.sidebar-bottom{margin-top:auto;padding:38px 10px 0;color:#969e8c}.little-flower{font:34px Georgia;color:#a6af94;margin-bottom:8px}.sidebar-bottom p{font:11px var(--serif);letter-spacing:1.4px;margin:7px 0}.sidebar-bottom>small{font:6px var(--sans);letter-spacing:1px}.sidebar-bottom button{border-top:1px solid #dfe4d5;width:100%;justify-content:flex-start;padding:22px 0 0;margin-top:26px;font-size:10px;gap:8px}.sidebar-bottom button svg{width:14px}.sidebar-bottom .help-arrow{margin-left:auto}.app-shell{margin-left:220px}.topbar{height:77px;padding:0 46px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:#fbfcf7}.breadcrumb{display:flex;align-items:center;gap:18px;font-size:11px;color:#898e82}.breadcrumb span:last-child{color:#4e5b49}.slash{color:#c4c8ba}.top-actions{display:flex;align-items:center;gap:17px}.save-status{display:flex;align-items:center;gap:7px;font-size:10px;color:#929b88}.save-status>span{width:5px;height:5px;border-radius:50%;background:#8ba17a}.button{border-radius:5px;padding:11px 16px;font-size:11px;letter-spacing:.3px;transition:background .2s,transform .2s}.button svg{width:16px;height:16px}.button.primary{background:var(--green);color:white}.button.primary:hover{background:#3f563d;transform:translateY(-1px)}.button.subtle{border:1px solid #dce0d3;background:#fcfcf7}.button.subtle:hover{background:#edf0e5}.button.compact{padding:9px 13px;font-size:10px}.avatar{width:30px;height:30px;background:#e9e5d7;border:3px solid white;border-radius:50%;display:grid;place-items:center;color:#8f8b72;font:12px var(--serif);margin-left:5px}.workspace{padding:34px 46px 0;max-width:1600px;margin:auto}.album-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:8px;letter-spacing:2.1px;color:#a0a58f;margin-bottom:9px}h1{font:500 30px/1.4 var(--serif);letter-spacing:3px;margin:0 0 8px;display:flex;gap:17px;align-items:center}.heading-spark{font:27px Georgia;color:#b3a373}.album-heading p{font-size:10px;letter-spacing:.6px;margin:0;color:#8e9484}.heading-actions{display:flex;gap:9px;padding-top:14px}.heading-actions .button{font-size:10px;padding:9px 13px}.desk{position:relative;background:var(--desk);border:1px solid #dde0d1;border-radius:9px;padding:20px 28px 19px;background-image:radial-gradient(#a3a68c18 .65px,transparent .65px);background-size:4px 4px;transition:background-color .35s}.desk-topline,.desk-bottomline{display:flex;align-items:center;justify-content:space-between;color:#7e8671;font-size:9px}.desk-topline>span:first-child{display:flex;align-items:center;gap:8px;letter-spacing:1px;font-size:8px}.desk-topline i{display:inline-block;width:5px;height:5px;background:#8c9a76;border-radius:50%}.desk-note{font:10px var(--serif);color:#929a84;letter-spacing:.8px}.desk-note>span{display:inline-block;font:26px Georgia;vertical-align:middle;margin-left:7px;transform:rotate(-20deg)}.book-stage{position:relative;margin:22px auto 24px;display:flex;justify-content:center;align-items:center;min-width:0;padding:0 34px}.book-shell{position:relative;width:min(100%,920px);aspect-ratio:1.82;perspective:2200px;isolation:isolate}.book-underlay{position:absolute;inset:2px -7px -9px;background:#6d785f;border-radius:5px 8px 8px 5px;box-shadow:0 20px 30px -15px #37422e50,0 7px 9px #0002}.book-underlay:before{content:'';position:absolute;inset:5px 4px 4px;background:repeating-linear-gradient(to bottom,#e4dfc9 0,#e4dfc9 1px,#f5f0dd 1px,#f5f0dd 3px);border-radius:3px}.book{display:flex;position:relative;width:100%;height:100%;border-radius:4px;container-type:inline-size;filter:drop-shadow(0 2px 2px #36382214)}.paper{position:relative;width:50%;height:100%;overflow:hidden;background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.77' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.045' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px;transition:background-color .35s}.left-paper{border-radius:4px 0 0 4px;box-shadow:inset -24px 0 23px -23px #514e3e68}.right-paper{border-radius:0 4px 4px 0;box-shadow:inset 22px 0 22px -24px #514e3e50}.book-spine{position:absolute;left:50%;top:0;bottom:0;width:2px;background:#938d7250;box-shadow:-2px 0 7px 2px #786f5820;pointer-events:none;z-index:200}.page-arrow{position:absolute;z-index:3;width:29px;height:29px;border-radius:50%;border:1px solid #d4d8c8;color:#7f8b72;background:#f4f5ec99}.page-arrow:hover{background:#fff}.page-arrow svg{width:13px}.page-arrow.prev{left:-5px}.page-arrow.next{right:-5px}.paper-header{position:absolute;left:8%;right:8%;top:5.4%;display:flex;justify-content:space-between;align-items:center;color:#a3a18a;font-size:clamp(5px,.72cqw,9px);letter-spacing:1.6px;z-index:1;pointer-events:none}.paper-header svg{width:10px;height:10px}.page-number{position:absolute;bottom:3.1%;left:0;right:0;text-align:center;font:8px Georgia;color:#b2ad95;letter-spacing:1px}.page-favorite{position:absolute;right:6%;bottom:2.5%;color:#b9b49f;width:20px;height:20px;z-index:150;padding:2px}.page-favorite svg{width:12px;height:12px}.page-favorite.is-favorite{color:#ba8069}.page-favorite.is-favorite svg{fill:#ba806922}.memory-item{position:absolute;touch-action:none;cursor:grab;transform:rotate(var(--r,0deg));transform-origin:center;user-select:none;outline:none;max-width:94%}.memory-item:active{cursor:grabbing}.memory-item.selected{outline:1px dashed #7f906a;outline-offset:7px;z-index:180!important}.memory-item:focus-visible{outline:2px dashed #7f906a;outline-offset:4px}.memory-item.photo{padding:2.8% 2.8% 7%;background:#fffef7;box-shadow:1px 4px 6px #4b48332a;display:flex;flex-direction:column}.memory-item.photo:before{content:'';position:absolute;width:33%;height:9%;top:-4%;left:33%;background:#d8cbaa9c;clip-path:polygon(0 8%,3% 0,8% 7%,13% 0,90% 4%,98% 0,100% 100%,4% 91%);transform:rotate(-3deg);z-index:2;mix-blend-mode:multiply}.photo img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;filter:sepia(.17) saturate(.76) contrast(.96)}.photo-caption{position:absolute;left:5%;right:5%;bottom:4%;text-align:center;color:#817e6c;font:clamp(5px,1.05cqw,12px) var(--serif);letter-spacing:.6px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.memory-item.text{font-family:var(--serif);white-space:pre-wrap;color:#6f725e;line-height:1.95;letter-spacing:.6px;font-size:clamp(6px,1.22cqw,14px);min-height:12px}.memory-item.text.title{font-size:clamp(12px,2.1cqw,24px);font-weight:500;letter-spacing:2px;color:#445541;line-height:1.5}.memory-item.text.micro{font:clamp(5px,.76cqw,9px)/1.7 var(--sans);letter-spacing:1.7px;color:#9a9a80}.memory-item.text.handwritten{font-style:italic;font-size:clamp(8px,1.4cqw,16px)}.memory-item.sticker{display:grid;place-items:center;color:#8b9c70;aspect-ratio:1}.sticker svg{width:100%;height:100%;stroke-width:1}.sticker span{font-size:clamp(18px,5cqw,55px);filter:saturate(.65)}.sticker.ticket{color:#8e9674;aspect-ratio:2.1;background:#dce1cc;border:1px dashed #9aa582;padding:5px;outline:4px solid #dce1cc;font:clamp(4px,.9cqw,11px)/1.7 Georgia;text-align:center;letter-spacing:2px}.sticker.ticket small{font-size:.65em}.sticker.stamp{border:2px solid #a89d79;border-radius:50%;color:#a89d79;font:clamp(5px,1cqw,12px)/1.5 var(--serif);text-align:center;letter-spacing:1px;transform:rotate(-15deg)}.desk-bottomline>span{display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:.3px}.desk-bottomline svg{width:12px;height:12px}.desk-bottomline button{font-size:9px;gap:6px;color:#7c886c;padding:2px 0}.page-position{display:flex;align-items:center;gap:11px;letter-spacing:1px;font-size:9px;color:#9b9e8e}.page-position b{color:#6d785f;font-weight:500}.tool-dock{position:absolute;top:50%;right:-20px;transform:translateY(-50%);display:flex;flex-direction:column;gap:3px;background:#fcfcf7;border:1px solid #e1e4d7;border-radius:8px;padding:9px 6px;box-shadow:0 4px 16px #4c573411;z-index:210}.dock-label{color:#a3aa96;font-size:7px;letter-spacing:1px;text-align:center;padding-bottom:4px}.tool-dock button{flex-direction:column;width:37px;height:46px;gap:3px;color:#7d8971;border-radius:4px;font-size:8px}.tool-dock button svg{width:17px;height:17px}.tool-dock button:hover,.tool-dock button.active{background:#edf0e4;color:#4e6647}.tool-dock>i{height:1px;width:24px;align-self:center;background:#e7e9df;margin:6px 0}.page-strip-row{display:flex;align-items:center;gap:18px;margin-top:25px;min-height:70px}.strip-label{font-size:10px;display:flex;align-items:center;gap:7px;white-space:nowrap}.strip-label svg{width:13px;height:13px;color:#838e74}.strip-label>span{font-size:8px;color:#a1a795;border-left:1px solid #dadfce;padding-left:12px;margin-left:4px}.page-strip{display:flex;align-items:center;gap:11px;overflow-x:auto;padding:5px 3px 8px;scrollbar-width:thin}.spread-thumb{position:relative;flex-shrink:0;padding:4px;border-radius:4px;border:1px solid #e0e2d7;width:89px;height:58px;background:#fff}.spread-thumb.active{border:1px solid #8a9b77;box-shadow:0 0 0 2px #e5eadb}.thumb-pages{display:flex;width:100%;height:100%;background:var(--paper);overflow:hidden;gap:1px}.thumb-side{width:50%;position:relative;overflow:hidden;border-right:1px solid #c8c4ae66}.thumb-image{position:absolute;object-fit:cover;border:2px solid white;box-shadow:0 1px 2px #0001;filter:saturate(.7)}.thumb-line{position:absolute;height:2px;background:#9caa8666}.thumb-index{position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);font-size:6px;background:#f8f9f3;padding:0 3px;color:#99a08c}.cover-thumb{width:38px;height:51px;padding:0;border:0;border-radius:1px 4px 4px 1px;background-size:cover!important;box-shadow:inset 3px 0 #0002,1px 2px 2px #0002;font:8px var(--serif);color:#fff9;writing-mode:vertical-rl;letter-spacing:2px}.strip-add{flex-shrink:0;width:39px;height:51px;border:1px dashed #d1d7c4;border-radius:4px;color:#a2ab94}.strip-add svg{width:14px}.keyboard-hint{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:8px;color:#a4aa9a;white-space:nowrap}kbd{font:10px var(--sans);border:1px solid #dce1d1;border-radius:3px;width:19px;height:18px;text-align:center;color:#9aa58a}.keyboard-hint span{margin-left:5px}.workspace-footer{display:flex;justify-content:space-between;color:#acb09f;margin-top:25px;border-top:1px solid #e5e8db;padding:17px 0 20px;font-size:8px;letter-spacing:1px}.workspace-footer>span:first-child{font:9px var(--serif);letter-spacing:1.5px}.workspace-footer>span:last-child{font-size:6px;letter-spacing:1.3px}.workspace-footer>span:last-child span{font-size:17px;margin-left:9px;vertical-align:middle;color:#919f7f}
.tool-panel{position:fixed;top:96px;right:24px;bottom:28px;width:310px;background:#fdfdf8;border:1px solid #e0e5d5;border-radius:12px;box-shadow:0 12px 65px #303d3226;z-index:400;padding:23px;overflow-y:auto}.panel-heading,.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.panel-heading small,.modal-heading small{font-size:7px;letter-spacing:1.8px;color:#a0a78f}.panel-heading h2,.modal-heading h2{font:500 22px var(--serif);letter-spacing:1px;margin:6px 0 0}.panel-hint{font-size:10px;color:#929a86;line-height:1.9;margin:0 0 19px}.upload-zone{width:100%;padding:24px 10px;display:flex;flex-direction:column;border:1px dashed #b7c2a5;border-radius:7px;background:#f2f5e9;color:#6d7f5c;font-size:11px;gap:9px}.upload-zone svg{width:25px;height:25px}.upload-zone small{font-size:8px;color:#9ba68b}.panel-label{display:block;font-size:10px;margin:23px 0 11px;color:#6a775e}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.library-photo{padding:5px 5px 17px;background:white;box-shadow:0 2px 5px #0001;transform:rotate(-2deg);position:relative;aspect-ratio:1.15}.library-photo:nth-child(even){transform:rotate(2deg)}.library-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.7)}.library-photo span{position:absolute;bottom:2px;font-size:7px;color:#889579}.panel-field{display:block;margin-bottom:14px;font-size:10px;color:#7c8870}.panel-field input,.panel-field textarea,.panel-field select{display:block;width:100%;margin-top:6px;font-size:11px}.panel-field textarea{min-height:145px}.panel-full{width:100%;margin-top:7px}.target-pages{display:flex;gap:8px;margin-bottom:18px}.target-pages button{border:1px solid #dce2d1;border-radius:5px;flex:1;padding:7px;font-size:10px}.target-pages button.active{background:#e6eddc;color:#4f6a46;border-color:#9dae88}.sticker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.sticker-choice{aspect-ratio:1;border:1px solid #e7eadf;border-radius:6px;color:#8f9d73}.sticker-choice:hover{background:#eef2e4;transform:rotate(-6deg)}.sticker-choice svg{width:43px;height:43px;stroke-width:1}.sticker-choice span{font-size:30px}.sticker-choice small{font:8px/1.6 var(--serif);letter-spacing:1px}.theme-choice{display:flex;align-items:center;text-align:left;width:100%;padding:14px 10px;gap:12px;border:1px solid #e4e7da;border-radius:6px;margin-bottom:12px}.theme-choice.active{border-color:#899b75;background:#f0f4e7}.theme-swatch{width:38px;height:43px;border-radius:2px;box-shadow:inset 17px 0 #fff4,0 2px 3px #0001;border:2px solid #c6c2ab}.theme-choice strong{font-size:11px;font-weight:500;display:block}.theme-choice small{display:block;font-size:8px;color:#9aa18f}.selection-toolbar{position:fixed;z-index:350;background:#fcfdf8;box-shadow:0 3px 14px #34413225;border:1px solid #dfe5d4;display:flex;align-items:center;gap:3px;border-radius:6px;padding:5px}.selection-toolbar button{width:27px;height:27px;border-radius:3px}.selection-toolbar button:hover{background:#edf2e3}.selection-toolbar button svg{width:14px}.selection-toolbar>span{height:15px;width:1px;background:#dce2d2}.selection-toolbar input{width:65px;padding:0;margin:0 4px;accent-color:var(--green);display:block}.selection-toolbar #deleteItem{color:#b67c68}.toast{position:fixed;bottom:25px;left:calc(50% + 110px);transform:translate(-50%,20px);opacity:0;pointer-events:none;border-radius:7px;background:#374b37;color:#fff;font-size:11px;padding:12px 22px;z-index:800;transition:.25s;box-shadow:0 4px 15px #0001}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #e0e5d5;border-radius:12px;padding:28px;background:#fcfcf7;color:var(--ink);width:min(460px,calc(100vw - 30px));max-height:90vh;box-shadow:0 30px 100px #26322133}dialog::backdrop{background:#26332355;backdrop-filter:blur(4px)}.modal-heading{margin-bottom:23px}.modal-heading h2{font-size:22px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #e5e9da;margin-top:22px;padding-top:18px}.form-field{display:block;margin-bottom:16px;font-size:11px;color:#7d8872}.form-field input,.form-field textarea,.form-field select{display:block;width:100%;margin-top:7px}.color-picks{display:flex;gap:10px;margin:10px 0 20px}.color-picks button{width:26px;height:26px;border-radius:50%;border:3px solid #fcfcf7;outline:1px solid transparent}.color-picks button.active{outline-color:#82916d}.cover-preview{width:140px;min-height:190px;margin:15px auto 24px;background:#667b59;border-radius:2px 9px 9px 2px;box-shadow:inset 9px 0 #0002,5px 6px 9px #0002;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f8f2d9;text-align:center;padding:25px 15px;position:relative;background-size:cover;background-position:center}.cover-preview:after{content:'';position:absolute;inset:13px 10px 13px 20px;border:1px solid #f3edce5c;pointer-events:none}.cover-preview strong{font:500 17px/1.5 var(--serif);letter-spacing:3px;z-index:1;text-shadow:0 1px 4px #0003;overflow-wrap:anywhere}.cover-preview small{font-size:6px;letter-spacing:1.3px;margin-top:13px;z-index:1}.cover-preview svg{margin-bottom:18px;width:29px;height:29px;z-index:1;stroke-width:1}.cover-upload{display:flex;justify-content:center;gap:8px}.cover-upload button{font-size:10px}.help-copy{font-size:12px;line-height:2;color:#7b876f}.help-copy p{margin:15px 0}.help-copy strong{color:#506149;font-weight:500}.help-copy small{font-size:10px;display:block;color:#9da58e}.backup-actions{display:flex;flex-direction:column;gap:12px}.backup-actions button{padding:18px}.collection-view{padding:45px 50px}.collection-view h1{margin-bottom:10px}.collection-view>p{font-size:12px;color:#8e9980}.collection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:30px}.collection-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid #e2e6d7;background:#f1f3e9;padding:18px;border-radius:8px;gap:10px}.collection-card img{width:100%;aspect-ratio:1.4;object-fit:cover;filter:saturate(.75);border:8px solid #fffef6;box-shadow:0 2px 5px #0001}.collection-card h3{font:16px var(--serif);margin:5px 0}.collection-card p{font-size:10px;color:#8c977e;margin:0}.empty-state{border:1px dashed #cfd7c2;text-align:center;padding:60px 20px;border-radius:8px;margin-top:30px;color:#8b987a;font-size:12px}.empty-state svg{width:36px;height:36px;margin-bottom:15px}.timeline-month{font:15px var(--serif);margin:30px 0 13px}.timeline-entry{display:flex;align-items:center;gap:22px;padding:17px 0;border-bottom:1px solid #e0e5d5}.timeline-entry img{width:85px;height:65px;object-fit:cover;border:5px solid #fffef6;box-shadow:0 2px 4px #0001}.timeline-entry strong{font:14px var(--serif)}.timeline-entry small{display:block;font-size:9px;color:#9ca68e;margin-top:5px}.timeline-entry>span{margin-left:auto;color:#9ba58c;font-size:11px}.empty-page-note{position:absolute;top:42%;left:0;right:0;text-align:center;color:#b8b6a0;font:12px/2 var(--serif);pointer-events:none}.empty-page-note small{font-size:8px;letter-spacing:1px}.flip-sheet{position:absolute;top:0;width:50%;height:100%;transform-style:preserve-3d;z-index:250;pointer-events:none}.flip-sheet.forward{left:50%;transform-origin:left center;animation:flipForward .85s cubic-bezier(.4,.1,.25,1) forwards}.flip-sheet.backward{left:0;transform-origin:right center;animation:flipBackward .85s cubic-bezier(.4,.1,.25,1) forwards}.flip-face{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden;overflow:hidden}.flip-face.back{transform:rotateY(180deg)}.flip-face.paper{width:100%}.flip-sheet .memory-item{pointer-events:none}.flip-sheet:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#474a3238,transparent 70%);backface-visibility:hidden;animation:shadeFlip .85s ease-in-out}.turning .book-spine{z-index:210}#flipLayer{position:absolute;inset:0;pointer-events:none;perspective:2200px;transform-style:preserve-3d;z-index:250}.immersive .sidebar,.immersive .topbar,.immersive .page-strip-row,.immersive .workspace-footer,.immersive .tool-dock,.immersive .eyebrow,.immersive .album-heading p,.immersive #coverBtn{display:none}.immersive .app-shell{margin-left:0}.immersive .workspace{padding:25px 4vw;max-width:1450px}.immersive .album-heading{margin-bottom:18px}.immersive .album-heading h1{font-size:24px}.immersive .desk{padding:22px 38px}.immersive .book-shell{width:min(100%,1100px)}.immersive .book-stage{margin:25px auto 32px}.immersive .toast{left:50%}.mobile-only{display:none}.menu-scrim{display:none}
@keyframes flipForward{0%{transform:rotateY(0)}50%{transform:rotateY(-92deg) translateZ(15px)}100%{transform:rotateY(-180deg)}}@keyframes flipBackward{0%{transform:rotateY(0)}50%{transform:rotateY(92deg) translateZ(15px)}100%{transform:rotateY(180deg)}}@keyframes shadeFlip{50%{opacity:1}100%{opacity:0}}
.album-list{overflow-y:auto;min-height:0;flex:0 1 auto;scrollbar-width:thin}.album-entry{flex-shrink:0}.sidebar-bottom{flex-shrink:0}.new-album-link{flex-shrink:0}
@media(max-height:850px){.sidebar{padding-top:26px;padding-bottom:20px}.brand{margin-bottom:30px}.side-section-title{margin-top:25px}.sidebar-bottom{padding-top:20px}.little-flower{font-size:26px;line-height:1.3}.sidebar-bottom button{margin-top:16px;padding-top:16px}}
@media(min-width:1550px){.workspace{padding-top:45px}.album-heading{margin-bottom:34px}.book-stage{margin-top:30px;margin-bottom:30px}.page-strip-row{margin-top:30px}.desk{padding-top:25px;padding-bottom:23px}}
@media(max-width:1200px){.sidebar{width:190px;padding-left:17px;padding-right:17px}.app-shell{margin-left:190px}.topbar{padding:0 30px}.workspace{padding:30px 30px 0}.desk{padding-left:22px;padding-right:22px}.book-stage{padding:0 21px}.page-arrow.prev{left:-13px}.page-arrow.next{right:-13px}.keyboard-hint{display:none}.strip-label>span{display:none}.page-strip-row{gap:13px}.top-actions{gap:10px}.toast{left:calc(50% + 95px)}.paper-header{letter-spacing:.8px}}
@media(max-width:950px){.sidebar{width:172px;padding-left:12px;padding-right:12px}.brand{margin-bottom:40px}.app-shell{margin-left:172px}.workspace{padding:28px 25px 0}.topbar{padding:0 25px;height:68px}.save-status{font-size:0;gap:0}.save-status>span{width:6px;height:6px}.heading-actions .button{padding:8px;font-size:9px}.album-heading h1{font-size:25px}.heading-actions{gap:5px}.album-heading p{font-size:9px}.eyebrow{font-size:7px;letter-spacing:1.2px}.desk{padding:17px 20px}.desk-note{font-size:8px}.desk-bottomline>span{font-size:0}.desk-bottomline>span svg{display:none}.page-strip-row{gap:10px}.strip-label{font-size:9px;gap:4px}.spread-thumb{width:72px;height:49px}.tool-dock{right:-18px}.tool-dock button{width:31px;height:43px}.dock-label{font-size:6px}.toast{left:calc(50% + 86px)}}
@media(max-width:720px){.sidebar{transform:translateX(-100%);width:220px;transition:transform .2s;box-shadow:10px 0 30px #1c291c20}.sidebar.open{transform:translateX(0)}.menu-scrim.visible{display:block;position:fixed;inset:0;background:#26332355;z-index:19;backdrop-filter:blur(2px)}.app-shell{margin-left:0}.mobile-only{display:inline-flex}.topbar{padding:0 18px;height:64px}.breadcrumb{gap:10px;font-size:10px}.top-actions{gap:8px}.top-actions .avatar{display:none}.top-actions .compact{padding:8px;font-size:9px}.top-actions .compact svg{width:13px}.workspace{padding:25px 22px 0}.album-heading{align-items:flex-start;gap:15px;margin-bottom:21px}.album-heading h1{font-size:27px}.heading-actions{flex-direction:column;padding-top:3px;gap:7px}.heading-actions .button{font-size:8px;padding:6px 8px;gap:5px}.heading-actions .button svg{width:13px;height:13px}.eyebrow{font-size:6px;letter-spacing:1.2px}.album-heading p{font-size:9px;max-width:230px}.desk{padding:16px 17px 64px}.desk-note{display:none}.desk-topline>span:first-child{font-size:7px}.book-stage{padding:0 10px;margin:24px 0 26px}.book-shell{aspect-ratio:1.55}.page-arrow{width:23px;height:23px}.page-arrow.prev{left:-23px}.page-arrow.next{right:-23px}.book-underlay{inset:2px -4px -6px}.desk-bottomline{font-size:7px}.desk-bottomline button{font-size:8px}.page-position{gap:7px;font-size:8px}.tool-dock{top:auto;bottom:-1px;left:50%;right:auto;transform:translateX(-50%);flex-direction:row;padding:5px 14px;align-items:center;border-radius:8px 8px 0 0;gap:10px;box-shadow:0 -3px 12px #4c573408}.dock-label{display:none}.tool-dock>i{width:1px;height:24px;margin:0 2px}.tool-dock button{flex-direction:row;width:auto;height:34px;font-size:9px;gap:5px;padding:0 3px}.tool-dock button svg{width:15px;height:15px}.page-strip-row{margin-top:20px;gap:12px;flex-wrap:wrap}.strip-label{width:100%;font-size:10px}.strip-label>span{display:block}.page-strip{max-width:calc(100% - 50px);gap:10px}.spread-thumb{width:72px;height:49px}.cover-thumb{height:44px;width:33px}.strip-add{height:44px;width:32px}.workspace-footer{margin-top:20px;font-size:7px;padding-top:15px}.workspace-footer>span:first-child{font-size:8px;letter-spacing:.5px}.workspace-footer>span:last-child{font-size:5px;letter-spacing:.7px}.tool-panel{top:auto;bottom:12px;left:12px;right:12px;width:auto;max-height:70vh;padding:22px}.photo-grid{grid-template-columns:repeat(3,1fr)}.library-photo{aspect-ratio:1.1}.sticker-grid{grid-template-columns:repeat(4,1fr)}.sticker-choice svg{width:40px}.toast{left:50%;width:max-content;max-width:90vw;bottom:14px;font-size:10px;text-align:center}.collection-view{padding:30px 22px}.collection-grid{grid-template-columns:repeat(2,1fr);gap:13px}.collection-card{padding:10px}.collection-card h3{font-size:13px}.collection-card p{font-size:9px}.immersive .workspace{padding:20px 22px}.immersive .desk{padding:15px 18px 24px}.immersive .album-heading h1{font-size:22px}.immersive .book-stage{margin:30px 0}.paper-header{letter-spacing:.1px;font-size:clamp(4px,1.4cqw,7px)}.memory-item.text{font-size:clamp(6px,1.65cqw,13px);letter-spacing:.2px}.memory-item.text.title{font-size:clamp(10px,2.6cqw,22px);letter-spacing:1px}.memory-item.text.micro{font-size:clamp(4px,1.1cqw,8px);letter-spacing:.5px}.memory-item.text.handwritten{font-size:clamp(7px,1.8cqw,14px)}.photo-caption{font-size:clamp(5px,1.4cqw,10px)}.page-number{font-size:6px}.page-favorite svg{width:9px}.empty-page-note{font-size:8px}.empty-page-note small{font-size:5px}.sticker.ticket{font-size:clamp(4px,1.2cqw,9px);letter-spacing:.5px}.sticker.stamp{font-size:clamp(5px,1.4cqw,10px)}.sidebar-bottom{padding-top:20px}}
@media(max-width:720px){.tool-dock{width:max-content;max-width:calc(100% - 24px)}.tool-dock button{flex-shrink:0;white-space:nowrap}.immersive .book-stage{overflow-x:auto;justify-content:flex-start;scrollbar-width:thin;padding:0 4px 14px}.immersive .book-shell{min-width:640px;margin:0 25px}.immersive .page-arrow{position:fixed;top:auto;bottom:22px;z-index:300;background:#f9faf1;width:34px;height:34px}.immersive .page-arrow.prev{left:22px}.immersive .page-arrow.next{right:22px}.immersive .desk-bottomline>span{font-size:8px}.immersive .desk-bottomline #editHint{font-size:0}.immersive .desk-bottomline #editHint:after{content:'左右滑动，细读这一页';font-size:8px}.immersive .desk-bottomline button{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* editor.css */
/* Whole-space palette: the paper, chrome and controls share one chosen accent. */
:root{--app-bg:#f8f9f3;--sidebar-bg:#f0f2e9;--surface:#fcfdf8;--active-bg:#e2e8d9;--accent-ink:#455d43;--on-accent:#fff;--accent-faint:#a5b29b}
body{background:var(--app-bg);color:var(--ink)}
.sidebar{background:var(--sidebar-bg);border-color:var(--border)}
.topbar,.tool-panel,dialog,.selection-toolbar,.tool-dock{background:var(--surface);border-color:var(--border)}
.brand-mark,.breadcrumb span:last-child,.page-position b,.strip-label,.panel-field,.form-field,.panel-label{color:var(--accent-ink)}
.nav-item,.sidebar-label,.side-section-title,.new-album-link,.sidebar-bottom,.breadcrumb,.save-status,.eyebrow,.album-heading p,.desk-topline,.desk-bottomline,.desk-bottomline button,.page-position,.dock-grip,.tool-dock button,.panel-hint,.theme-choice small,.workspace-footer,.keyboard-hint,.collection-view>p,.timeline-entry small{color:var(--muted)}
.nav-item.active,.album-entry.active{background:var(--active-bg);color:var(--accent-ink)}
.button.primary,.toast{background:var(--green);color:var(--on-accent)}
.button.primary:hover{background:var(--green);filter:brightness(.93)}
.button.subtle,.target-pages button,.theme-choice,.sticker-choice,.page-arrow{border-color:var(--border);background:var(--surface)}
.button.subtle:hover,.target-pages button.active,.theme-choice.active,.tool-dock button.active,.tool-dock button:hover,.sticker-choice:hover,.selection-toolbar button:hover{background:var(--soft);color:var(--accent-ink);border-color:var(--accent-faint)}
.target-pages button:disabled{opacity:.55;background:var(--soft);cursor:not-allowed}
.button.primary:disabled{opacity:.45;transform:none;cursor:not-allowed}
.album-entry small,.sidebar-bottom small,.sidebar-bottom button,.help-copy,.help-copy strong,.theme-choice strong,.collection-card p,.collection-card h3{color:var(--muted)}
.sidebar-bottom button,.workspace-footer,.modal-footer,.timeline-entry{border-color:var(--border)}
.little-flower,.heading-spark,.keyboard-hint kbd{color:var(--accent-faint)}
.save-status>span,.desk-topline i{background:var(--green)}
.book-underlay{background:var(--accent-ink)}
.paper{color:var(--paper-ink,var(--ink))}
.memory-item.text,.memory-item.text.title{color:var(--paper-ink,var(--accent-ink))}
.memory-item.text.micro,.paper-header,.page-number{color:var(--paper-muted,#9a9a80)}
.memory-item.selected,.memory-item:focus-visible{outline-color:var(--green)}
.upload-zone,.collection-card{background:var(--soft);border-color:var(--accent-faint);color:var(--accent-ink)}
.thumb-index{background:var(--app-bg)}
.empty-state,.strip-add{border-color:var(--border);color:var(--muted)}
.spread-thumb.active{border-color:var(--green);box-shadow:0 0 0 2px var(--soft)}
.theme-choice.active{border-color:var(--green)}
.theme-swatch{border-width:3px}
.theme-presets{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.theme-presets .theme-choice{margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:13px 12px;min-height:114px}
.theme-presets .theme-swatch{width:100%;height:32px;border-radius:3px;box-shadow:none;border-width:0 0 7px 0}
.theme-presets .theme-choice strong{font-size:11px;color:var(--ink)}
.theme-presets .theme-choice small{font-size:6px;letter-spacing:.6px;margin-top:3px}
.custom-theme-fields{border-top:1px solid var(--border);padding-top:14px;margin-top:24px}
.custom-theme-fields h3{font:500 15px var(--serif);margin:4px 0 16px}
.custom-theme-fields label{display:flex;align-items:center;gap:10px;font-size:11px;margin:12px 0}
.color-value{font:9px monospace;color:var(--muted);margin-left:auto}
.custom-theme-fields input[type=color]{width:36px;height:30px;padding:3px;border-radius:5px;cursor:pointer;border-color:var(--border);background:var(--surface)}
.custom-theme-fields .panel-hint{font-size:9px;margin:17px 0 0}
.page-lock-controls{display:flex;align-items:center;gap:7px}
.page-lock-controls button{font-size:8px;padding:5px 9px;gap:5px;color:var(--muted);border:1px solid var(--border);border-radius:20px;background:var(--surface)}
.page-lock-controls svg{width:11px;height:11px}
.page-lock-controls button.locked{color:var(--accent-ink);background:var(--active-bg);border-color:var(--accent-faint)}
.heading-actions{gap:7px}
.heading-actions #lockSpreadBtn{white-space:nowrap}
.paper.is-locked .memory-item{pointer-events:none;cursor:default}
.paper.is-locked{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 15%,transparent)}
.left-paper.is-locked{box-shadow:inset -24px 0 23px -23px #514e3e68,inset 0 0 0 1px color-mix(in srgb,var(--green) 15%,transparent)}
.paper.is-locked:after{content:'已固定';position:absolute;left:7%;bottom:3%;color:var(--paper-muted,var(--muted));font:7px var(--sans);letter-spacing:1px;pointer-events:none}
.book .memory-item{transform-origin:50% 50%}
.memory-item.photo img{min-height:0;flex:1;backface-visibility:hidden}
.memory-item.transforming{will-change:transform;cursor:grabbing}
.is-transforming{user-select:none;cursor:grabbing}
.memory-item.selected{outline:1.5px solid var(--green);outline-offset:3px}
.transform-controls{position:absolute;inset:0;pointer-events:none;z-index:5}
.resize-handle{pointer-events:auto;position:absolute;width:13px;height:13px;padding:0;border:1.5px solid var(--green);border-radius:3px;background:var(--surface);box-shadow:0 1px 4px #0002;touch-action:none}
.resize-handle:before,.rotation-handle:before{content:'';position:absolute;inset:-7px}
.handle-nw{left:-9px;top:-9px;cursor:nwse-resize}
.handle-ne{right:-9px;top:-9px;cursor:nesw-resize}
.handle-sw{left:-9px;bottom:-9px;cursor:nesw-resize}
.handle-se{right:-9px;bottom:-9px;cursor:nwse-resize}
.rotation-handle{pointer-events:auto;position:absolute;left:50%;top:-39px;transform:translateX(-50%);width:24px;height:24px;background:var(--green);color:var(--on-accent);border:2px solid var(--surface);border-radius:50%;padding:4px;box-shadow:0 2px 5px #0002;cursor:grab;touch-action:none}
.rotation-handle svg{width:13px;height:13px;stroke-width:1.8}
.rotation-stem{position:absolute;left:50%;top:-18px;width:1px;height:15px;background:var(--green)}
.transform-readout{position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);padding:3px 8px;white-space:nowrap;border-radius:4px;background:var(--accent-ink);color:var(--surface);font:9px/1.4 var(--sans);letter-spacing:.5px}
.memory-item.transforming .transform-readout{display:block}
.selection-toolbar{gap:4px;padding:6px;z-index:390}
.selection-toolbar input{width:85px;accent-color:var(--green)}
.selection-toolbar button{color:var(--accent-ink)}
.tool-dock{position:fixed;top:auto;bottom:auto;right:auto;left:calc(50% + 20px);transform:none;flex-direction:row;align-items:center;gap:5px;padding:6px 8px;border-radius:12px;width:max-content;max-width:calc(100vw - 16px);z-index:420;box-shadow:0 7px 30px #24311f1c;transition:box-shadow .2s}
.tool-dock button{width:49px;height:45px;flex-direction:column;gap:3px;flex-shrink:0;font-size:9px;white-space:nowrap}
.tool-dock button svg{width:17px;height:17px}
.tool-dock .dock-grip{width:23px;height:43px;cursor:grab;touch-action:none;border-right:1px solid var(--border);border-radius:0;padding-right:5px;margin-right:2px}
.tool-dock .dock-grip svg{width:17px;height:22px}
.tool-dock.dragging{box-shadow:0 9px 35px #24311f33;user-select:none}
.tool-dock.dragging .dock-grip{cursor:grabbing}
.tool-dock>i{width:1px;height:27px;margin:0 3px;background:var(--border)}
.tool-dock .dock-reset{width:25px;height:35px;margin-left:2px;color:var(--muted)}
.tool-dock .dock-reset svg{width:13px;height:13px}
.tool-panel{z-index:500;padding-bottom:30px}
.page-arrow{width:34px;height:34px;color:var(--accent-ink);background:var(--surface);box-shadow:0 2px 7px #00000008}
.page-arrow.prev{left:-12px}.page-arrow.next{right:-12px}
.page-arrow:hover{background:var(--soft)}
.workspace-footer{padding-bottom:90px}
.toast{bottom:92px;left:50%}
.immersive .page-lock-controls{display:none}
@media(max-width:1050px){.heading-actions .button{padding:8px;font-size:8px;gap:5px}.heading-actions .button svg{width:13px;height:13px}.heading-actions{flex-wrap:wrap;justify-content:flex-end;max-width:255px}.page-lock-controls button{padding:5px 7px;font-size:7px}.page-arrow.prev{left:-19px}.page-arrow.next{right:-19px}}
@media(max-width:720px){.heading-actions{flex-direction:column;flex-wrap:nowrap;max-width:none;gap:6px}.heading-actions .button{padding:6px 8px;font-size:8px}.desk{padding-top:15px;padding-bottom:20px}.desk-topline{flex-wrap:wrap;gap:12px}.desk-topline>span:first-child{font-size:6px;letter-spacing:.5px}.page-lock-controls{gap:4px;margin-left:auto}.page-lock-controls button{font-size:6px;padding:4px 6px;gap:3px}.page-lock-controls svg{width:9px;height:9px}.book-stage{margin-top:23px}.tool-dock{gap:3px;padding:6px;border-radius:10px;max-width:calc(100vw - 16px)}.tool-dock button{width:45px;height:41px;flex-direction:column;font-size:8px;padding:0 3px;gap:4px}.tool-dock .dock-grip{width:21px;height:37px}.tool-dock>i{margin:0 2px;height:24px}.tool-dock .dock-reset{width:22px}.tool-panel{bottom:90px;max-height:calc(100dvh - 115px)}.page-arrow{width:27px;height:27px}.page-arrow.prev{left:-24px}.page-arrow.next{right:-24px}.resize-handle{width:14px;height:14px}.rotation-handle{width:25px;height:25px}.theme-presets{grid-template-columns:repeat(3,1fr);gap:7px}.theme-presets .theme-choice{padding:9px;min-height:100px}.theme-presets .theme-choice strong{font-size:9px}.theme-presets .theme-choice small{font-size:5px;letter-spacing:0}.workspace-footer{padding-bottom:90px}.paper.is-locked:after{font-size:5px}.custom-theme-fields h3{font-size:14px}}

/* studio.css */
/* The studio keeps the original linen-and-film character while making every action reachable. */
.shelf-row{position:relative;display:flex;align-items:center;border-radius:7px;min-height:60px}
.shelf-row.active{background:var(--active-bg)}
.shelf-row .album-entry{flex:1;min-width:0;padding:10px 5px;gap:9px}
.shelf-row .album-entry>span:last-child{min-width:0}
.shelf-row .album-entry strong{max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shelf-actions{display:flex;flex-direction:column;opacity:.3;transition:opacity .2s}
.shelf-row:hover .shelf-actions,.shelf-row:focus-within .shelf-actions{opacity:1}
.shelf-actions .icon-btn{width:25px;height:24px;padding:5px}
.shelf-actions svg{width:13px;height:13px}
.removed-link{justify-content:flex-start;font-size:9px;color:var(--muted);text-decoration:underline;text-underline-offset:4px;padding:9px 6px}
.album-date{font-size:10px;letter-spacing:.6px;color:var(--accent-ink);border-bottom:1px dashed var(--accent-faint);margin-top:10px;padding:0 0 2px}
.album-date:before{content:'◷';font-size:12px;margin-right:3px}
.album-heading>div:first-child{min-width:0}
.paper{container-type:inline-size}
.paper-header{font-size:1.5cqw;letter-spacing:1.2px}
.memory-item.text{font-family:var(--serif);font-size:3.5cqw;line-height:1.9;letter-spacing:.3px;overflow-wrap:anywhere;min-height:0}
.memory-item.text[data-note]:not([data-note="none"]){padding:4.5%;box-shadow:2px 5px 10px #44382518;border-radius:1px;line-height:1.8}
.memory-item.text[data-note]:not([data-note="none"]):before{content:'';position:absolute;width:24%;height:7%;min-height:9px;left:37%;top:-5px;background:#d8cbb099;transform:rotate(-3deg)}
[data-note="cream"]{background:#fff2bd;color:#5c513e}
[data-note="kraft"]{background:#d8bb8d;color:#4b3e2d}
[data-note="pink"]{background:#f8dedd;color:#684f54}
[data-note="blue"]{background:#dcebee;color:#405b62}
[data-note="lined"]{background-color:#fffdf6;background-image:repeating-linear-gradient(transparent 0,transparent 1.85em,#9aafa332 1.85em,#9aafa332 1.9em);color:#4c5d53}
[data-note="grid"]{background-color:#f5f7ec;background-image:linear-gradient(#8e9e7d25 1px,transparent 1px),linear-gradient(90deg,#8e9e7d25 1px,transparent 1px);background-size:.9em .9em;color:#4b5b47}
.text-content{display:block}
.memory-item.sticker span{font-size:20cqw;filter:saturate(.8)}
.custom-sticker-image{width:100%;height:100%;object-fit:contain;pointer-events:none}
.memory-item.photo img{filter:sepia(.08) saturate(.88) contrast(.98)}
.photo-caption{font-size:2.2cqw}
.memory-item.photo[data-frame="polaroid"]{background:#fffef7}
.memory-item.photo[data-frame="none"]{padding:0;background:none;box-shadow:none}
.memory-item.photo[data-frame="none"]:before,.memory-item.photo[data-frame="none"] .photo-caption{display:none}
.memory-item.photo[data-frame="postcard"]{background:#fffdf9;padding:2.2% 2.2% 6%;border:1px solid #cbbda4;box-shadow:2px 5px 9px #5c42252a}
.memory-item.photo[data-frame="postcard"]:before{display:none}
.memory-item.photo[data-frame="postcard"] img{outline:1px solid #cbbda4;outline-offset:3px}
.memory-item.photo[data-frame="vintage"]{background:#e0cfab;padding:3% 3% 7%;border:1px solid #bca784;box-shadow:inset 0 0 13px #8d693838,1px 4px 7px #0002}
.memory-item.photo[data-frame="vintage"] img{filter:sepia(.38) saturate(.7)}
.memory-item.photo[data-frame="vintage"]:before{background:#be9e6f70}
.memory-item.photo[data-frame="torn"]{background:#fffdf0;padding:3% 3% 7%;filter:drop-shadow(1px 4px 3px #473f2a22);box-shadow:none;clip-path:polygon(0 1%,7% 0,13% 1%,19% 0,25% 1%,32% 0,39% 1%,47% 0,54% 1%,61% 0,68% 1%,75% 0,82% 1%,89% 0,96% 1%,100% 0,99% 99%,93% 100%,86% 99%,79% 100%,72% 99%,65% 100%,58% 99%,51% 100%,44% 99%,37% 100%,30% 99%,23% 100%,16% 99%,9% 100%,0 99%)}
.memory-item.photo[data-frame="torn"]:before{display:none}
.memory-item.photo[data-frame="film"]{background:#272824;padding:3% 6% 7%;box-shadow:2px 4px 7px #0003}
.memory-item.photo[data-frame="film"]:before,.memory-item.photo[data-frame="film"]:after{content:'';position:absolute;top:4%;bottom:4%;width:3%;height:auto;left:1.5%;background:repeating-linear-gradient(to bottom,#d9d3bd 0,#d9d3bd 4%,transparent 4%,transparent 7%);clip-path:none;transform:none;mix-blend-mode:normal;opacity:.75}
.memory-item.photo[data-frame="film"]:after{left:auto;right:1.5%}
.memory-item.photo[data-frame="film"] .photo-caption{color:#d9d3bd;font-family:monospace;font-size:1.9cqw;letter-spacing:1px}
.frame-preview.memory-item.photo{position:relative;left:auto;top:auto;width:250px;height:200px;max-width:100%;margin:12px auto 30px;transform:none;container-type:inline-size}
.frame-preview .photo-caption{font-size:10px}
.frame-preview[data-frame="film"] .photo-caption{font-size:9px}
.frame-preview[data-frame="torn"] .transform-controls{display:none}
.type-preview{font:18px/1.8 var(--serif);padding:22px 15px;margin:15px 0 22px;border-radius:4px;min-height:80px;overflow-wrap:anywhere;border:1px solid var(--border)}
.text-format-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}
.text-format-grid .panel-field{min-width:0;margin-bottom:13px}
.color-field input[type="color"]{height:39px;padding:4px;width:100%;cursor:pointer}
.underline-field{display:flex;align-items:center;justify-content:center;gap:9px;font-size:11px;margin:20px 0 14px;border:1px solid var(--border);border-radius:6px;height:39px}
.underline-field input{accent-color:var(--green);padding:0;width:15px;height:15px}
.date-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.date-inputs input{min-width:0;width:100%}
.album-date-fields{border-top:1px solid var(--border);padding-top:16px;margin-top:18px}
.dialog-copy{font-size:13px;line-height:2;color:var(--muted)}
.removed-list>div{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}
.removed-list strong{display:block;font-size:12px;font-weight:500}
.removed-list small{font-size:9px;color:var(--muted)}
.removed-list .button{margin-left:auto;font-size:10px;padding:9px}
.tool-panel{width:350px}
.frame-default{margin-top:18px}
.library-heading{display:flex;align-items:center;justify-content:space-between}
.library-heading .panel-label{margin:10px 0}
.library-heading button{font-size:9px;text-decoration:underline;color:var(--muted);text-underline-offset:3px}
.photo-grid{gap:17px 13px;margin:8px 0 22px;grid-template-columns:1fr 1fr}
.photo-source-card{position:relative;min-width:0;border-radius:6px;padding:3px;border:1px solid transparent}
.photo-source-card.chosen{background:var(--soft);border-color:var(--green)}
.photo-source-card .library-photo{width:100%;transform:rotate(-1deg);aspect-ratio:1.18;padding-bottom:22px}
.photo-source-card:nth-child(even) .library-photo{transform:rotate(1deg)}
.library-photo span{font-size:9px;max-width:95%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.source-remove{position:absolute;right:-5px;top:-5px;background:var(--surface);border:1px solid var(--border);color:var(--muted);width:23px;height:23px;padding:0;border-radius:50%;box-shadow:0 2px 5px #0001;z-index:2;font-size:15px}
.source-remove:hover{color:#a75b53;background:#fff0eb}
.source-actions{display:flex;gap:5px;margin-top:8px}
.source-actions button{font-size:9px;flex:1;border:1px solid var(--border);border-radius:4px;background:var(--surface);padding:6px 1px;color:var(--accent-ink)}
.source-actions button:hover{background:var(--soft)}
.tiny-help{font-size:9px;line-height:1.7;color:var(--muted);margin:10px 0 17px}
.category-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0 18px}
.category-tabs button{font-size:10px;padding:7px 10px;border:1px solid var(--border);border-radius:20px;white-space:nowrap}
.category-tabs [aria-selected="true"]{background:var(--green);border-color:var(--green);color:var(--on-accent)}
.sticker-grid{gap:10px;grid-template-columns:repeat(3,1fr)}
.sticker-choice{position:relative;display:flex;flex-direction:column;padding:12px 8px 8px;background:var(--surface);gap:6px;border-radius:9px;min-height:88px}
.sticker-choice small{font:9px var(--sans);color:var(--muted);letter-spacing:.5px}
.sticker-choice>span{font-size:30px}
.sticker-choice svg{height:42px;max-width:100%}
.sticker-choice>div{font-size:8px;line-height:1.4}
.sticker-choice>img{width:100%;height:65px;object-fit:contain;max-width:75px}
.custom-sticker-card{position:relative;min-width:0}.custom-sticker-card .sticker-choice{width:100%}
.desk-tray{position:relative;border:1px dashed var(--accent-faint);border-radius:8px;background:color-mix(in srgb,var(--surface) 40%,transparent);margin:26px 0 18px;padding:13px 17px;min-height:92px;transition:background .15s,outline .15s}
.tray-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--accent-ink);font-size:10px;letter-spacing:1px}
.tray-heading>span{display:flex;align-items:center;gap:6px}
.tray-heading svg{width:13px;height:13px}.tray-heading b{font:9px monospace;color:var(--muted)}
.tray-heading small{font-size:9px;color:var(--muted);letter-spacing:0}
.desk-pocket{display:flex;gap:16px;align-items:center;overflow-x:auto;padding:12px 2px 4px;min-height:40px;scrollbar-width:thin}
.tray-empty{font-size:10px;color:var(--muted);text-align:center;width:100%;padding:3px 0}.tray-empty>span{font-size:17px;margin-right:5px;color:#b2a17a}
.parked-card{width:120px;flex-shrink:0}
.desk-photo{width:120px;height:85px;background:#fffdf6;padding:5px 5px 13px;box-shadow:1px 3px 6px #0002;touch-action:none;cursor:grab;transform:rotate(-2deg);display:block}
.desk-photo img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.parked-card>div{display:flex;gap:3px;justify-content:space-between;margin-top:9px}.parked-card>div button{font-size:9px;color:var(--accent-ink);padding:4px;background:var(--surface);border-radius:3px}
.photo-drag-ghost{position:fixed;z-index:1100;pointer-events:none;background:#fffdf6;box-shadow:0 14px 35px #2631213a;padding:5px 5px 16px;will-change:transform;transform-origin:center}
.photo-drag-ghost img{width:100%;height:100%;object-fit:cover;pointer-events:none;display:block}
.photo-drop-target{outline:2px dashed var(--green);outline-offset:-5px;background-color:color-mix(in srgb,var(--paper) 85%,var(--green))}
.selection-toolbar{max-width:calc(100vw - 16px);gap:2px}
.selection-toolbar #moveOtherPage,.selection-toolbar #parkPhoto{font-size:18px;width:27px}
.selection-toolbar input{width:65px}
.collection-view{max-width:1500px;margin:0 auto;padding-bottom:90px}
.collection-heading{display:flex;align-items:center;justify-content:space-between;gap:22px}
.collection-heading h1{font-size:30px}
.collection-heading p{font-size:12px;color:var(--muted);margin:0}
.sort-label{font-size:10px;color:var(--muted);white-space:nowrap;display:flex;align-items:center;gap:12px}
.sort-label select{font-size:11px;min-width:150px}
.collection-instruction{font-size:10px!important;margin:22px 0 0;color:var(--muted)}
.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:25px}
.collection-card{min-width:0;padding:15px;gap:14px;background:var(--surface);border-color:var(--border);box-shadow:0 4px 12px #28332304}
.favorite-open{display:block;text-align:left;width:100%;padding:0;min-width:0}
.favorite-open img{width:100%;display:block;aspect-ratio:1.36;object-fit:cover;transition:filter .2s}
.favorite-open:hover img{filter:saturate(1)}
.favorite-open h3{font-size:16px;margin:18px 0 8px;color:var(--accent-ink)}
.favorite-open p{font-size:10px;line-height:1.7;overflow-wrap:anywhere}
.favorite-placeholder{display:grid;place-items:center;width:100%;aspect-ratio:1.36;background:var(--soft);color:var(--accent-faint)}
.favorite-placeholder svg{width:44px;height:44px}
.favorite-actions{display:flex;align-items:center;gap:7px;border-top:1px solid var(--border);padding-top:12px;width:100%;flex-wrap:wrap}
.favorite-actions>span{font:10px monospace;color:var(--muted);margin-right:auto}
.favorite-actions button{font-size:9px;padding:5px 3px;color:var(--muted)}
.favorite-actions .unfavorite{margin-left:auto;color:#a96e66}
.favorite-actions svg{width:12px;height:12px}
.collection-card[draggable="true"]{cursor:grab}
.collection-card[draggable="true"] .favorite-open{cursor:grab}
.dragging-card{opacity:.35}.drop-before{outline:2px dashed var(--green);outline-offset:4px;background:var(--soft)}
.timeline-list{margin-top:28px;border-top:1px solid var(--border)}
.timeline-card{position:relative;display:flex;align-items:center;gap:24px;padding:23px 0;border-bottom:1px solid var(--border)}
.timeline-date{width:95px;flex-shrink:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--border);padding-right:16px}
.timeline-date>span{font:11px monospace;color:var(--muted);letter-spacing:2px}
.timeline-date>strong{font:25px/1.7 var(--serif);font-weight:400;color:var(--accent-ink);letter-spacing:1px}
.timeline-date>small{font-size:8px;color:var(--muted)}
.timeline-entry{flex:1;min-width:0;border:0;padding:0;gap:20px;text-align:left;justify-content:flex-start;width:auto}
.timeline-entry>div{min-width:0}.timeline-entry strong{font-size:19px;letter-spacing:1px}.timeline-entry small{font-size:10px;line-height:1.7}
.timeline-cover{width:70px;min-width:70px;height:91px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;margin-left:0!important;color:#fff8eb!important;box-shadow:inset 6px 0 #0002,3px 4px 6px #0001;border-radius:1px 5px 5px 1px;font:10px/1.5 var(--serif)!important;letter-spacing:2px;writing-mode:vertical-rl;padding:8px;max-height:100px}
.timeline-actions{display:flex;gap:11px;color:var(--muted);align-items:center;flex-wrap:wrap;max-width:135px}
.timeline-actions button{font-size:10px;gap:5px;padding:5px 0}
.timeline-actions svg{width:13px;height:13px}.timeline-actions button:last-child{color:#a8796c}
.text-button{margin-top:25px;padding:0 0 4px;font-size:11px;border-bottom:1px dashed var(--accent-faint);color:var(--muted)}
.page-edge{position:absolute;top:0;bottom:0;width:4%;min-width:13px;z-index:240;touch-action:none;cursor:ew-resize;background:linear-gradient(90deg,#baa77a10,transparent);opacity:.3;transition:opacity .2s}
.edge-left{left:0;transform:scaleX(-1)}.edge-right{right:0}
.page-edge>span{position:absolute;right:3px;bottom:11%;font-size:7px;writing-mode:vertical-rl;letter-spacing:1px;color:var(--paper-muted);white-space:nowrap;pointer-events:none}
.edge-left>span{transform:scaleX(-1)}
.page-edge:hover{opacity:1;background-color:#b4ad8812}
.page-edge.unavailable{pointer-events:none;opacity:0}
.turning .page-edge{pointer-events:none;opacity:0}
.flip-sheet{will-change:transform}.flip-sheet.forward,.flip-sheet.backward{animation:none}
.flip-sheet:after{animation:none;background:linear-gradient(90deg,rgba(54,46,26,var(--curl-shade,.08)),transparent 85%)}
.flip-face.paper{container-type:inline-size}.flip-face .transform-controls{display:none}
.reader-hint{display:none;font-size:10px;letter-spacing:.5px;text-align:center;color:var(--muted);padding:12px 0 5px}
.immersive .desk-tray,.immersive #albumDate,.immersive #lockSpreadBtn{display:none}
.immersive .memory-item{pointer-events:none;cursor:default}
.immersive .workspace{padding:18px 3vw}
.immersive .desk{padding:14px 24px}.immersive .album-heading .heading-actions{padding-top:0}
.immersive .book-stage{overflow:visible;margin:14px 0 15px}
.immersive .book-shell{min-width:0;margin:0;width:min(100%,calc((100dvh - 180px)*1.82),1100px)}
.reader-single .book-shell{aspect-ratio:.91}
.reader-single .paper{width:100%;border-radius:3px;box-shadow:inset -5px 0 12px -10px #514e3e66}
.reader-single .book-spine{display:none}
.reader-single:not(.reader-right) #rightPage,.reader-single.reader-right #leftPage{display:none}
.reader-single .flip-sheet.single-sheet{width:100%;left:0;transform-origin:left center}
.reader-single .flip-sheet.single-sheet.backward{transform-origin:right center}
.reader-single .flip-face.paper{display:block!important}
@media(hover:none){.shelf-actions{opacity:.8}.page-edge{width:6%;opacity:.45}.page-edge span{display:none}}
@media(max-width:1120px){.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-card{gap:18px}.timeline-date{width:80px;padding-right:12px}.timeline-actions{max-width:95px;gap:4px}.timeline-entry{gap:15px}.timeline-entry strong{font-size:16px}}
@media(max-width:720px){
  .shelf-row .album-entry strong{max-width:115px}.shelf-actions{opacity:.8}.album-date{font-size:9px;margin-top:9px}
  .workspace{padding:24px 16px 0}.album-heading{gap:8px}.album-heading h1{font-size:25px}.heading-actions .button{font-size:8px}
  .tool-panel{width:auto;max-height:calc(100dvh - 114px);padding:20px;bottom:87px;top:auto;left:10px;right:10px}
  .panel-field{font-size:11px}.panel-field input,.panel-field select,.panel-field textarea{font-size:12px;min-height:40px}
  .panel-field textarea{min-height:110px}.type-preview{margin-top:6px}.text-format-grid{gap:0 12px}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.source-actions button{min-height:34px;font-size:10px}
  .sticker-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.sticker-choice{padding:10px 4px 6px;min-height:75px;aspect-ratio:auto}.sticker-choice svg{width:34px;height:34px}.sticker-choice span{font-size:27px}.sticker-choice small{font-size:8px}.sticker-choice>div{font-size:6px}
  .sticker-choice>img{height:50px}.category-tabs button{min-height:35px;font-size:10px}
  .date-inputs{gap:8px}.date-inputs input{font-size:12px;padding:10px 8px}.date-inputs .form-field{font-size:10px}
  .desk{padding-left:18px;padding-right:18px}.desk-tray{padding:10px;margin:22px 0 15px}.tray-heading{font-size:9px}.tray-heading small{font-size:8px}.tray-empty{font-size:8px}.tray-empty span{font-size:12px}
  .book-stage{padding:0 10px}.book-shell{aspect-ratio:1.82}.page-arrow.prev{left:-13px}.page-arrow.next{right:-13px}.page-edge{min-width:11px}
  .desk-bottomline{gap:8px;flex-wrap:wrap}.desk-bottomline>span{font-size:6px}.desk-bottomline button{font-size:8px;min-height:28px}.page-position{font-size:8px}
  .collection-view{padding:30px 18px 90px}.collection-heading{align-items:flex-start;flex-direction:column;gap:18px}.collection-heading h1{font-size:27px}.collection-heading p{font-size:11px}
  .sort-label{width:100%;justify-content:space-between}.sort-label select{font-size:12px;min-height:40px}
  .collection-grid{gap:14px;margin-top:20px}.collection-card{padding:10px}.favorite-open h3{font-size:14px;margin-top:12px}.favorite-open p{font-size:9px}.collection-card img{border-width:5px}
  .favorite-actions{gap:6px;padding-top:8px}.favorite-actions button{font-size:9px;min-height:30px}.favorite-actions>span{font-size:9px}.favorite-actions .unfavorite{width:100%;justify-content:flex-end;font-size:10px}
  .timeline-card{align-items:flex-start;gap:13px;padding:22px 0;flex-wrap:wrap}.timeline-date{width:70px;min-height:87px}.timeline-date strong{font-size:22px}.timeline-date small{font-size:7px}.timeline-entry{gap:13px;align-self:center}.timeline-cover{width:48px;min-width:48px;height:65px;font-size:8px!important}.timeline-entry strong{font-size:15px}.timeline-entry small{font-size:9px}.timeline-actions{margin-left:83px;max-width:none;gap:17px}.timeline-actions button{font-size:10px;min-height:30px}
  .immersive .workspace{padding:16px 10px;max-width:none;min-height:100dvh;display:flex;flex-direction:column}
  .immersive .album-heading{margin:0 10px 10px;align-items:center;min-height:33px}.immersive .album-heading h1{font-size:19px;letter-spacing:2px;margin:0}.immersive .heading-spark{font-size:20px}
  .immersive .heading-actions{flex-direction:row;padding:0}.immersive .heading-actions .button{font-size:9px;min-height:32px;padding:7px 9px}
  .immersive .desk{padding:13px 12px;flex:1;display:flex;flex-direction:column;justify-content:center;border:0;background:transparent}
  .immersive .desk-topline{display:none}.immersive .book-stage{width:100%;margin:8px 0 12px;overflow:visible;justify-content:center;padding:0 28px;scrollbar-width:none;min-height:0}
  .immersive .book-shell{width:100%;min-width:0;margin:0;max-width:none;aspect-ratio:1.82}
  .immersive .page-arrow{position:absolute;top:50%;bottom:auto;transform:translateY(-50%);width:28px;height:38px;border-radius:20px;z-index:300;background:var(--surface)}
  .immersive .page-arrow.prev{left:0}.immersive .page-arrow.next{right:0}
  .immersive .reader-hint{display:block;padding:10px 0;font-size:9px}.immersive .desk-bottomline{justify-content:center;padding:3px 0 8px}.immersive .desk-bottomline>span,.immersive .desk-bottomline #addSpreadBtn{display:none}.immersive .page-position{font-size:11px}
  .reader-single .book-shell{width:min(100%,calc((100dvh - 190px)*.91));aspect-ratio:.91}
  .reader-single .desk{padding-left:0;padding-right:0}
  .reader-single .book-stage{padding-left:20px;padding-right:20px}
  .reader-single .memory-item.text{min-height:0}.reader-single .photo-caption{font-size:2.2cqw}
  .reader-single .page-favorite{width:30px;height:26px;bottom:2%}.reader-single .page-favorite svg{width:14px;height:14px}.reader-single .page-number{font-size:9px}
  .reader-single .paper-header{font-size:1.5cqw;letter-spacing:1px}
}
@media(orientation:landscape) and (max-height:600px){
  .immersive .workspace{padding:8px 20px;min-height:100dvh;max-width:none}
  .immersive .album-heading{margin:0 0 5px;align-items:center}.immersive .album-heading h1{font-size:17px;margin:0}.immersive .heading-actions .button{font-size:9px;padding:5px 9px;min-height:27px}.immersive .heading-actions{padding:0}
  .immersive .desk{padding:0 20px 5px;background:transparent;border:0}.immersive .desk-topline{display:none}
  .immersive .book-stage{margin:5px 0 10px;padding:0 30px;overflow:visible}
  .immersive .book-shell{width:min(100%,calc((100dvh - 110px)*1.82));min-width:0;margin:0;aspect-ratio:1.82}
  .immersive .reader-hint{display:none}.immersive .desk-bottomline{justify-content:center;padding:0}.immersive .desk-bottomline>span,.immersive #addSpreadBtn{display:none}.immersive .page-position{font-size:10px}
  .immersive .page-arrow{position:absolute;top:50%;bottom:auto;transform:translateY(-50%);width:28px;height:28px;z-index:300}.immersive .page-arrow.prev{left:0}.immersive .page-arrow.next{right:0}
}

/* refinements.css */
:root{--safe-bottom:env(safe-area-inset-bottom,0px)}
.photo-window{position:relative;flex:1;min-height:0;width:100%;height:100%;overflow:hidden;background:transparent}
.memory-item.photo .photo-window img{display:block;flex:none;min-height:0;width:100%;height:100%;max-width:none;backface-visibility:hidden}
.crop-preview.memory-item.photo{position:relative;inset:auto;transform:none;width:300px;height:245px;margin:8px auto 25px;max-width:100%;container-type:inline-size;touch-action:auto}
.crop-preview .photo-caption{font-size:10px}.crop-preview[data-frame="film"] .photo-caption{font-size:9px}
.photo-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.crop-sliders{display:grid;gap:13px;margin:10px 0 17px}
.crop-sliders label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:18px}
.crop-sliders input{padding:0;flex:1;min-width:0;accent-color:var(--green);height:30px}
.workspace-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:-9px 0 18px;color:var(--muted);font-size:10px;flex-wrap:wrap}
.workspace-actions>div{display:flex;align-items:center;gap:7px}
.workspace-actions button{border:1px solid var(--border);border-radius:6px;padding:7px 10px;background:var(--surface);min-height:32px;font-size:10px}
.workspace-actions button:hover{color:var(--accent-ink);background:var(--soft)}
.history-buttons button{font-size:20px;line-height:1;gap:6px}.history-buttons button span{font-size:10px}
.multi-indicator{color:var(--accent-ink)}.multi-indicator>span{font-size:10px}
.album-search input{font-size:10px;min-width:0;width:100%;padding:9px 10px;margin-bottom:8px;background:var(--surface);border-radius:6px}
.source-check{position:absolute;left:9px;top:9px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--accent-faint);width:21px;height:21px;border-radius:50%;font-style:normal;color:var(--accent-ink);font-size:13px}
.photo-source-card.chosen .source-check{background:var(--green);color:var(--on-accent);border-color:var(--green)}
.source-tags{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:9px 0 0;min-height:20px}
.source-tags span{font-size:8px;border-radius:4px;background:var(--soft);color:var(--muted);padding:2px 5px}
.source-tags button{font-size:9px;color:var(--muted);padding:3px;text-decoration:underline;text-underline-offset:2px}
.upload-settings{padding:14px 0 0;border-bottom:1px solid var(--border);margin-bottom:17px}
.upload-settings .panel-field{margin-bottom:10px}.check-field{display:flex;gap:7px;align-items:center;font-size:10px;margin:0 0 17px;color:var(--accent-ink);flex-wrap:wrap}.check-field input{accent-color:var(--green);width:15px;height:15px;padding:0;margin:0}.check-field small{font-size:8px;color:var(--muted)}
.library-search input{font-size:11px;min-height:39px;width:100%;margin:8px 0 10px;padding:10px}
.batch-actions{display:flex;align-items:center;gap:7px;padding:9px 0;border-bottom:1px solid var(--border);font-size:9px;color:var(--muted);flex-wrap:wrap}
.batch-actions>span{margin-right:auto}.batch-actions button{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:6px 7px;font-size:9px}
.library-empty{grid-column:1/-1;padding:20px 0}
.import-progress{padding:13px;border-radius:6px;background:var(--soft);font-size:11px;display:flex;align-items:center;justify-content:space-between;gap:8px}.import-progress button{font-size:9px;text-decoration:underline}
.batch-busy button,.batch-busy input,.batch-busy select,.batch-busy .memory-item{pointer-events:none;opacity:.5}.batch-busy #cancelImport{pointer-events:auto;opacity:1}
.storage-banner{margin:20px 30px;padding:18px 20px;border:1px solid #d2b77b;background:#fff9e9;border-radius:8px;color:#6b5e3c;display:flex;align-items:center;justify-content:space-between;gap:20px}
.storage-banner strong{font-size:13px}.storage-banner p{font-size:11px;line-height:1.8;margin:6px 0 0}
.storage-banner-actions{display:flex;gap:7px;flex-wrap:wrap;flex-shrink:0;max-width:325px}
.storage-banner-actions button{font-size:10px;border:1px solid #d7c99d;border-radius:5px;background:#fffdf5;padding:8px 10px}
.save-blocked .memory-item,.save-blocked .tool-dock,.save-blocked .workspace-actions{pointer-events:none;opacity:.6}
.storage-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--soft);border:1px solid var(--border);padding:17px;border-radius:7px;margin:20px 0}
.storage-summary>span{font-size:10px;color:var(--muted)}.storage-summary strong{display:block;font-size:14px;color:var(--accent-ink);font-weight:500;margin-top:3px}.last-backup{font-size:10px;color:var(--muted);margin:10px 0 22px}
.backup-due{position:relative}.backup-due:after{content:'';position:absolute;top:5px;right:4px;width:5px;height:5px;border-radius:50%;background:#bca16c}
.chapter-list{display:grid;gap:12px;margin-top:16px}.chapter-card{display:flex;align-items:center;gap:16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:12px;cursor:grab}
.chapter-preview{width:96px;height:58px;flex-shrink:0;border:1px solid var(--accent-faint);border-radius:2px;gap:2px}.chapter-card strong{font-size:11px;font-weight:500;color:var(--accent-ink)}
.chapter-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.chapter-actions button{font-size:9px;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:5px 7px;background:var(--soft)}
.arrange-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.arrange-actions button,.group-actions button{font-size:10px;min-height:37px;border:1px solid var(--border);border-radius:5px;padding:7px;background:var(--surface)}.group-actions{display:flex;gap:8px}.group-actions button{flex:1}
.template-heading{border-top:1px solid var(--border);margin:24px 0 17px;padding-top:18px}.template-heading h3{font:17px var(--serif);margin:0 0 8px}.template-heading p{font-size:10px;color:var(--muted);margin:0}.template-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.template-options button{display:block;text-align:left;padding:17px 12px;background:var(--soft);border:1px solid var(--border);border-radius:6px;font-size:12px}.template-options small{font-size:8px;color:var(--muted)}
.multi-selected{outline:1.5px dashed var(--green)!important;outline-offset:4px;background-blend-mode:multiply}.selection-toolbar button.active{background:var(--active-bg);color:var(--accent-ink)}
.alignment-guide{position:absolute;pointer-events:none;z-index:220;background:#b99a65aa}.alignment-guide-x{top:5%;bottom:5%;width:1px}.alignment-guide-y{left:2%;right:2%;height:1px}
.photo-viewer{width:min(1000px,95vw);max-width:none;max-height:95dvh;padding:18px;overflow:hidden;background:var(--surface)}
.viewer-head,.viewer-actions{display:flex;align-items:center;justify-content:space-between;gap:15px}.viewer-head strong{font:16px var(--serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-head button{font-size:25px;width:38px;height:38px;border:1px solid var(--border);border-radius:50%;flex-shrink:0}
.viewer-image-wrap{width:100%;height:min(70dvh,720px);overflow:auto;display:flex;align-items:center;justify-content:center;background:#252a2410;border-radius:5px;margin:10px 0 16px;touch-action:pan-x pan-y}
.viewer-image-wrap img{display:block;max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;transition:transform .12s}
.viewer-actions{font-size:11px;color:var(--muted)}.viewer-actions label{display:flex;gap:10px;align-items:center;min-width:0}.viewer-actions input{accent-color:var(--green);max-width:150px;padding:0}.viewer-actions button{border:1px solid var(--border);border-radius:5px;padding:9px 12px;font-size:10px;color:var(--accent-ink)}
.export-choices{display:grid;gap:12px;margin:20px 0}.export-choices button{display:block;text-align:left;background:var(--soft);border:1px solid var(--border);border-radius:7px;padding:19px}.export-choices strong{font-size:14px;font-weight:500;color:var(--accent-ink);display:block}.export-choices small{font-size:10px;color:var(--muted);display:block;margin-top:6px;line-height:1.8}
.export-current{display:flex;align-items:flex-end;gap:12px;padding:18px 0;border-top:1px solid var(--border)}.export-current .form-field{flex:1;margin:0;font-size:10px}.export-current button{white-space:nowrap}
.recovery-list>div{display:flex;gap:15px;align-items:center;justify-content:space-between;border:1px solid var(--border);padding:13px;border-radius:5px;margin:10px 0}.recovery-list strong{font-size:12px;font-weight:500;display:block}.recovery-list small{font-size:9px;color:var(--muted)}.recovery-list button{font-size:10px;border:1px solid var(--border);border-radius:4px;padding:8px;background:var(--soft)}
.immersive .workspace-actions{display:none}.immersive #bookShell{touch-action:pan-y}.immersive .memory-item.photo{pointer-events:auto;cursor:zoom-in;touch-action:pan-y}
@media(max-width:720px){
  input,textarea,select,.panel-field input,.panel-field textarea,.panel-field select,.form-field input,.form-field select,.form-field textarea{font-size:16px}
  .album-search input{font-size:13px;min-height:42px}.top-actions .icon-btn{min-width:38px;min-height:42px}.topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));gap:10px}.top-actions{gap:4px}.breadcrumb{gap:6px;font-size:9px}
  .workspace-actions{margin:0 0 15px;gap:10px}.workspace-actions>div{gap:6px}.workspace-actions button{font-size:10px;min-height:40px;padding:8px 10px}.history-buttons button{font-size:22px;min-width:44px}.history-buttons button span{font-size:10px}
  .multi-indicator{order:3;width:100%;justify-content:space-between}.multi-indicator button{min-width:90px}
  .selection-toolbar{left:12px!important;right:12px;top:auto!important;bottom:calc(82px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px);max-width:none;display:flex;flex-wrap:wrap;justify-content:center;padding:7px;gap:5px;border-radius:12px;box-shadow:0 8px 32px #24311f2b}
  .selection-toolbar button,.selection-toolbar #moveOtherPage,.selection-toolbar #parkPhoto{width:39px;min-height:42px;flex-shrink:0;font-size:20px}.selection-toolbar input{width:80px}.selection-toolbar label{display:flex;align-items:center;min-height:42px}.selection-toolbar>span{display:none}
  .source-remove{width:32px;height:32px;right:-2px;top:-7px}.source-actions button{min-height:42px;font-size:10px}.source-tags button{min-height:35px;font-size:10px}.batch-actions button{min-height:40px;padding:8px;font-size:11px}.batch-actions{font-size:10px}.source-check{width:24px;height:24px}.check-field{font-size:12px;min-height:35px}.check-field input{width:20px;height:20px}.check-field small{font-size:9px}
  .tool-panel{padding:19px 16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 110px)}.tool-panel .panel-heading{margin-bottom:18px}.tool-panel .panel-heading h2{font-size:21px}.photo-grid{gap:18px 12px}.library-search input{font-size:16px;min-height:44px}.upload-settings .panel-field select{font-size:13px}
  .crop-preview.memory-item.photo{width:280px;height:220px}.photo-edit-grid{gap:9px}.photo-edit-grid select{font-size:13px}.crop-sliders label{font-size:12px}.crop-sliders input{height:39px}.crop-sliders{gap:8px}
  .storage-banner{margin:14px 12px;padding:15px;align-items:flex-start;flex-direction:column;gap:12px}.storage-banner-actions{max-width:none;gap:8px}.storage-banner-actions button{min-height:42px;font-size:11px;padding:8px 10px}.storage-banner strong{font-size:14px}.storage-banner p{font-size:11px}
  .chapter-card{padding:11px;gap:10px}.chapter-preview{width:72px;height:48px}.chapter-actions button{min-height:38px;font-size:10px;padding:7px}.chapter-actions{gap:7px}.arrange-actions{grid-template-columns:repeat(3,1fr)}.arrange-actions button,.group-actions button{min-height:44px;font-size:11px}.template-options{gap:7px}.template-options button{font-size:12px;padding:15px 9px}.template-options small{font-size:8px}
  .photo-viewer{padding:13px;width:95vw}.viewer-head strong{font-size:14px}.viewer-image-wrap{height:65dvh}.viewer-actions{gap:10px;flex-wrap:wrap}.viewer-actions button{min-height:42px}.viewer-actions input{max-width:140px}.viewer-head button{width:44px;height:44px}.viewer-actions label{font-size:12px}
  .storage-summary{padding:14px}.storage-summary strong{font-size:15px}.backup-actions button{min-height:48px}.recovery-list button{min-height:42px}.export-current{flex-direction:column;align-items:stretch}.export-current button{min-height:44px}.export-current .form-field select{font-size:13px}
  .page-arrow{min-width:30px;min-height:34px}.page-favorite{width:30px;height:28px}.page-favorite svg{width:14px;height:14px}.sticker-choice{min-height:84px}
}

/* atelier.css */
/* 拾光 · 创作书桌 */
:root{--page-ratio:.91;--book-ratio:1.82;--texture-opacity:.65}
#mobileMenu{display:inline-flex}.sidebar{width:256px;padding:26px 18px 18px;overflow-y:auto;transition:transform .25s}.app-shell{margin-left:256px;transition:margin-left .25s}.sidebar-collapsed .sidebar{transform:translateX(-100%)}.sidebar-collapsed .app-shell{margin-left:0}.brand{margin-bottom:25px}.side-section-title{margin-top:25px}.sidebar-bottom{padding:15px 8px 0}.sidebar-bottom .little-flower,.sidebar-bottom>p,.sidebar-bottom>small,.eyebrow,.workspace-footer,.desk-note,.desk-topline>span:first-child{display:none}.sidebar-bottom button{padding-top:15px;margin-top:12px}.workspace{padding:26px 30px 20px}.topbar{padding:0 30px}.album-heading{margin-bottom:18px}.album-heading h1{font-size:29px}.album-heading p{font-size:12px}.album-heading .heading-actions{padding:0}.desk{border-radius:14px;padding:16px 24px 20px;isolation:isolate;background-image:none;overflow:visible}.desk:before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;opacity:var(--texture-opacity);pointer-events:none;background:repeating-linear-gradient(0deg,#6c726007 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,#6c72600b 0 1px,transparent 1px 4px)}
.album-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:12px;font-size:11px}.surface-navigation,.layout-switch{display:flex;align-items:center;gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:4px}.album-controls button{min-height:34px;padding:5px 10px;border-radius:6px;white-space:nowrap}.album-controls button.active{background:var(--active-bg);color:var(--accent-ink)}#albumStyleBtn{border:1px solid var(--border);background:var(--surface)}.workspace-actions{margin-bottom:10px}.book-stage{padding:0 34px;margin-top:18px}.book-shell{aspect-ratio:var(--book-ratio);width:min(100%,980px)}.reader-single .book-shell{aspect-ratio:var(--page-ratio);width:min(72%,560px)}.reader-single .paper{width:100%}.reader-single.reader-right #rightPage{display:block}.reader-single.reader-right #leftPage,.reader-single:not(.reader-right) #rightPage{display:none}.reader-single .book-spine{display:none}.book-cover-open .book-shell{width:min(65%,480px)}.book-cover-open #leftPage{display:block!important;width:100%;box-shadow:inset 9px 0 12px -9px #0009;border-radius:4px 8px 8px 4px}.book-cover-open #rightPage{display:none!important}.book-cover-open .book-spine{display:none}.book-underlay{box-shadow:0 24px 36px -12px #30261450,0 7px 9px #0002}.page-arrow{width:34px;height:34px;z-index:230;background:var(--surface);box-shadow:0 2px 8px #0001}.page-arrow.prev{left:-9px}.page-arrow.next{right:-9px}.page-edge{touch-action:none}.reader-hint{font-size:10px}.page-position{font-size:11px}.desk-bottomline{gap:10px}.desk-bottomline>span{font-size:9px}.back-cover-thumb{flex-shrink:0;width:38px;height:51px;border-radius:2px 5px 5px 2px;background:var(--green);color:white;font-size:9px;box-shadow:inset 3px 0 #0002,1px 2px 4px #0002}.cover-target-note{padding:8px 12px;border-radius:7px;background:var(--active-bg);font-size:11px}
.flip-underlay{position:absolute;inset:0;perspective:2200px;transform-style:preserve-3d}.flip-still{position:absolute;top:0;width:50%;height:100%}.flip-still.left{left:0}.flip-still.right{right:0}.flip-still.full{left:0;width:100%}.turning #book{visibility:hidden}.flip-sheet{height:100%;top:0;transform-style:preserve-3d;will-change:transform}.flip-sheet.forward{left:50%;transform-origin:left center}.flip-sheet.backward{left:0;transform-origin:right center}.flip-face{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:block!important;transform-style:flat}.flip-face.front{transform:rotateY(0deg)}.flip-face.back{transform:rotateY(180deg)}.reader-single .flip-still{width:100%}.reader-single .flip-sheet.single-sheet{left:0;width:100%}.flip-sheet:after{pointer-events:none;backface-visibility:hidden}
.cover-background{position:absolute;inset:0;z-index:0;background-color:inherit}.cover-background-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.82)}.cover-background.material-linen:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff16 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#0000000c 0 1px,transparent 1px 3px)}.cover-background.material-leather:after{background:radial-gradient(#0002 .65px,transparent 1px),radial-gradient(#fff2 .5px,transparent .7px);background-size:4px 5px,7px 6px}.cover-background.material-kraft:after{background:repeating-linear-gradient(37deg,#cdb48b26 0 1px,transparent 1px 5px)}.cover-background.material-cotton:after{background:radial-gradient(#fff2 .7px,transparent 1.5px);background-size:3px 4px}.cover-binding{position:absolute;top:0;bottom:0;left:3%;width:3%;z-index:1;border-right:1px solid #fff2;box-shadow:-2px 0 5px #0002;pointer-events:none}.ink-layer{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;z-index:140;fill:none;stroke:none}.drawing-mode #book,.drawing-mode #book .memory-item{cursor:crosshair;touch-action:none}.drawing-mode .page-edge{pointer-events:none}.brush-options{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:18px 0}.brush-options button{display:flex;flex-direction:column;gap:4px;font-size:10px;padding:12px 3px;border:1px solid var(--border);border-radius:8px}.brush-options button span{font-size:23px}.brush-options .active{background:var(--active-bg);border-color:var(--green)}.brush-preview{display:flex;align-items:center;justify-content:center;min-height:75px;background:var(--paper);border-radius:8px;margin:18px 0}.brush-preview span{width:70%;border-radius:50%}
.shelf-date-tools{display:flex;align-items:center;gap:5px;margin:5px 0 12px}.shelf-date-tools button{font-size:10px;padding:7px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.real-bookshelf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;padding:10px 5px 19px;position:relative;background:repeating-linear-gradient(0deg,transparent 0 164px,#b9a17d55 164px 172px,#846d4855 172px 174px,transparent 174px 180px)}.shelf-volume{display:block;position:relative;min-width:0;min-height:162px;padding:0;background:none!important;border:0!important;cursor:grab}.shelf-volume .album-entry{display:flex;flex-direction:column;padding:0 3px;gap:4px;text-align:center;width:100%;overflow:visible}.shelf-volume-cover{display:block;position:relative;width:83px;max-width:100%;height:105px;border-radius:1px 5px 5px 1px;box-shadow:inset 5px 0 #0003,5px 5px 0 -2px #c1baa3,7px 10px 10px #30281735;transform:perspective(400px) rotateY(-11deg);transition:transform .2s;container-type:inline-size;pointer-events:none}.shelf-volume.active .shelf-volume-cover{outline:2px solid var(--green);outline-offset:4px}.shelf-volume:hover .shelf-volume-cover{transform:perspective(400px) rotateY(-3deg) translateY(-3px)}.shelf-volume .album-entry strong{font-size:10px;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-top:3px}.shelf-volume .album-entry small{font-size:9px;line-height:1.2}.shelf-volume .shelf-actions{position:absolute;top:2px;right:-2px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:6px;opacity:0;z-index:160}.shelf-volume:hover .shelf-actions,.shelf-volume:focus-within .shelf-actions{opacity:1}.shelf-actions button{min-width:24px;min-height:24px;font-size:12px}.shelf-photo-match{display:block;font-size:8px;width:100%;background:var(--active-bg);padding:3px}.shelf-dragging{opacity:.4}.shelf-drop{outline:2px dashed var(--green)}.shelf-empty{font-size:11px;grid-column:1/-1}.album-management{display:grid;grid-template-columns:1fr 1fr;gap:12px}.album-management button{padding:16px 10px;border:1px solid var(--border);border-radius:8px}.album-management button:first-child,.album-management button:nth-last-child(2),.album-management button:last-child{grid-column:1/-1}.danger-text{color:#a84c3a!important}.danger-button{background:#a84c3a!important;color:white!important}
.photo-finder{position:relative;display:flex;align-items:center;gap:8px;margin:0 0 14px;z-index:250;font-size:11px}.photo-finder-input{display:flex;align-items:center;flex:1;max-width:350px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding-left:10px}.photo-finder-input>span{font-size:23px;line-height:1}.photo-finder input{min-width:0;width:100%;border:0;background:none;padding:9px;font-size:11px}.photo-finder>button{min-height:35px;padding:6px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface)}.photo-search-results{position:absolute;top:calc(100% + 5px);left:0;width:min(100%,590px);max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:0 15px 35px #0002;padding:8px}.search-results-title{display:flex;justify-content:space-between;padding:7px 10px}.search-results-title button{font-size:20px}.photo-search-hit{width:100%;display:flex;gap:10px;text-align:left;justify-content:flex-start;padding:9px;border-radius:7px}.photo-search-hit:hover{background:var(--active-bg)}.photo-search-hit img{width:46px;height:46px;object-fit:cover;border-radius:3px}.photo-search-hit span{display:flex;flex:1;flex-direction:column;gap:4px}.photo-search-hit strong{font-size:11px;font-weight:500}.photo-search-hit small{font-size:10px;color:var(--muted)}.photo-search-hit b{font-size:10px;font-weight:500}.search-highlight{outline:3px solid #d8a24a!important;outline-offset:5px}
.studio-panel{display:flex;flex-direction:column;padding:0!important;overflow:hidden!important;max-height:none!important;min-width:0;box-shadow:0 18px 65px #2d352d30}.studio-panel .panel-heading{margin:0!important;padding:15px 18px;min-height:66px;gap:4px;border-bottom:1px solid var(--border);cursor:grab;touch-action:none;flex-shrink:0}.studio-panel .panel-heading>div{margin-right:auto}.studio-panel .panel-heading small{display:none}.studio-panel .panel-heading h2{font-size:20px;margin:0}.studio-panel #panelContent{flex:1;min-height:0;overflow:auto;padding:20px 20px 32px;overscroll-behavior:contain}.panel-minimize{font-size:21px;width:30px;height:32px;border-radius:5px}.panel-resize-grip{position:absolute;bottom:0;right:0;z-index:4;width:28px;height:28px;background:var(--surface);border-radius:7px 0 0;cursor:nwse-resize;touch-action:none;color:var(--muted);font-size:19px}.panel-minimized #panelContent,.panel-minimized .panel-resize-grip{display:none}.panel-moving{user-select:none}#modal{resize:both;min-width:min(300px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}#modalTitle{cursor:move;touch-action:none}#modalEyebrow{display:none}.type-preview{min-height:90px;max-height:270px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.type-preview[data-note=cream]{background:#fff2bd}.type-preview[data-note=kraft]{background:#d8bb8d}.type-preview[data-note=pink]{background:#f8dedd}.type-preview[data-note=blue]{background:#dcebee}.type-preview[data-note=lined]{background:repeating-linear-gradient(0deg,#879b7133 0 1px,transparent 1px 24px),#fffdf6}.type-preview[data-note=grid]{background:repeating-linear-gradient(0deg,#879b7133 0 1px,transparent 1px 24px),repeating-linear-gradient(90deg,#879b7133 0 1px,transparent 1px 24px),#f5f7ec}
.wheel-dialog{width:min(460px,calc(100vw - 24px));padding:24px;border-radius:18px;z-index:1500;max-height:calc(100dvh - 24px);overflow:auto}.wheel-heading{display:flex;justify-content:space-between;align-items:center}.wheel-heading h2{font:500 21px var(--serif);margin:0}.wheel-heading button{font-size:26px;min-width:40px;min-height:40px}.wheel-value{text-align:center;color:var(--accent-ink);font-size:16px;letter-spacing:1px;margin:16px 0}.wheel-dates,.wheel-times{display:flex;position:relative;gap:6px;border-radius:12px;overflow:hidden;background:var(--app-bg);margin:10px 0}.wheel-dates:before,.wheel-times:before{content:'';position:absolute;top:80px;height:40px;left:6px;right:6px;background:var(--active-bg);border-radius:8px;pointer-events:none}.wheel-column{position:relative;flex:1;height:200px;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;padding:80px 0;overscroll-behavior:contain;mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent)}.wheel-column::-webkit-scrollbar{display:none}.wheel-column button{display:flex;width:100%;height:40px;min-height:40px;scroll-snap-align:center;font-size:20px;font-variant-numeric:tabular-nums;padding:0;gap:5px}.wheel-column button[aria-selected=true]{font-weight:600;color:var(--accent-ink)}.wheel-column small{font-size:10px;font-weight:400}.wheel-time-toggle{display:flex;align-items:center;gap:8px;font-size:12px;margin:15px 0}.wheel-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.wheel-date-fields{display:flex;gap:12px;margin:14px 0}.wheel-date-fields label{flex:1;display:flex;flex-direction:column;gap:8px;font-size:12px;min-width:0}.wheel-date-fields button,.wheel-value-button{min-height:44px;padding:9px;border:1px solid var(--border);background:var(--app-bg);border-radius:8px;font-size:12px}.photo-date-settings{margin:20px 0}.wheel-value-button{width:100%;justify-content:flex-start}.check-field{display:flex;align-items:center;gap:8px;margin-top:20px}
.scene-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.scene-options button{display:flex;flex-direction:column;gap:7px;border:1px solid var(--border);padding:5px 5px 9px;border-radius:8px;font-size:10px}.scene-options .active{border-color:var(--green);background:var(--active-bg)}.surface-swatch{width:100%;height:44px;border-radius:4px}.scene-linen{background:repeating-linear-gradient(0deg,#c3c4b522 0 1px,transparent 1px 3px),#e4e4d9}.scene-wood{background:repeating-linear-gradient(1deg,#9b6d3e22 0 2px,transparent 2px 9px),linear-gradient(90deg,#ba916b,#e3c39d,#bf946a)}.scene-slate{background:repeating-linear-gradient(22deg,#fff1 0 1px,transparent 1px 7px),#596062}.scene-marble{background:linear-gradient(135deg,transparent 44%,#a5a5a544 46%,transparent 50%),#e9e7e1}.scene-cork{background:radial-gradient(#78582c66 1px,transparent 2px),#c6a57a;background-size:7px 9px}.scene-night{background:repeating-linear-gradient(0deg,#ffffff08 0 1px,transparent 1px 7px),#292e34}body[data-surface=wood] .desk{background:#c5a17b;border-color:#b1906d}body[data-surface=wood] .desk:before{background:repeating-linear-gradient(1deg,#563b1c26 0 2px,transparent 2px 14px),repeating-linear-gradient(0deg,transparent 0 120px,#6b47262b 121px 123px),linear-gradient(90deg,#ba916b44,#ead2ad88,#b58b6655)}body[data-surface=slate] .desk{background:#596062;border-color:#5e6462}body[data-surface=slate] .desk:before{background:repeating-linear-gradient(21deg,#fff1 0 1px,transparent 1px 15px),radial-gradient(ellipse at 20% 80%,#ffffff1c,transparent)}body[data-surface=marble] .desk{background:#e9e7e1}body[data-surface=marble] .desk:before{background:repeating-linear-gradient(137deg,transparent 0 160px,#9fa09a22 165px,transparent 174px),linear-gradient(40deg,transparent 55%,#a6a6a533 56%,transparent 57%)}body[data-surface=cork] .desk{background:#c9ad89}body[data-surface=cork] .desk:before{background:radial-gradient(#78582c66 1px,transparent 2px),radial-gradient(#fff3 .7px,transparent 1.5px);background-size:9px 7px,5px 6px}body[data-surface=night] .desk{background:#292e34;border-color:#3f464c}body[data-surface=night] .desk:before{background:repeating-linear-gradient(0deg,#ffffff0a 0 1px,transparent 1px 9px)}body[data-surface=night] .desk-bottomline,body[data-surface=slate] .desk-bottomline,body[data-surface=night] .page-position,body[data-surface=slate] .page-position{color:#e0e2dc}body[data-surface=night] .page-position b,body[data-surface=slate] .page-position b{color:#fff}.preset-create{display:flex;gap:7px;margin:14px 0}.preset-create input{width:50%;flex:1;min-width:0;font-size:11px}.preset-create button{font-size:10px;border:1px solid var(--border);border-radius:7px;padding:8px}.personal-theme{display:flex;gap:5px;margin:7px 0;border:1px solid var(--border);border-radius:7px;padding:7px}.personal-theme>button:first-child{flex:1;justify-content:flex-start}.personal-theme i{width:22px;height:22px;border:5px solid;border-radius:50%}.personal-theme small{margin-left:auto;color:var(--muted);font-size:9px}
.desk-tray{margin:24px 0 16px;padding:12px;border:1px solid #77796635;background:#f9f8ed33;border-radius:10px}.tray-heading{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:11px}.tray-heading>div{display:flex;gap:6px}.tray-heading button{font-size:10px;min-height:28px;padding:3px 8px;border:1px solid #77796635;border-radius:5px;background:var(--surface)}.tray-canvas{position:relative;margin-top:8px;border-radius:8px;min-height:200px;overflow:visible}.tray-empty{display:grid;align-content:center;justify-content:center;height:100%;text-align:center;line-height:2;font-size:11px}.tray-empty button{background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:9px 14px;margin-top:12px}.tray-photo-card{position:absolute;touch-action:none;cursor:grab;outline:0}.tray-photo-art{position:absolute;inset:0;pointer-events:none}.tray-scale-paper{position:relative;container-type:inline-size;transform-origin:top left;pointer-events:none}.tray-scale-paper .memory-item{max-width:none;pointer-events:none}.tray-photo-actions{position:absolute;left:0;top:calc(100% + 8px);width:max-content;max-width:280px;display:none;flex-wrap:wrap;gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px;box-shadow:0 4px 15px #0002;z-index:180}.tray-photo-actions button{font-size:9px;min-height:27px;padding:3px 5px}.tray-photo-card.selected{z-index:190!important}.tray-photo-card.selected .tray-photo-actions,.tray-photo-card:focus-within .tray-photo-actions{display:flex}.tray-resize,.tray-rotate{position:absolute;z-index:170;display:none;background:var(--surface);border:1px solid var(--green);width:25px;height:25px;border-radius:50%;touch-action:none}.tray-resize{right:-10px;bottom:-10px;cursor:nwse-resize}.tray-rotate{left:calc(50% - 12px);top:-28px;cursor:grab}.tray-photo-card.selected .tray-resize,.tray-photo-card.selected .tray-rotate{display:flex}.tray-drag-ghost{position:fixed!important;z-index:1400!important;pointer-events:none;opacity:.9;filter:drop-shadow(0 14px 18px #0003)}.tray-drag-ghost .tray-photo-actions{display:none}
.format-cover-preview{position:relative!important;width:180px!important;height:auto!important;margin:0 auto 25px;border-radius:3px 8px 8px 3px;box-shadow:6px 8px 18px #0003;container-type:inline-size;pointer-events:none}.format-options{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.format-options label{display:flex;flex-direction:column;align-items:center;border:1px solid var(--border);padding:10px 4px;border-radius:8px;gap:5px;cursor:pointer;font-size:10px}.format-options input{position:absolute;opacity:0}.format-options label:has(input:checked){border-color:var(--green);background:var(--active-bg)}.format-options small{font-size:8px;color:var(--muted)}.format-mini{display:block;width:35px;background:var(--green);border-radius:1px 4px 4px 1px;box-shadow:inset 3px 0 #0002}.material-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}.material-options label{border:1px solid var(--border);padding:10px;border-radius:8px;display:flex;align-items:center;gap:7px;font-size:11px}.material-options label:has(input:checked){border-color:var(--green);background:var(--active-bg)}.cover-photo-actions{display:flex;gap:8px}.template-kind-tabs{display:flex;gap:5px;margin-bottom:14px}.template-kind-tabs button{flex:1;font-size:11px;padding:9px;border-radius:6px;border:1px solid var(--border)}.template-kind-tabs .active{background:var(--active-bg);border-color:var(--green)}#modal:has(.template-designer){width:950px}.template-designer{display:grid;grid-template-columns:1.5fr 1fr;gap:25px}.template-designer>section{min-width:0}.template-live-preview{display:flex;gap:2px;padding:12px;background:var(--desk);border-radius:9px;pointer-events:none;margin-bottom:18px;overflow:hidden}.template-page{position:relative;width:50%;height:auto;container-type:inline-size;flex-shrink:0;box-shadow:0 2px 6px #0002}.template-page .page-favorite{display:none}.template-picker-heading{display:flex;justify-content:space-between;font-size:11px;gap:8px;margin-bottom:12px}.template-picker-heading button{font-size:10px}.template-photo-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:425px;overflow:auto;padding:3px}.template-photo-choices button{position:relative;display:flex;flex-direction:column;align-items:stretch;border:1px solid var(--border);border-radius:7px;padding:4px;gap:5px;overflow:hidden}.template-photo-choices img{width:100%;height:90px;object-fit:cover;border-radius:3px}.template-photo-choices span{font-size:9px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-align:left;padding:3px}.template-photo-choices i{position:absolute;right:7px;top:7px;background:var(--surface);border-radius:50%;width:23px;height:23px;font-style:normal;font-size:11px;display:grid;place-items:center}.template-photo-choices .chosen{border:2px solid var(--green);padding:3px}.template-photo-choices .chosen i{background:var(--green);color:white}
.volume-stage{height:380px;display:grid;place-items:center;perspective:1100px;touch-action:none;cursor:grab;background:radial-gradient(ellipse at 50% 85%,#00000018,transparent 65%);overflow:hidden;border-radius:12px}.volume-cube{position:relative;width:230px;height:calc(230px / var(--volume-ratio));transform-style:preserve-3d;will-change:transform}.volume-face{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden;container-type:inline-size;pointer-events:none;border-radius:3px 6px 6px 3px}.volume-front{transform:translateZ(16px)}.volume-back{transform:rotateY(180deg) translateZ(16px)}.volume-spine{position:absolute;left:0;top:0;width:32px;height:100%;transform:translateX(-16px) rotateY(-90deg);transform-origin:center;box-shadow:inset 3px 0 #0003}.volume-spine span{position:absolute;inset:20px 0;writing-mode:vertical-rl;text-align:center;color:#fff9;font:11px var(--serif);letter-spacing:2px}.volume-pages{position:absolute;right:-14px;top:4px;bottom:4px;width:28px;background:repeating-linear-gradient(90deg,#d1cbb9 0 1px,#efecdd 1px 3px);transform:rotateY(90deg)}.volume-top,.volume-bottom{position:absolute;left:4px;right:4px;height:28px;background:repeating-linear-gradient(0deg,#d1cbb9 0 1px,#efecdd 1px 3px);transform:rotateX(90deg)}.volume-top{top:-10px}.volume-bottom{bottom:-10px}.volume-hint{text-align:center;font-size:11px;color:var(--muted)}.volume-actions{display:flex;justify-content:center;gap:10px}.volume-actions button{border:1px solid var(--border);border-radius:6px;padding:8px;font-size:11px}.storage-location{margin:20px 0;padding:16px;background:var(--app-bg);border:1px solid var(--border);border-radius:9px}.storage-location h3{font-size:14px;margin:0 0 12px}.storage-location p{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;font-size:11px}.storage-location p>span{color:var(--muted);width:60px}.storage-location code{font-size:10px;overflow-wrap:anywhere}.storage-location>small{font-size:10px;color:var(--muted)}.storage-reset-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}.storage-reset-actions button{padding:10px;border:1px solid var(--border);border-radius:6px;font-size:11px}
.immersive .album-controls{margin:8px auto 10px;justify-content:center}.immersive .album-controls #albumStyleBtn{display:none}.immersive .photo-finder{display:none}.immersive .book-shell{aspect-ratio:var(--book-ratio);width:min(100%,calc((100dvh - 220px)*var(--book-ratio)),1100px)}.immersive.reader-single .book-shell{aspect-ratio:var(--page-ratio);width:min(100%,calc((100dvh - 220px)*var(--page-ratio)),600px)}.immersive .desk-tray{display:none!important}
@media(max-width:1100px) and (min-width:721px){.sidebar{width:230px}.app-shell{margin-left:230px}.workspace{padding:22px}.album-controls{justify-content:flex-start}.layout-switch{margin-left:auto}.shelf-volume-cover{width:74px;height:101px}.real-bookshelf{gap:18px 9px}}
@media(max-width:720px){.sidebar{width:270px;transform:translateX(-100%);z-index:800}.sidebar.open,.sidebar-collapsed .sidebar.open{transform:none}.app-shell,.sidebar-collapsed .app-shell{margin-left:0}.shelf-volume .shelf-actions{opacity:1}.topbar{padding:0 12px;height:62px}.top-actions{gap:7px}.breadcrumb{gap:8px}.workspace{padding:18px 12px 90px}.album-heading{align-items:flex-start;gap:10px}.album-heading h1{font-size:25px}.album-heading p{font-size:10px;max-width:220px}.album-heading .heading-actions .button{font-size:10px;min-height:36px;padding:6px 8px}.album-controls{gap:7px;margin:12px 0}.album-controls .surface-navigation{flex:1;justify-content:space-between}.album-controls button{font-size:10px;padding:6px 7px;min-height:38px}.layout-switch{order:3;width:100%;justify-content:stretch}.layout-switch button{flex:1;font-size:12px;min-height:42px}.photo-finder{font-size:10px;gap:5px}.photo-finder input{font-size:11px;padding:10px 5px}.photo-finder>button{font-size:10px;padding:6px;min-height:40px;max-width:155px}.desk{padding:12px 13px 18px}.book-stage{padding:0 16px;margin-top:16px;margin-bottom:20px;overflow:visible}.book-shell{min-width:0;aspect-ratio:var(--book-ratio);width:100%;margin:0}.reader-single .book-shell,.book-cover-open .book-shell{min-width:0;width:min(100%,480px);aspect-ratio:var(--page-ratio);margin:0}.reader-single .book-stage{padding:0 16px}.reader-single .desk{padding:12px 13px 18px}.page-arrow.prev{left:-8px}.page-arrow.next{right:-8px}.page-arrow{width:30px;height:36px;border-radius:8px;min-width:0}.page-lock-controls{font-size:10px}.page-lock-controls button{font-size:9px;min-height:32px;padding:5px 7px}.desk-bottomline{justify-content:center;flex-wrap:wrap}.desk-bottomline>span{display:none}.desk-bottomline #addSpreadBtn{font-size:10px;min-height:32px}.page-position{font-size:11px}.tool-dock{max-width:calc(100vw - 16px)}.tool-dock button{width:43px;min-width:0}.tool-dock .dock-label{display:none}.page-strip-row{gap:8px;flex-wrap:wrap}.strip-label{width:100%}.page-strip{flex:1}.keyboard-hint{display:none}.studio-panel #panelContent{padding:15px 16px 32px}.wheel-dialog{padding:18px}.wheel-value{font-size:14px}.wheel-date-fields{gap:8px}.wheel-date-fields button{font-size:11px}.tray-heading{font-size:10px}.tray-photo-actions{max-width:210px}.tray-photo-actions button{min-height:32px;font-size:10px}.template-designer{grid-template-columns:1fr;gap:20px}.template-photo-choices{grid-template-columns:repeat(3,1fr);max-height:240px}.template-photo-choices img{height:72px}.template-live-preview{padding:8px}.format-options{grid-template-columns:1fr 1fr}.format-options label{font-size:11px}.volume-stage{height:330px}.volume-cube{width:190px;height:calc(190px / var(--volume-ratio))}.immersive .album-controls{padding:0 10px;gap:5px}.immersive .album-controls .surface-navigation{flex:1}.immersive .layout-switch{order:0;width:auto;flex:1}.immersive .album-controls button{min-height:34px;font-size:10px}.immersive .desk{padding:8px 10px!important}.immersive .book-stage{padding:0 20px!important;overflow:visible;justify-content:center}.immersive .book-shell{width:min(100%,calc((100dvh - 230px)*var(--book-ratio)));aspect-ratio:var(--book-ratio);min-width:0;margin:0}.immersive.reader-single .book-shell{width:min(100%,calc((100dvh - 230px)*var(--page-ratio)));aspect-ratio:var(--page-ratio)}.immersive .page-arrow{position:absolute;bottom:auto;top:calc(50% - 18px)}.immersive .page-arrow.prev{left:-6px}.immersive .page-arrow.next{right:-6px}.removed-list>div{flex-wrap:wrap}.removed-list button{min-height:36px}.photo-search-hit b{font-size:9px}}
@media(max-height:500px) and (orientation:landscape){.immersive .album-heading{display:none}.immersive .album-controls{margin:4px auto}.immersive .album-controls button{min-height:28px;padding:3px 8px}.immersive .book-shell{width:min(100%,calc((100dvh - 100px)*var(--book-ratio)))}.immersive.reader-single .book-shell{width:min(100%,calc((100dvh - 100px)*var(--page-ratio)))}.immersive .book-stage{margin:8px auto}.immersive .reader-hint{display:none}.immersive .desk-bottomline{margin-top:5px}}
@media(prefers-reduced-motion:reduce){.sidebar,.app-shell,.shelf-volume-cover{transition:none}}

@media(max-width:720px){.album-heading{flex-wrap:wrap}.album-heading>div:first-child{width:100%}.album-heading .heading-actions{flex-direction:row;width:100%;justify-content:flex-end;gap:6px}.album-heading .heading-actions .button{flex:1;min-height:36px}.heading-actions #lockSpreadBtn{font-size:9px}.album-heading .heading-actions .button svg{width:13px}}

@media(max-height:500px) and (orientation:landscape){.immersive .workspace{position:relative}.immersive .album-heading{display:flex!important;position:absolute;right:10px;top:9px;z-index:300;margin:0}.immersive .album-heading>div:first-child{display:none}.immersive .album-heading .heading-actions{width:auto}.immersive .heading-actions #lockSpreadBtn{display:none}.immersive #immersiveBtn{min-height:30px;font-size:9px;padding:5px 8px}.immersive .album-controls{padding-right:100px}}

@media(max-height:500px) and (orientation:landscape){.volume-stage{height:160px}.volume-cube{width:125px;height:calc(125px / var(--volume-ratio))}.volume-hint{margin:8px 0}.volume-actions button{padding:5px 8px}}

/* reliability.css */
/* 拾光 v6 · 安心保存与自在创作 */
.topbar{height:64px}.workspace{padding-top:20px}.album-heading{margin-bottom:10px}.album-controls{margin-bottom:9px}.workspace-modes{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 10px}.workspace-modes>div{display:flex;border:1px solid var(--border);border-radius:9px;padding:3px;background:var(--surface)}.workspace-modes button{padding:7px 14px;min-height:34px;font-size:11px;border-radius:6px}.workspace-modes button.active{background:var(--green);color:var(--on-accent)}.workspace-modes small{font-size:10px;color:var(--muted)}.immersive .workspace-modes{display:none}.workspace-more{position:relative}.workspace-more summary{cursor:pointer;list-style:none;font-size:11px;padding:8px 12px;border:1px solid var(--border);border-radius:7px;background:var(--surface)}.workspace-more summary::-webkit-details-marker{display:none}.workspace-more-content{display:flex;align-items:center;gap:6px}.workspace-more summary{display:none}.workspace-more:not([open])>.workspace-more-content{display:flex}
.asset-health-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 30px 0;border:1px solid #dbcda4;background:#fff6db;color:#7e6936;border-radius:9px;padding:12px 16px;font-size:12px}.asset-health-banner button{border:1px solid #c5b782;border-radius:6px;padding:7px 10px;flex-shrink:0}.missing-photos{display:flex;flex-direction:column;gap:14px}.missing-photos article{display:flex;gap:14px;padding:12px;border:1px solid var(--border);border-radius:9px}.missing-photos img{width:90px;height:75px;object-fit:contain;border-radius:6px}.missing-photos article>div{min-width:0;display:flex;flex-direction:column;gap:7px;font-size:12px}.missing-photos small{font-size:10px;color:var(--muted)}.missing-photos button{border:1px solid var(--border);padding:7px;border-radius:6px;font-size:11px}.advanced-storage-actions{display:grid;gap:8px;margin:16px 0}.advanced-storage-actions button{padding:11px;border:1px solid var(--border);border-radius:7px;font-size:12px;background:var(--app-bg)}.space-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.space-overview>span{display:flex;flex-direction:column;gap:8px;padding:14px 8px;border-radius:9px;background:var(--active-bg);font-size:10px}.space-overview strong{font-size:16px;font-weight:500}.space-albums{display:flex;flex-direction:column;max-height:250px;overflow:auto;margin-top:18px}.space-albums>div{display:flex;justify-content:space-between;gap:10px;padding:11px 5px;border-bottom:1px solid var(--border);font-size:11px}.space-albums strong{font-weight:500}.space-clean-preview{border:1px solid var(--border);padding:16px;border-radius:9px;margin-top:18px}.space-clean-preview h3{margin:0;font:17px var(--serif)}.space-clean-preview p{font-size:11px;color:var(--muted)}.offline-settings{padding:16px;border:1px solid var(--border);border-radius:9px;margin:16px 0}.offline-settings h3{font:17px var(--serif);margin:0}.offline-settings p{font-size:11px;color:var(--muted)}.offline-settings>div{display:flex;flex-wrap:wrap;gap:8px}.offline-settings button{padding:8px;border:1px solid var(--border);border-radius:6px;font-size:10px}.offline-notice{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:12px 18px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 30px #0002;z-index:700;font-size:12px}.offline-notice button{padding:6px 10px;border:1px solid var(--border);border-radius:5px}.network-offline #saveStatus:after{content:' · 离线';color:var(--green)}
.layer-page-tabs{display:flex;align-items:center;gap:8px;margin-bottom:14px}.layer-page-tabs button{border:1px solid var(--border);padding:8px 12px;border-radius:7px;font-size:11px}.layer-page-tabs .active{background:var(--active-bg);border-color:var(--green)}#pasteLayer{margin-left:auto}.layer-list{display:flex;flex-direction:column;gap:6px;max-height:245px;overflow:auto;padding:3px}.layer-row{display:flex;align-items:center;gap:4px;padding:6px;border:1px solid var(--border);border-radius:7px;background:var(--surface)}.layer-row.active{border-color:var(--green);background:var(--active-bg)}.layer-row>button{font-size:10px;min-height:32px;padding:4px 6px}.layer-row>button:first-child{flex:1;min-width:0;justify-content:flex-start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}.layer-row>button:first-child span{font-size:16px;flex-shrink:0}.precision-fields{margin-top:20px;padding-top:15px;border-top:1px solid var(--border)}.precision-fields h3{font:17px var(--serif);margin:0}.precision-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.precision-grid label{font-size:10px;color:var(--muted)}.precision-grid input{display:block;width:100%;padding:8px;margin-top:5px}.precision-preview{position:relative;width:min(100%,280px);height:auto;margin:18px auto;container-type:inline-size;pointer-events:none;border-radius:4px;box-shadow:0 3px 12px #0002}.precision-preview .page-favorite{display:none}.layer-item-actions{display:flex;gap:8px;flex-wrap:wrap}.layer-item-actions button{font-size:11px;padding:9px;border:1px solid var(--border);border-radius:6px}.memory-item.is-item-locked{cursor:default}.memory-item.is-item-locked:hover{outline:1px dashed #8c9983;outline-offset:5px}.format-spread-preview{display:flex;gap:2px;margin:0 0 20px;background:var(--desk);padding:10px;border-radius:9px;pointer-events:none}.format-spread-preview>.paper{position:relative;width:50%;height:auto;container-type:inline-size;box-shadow:0 2px 8px #0001}.panel-docking{font-size:9px;max-width:78px;padding:5px 3px;border-radius:5px;margin-left:4px}.studio-panel .panel-heading>div{min-width:0}.studio-panel .panel-heading h2{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wheel-quick{display:flex;justify-content:center;gap:9px;margin-bottom:10px}.wheel-quick button{font-size:10px;min-height:30px;padding:6px 10px;background:var(--app-bg);border:1px solid var(--border);border-radius:6px}
#modal:has(.export-studio){width:920px}.export-studio{display:grid;grid-template-columns:1.1fr 1fr;gap:25px}.export-studio section{min-width:0}.export-preview{min-height:260px;display:grid;place-items:center;background:var(--desk);padding:12px;border-radius:10px;font-size:12px;color:var(--muted)}.export-preview img{width:100%;height:auto;max-height:560px;object-fit:contain;box-shadow:0 3px 15px #0002}.export-secondary{display:flex;gap:8px;margin:18px 0}.export-secondary button{flex:1;border:1px solid var(--border);border-radius:6px;padding:10px;font-size:11px}#exportBatchProgress{margin:14px 0;padding:12px;border:1px solid var(--border);border-radius:7px;background:var(--app-bg);font-size:11px}#cancelExportBatch{border:1px solid var(--border);border-radius:5px;padding:7px 12px}.export-capture .page-favorite{display:none!important}
@media(max-width:720px){.topbar{height:60px}.workspace{padding-top:16px}.workspace-modes{display:block;margin:10px 0}.workspace-modes>div{display:flex}.workspace-modes button{flex:1;font-size:12px;padding:8px 6px;min-height:41px}.workspace-modes small{display:block;margin:6px 2px;font-size:9px}.workspace-more summary{display:block;min-height:38px}.workspace-more-content,.workspace-more:not([open])>.workspace-more-content{display:none}.workspace-more[open]>.workspace-more-content{display:flex;flex-direction:column;align-items:stretch;position:absolute;right:0;top:calc(100% + 5px);min-width:160px;padding:8px;border-radius:9px;border:1px solid var(--border);background:var(--surface);box-shadow:0 10px 30px #0002;z-index:400}.workspace-more-content button{min-height:42px;font-size:12px}.asset-health-banner{margin:10px 12px;align-items:flex-start;font-size:11px;flex-direction:column}.space-overview{grid-template-columns:1fr}.space-overview>span{flex-direction:row;justify-content:space-between;align-items:center}.space-overview strong{font-size:14px}.offline-notice{max-width:calc(100vw - 20px);width:360px;font-size:11px;padding:10px;gap:7px}.offline-notice button{font-size:10px;padding:6px}.layer-row{gap:1px;padding:4px}.layer-row>button{font-size:9px;padding:4px;min-height:36px}.layer-row>button:first-child{max-width:130px}.precision-grid{grid-template-columns:1fr 1fr}.precision-grid input{font-size:16px}.panel-docking{max-width:75px;font-size:9px}.studio-panel .panel-heading{padding:12px}.studio-panel .panel-heading h2{font-size:17px}.export-studio{grid-template-columns:1fr;gap:15px}.export-preview{min-height:160px}.export-preview img{max-height:340px}.export-studio .form-field select{min-height:44px}.offline-settings button{font-size:11px;min-height:38px}#modal{max-height:calc(var(--viewport-height,100dvh) - 20px)}.wheel-dialog{max-height:calc(var(--viewport-height,100dvh) - 20px)}.missing-photos article{gap:8px;padding:8px}.missing-photos img{width:65px;height:60px}}
@media(max-height:500px) and (orientation:landscape){.immersive .workspace-modes{display:none}.offline-notice{bottom:8px}.export-preview img{max-height:250px}}

/* experience.css */
:root{--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--paper-photo:none;--desk-photo:none}
body{background:var(--app-bg);font-family:var(--sans);-webkit-font-smoothing:antialiased}.app-shell{background:var(--app-bg)}.topbar{height:56px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(24px);border-color:#00000009}.sidebar{background:#eeeef0;border-color:#00000008;padding-top:28px}.brand{margin-bottom:34px}.sidebar-label{letter-spacing:.4px}.workspace{padding:18px 30px 86px;max-width:1450px;margin:auto}.album-heading{margin:0 0 14px;align-items:center}.album-heading h1{font-size:25px;letter-spacing:.4px;font-family:var(--sans);font-weight:600;margin:0}.album-heading p{font-size:11px;margin:4px 0 0}.album-date{font-size:10px;margin-top:5px}.eyebrow,.heading-spark,.workspace-footer,#modeDescription,.reader-hint,.desk-bottomline,.page-strip-row,#coverBtn,#immersiveBtn,#lockSpreadBtn{display:none!important}.album-heading .heading-actions{display:none}.album-heading>div:first-child{width:100%}.album-controls{margin:0 0 12px;gap:8px;flex-wrap:nowrap}.album-controls button{font-size:11px;min-height:31px;padding:5px 10px;border-radius:7px}.surface-navigation,.layout-switch{background:#e8e8ed80;border:1px solid #00000006;border-radius:10px;padding:3px;gap:2px}.surface-navigation .active,.layout-switch .active{background:var(--surface);box-shadow:0 1px 4px #00000014;color:var(--ink)}.layout-switch{margin-left:auto;order:0;width:auto;justify-content:center}.layout-switch button{flex:0 0 auto}.layout-switch button[aria-pressed=true]{background:var(--surface);box-shadow:0 1px 4px #0001}.workspace-actions{margin:0;min-height:0}.workspace-actions>div:empty,.workspace-actions>.history-buttons{display:none}.workspace-actions>div:last-child{display:none}.multi-indicator{margin-bottom:9px}.studio-commandbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 11px}.workspace-modes{display:block;margin:0}.workspace-modes>div{background:#e7e7ec;border:0;border-radius:10px;gap:2px;padding:3px}.workspace-modes button{font-size:11px;min-height:31px;padding:5px 18px}.workspace-modes button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #00000018}.studio-command-actions{display:flex;align-items:center;gap:8px}.studio-command-actions>button,.studio-command-actions .history-buttons button,.workspace-more summary{border:0!important;background:transparent!important;border-radius:8px!important;padding:6px 9px!important;min-height:32px!important;font-size:11px!important}.studio-command-actions>button:hover,.workspace-more summary:hover{background:#00000005!important}.studio-command-actions .history-buttons{display:flex;gap:1px;margin-right:2px}.studio-command-actions .history-buttons button{font-size:15px!important;min-width:30px}.history-buttons button span{display:none}.workspace-more summary{display:flex!important;cursor:pointer}.workspace-more:not([open])>.workspace-more-content{display:none!important}.workspace-more[open]>.workspace-more-content{display:flex!important;position:absolute!important;top:100%;right:0;flex-direction:column;align-items:stretch;padding:7px;min-width:190px;border:1px solid #0000000c;border-radius:12px;background:color-mix(in srgb,var(--surface) 95%,transparent);backdrop-filter:blur(24px);box-shadow:0 12px 40px #0002;z-index:500}.workspace-more-content button{background:transparent;border:0!important;min-height:37px!important;justify-content:flex-start;padding:8px 12px!important;font-size:12px!important;border-radius:7px}.workspace-more-content button:hover{background:#00000006}.workspace-more-content #albumStyleBtn span{display:none}.workspace-more-content #albumStyleBtn{font-size:0!important}.workspace-more-content #albumStyleBtn:after{content:'相册款式与书脊';font-size:12px}
.photo-finder{max-width:100%;margin-bottom:12px;padding:0;gap:7px}.photo-finder-input{background:var(--surface);border-radius:10px;border:1px solid #00000008;overflow:hidden;flex:1}.photo-finder input{padding:9px 10px;font-size:11px;border:0;background:transparent}.photo-finder>button{border:0;border-radius:10px;background:#e8e8ed80;min-height:35px;font-size:11px;padding:5px 11px}.photo-search-results{z-index:510;border-radius:12px}.desk{border:1px solid #00000010;border-radius:22px;padding:16px 22px 18px;isolation:isolate;position:relative;overflow:visible;box-shadow:inset 0 1px 1px #fff8,0 8px 24px #00000004;background:var(--desk)!important}.desk:before{opacity:var(--texture-opacity,.65);z-index:-1;pointer-events:none;border-radius:inherit;background-size:cover}.desk-topline{margin:0;min-height:16px;justify-content:flex-end}.desk-topline>span:first-child{display:none}.page-lock-controls{gap:5px;margin:0}.page-lock-controls button{background:#ffffffa8;border:1px solid #00000008;border-radius:20px;min-height:27px;font-size:9px;padding:4px 9px;color:#4e514f;backdrop-filter:blur(14px)}.page-lock-controls svg{width:10px;height:10px}.desk.custom-desk-color:before{background-image:url('assets/stone-grain.svg');mix-blend-mode:multiply}.desk.custom-desk-image{background-image:var(--desk-photo)!important;background-size:cover!important;background-position:center!important}.desk.custom-desk-image:before{background:linear-gradient(#00000005,#0000000a);opacity:1}.desk.custom-desk-image .book-navigation{background:#fafafab8;backdrop-filter:blur(22px);padding:5px 10px;border-radius:25px;width:max-content;max-width:100%;margin-left:auto;margin-right:auto}body[data-surface=wood] .desk:not(.custom-desk-color):not(.custom-desk-image){background:linear-gradient(100deg,#b88e68,#d4b38d 38%,#d1ae88 62%,#b88f6a)!important}body[data-surface=wood] .desk:before{background-image:url('assets/wood-grain.svg');background-size:900px 500px;opacity:var(--texture-opacity,.65);mix-blend-mode:multiply}body[data-surface=slate] .desk:not(.custom-desk-color):not(.custom-desk-image){background:linear-gradient(135deg,#5c6264,#747b7d 50%,#555d60)!important}body[data-surface=slate] .desk:before{background-image:url('assets/stone-grain.svg');background-size:700px 700px;opacity:var(--texture-opacity,.65)}body[data-surface=marble] .desk:not(.custom-desk-color):not(.custom-desk-image){background:linear-gradient(110deg,#e9e7e3,#fbfaf7,#dededb)!important}body[data-surface=marble] .desk:before{background-image:url('assets/marble-vein.svg'),url('assets/stone-grain.svg');background-size:cover,600px;mix-blend-mode:multiply}body[data-surface=linen] .desk:before{background:repeating-linear-gradient(0deg,#8b897713 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#fff3 0 1px,transparent 1px 3px)}body[data-surface=cork] .desk:not(.custom-desk-color):not(.custom-desk-image){background:#bf9a6a!important}body[data-surface=night] .desk:not(.custom-desk-color):not(.custom-desk-image){background:linear-gradient(100deg,#292d33,#42474f,#272b31)!important}body[data-surface=night] .desk:before{background-image:url('assets/wood-grain.svg');mix-blend-mode:screen}
.book-stage,.reader-single .book-stage,.immersive .book-stage{display:flex;justify-content:center;align-items:center;padding:0!important;margin:12px auto 15px!important;width:100%;overflow:visible!important;perspective:1800px;min-height:0}.book-shell,.immersive .book-shell{position:relative;width:min(100%,calc(var(--page-fit-height,460px)*var(--book-ratio,1.82)),880px)!important;min-width:0!important;max-width:100%!important;aspect-ratio:var(--book-ratio,1.82);margin:0!important;transform-style:preserve-3d}.reader-single .book-shell,.book-cover-open .book-shell,.immersive.reader-single .book-shell{width:min(100%,calc(var(--page-fit-height,480px)*var(--page-ratio,.91)),490px)!important;aspect-ratio:var(--page-ratio,.91)}.book-underlay{background:var(--album-edge,#65745e)!important;border-color:var(--album-edge,#65745e)!important;box-shadow:0 22px 32px -16px #20180e70,0 5px 7px #20180e28,inset 0 0 0 1px #0002;transform:translateZ(-3px);border-radius:4px 8px 8px 4px}.book{border-color:var(--album-edge,#65745e)!important;box-shadow:0 1px 1px #fff8}.book:before,.book:after{border-color:var(--album-edge,#65745e)!important}.paper{background-color:var(--paper);background-image:var(--paper-photo);background-position:center;background-size:cover}.book-spine{background:linear-gradient(90deg,#00000013,transparent 34%,#0000001c 50%,transparent 74%,#fff2)!important;z-index:220;pointer-events:none}.paper-header,.alignment-guide,.transform-readout,.page-favorite{display:none!important}.paper.is-locked:after{display:none}.left-paper.is-locked{box-shadow:inset -19px 0 24px -24px #312e2590}.paper.is-locked{outline:none}.book-navigation{display:flex;align-items:center;justify-content:center;gap:9px;min-height:42px;margin:9px auto 0;position:relative;z-index:260;color:#47494b;font-variant-numeric:tabular-nums}.book-navigation .page-arrow,.immersive .book-navigation .page-arrow{position:static!important;inset:auto!important;transform:none!important;display:inline-flex!important;width:36px;height:36px;min-width:36px;min-height:36px;border-radius:50%;box-shadow:none;background:#ffffff90;color:#33383b;border:1px solid #00000009;z-index:auto}.book-navigation .page-arrow svg{width:16px;height:16px}.book-navigation .page-arrow:disabled{opacity:.25}#jumpToPage{padding:4px 10px;min-width:96px;min-height:36px;border-radius:20px;font-size:11px;background:#ffffff70}#jumpToPage .page-position{margin:0;display:flex;align-items:center;gap:5px;font-size:11px}#jumpToPage .page-position b{font-weight:500;font-size:11px;color:inherit}.outside-favorites{display:flex;gap:2px;margin-left:7px;border-left:1px solid #0002;padding-left:8px}.outside-favorites button{height:34px;min-width:34px;gap:2px;background:transparent;border-radius:18px;position:relative}.outside-favorites svg{width:17px;height:17px}.outside-favorites small{font-size:8px}.outside-favorites button[aria-pressed=true]{color:#ad675d}.outside-favorites button[aria-pressed=true] svg{fill:#c77c7040}.book-navigation button:hover{background:#ffffffb0}.page-edge{width:3.5%;min-width:10px;max-width:18px;opacity:0;z-index:240;touch-action:none}.page-edge span{display:none}.page-edge:hover{opacity:.5}.book-is-turning .album-controls,.book-is-turning .studio-commandbar,.book-is-turning .photo-finder,.book-is-turning .tool-dock{pointer-events:none}.book-is-turning .book-navigation button{pointer-events:none}#flipLayer{visibility:hidden;overflow:visible;pointer-events:none;border-radius:inherit}.turning #flipLayer{visibility:visible}.turning #book{visibility:hidden}.flip-sheet{position:absolute!important;width:50%;height:100%;top:0;transform-style:preserve-3d;animation:none!important;pointer-events:none}.flip-sheet.forward{left:50%;transform-origin:left center}.flip-sheet.backward{left:0;transform-origin:right center}.flip-face.paper{backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important;transform-style:flat;contain:layout style;overflow:hidden}.flip-face.front{transform:translateZ(.2px)}.flip-face.back{transform:rotateY(180deg) translateZ(.2px)}.reader-single #flipLayer{overflow:hidden}.flip-still{border-radius:2px}.flip-still .paper-header{display:none}.flip-underlay{backface-visibility:hidden}.flip-sheet:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(30,27,20,var(--curl-shade,.05)),transparent 75%);transform:translateZ(.5px);backface-visibility:hidden}.flip-sheet.backward:after{background:linear-gradient(270deg,rgba(30,27,20,var(--curl-shade,.05)),transparent 75%)}.spatial-view .book-shell{transform:rotateX(var(--view-rx,10deg)) rotateY(var(--view-ry,-12deg));transition:transform .12s ease-out}.spatial-view .book-underlay{box-shadow:0 32px 30px -16px #20180e70,0 7px 12px #20180e38}.orbit-controls{display:flex;justify-content:center;align-items:center;gap:12px;font-size:10px;margin:6px 0}.orbit-controls button{background:#ffffffa0;border:1px solid #00000008;border-radius:20px;padding:5px 10px;min-height:29px}.orbit-controls #orbitHandle{cursor:grab;touch-action:none}
.tool-dock{border:1px solid #0000000b;border-radius:18px;background:#fafafae6;backdrop-filter:blur(24px);box-shadow:0 6px 24px #00000015;z-index:360;gap:3px;padding:7px}.tool-dock button{border-radius:12px;height:43px;min-width:46px;font-size:9px}.tool-dock button.active{background:#e3e5e8}.tool-dock button svg{width:18px;height:18px}.tool-dock .dock-grip,.tool-dock #resetDock{width:23px;min-width:23px}.tool-dock #hideTools{width:25px;min-width:25px;font-size:18px}.selection-toolbar{border-radius:12px;padding:5px;max-width:calc(100vw - 16px);gap:3px;background:#fafafaf2;backdrop-filter:blur(24px);box-shadow:0 5px 20px #0002;z-index:520}.selection-toolbar button{width:30px;height:30px;border-radius:7px}.selection-toolbar #sizeItem,.selection-toolbar #rotateItem,.selection-toolbar #frontItem,.selection-toolbar #multiToggle{display:none!important}.selection-toolbar>span{display:none}.inline-layer-menu{position:relative}.inline-layer-menu>summary{list-style:none;font-size:10px;padding:7px 8px;cursor:pointer;border-radius:7px}.inline-layer-menu summary::-webkit-details-marker{display:none}.inline-layer-menu[open]>div{display:flex;flex-direction:column;position:absolute;bottom:calc(100% + 10px);left:0;background:#fffffff2;border:1px solid #0000000c;backdrop-filter:blur(20px);border-radius:11px;padding:6px;min-width:125px;box-shadow:0 8px 30px #0002}.inline-layer-menu>div button{width:100%;font-size:11px;min-height:34px;padding:7px 10px;justify-content:flex-start}.transform-hud{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);z-index:1600;pointer-events:none;background:#272a2dd9;color:white;border:1px solid #ffffff20;padding:5px 10px;border-radius:20px;max-width:150px;font:11px/1.3 var(--sans);box-shadow:0 3px 12px #0002}.photo-drag-ghost{background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important;pointer-events:none}.photo-drag-ghost .memory-item{box-shadow:0 10px 15px #0003}.photo-drag-ghost .custom-sticker-image{height:auto;object-fit:contain}.manual-guide{position:absolute;z-index:230;background:none;border:0;padding:0;pointer-events:auto;touch-action:none}.manual-guide.guide-x{width:10px;top:0;bottom:0;transform:translateX(-5px);border-left:1px dashed #2c9bbfc0;cursor:ew-resize}.manual-guide.guide-y{height:10px;left:0;right:0;transform:translateY(-5px);border-top:1px dashed #2c9bbfc0;cursor:ns-resize}.guide-create{display:flex;align-items:end;gap:8px;margin-top:22px}.guide-create label{font-size:11px;display:grid;gap:6px;flex:1;min-width:0}.guide-create input,.guide-create select{width:100%}.guide-create>button{font-size:12px;padding:10px;border-radius:8px;background:var(--soft)}.jump-quick{display:flex;gap:8px;margin-bottom:18px}.jump-quick button,.jump-pages button{background:var(--app-bg);border:1px solid #00000008;padding:9px 16px;border-radius:9px}.jump-pages{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;max-height:200px;overflow:auto}.jump-pages button{font-size:11px;padding:9px}.studio-panel,#modal{background:#fafafaf5;backdrop-filter:blur(28px);border-color:#0000000b;box-shadow:0 20px 70px #00000025;border-radius:20px}.studio-panel .panel-heading{min-height:58px}.studio-panel .panel-heading h2{font:600 17px var(--sans)}.studio-panel #panelContent{padding:18px}.studio-panel .panel-hint{font-size:11px;line-height:1.7}.panel-heading .panel-docking{max-width:90px;background:#ececf0;border:0;border-radius:7px;padding:6px}.modal-heading h2{font:600 20px var(--sans);letter-spacing:0}.panel-label{letter-spacing:0}.tiny-help{line-height:1.75}.theme-choice small{display:none}.theme-presets .theme-choice{min-height:75px;border-radius:12px}.theme-presets .theme-choice strong{font-size:11px}.material-custom-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.material-custom-grid label{font-size:11px;display:grid;gap:7px}.material-custom-grid input{width:100%;height:42px;padding:4px}.material-image-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:22px}.material-image-actions button{border:1px solid #00000009;background:var(--surface);font-size:10px;min-height:36px;border-radius:8px;padding:6px}.surface-swatch{height:48px;border-radius:8px}.scene-options button{border-radius:10px}.scene-wood{background-image:url('assets/wood-grain.svg'),linear-gradient(100deg,#b88e68,#d4b38d,#b88f6a);background-size:300px}.scene-marble{background-image:url('assets/marble-vein.svg'),linear-gradient(110deg,#e9e7e3,#fbfaf7,#dededb)}.scene-slate{background-image:url('assets/stone-grain.svg');background-color:#646c6e}.scene-linen{background-color:#d9d8ce}#materialCustomization h3,#scenePicker h3{font:600 13px var(--sans)}.desk-tray{border-radius:12px;background:#ffffff30;border-color:#00000012;margin:17px 0 0}.tray-canvas{overflow:visible}.tray-heading{font-size:10px}.tray-photo-actions{border-radius:10px;background:#fffffff0;border-color:#0000000a}.tray-photo-card:focus-visible{outline:1px solid var(--green)}
.shelf-label{margin-top:22px}.real-bookshelf{display:grid;grid-template-columns:1fr 1fr;gap:27px 9px;padding:12px 5px 26px;overflow-y:auto;overflow-x:hidden;align-content:start;background:repeating-linear-gradient(0deg,transparent 0 170px,#b69a7760 171px,#dac6ad 175px,#a0835e6b 180px,transparent 183px)}.shelf-volume{min-height:155px;perspective:700px;isolation:isolate;border-radius:10px;background:none!important}.shelf-volume .album-entry{padding:0;gap:7px;display:flex;align-items:center;justify-content:flex-start;flex-direction:column;min-width:0;perspective:650px}.shelf-volume .album-entry>strong{font:500 10px/1.4 var(--sans);letter-spacing:0;text-align:center;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.shelf-volume .album-entry>small{font-size:8px;line-height:1.2}.shelf-volume-object{position:relative;display:block;width:76px;height:105px;transform-style:preserve-3d;transform:rotateY(var(--shelf-angle,-13deg)) rotateX(2deg);transition:transform .22s;filter:drop-shadow(6px 8px 4px #30211024);margin:4px 0}.shelf-volume .shelf-volume-cover{display:block;position:absolute;inset:0;width:76px!important;height:105px!important;transform:translateZ(5px);border-radius:2px 5px 5px 2px;box-shadow:inset 3px 0 #0003,inset -1px 0 #fff3;border:1px solid #ffffff20;overflow:hidden;margin:0;container-type:inline-size}.shelf-spine{position:absolute;left:-5px;top:0;width:10px;height:105px;transform:rotateY(-90deg);transform-origin:center;writing-mode:vertical-rl;text-align:center;font-size:4px;letter-spacing:.4px;padding:9px 2px;border:1px solid #0002;border-radius:2px;background-size:cover}.shelf-volume-object:after{content:'';position:absolute;right:-4px;top:3px;bottom:3px;width:8px;background:repeating-linear-gradient(90deg,#d8d0ba 0 1px,#eee8d7 1px 2px);transform:rotateY(90deg);transform-origin:center;border-radius:0 3px 3px 0}.shelf-volume.active .shelf-volume-object{transform:rotateY(var(--shelf-angle,-8deg)) translateY(-4px) rotateX(1deg);filter:drop-shadow(5px 12px 5px #30211035)}.shelf-volume .shelf-actions{position:absolute;top:-3px;right:-2px;z-index:5;border-radius:12px;background:#ffffffdb;backdrop-filter:blur(12px);border:1px solid #00000009}.shelf-actions button{width:22px;height:26px;min-height:26px;font-size:12px}.shelf-volume:hover .shelf-actions,.shelf-volume:focus-within .shelf-actions{opacity:1}.shelf-spine[data-pattern=stars],.spine-live[data-pattern=stars]{background-image:radial-gradient(#ffffff60 1px,transparent 2px);background-size:11px 15px}.shelf-spine[data-pattern=line],.spine-live[data-pattern=line]{box-shadow:inset 2px 0 #ffffff35,inset -2px 0 #0003}.shelf-spine[data-pattern=leaves],.spine-live[data-pattern=leaves]{background-image:repeating-linear-gradient(45deg,transparent 0 9px,#ffffff20 10px 11px,transparent 12px 20px)}.shelf-spine[data-pattern=dots],.spine-live[data-pattern=dots]{background-image:radial-gradient(#0003 .7px,transparent 1px);background-size:5px 7px}.spine-designer{margin:18px 0}.spine-designer summary{font-size:12px;font-weight:600;margin-bottom:15px;cursor:pointer}.spine-live{height:40px;margin:12px auto 22px;padding:8px 25px;border-radius:4px;box-shadow:0 4px 9px #0002;text-align:center;letter-spacing:2px;font-size:12px;background-size:cover}
.timeline-card{padding-right:34px;overflow:hidden;touch-action:pan-y}.timeline-card .timeline-actions{display:none;flex:0 0 128px;gap:6px;max-width:128px;align-items:stretch;flex-direction:column}.timeline-card.actions-revealed .timeline-actions{display:flex}.timeline-actions button{padding:8px 10px!important;border-radius:7px;background:#e9e9ee80;justify-content:flex-start;min-height:32px}.timeline-more{position:absolute;right:0;top:calc(50% - 16px);width:30px;height:32px;color:var(--muted);font-size:12px;border-radius:50%}.timeline-more:hover{background:#0001}.timeline-entry{transition:opacity .2s}.guide-intro{display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap;margin-bottom:20px}.guide-intro h3{font:600 17px var(--sans);margin:0}.guide-intro .button{font-size:11px;padding:10px 14px}.guide-sections details{border-bottom:1px solid #0000000a;padding:14px 0}.guide-sections summary{font-size:13px;font-weight:500;cursor:pointer}.guide-sections p{font-size:12px;line-height:1.9;color:var(--muted);margin-bottom:0}.tutorial-card{position:fixed;right:20px;bottom:85px;width:min(340px,calc(100vw - 30px));padding:22px;border:1px solid #0000000e;border-radius:20px;background:#fffffff5;backdrop-filter:blur(24px);box-shadow:0 14px 70px #0003;z-index:1800}.tutorial-card>span{font-size:10px;color:var(--muted)}.tutorial-card #closeTutorial{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:50%;background:#f0f0f3;font-size:18px}.tutorial-card h3{font-size:18px;margin:12px 0}.tutorial-card p{font-size:12px;line-height:1.9;color:var(--muted);margin:0 0 18px}.tutorial-card>div{display:flex;gap:12px;justify-content:space-between}.tutorial-card>div button{font-size:12px;border-radius:9px;padding:8px 15px;min-height:36px}.tutorial-card #nextTutorial{background:var(--green);color:var(--on-accent)}.tutorial-target{outline:2px solid #7b8d9e!important;outline-offset:5px;border-radius:10px}.sticker-designer{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.sticker-canvas-wrap{width:100%;aspect-ratio:1;border:1px solid #0001;border-radius:12px;overflow:hidden;background:repeating-conic-gradient(#ddd 0% 25%,#f8f8f8 0% 50%) 50%/22px 22px}.sticker-canvas-wrap canvas{width:100%;height:100%;display:block;touch-action:none}.sticker-draw-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.sticker-draw-actions button,.sticker-shapes button{border:1px solid #0000000c;border-radius:9px;font-size:11px;padding:8px 11px;min-height:35px}.sticker-shapes{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}#modal:has(.sticker-designer){width:850px}.template-kind-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.template-kind-tabs button{font-size:10px;min-height:37px;white-space:nowrap;padding:6px;border-radius:9px;background:var(--surface)}.template-kind-tabs button.active{border-color:var(--green);background:var(--soft)}.template-live-preview{border-radius:12px;background:#e5e0d7;margin-top:14px}.template-photo-choices button{border-radius:10px}.template-photo-choices img{height:78px}.template-picker-heading{align-items:center;flex-wrap:wrap}.template-picker-heading button{font-size:10px;min-height:32px;border:1px solid #0001;padding:6px 9px;border-radius:7px}.immersive .workspace-modes{display:block!important}.immersive .workspace{padding-top:14px}.immersive .album-heading{display:none!important}.immersive .studio-command-actions{display:none}.immersive .studio-commandbar{justify-content:center;margin-bottom:9px}.immersive .album-controls{justify-content:center;margin-bottom:9px}.immersive .layout-switch{margin-left:10px}.immersive .desk{padding:14px 20px!important}.immersive .desk-tray,.immersive .desk-topline{display:none!important}.immersive .outside-favorites{display:flex}.immersive .book-navigation{display:flex!important}.immersive .page-position{display:flex!important}.immersive .page-position b{display:block!important}.immersive .page-position span{display:block!important}.immersive .tool-dock{display:none!important}.immersive .album-controls .surface-navigation{flex:0 1 auto}.workspace:fullscreen{overflow:auto;width:100%;height:100%;max-width:none;background:var(--app-bg);padding:12px 30px 80px}
@media(min-width:721px){.workspace{padding-left:28px;padding-right:28px}.studio-command-actions .workspace-more summary{display:flex!important}.shelf-volume .shelf-actions{opacity:0}.shelf-volume:hover .shelf-actions,.shelf-volume:focus-within .shelf-actions{opacity:1}}
@media(max-width:720px){.topbar{height:52px}.breadcrumb{font-size:10px;gap:6px}.top-actions{gap:4px}.top-actions .button{font-size:10px;padding:7px 9px}.workspace{padding:14px 12px 88px}.album-heading{margin-bottom:10px}.album-heading h1{font-size:23px}.album-heading p{font-size:10px;max-width:none}.album-date{margin-top:3px}.studio-commandbar{gap:6px;margin-bottom:10px}.workspace-modes button{font-size:11px;min-height:30px;padding:4px 14px;flex:1}.studio-command-actions{gap:1px}.studio-command-actions .history-buttons button{font-size:16px!important;min-width:24px;padding:5px!important}.studio-command-actions>button,.studio-command-actions .workspace-more summary{font-size:10px!important;padding:5px 7px!important;min-height:31px!important}.album-controls{gap:5px;flex-wrap:wrap;margin-bottom:9px}.album-controls button{font-size:10px;min-height:31px;padding:4px 7px}.surface-navigation{flex:1;justify-content:center}.layout-switch{order:0;width:auto;flex:0 0 auto;margin-left:0}.layout-switch button{font-size:10px;min-height:31px;padding:4px 7px}.layout-switch #landscapeWorkspace{min-width:28px}.photo-finder{margin-bottom:9px;gap:5px}.photo-finder input{font-size:11px;padding:8px 6px;min-width:0}.photo-finder>button{font-size:10px;padding:5px 8px;min-height:34px}.desk,.reader-single .desk{padding:10px 11px 13px;border-radius:17px}.desk-topline{min-height:23px}.page-lock-controls button{min-height:25px;font-size:8px;padding:4px 7px}.book-stage,.reader-single .book-stage,.immersive .book-stage{padding:0!important;margin:9px auto 14px!important}.book-navigation{gap:7px;margin-top:8px;min-height:39px}.book-navigation .page-arrow,.immersive .book-navigation .page-arrow{width:36px;height:36px;min-width:36px;min-height:36px}#jumpToPage{min-width:91px;padding:3px 7px}.outside-favorites{margin-left:2px;padding-left:6px}.outside-favorites button{min-width:30px}.tool-dock{max-width:calc(100vw - 12px);border-radius:16px;padding:6px;gap:1px}.tool-dock button{width:42px;min-width:38px;min-height:41px;font-size:8px;padding:3px;flex-direction:column;gap:3px}.tool-dock .dock-grip,.tool-dock #resetDock,.tool-dock #hideTools{min-width:18px;width:20px}.selection-toolbar{max-width:calc(100vw - 16px);gap:1px;padding:4px}.selection-toolbar button{width:29px;height:30px}.selection-toolbar input{display:none}.selection-toolbar .inline-layer-menu summary{font-size:10px;padding:7px 6px}.transform-hud{bottom:80px;font-size:10px;padding:4px 9px}.studio-panel .panel-heading{padding:10px 12px;min-height:55px}.studio-panel .panel-heading h2{font-size:16px}.studio-panel #panelContent{padding:16px}.studio-panel #panelContent .panel-hint br{display:none}.immersive .workspace{padding:10px 10px 18px}.immersive .studio-commandbar{margin:0 0 7px}.immersive .album-controls{padding:0!important;gap:5px;margin-bottom:8px;flex-wrap:wrap}.immersive .layout-switch{margin-left:0;flex:0 0 auto}.immersive .album-controls .surface-navigation{flex:1}.immersive .desk{padding:10px 12px!important}.immersive .book-navigation{margin-top:6px}.immersive .book-stage{overflow:visible!important}.real-bookshelf{grid-template-columns:1fr 1fr}.shelf-volume .shelf-actions{opacity:1}.timeline-card{gap:10px;flex-wrap:wrap;padding:16px 30px 16px 0}.timeline-date{width:60px;padding-right:8px}.timeline-date>strong{font-size:20px}.timeline-entry{gap:9px}.timeline-cover{width:47px;min-width:47px;height:66px;font-size:8px!important}.timeline-entry strong{font-size:14px}.timeline-entry small{font-size:9px}.timeline-card .timeline-actions{flex:1 0 calc(100% - 65px);max-width:none;margin-left:65px;flex-direction:row;gap:5px}.timeline-actions button{font-size:10px!important;min-height:32px;padding:6px 8px!important}.timeline-actions svg{width:12px}.tutorial-card{right:15px;bottom:80px;padding:20px}.tutorial-card h3{font-size:17px}.sticker-designer{grid-template-columns:1fr;gap:15px}.sticker-canvas-wrap{max-width:360px;margin:auto}.sticker-designer .form-field{margin-bottom:11px}.sticker-designer .form-field input,.sticker-designer .form-field select{min-height:40px}.sticker-designer .check-field{margin-top:14px}.template-kind-tabs{grid-template-columns:repeat(4,1fr);gap:4px}.template-kind-tabs button{font-size:9px;min-height:34px;padding:4px 1px}.jump-pages{grid-template-columns:repeat(4,1fr)}.orbit-controls{margin:1px 0;font-size:9px}.orbit-controls button{min-height:27px;padding:4px 9px}.spatial-view .book-stage{padding:0 15px!important}.spatial-view .book-shell{max-width:90%!important}}
@media(max-width:420px){.studio-command-actions .history-buttons{gap:0}.studio-command-actions .history-buttons button{min-width:21px}.studio-command-actions>button,.studio-command-actions .workspace-more summary{padding-left:5px!important;padding-right:5px!important}.workspace-modes button{padding-left:11px;padding-right:11px}.surface-navigation button{font-size:9px;padding:4px 6px}.layout-switch button{font-size:9px;padding:4px 6px}.album-controls #volumeBtn{font-size:9px}.top-actions #newAlbumBtn svg{display:none}}
@media(max-height:500px) and (orientation:landscape){.topbar{height:39px}.workspace{padding:7px 70px 12px 14px}.album-heading{display:none!important}.studio-commandbar{margin-bottom:5px}.workspace-modes button{min-height:27px}.studio-command-actions>button,.studio-command-actions .workspace-more summary{min-height:28px!important}.album-controls{margin-bottom:6px;gap:5px}.album-controls button{min-height:27px;font-size:10px;padding:3px 8px}.surface-navigation,.layout-switch{padding:2px}.photo-finder{display:none}.desk{padding:6px 18px 8px;border-radius:14px}.desk-topline{position:absolute;right:8px;top:7px;z-index:270;min-height:0}.page-lock-controls button{min-height:22px;font-size:7px;padding:3px 6px}.page-lock-controls svg{width:8px}.book-stage,.reader-single .book-stage,.immersive .book-stage{margin:3px auto 7px!important}.book-navigation{min-height:31px;margin-top:4px;gap:5px}.book-navigation .page-arrow,.immersive .book-navigation .page-arrow{height:29px;width:32px;min-height:29px;min-width:32px}#jumpToPage{min-height:29px}.outside-favorites button{height:29px}.outside-favorites svg{width:15px}.tool-dock{left:auto!important;right:8px!important;top:83px!important;bottom:auto!important;transform:none!important;flex-direction:column;width:48px;border-radius:16px;padding:5px;gap:2px;max-height:calc(100dvh - 92px);overflow:auto}.tool-dock button{width:36px;min-width:36px;height:32px;min-height:32px;padding:2px;flex-direction:row}.tool-dock button span,.tool-dock>i,.tool-dock #resetDock,.tool-dock .dock-grip{display:none}.tool-dock #hideTools{width:36px}.desk-tray{margin-top:12px}.immersive .workspace{padding:6px 12px}.immersive .studio-commandbar{margin:0;position:absolute;left:14px;top:7px;z-index:300}.immersive .album-controls{margin:0 0 6px;padding-left:140px!important;justify-content:flex-end}.immersive .album-controls .surface-navigation{flex:0 0 auto}.immersive .layout-switch{flex:0 0 auto;margin-left:2px}.immersive .desk{padding:6px 15px!important}.immersive .book-shell{max-width:100%!important}.immersive .book-navigation{min-height:29px}.sticker-designer{grid-template-columns:1fr 1fr}.sticker-canvas-wrap{max-width:300px}.tutorial-card{bottom:12px;max-height:calc(100dvh - 24px);overflow:auto}.transform-hud{bottom:15px}.orbit-controls{position:absolute;left:10px;bottom:10px;z-index:280;flex-direction:column;gap:5px}.orbit-controls button{font-size:8px;min-height:24px}.spatial-view .book-shell{max-width:82%!important}}
@media(prefers-reduced-motion:reduce){.spatial-view .book-shell,.shelf-volume-object{transition:none}.shelf-volume.active .shelf-volume-object{transform:rotateY(-8deg)}}

.album-heading{position:relative;min-height:32px;margin-bottom:10px}.album-heading p{display:none}.album-heading .album-date{position:absolute;right:0;top:1px;margin:0;font-size:10px;min-height:30px;max-width:48%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.album-heading h1{max-width:55%;font-size:23px}.immersive .album-heading{display:none!important}

@media(max-height:500px) and (orientation:landscape){.sidebar,.sidebar-collapsed .sidebar{transform:translateX(-100%);width:260px;z-index:800}.sidebar.open,.sidebar-collapsed .sidebar.open{transform:translateX(0)}.app-shell,.sidebar-collapsed .app-shell{margin-left:0}.mobile-only{display:inline-flex!important}.studio-commandbar{gap:8px}.workspace:fullscreen{padding:6px 70px 12px 14px}}

.desk.custom-desk-image:before{background:linear-gradient(#00000004,#00000008)!important;mix-blend-mode:normal!important;opacity:1!important}

.shelf-spine{overflow:hidden;line-height:1.4}

.tool-dock.dock-inline{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;margin:16px auto 5px!important;width:max-content;max-width:100%;z-index:270}.desk .tool-dock.dock-inline button{flex-shrink:0}

/* Interaction and the page compositor. */
html{max-width:100%;overflow-x:clip}body{min-width:0;max-width:100%;overflow-x:clip}.app-shell,main,.workspace,.desk,.album-controls,.studio-commandbar,.photo-finder{min-width:0}.workspace{width:100%}.book-shell,.book-navigation,.page-gesture{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.book-shell img{-webkit-user-drag:none}.book-shell input,.book-shell textarea{user-select:text;-webkit-user-select:text}.immersive #book,.paper.is-locked{touch-action:pan-y}.page-gesture .book-shell{cursor:grabbing}.book-is-turning .book-navigation button{pointer-events:auto}.page-edge{width:5%;min-width:16px;max-width:26px}.book-is-turning .page-edge{pointer-events:none}.surface-transition>#book,.surface-transition>.book-underlay,.surface-transition>#mainExterior{visibility:hidden!important}.surface-transition>.page-edge{pointer-events:none}.surface-flip-scene{position:absolute;inset:0;perspective:1800px;z-index:300;pointer-events:none;transform-style:preserve-3d;user-select:none}.surface-flip-scene .book{container-type:inline-size;filter:none;overflow:hidden;border-radius:4px}.surface-flip-scene .paper{transition:none}.surface-flip-scene .surface-old,.surface-flip-scene .surface-new{transition:none;will-change:transform;transform-style:preserve-3d}.surface-flip-scene .memory-item{pointer-events:none}.drawing-mode #book .above-paint-layer{opacity:.2!important;pointer-events:none}.above-paint-layer{transition:opacity .15s}.layer-composite-preview .memory-item,.layer-composite-preview .ink-layer{pointer-events:none}.layer-popover{max-height:min(440px,65dvh);overflow-y:auto;overscroll-behavior:contain}.inline-layer-menu .layer-popover{min-width:205px;padding:8px}.layer-popover>small{display:block;padding:6px 8px;font-size:10px;color:var(--muted)}.layer-popover button{width:100%!important;min-height:34px!important;justify-content:space-between!important;padding:7px 9px!important;font-size:11px!important;height:auto!important}.layer-popover button[aria-pressed=true]{background:var(--soft)}.layer-popover hr{border:0;border-top:1px solid #0001;margin:5px}.brush-layer-controls{display:flex;align-items:end;gap:9px;margin:15px 0}.brush-layer-controls .panel-field{flex:1;min-width:0;margin:0}.brush-layer-controls select{width:100%}.brush-layer-controls>button{font-size:11px;padding:10px;border:1px solid #0001;border-radius:8px;min-height:40px}.page-layer-row{display:flex;gap:4px;border-bottom:1px solid #0000000b;align-items:center;padding:6px 0}.page-layer-row>button:first-child{flex:1;justify-content:flex-start;text-align:left;min-height:54px;padding:9px;border-radius:9px;gap:12px}.page-layer-row>button[aria-pressed=true]{background:var(--soft)}.page-layer-row small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:3px}.page-layer-row b{font-size:12px;display:grid;place-items:center;border:1px solid #0002;border-radius:5px;width:25px;height:29px}.page-layer-row>button{font-size:11px;padding:8px}.page-layers-list{max-height:280px;overflow:auto}.workspace-more-content #albumStyleBtn{font-size:11px!important;color:var(--ink)!important;justify-content:flex-start!important;text-align:left!important}.workspace-more-content #albumStyleBtn:after{content:none!important}.workspace-more-content>button{display:flex!important;align-items:center!important;justify-content:flex-start!important;padding:11px 12px!important;width:100%;text-align:left;margin:0!important}.pocket-trash-list{max-height:60dvh;overflow:auto}.pocket-trash-list article{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #0001;font-size:11px}.pocket-trash-list img{width:57px;height:57px;object-fit:cover;border-radius:7px}.pocket-trash-list span{flex:1;min-width:0;overflow-wrap:anywhere}.pocket-trash-list button{font-size:10px;padding:7px 9px;border:1px solid #0001;border-radius:7px;min-height:32px}

/* One exterior is shared by the shelf, the cover editor and the reading desk. */
.exterior-stage{position:relative;height:360px;min-width:0;width:100%;background:radial-gradient(ellipse at 50% 90%,#c4bcad4d,transparent 65%);border-radius:16px;overflow:hidden;isolation:isolate}.exterior-object-host{position:absolute;inset:10px 0 63px;perspective:1300px;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:grab;outline-offset:-4px}.exterior-object-host.rotating{cursor:grabbing}.exterior-book{--exterior-depth:24px;position:relative;height:85%;aspect-ratio:var(--exterior-ratio,.91);width:auto;transform-style:preserve-3d;transform:rotateX(var(--exterior-x,-8deg)) rotateY(var(--exterior-y,-27deg));transition:transform .18s ease-out;flex:none}.rotating .exterior-book{transition:none}.exterior-face.paper{position:absolute;inset:0;width:100%!important;height:100%!important;container-type:inline-size;border-radius:3px 7px 7px 3px;backface-visibility:hidden;box-shadow:inset 0 0 0 1px #0003,0 10px 16px #0002;overflow:hidden;background:var(--cover-color)}.exterior-face .memory-item{pointer-events:none!important;outline:0!important}.exterior-front{transform:translateZ(calc(var(--exterior-depth)/2))}.exterior-back{transform:rotateY(180deg) translateZ(calc(var(--exterior-depth)/2))}.exterior-spine{position:absolute;top:0;left:0;width:var(--exterior-depth);height:100%;transform:translateX(-50%) rotateY(-90deg);background-color:var(--cover-color);background-size:cover;color:var(--spine-ink);border-radius:4px;box-shadow:inset 3px 0 #fff2,inset -3px 0 #0003;display:flex;justify-content:center;align-items:center;backface-visibility:hidden;overflow:hidden;writing-mode:vertical-rl;font-size:11px;letter-spacing:2px;text-align:center}.exterior-spine span{max-height:85%;overflow:hidden}.exterior-foreedge,.exterior-topedge,.exterior-bottomedge{position:absolute;background:repeating-linear-gradient(90deg,#e3ddc8 0 1px,#fff9e9 1px 2px);backface-visibility:hidden}.exterior-foreedge{top:2%;left:100%;width:calc(var(--exterior-depth) - 3px);height:96%;transform:translateX(-50%) rotateY(90deg)}.exterior-topedge,.exterior-bottomedge{left:1%;width:98%;height:calc(var(--exterior-depth) - 3px);background:repeating-linear-gradient(0deg,#e3ddc8 0 1px,#fff9e9 1px 2px)}.exterior-topedge{top:0;transform:translateY(-50%) rotateX(90deg)}.exterior-bottomedge{top:100%;transform:translateY(-50%) rotateX(-90deg)}.exterior-controls{position:absolute;bottom:26px;left:0;right:0;display:flex;justify-content:center;gap:6px}.exterior-controls button{background:#ffffffa8;border:1px solid #0000000c;font-size:10px;border-radius:14px;padding:5px 12px;min-height:29px}.exterior-hint{position:absolute;bottom:7px;left:0;right:0;text-align:center;font-size:9px;color:var(--muted);pointer-events:none}.format-exterior-preview{height:330px;margin-bottom:18px}.format-spread-preview{margin:12px 0 22px}.format-spread-preview .paper{container-type:inline-size}.closed-exterior .book-shell{transform:none!important}.closed-exterior #book,.closed-exterior .book-underlay,.closed-exterior .page-edge{visibility:hidden!important}.closed-exterior #mainExterior{position:absolute;inset:-10px 0 0;height:calc(100% + 10px);background:none;overflow:visible}.closed-exterior #mainExterior .exterior-object-host{inset:8px 0 56px}.closed-exterior #mainExterior .exterior-book{height:78%;max-width:82%}.closed-exterior .orbit-controls{display:none!important}.closed-exterior .book-stage{padding:0!important}.closed-exterior .book-shell{max-width:100%!important}.exterior-spine[data-pattern=stars]{background-image:radial-gradient(#ffffff60 1px,transparent 2px);background-size:11px 15px}.exterior-spine[data-pattern=leaves]{background-image:repeating-linear-gradient(45deg,transparent 0 9px,#ffffff20 10px 11px,transparent 12px 20px)}.exterior-spine[data-pattern=dots]{background-image:radial-gradient(#0003 .7px,transparent 1px);background-size:5px 7px}.exterior-spine[data-pattern=line]{border-top:7px double #fff3;border-bottom:7px double #fff3}

.real-bookshelf{display:flex!important;flex-direction:column;gap:5px;padding:14px 5px 12px;background:linear-gradient(90deg,#d7c9b91c,#f9f5ec66,#bcaa9714)!important;border-left:1px solid #ac937230;border-right:1px solid #ac937230}.shelf-tier{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;flex:none;min-height:190px;padding:5px 2px 12px;isolation:isolate}.shelf-plank{position:absolute;top:133px;left:-5px;right:-5px;height:13px;border-radius:1px;background:url('assets/wood-grain.svg'),linear-gradient(#d8bb98,#b79672);box-shadow:0 7px 7px #3a241623,inset 0 2px 1px #fff8;z-index:3;pointer-events:none}.shelf-plank:before{content:'';position:absolute;left:0;right:0;top:-8px;height:9px;background:linear-gradient(#d5ba9c,#ead2b4);transform:skewX(-12deg);transform-origin:bottom}.shelf-volume{min-height:174px!important;isolation:auto;perspective:none}.shelf-volume .album-entry{position:relative;z-index:2;gap:5px}.shelf-volume-object{width:100%!important;height:123px!important;margin:0 0 14px!important;display:flex;align-items:center;justify-content:center;perspective:700px;transform:none!important;filter:none!important}.shelf-volume-object:after{content:none!important}.shelf-volume-object .exterior-book{height:116px;--exterior-depth:15px;transform:rotateX(-4deg) rotateY(var(--shelf-angle,-29deg));filter:none}.shelf-volume-object .exterior-spine{font-size:4px;letter-spacing:.4px}.shelf-volume.active .exterior-book{transform:rotateX(-4deg) rotateY(var(--shelf-angle,-22deg)) translateY(-3px)}.shelf-volume .shelf-actions{top:-5px;right:-4px;z-index:5}.shelf-actions button{width:20px;min-width:20px;padding:1px}.shelf-dragging .exterior-book{opacity:.45}.shelf-volume.shelf-drop{outline:1px dashed var(--green);outline-offset:3px}.shelf-photo-match{font-size:8px!important;position:relative;z-index:4;max-width:100%}.shelf-empty{font-size:11px;padding:10px}.shelf-tier .shelf-volume .album-entry>strong{max-width:100%}.shelf-volume .exterior-face .photo-caption{font-size:2px}
@media(max-width:720px){.album-controls{flex-wrap:wrap}.surface-navigation{flex:1 1 100%;min-width:0}.layout-switch{margin-left:auto}.studio-command-actions{flex-shrink:1;min-width:0}.topbar{padding:0 10px;gap:4px;max-width:100%}.breadcrumb{min-width:0;overflow:hidden;white-space:nowrap}.breadcrumb span{overflow:hidden;text-overflow:ellipsis}.top-actions{flex-shrink:0}.save-status{display:none}.workspace-more[open]>.workspace-more-content{min-width:185px;max-width:calc(100vw - 24px)}.desk-tray{max-width:100%;overflow-x:clip;overflow-y:visible}.tray-canvas{min-width:0;max-width:100%}.tool-dock.dock-inline{max-width:100%;width:100%;justify-content:center;gap:0;flex-wrap:wrap}.tool-dock.dock-inline button{min-width:32px;width:38px}.tool-dock.dock-inline .dock-grip,.tool-dock.dock-inline #hideTools,.tool-dock.dock-inline #resetDock{width:18px;min-width:18px}.format-exterior-preview{height:295px}#modal{max-width:calc(100vw - 20px)!important;min-width:0!important}#modalContent{min-width:0}.exterior-controls button{min-height:33px}.brush-layer-controls{flex-wrap:wrap}.pocket-trash-list article{gap:5px}.pocket-trash-list button{padding:7px 5px}.layer-popover{max-width:calc(100vw - 28px)}.selection-toolbar .layer-popover{left:auto;right:-42px;transform:none}.closed-exterior #mainExterior .exterior-book{height:72%}.book-navigation{flex-wrap:wrap}.outside-favorites{flex:none}.page-lock-controls{flex-wrap:wrap;justify-content:flex-end}.top-actions .avatar{display:none}}
@media(max-height:500px) and (orientation:landscape){.surface-navigation{flex:0 1 auto}.album-controls{flex-wrap:nowrap}.closed-exterior #mainExterior .exterior-controls{bottom:16px}.closed-exterior #mainExterior .exterior-hint{display:none}.closed-exterior #mainExterior .exterior-object-host{inset:3px 0 37px}.closed-exterior #mainExterior .exterior-book{height:84%}.format-exterior-preview{height:270px}.exterior-stage:not(#mainExterior){height:280px}.immersive .album-controls{padding-left:130px!important}.page-lock-controls #pageLayersQuick{font-size:8px}.tool-dock.dock-inline{width:48px!important}.book-navigation{flex-wrap:nowrap}}
@media(prefers-reduced-motion:reduce){.exterior-book,.above-paint-layer{transition:none}}
.sidebar .brand{margin-bottom:25px}.sidebar .sidebar-label{padding-bottom:10px}.sidebar .navigation{gap:4px}.sidebar .side-section-title{margin:22px 8px 8px}.sidebar .sidebar-bottom{padding:12px 8px 0}.sidebar .sidebar-bottom button{margin-top:4px;padding-top:14px}.sidebar .real-bookshelf{min-height:190px;flex:1}.sidebar .new-album-link{margin:12px 5px}.shelf-volume-object .exterior-book{transform:rotateX(-4deg) rotateY(var(--shelf-angle,28deg))}.shelf-volume.active .exterior-book{transform:rotateX(-4deg) rotateY(var(--shelf-angle,24deg)) translateY(-3px)}.workspace-more-content #albumStyleBtn{font-size:12px!important}.inline-layer-menu[open]>.layer-popover{width:220px!important;min-width:205px!important;max-width:calc(100vw - 28px)!important}.closed-exterior #mainExterior .exterior-object-host{inset:3px 0 45px}.closed-exterior #mainExterior .exterior-book{height:94%}.closed-exterior #mainExterior .exterior-controls{bottom:21px}.closed-exterior #mainExterior .exterior-hint{bottom:1px}
#modal:has(.album-style-designer){width:1000px}.album-style-designer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:25px;align-items:start}.style-preview-column{position:sticky;top:0;min-width:0}.style-settings-column{min-width:0}.style-preview-column .format-exterior-preview{height:330px}.style-preview-column .format-spread-preview{opacity:.95}.style-settings-column .photo-edit-grid{gap:12px}.style-settings-column .format-options{grid-template-columns:1fr 1fr}.style-settings-column .form-field{font-size:11px}.style-settings-column .form-field input{min-width:0;width:100%}.style-settings-column .material-options{flex-wrap:wrap}.style-settings-column .material-options label{flex:1 0 40%;font-size:10px}.style-preview-column .exterior-stage{background:#eeece680}
@media(max-width:650px){.album-style-designer{grid-template-columns:1fr;gap:14px}.style-preview-column{position:sticky;top:-1px;z-index:8;background:#fafafaef;backdrop-filter:blur(16px);margin:-5px -5px 0;padding:0 5px;border-bottom:1px solid #0001}.style-preview-column .format-exterior-preview{height:220px;margin:0}.style-preview-column .format-spread-preview{display:none}.style-preview-column .exterior-object-host{bottom:43px}.style-preview-column .exterior-controls{bottom:5px}.style-preview-column .exterior-hint{display:none}.style-preview-column .exterior-book{height:86%}.style-settings-column .form-field{margin-bottom:14px}}
.paper{isolation:isolate}

/* v10.css */
/* Desk items share the real paper scale; their transparent plane never captures empty desk clicks. */
#desk{position:relative;isolation:isolate;min-height:340px}
#deskTray.desktop-plane{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:100%;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;overflow:visible!important;pointer-events:none;z-index:45;min-height:0!important}
#deskTray.desktop-plane[hidden]{display:none!important}.desktop-plane .tray-photo-card{position:absolute!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;touch-action:none;pointer-events:auto;overflow:visible!important;cursor:grab;contain:layout style}
.desktop-plane .tray-photo-art{position:absolute;inset:0;overflow:visible!important;aspect-ratio:auto!important}.desktop-plane .tray-scale-paper{transform-origin:0 0;position:absolute;left:0;top:0;container-type:inline-size;pointer-events:none}.tray-scale-paper .memory-item{margin:0!important;pointer-events:none!important}.desktop-plane .tray-photo-actions{position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);display:none;white-space:nowrap;z-index:4;background:#fcfcf9f0;border-radius:12px;box-shadow:0 4px 18px #0002;padding:4px;gap:2px}.desktop-plane .selected .tray-photo-actions{display:flex}.desktop-plane .tray-photo-actions button{font-size:10px;min-width:28px;min-height:30px;padding:4px 7px;border:0;background:transparent}.desktop-plane .tray-resize,.desktop-plane .tray-rotate{display:none;position:absolute;z-index:4;width:26px;height:26px;border:1px solid #8a9d88;background:#fffefa;border-radius:50%;font-size:14px;pointer-events:auto}.desktop-plane .selected .tray-resize,.desktop-plane .selected .tray-rotate{display:block}.desktop-plane .tray-resize{right:-13px;bottom:-13px}.desktop-plane .tray-rotate{left:calc(50% - 13px);top:-30px}.desktop-plane .selected{outline:1px solid #91a08a;outline-offset:6px}.tray-drag-ghost{position:fixed!important;z-index:5000!important;pointer-events:none!important;background:none!important;box-shadow:none!important;padding:0!important;border:0!important;overflow:visible!important}.tray-drag-ghost .tray-photo-art{position:absolute;inset:0}.tray-drag-ghost .tray-scale-paper{position:absolute;transform-origin:0 0;container-type:inline-size}.desktop-manage{display:grid;gap:10px}.desktop-manage button{padding:13px;background:var(--surface);border:1px solid #0001;border-radius:12px}.book-navigation,.desk-topline{position:relative;z-index:60}.immersive #deskTray{display:none!important}
/* Independent book faces prevent reading layout and perspective toggles from changing the shelf. */
.exterior-face{position:absolute;inset:0;width:100%!important;height:100%!important;container-type:inline-size;border-radius:3px 6px 6px 3px;backface-visibility:hidden;box-shadow:inset 0 0 0 1px #0003,0 8px 18px #0002;overflow:hidden;background:var(--cover-color);color:var(--paper-ink);isolation:isolate}.exterior-face .ink-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.exterior-face .cover-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.exterior-object-host{filter:drop-shadow(7px 14px 11px #37281330)}.real-bookshelf{background:linear-gradient(90deg,#74543524,#d5c9b840 12%,#eee6da60 50%,#a68c7030)!important;border:1px solid #9e82672e;border-radius:8px;box-shadow:inset 7px 1px 12px #513b2517,inset -7px 0 10px #513b2515;padding:8px 9px!important;gap:2px!important;overflow-x:hidden}
.shelf-tier{align-items:start;gap:12px!important;min-height:205px!important;padding:7px 3px 10px!important}.shelf-tier:before{content:'';position:absolute;inset:4px -5px 57px;background:radial-gradient(ellipse at 50% 100%,#59402725,transparent 75%);z-index:0;pointer-events:none}.shelf-volume{position:relative!important;min-height:192px!important;max-width:100%;background:none!important;border:0!important;padding:0!important}.shelf-volume .album-entry{padding:0!important;display:flex;flex-direction:column;align-items:center;max-width:100%;width:100%}.shelf-volume-object{height:126px!important;margin:0 0 10px!important;align-items:flex-end!important;perspective:850px;filter:drop-shadow(6px 3px 4px #32201444)!important}.shelf-volume-object .exterior-book,.shelf-volume.active .shelf-volume-object .exterior-book{height:auto!important;width:min(88%,94px);aspect-ratio:var(--exterior-ratio);max-height:124px;--exterior-depth:14px!important;transform-origin:50% 100%;transform:rotateX(-3deg) rotateY(var(--shelf-angle,24deg))!important}.shelf-plank{top:135px!important;left:-9px!important;right:-9px!important;z-index:1!important;height:12px!important;background:repeating-linear-gradient(1deg,#b58d5f22 0 1px,transparent 2px 5px),linear-gradient(#c4a17a,#a67d54)!important;box-shadow:0 5px 8px #3b261c30,inset 0 1px #f9e2bf,inset 0 -2px #8f694b}.shelf-plank:before{top:-7px;height:7px;background:linear-gradient(#c1a17c,#e3c9a5);transform:none}.shelf-volume .album-entry>strong{font-size:10px;margin-top:4px}.shelf-volume .album-entry>small{font-size:8px}.shelf-open-album{position:relative;z-index:3;font-size:9px;padding:4px 7px!important;border-radius:7px;min-height:26px!important;display:block;margin:3px auto;background:#ffffff80!important;color:var(--ink)}.shelf-volume .shelf-actions{right:-5px;top:0;opacity:0;transition:opacity .15s}.shelf-volume:hover .shelf-actions,.shelf-volume:focus-within .shelf-actions{opacity:1}.shelf-group-select{width:100%;font-size:11px;margin:6px 0 9px;padding:8px;border:1px solid #0001;border-radius:8px;background:var(--surface)}
/* Selection popovers live above all transformed and blurred containers. */
.layer-portal{position:fixed!important;z-index:6000;width:240px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);background:#fbfcf9f7;backdrop-filter:blur(20px);border:1px solid #00000012;border-radius:16px;box-shadow:0 16px 60px #1f2c3633;padding:10px;overflow:auto;color:var(--ink)}.layer-portal header{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding:0 6px 5px}.layer-portal header button{width:28px!important;height:28px!important;padding:2px!important;min-height:28px!important;font-size:20px!important}.layer-portal>button{display:flex;width:100%;border-radius:8px;background:transparent}.page-layer-row{flex-wrap:wrap}.page-layer-row>button:first-child{flex:1 0 45%}.layer-row-tools{display:flex;gap:3px;flex-wrap:wrap}.layer-row-tools button{font-size:10px;padding:6px;min-height:31px;border-radius:6px;background:var(--surface)}.layer-opacity{display:flex;gap:10px;align-items:center;width:100%;font-size:10px;padding:4px 10px}.layer-opacity input{flex:1;min-width:60px}.layer-composite-preview .memory-item,.layer-composite-preview .ink-layer{opacity:revert-layer}.layer-composite-preview{max-width:300px;margin:15px auto}.brush-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.brush-tools button{font-size:11px;min-height:37px;border-radius:8px}.drawing-mode .above-paint-layer{transition:none}.smooth-render #book .memory-item{box-shadow:none!important}.smooth-render #book .photo:before{display:none!important}.smooth-render .desk:before{opacity:.12!important}.smooth-render .book-shell{filter:none!important}.smooth-render .flip-sheet{filter:none!important}
.photo-date-stamp{position:absolute;bottom:1.6%;right:4%;font-family:ui-monospace,'Courier New',monospace;font-size:1.55cqw;line-height:1;letter-spacing:.06em;color:#827763;pointer-events:none;white-space:nowrap}.photo:has(.photo-date-stamp) .photo-caption{padding-bottom:5px}.photo-date-stamp.stamp-bottom-left{left:4%;right:auto}.photo-date-stamp.stamp-bottom-center{left:50%;right:auto;transform:translateX(-50%)}.photo-date-stamp.stamp-image-bottom{bottom:20%;right:6%;color:#fff0bd;text-shadow:0 1px 3px #332500}.photo[data-frame=none] .photo-date-stamp{color:#fff1c8;text-shadow:0 1px 3px #332500;bottom:4%}.photo[data-frame=film] .photo-date-stamp{color:#ddca8c}.date-photo-preview{position:relative;container-type:inline-size;max-width:310px;margin:16px auto;overflow:hidden;pointer-events:none}.draft-recovery{display:flex;gap:7px;align-items:center;padding:10px;border-radius:10px;background:#f2e9d1;color:#715735;font-size:11px;margin-bottom:12px;flex-wrap:wrap}.draft-recovery button{border-radius:6px;border:1px solid #806a4d22;padding:6px 10px;min-height:32px;background:#fff9}.draft-recovery span{flex:1}.text-overflow-hint{font-size:10px;color:#9a6842;line-height:1.8}.text-overflow-hint button{font-size:10px;text-decoration:underline;padding:2px 5px}.own-template-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.own-template-actions button{font-size:11px;padding:8px 12px;min-height:36px;border:1px solid #0001;border-radius:9px;background:var(--surface)}
@media(max-width:720px){.shelf-volume .shelf-actions{opacity:1}.shelf-volume-object .exterior-book{width:min(88%,104px)}.layer-portal{max-height:min(460px,85dvh)}.desktop-plane .tray-photo-actions{max-width:calc(100vw - 25px);overflow:auto}.desktop-plane .tray-photo-actions button{min-height:34px}.book-stage{max-width:100%}.workspace-more-content{max-height:70dvh;overflow:auto}}
@media(max-height:500px) and (orientation:landscape){.layer-portal{max-height:calc(100dvh - 16px)}#desk{min-height:0}.exterior-stage{max-height:70dvh}.book-stage{max-width:100%}}

.tool-dock.dock-inline{width:max-content!important;max-width:100%;margin:14px auto 0!important}.brush-options{grid-template-columns:repeat(3,minmax(0,1fr))!important}.brush-options button{font-size:11px!important;min-width:0;padding:9px 4px!important}.import-album-preview{max-height:45dvh;overflow:auto;margin:14px 0}.import-album-preview>label{padding:10px;border-bottom:1px solid #0001}.import-album-preview small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.layer-composite-preview .memory-item,.layer-composite-preview .ink-layer{opacity:revert-layer}
@media(max-width:720px){.tool-dock.dock-inline{width:fit-content!important;min-width:0!important;gap:3px!important;border-radius:20px!important;padding:6px 9px!important}.tool-dock.dock-inline #resetDock{display:none!important}.tool-dock.dock-inline button{width:42px!important}.tool-dock.dock-inline .dock-grip,.tool-dock.dock-inline #hideTools{width:20px!important;min-width:20px!important}}
@media(max-height:500px) and (orientation:landscape){.tool-dock.dock-inline{width:48px!important;padding:5px!important}.tool-dock.dock-inline button{width:36px!important}.tool-dock.dock-inline .dock-grip{display:none!important}}
.shelf-volume .shelf-actions{top:auto!important;bottom:3px;right:0!important;opacity:1!important}.shelf-actions>button:not(:last-child){display:none!important}.shelf-actions>button:last-child{width:22px;height:26px;background:#ffffffb0;border-radius:8px}.brush-options button[aria-pressed=true]{background:var(--soft);border-color:var(--green)}

.personal-template .photo-edit-grid,.personal-template>section:first-child>label.form-field{display:none}

/* v12.css */
/* Material textures only paint a bounded book surface. */
.cover-background::after{content:none!important}.cover-background.material-linen,.material-swatch.material-linen,.exterior-spine.material-linen{background-image:url('assets/material-linen.svg');background-size:96px 96px}
.cover-background.material-leather,.material-swatch.material-leather,.exterior-spine.material-leather{background-image:radial-gradient(ellipse at 30% 15%,#ffffff15,transparent 70%),url('assets/material-leather.svg');background-size:auto,128px 128px}
.cover-background.material-kraft,.material-swatch.material-kraft,.exterior-spine.material-kraft{background-image:linear-gradient(110deg,#b9905529,#e4be7d18),url('assets/material-kraft.svg');background-size:auto,160px 160px}
.cover-background.material-cotton,.material-swatch.material-cotton,.exterior-spine.material-cotton{background-image:url('assets/material-cotton.svg');background-size:160px 160px}
.exterior-spine{background-color:var(--spine-color,var(--cover-color))}.exterior-face .cover-background{box-shadow:inset 0 0 0 1px #ffffff18,inset 0 0 18px #00000012}.material-swatch{position:relative;display:block;width:54px;height:46px;flex:none;border-radius:5px;overflow:hidden;border:1px solid #0002;box-shadow:inset 0 0 0 1px #fff3,2px 3px 4px #0002}.appearance-editor .material-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 22px}.appearance-editor .material-options>label{display:flex;align-items:center;gap:8px;position:relative;isolation:isolate;background:var(--surface);padding:10px;border:1px solid #0001;border-radius:10px;font-size:11px}.appearance-editor .material-options>label:has(input:checked){border-color:var(--green);background:var(--soft)}.appearance-editor .material-options>label::after{content:none!important}.appearance-editor input[type=color]{height:38px;min-height:38px;padding:3px 5px;border-radius:8px}.appearance-editor .format-mini{background:var(--green)}
#modal:has(.appearance-editor){background:#fafbf9;background-image:none!important;isolation:isolate;width:1040px}#modal:has(.appearance-editor)::before,#modal:has(.appearance-editor)::after{content:none!important}.appearance-editor .style-preview-column{background:transparent}.appearance-editor .format-exterior-preview{background:radial-gradient(ellipse at 50% 86%,#c9c0ae50,transparent 70%);border:1px solid #00000006}.appearance-preview-caption{font-size:10px;text-align:center;color:var(--muted);margin:8px 0 16px}.appearance-cover-design{border:1px solid #0001;border-radius:14px;padding:12px;background:#fff9;position:relative;isolation:isolate}.appearance-cover-design>summary{font-size:12px;font-weight:600;cursor:pointer}.appearance-cover-design #coverDesigner{margin-top:12px}.appearance-cover-design header{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.appearance-cover-design header>div{display:flex;gap:4px}.appearance-cover-design button,.appearance-cover-design select{min-height:32px;padding:5px 8px;border-radius:7px;border:1px solid #0001;background:#fff;font-size:10px}.appearance-cover-design button[aria-pressed=true]{background:var(--soft);border-color:var(--green)}.cover-design-tools{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:12px 0}.cover-design-tools input[type=color]{width:36px;height:32px;min-height:32px}.appearance-paper{position:relative!important;width:100%!important;max-width:360px;height:auto!important;margin:14px auto;container-type:inline-size;overflow:hidden;touch-action:none;isolation:isolate;box-shadow:0 5px 15px #0002}.appearance-paper .memory-item{pointer-events:auto!important}.appearance-paper .cover-selected{outline:1px solid #d6b777;outline-offset:3px}.appearance-paper[data-tool=pen],.appearance-paper[data-tool=eraser]{cursor:crosshair}.appearance-paper .appearance-resize{position:absolute;right:0;bottom:0;width:24px;height:24px;min-height:24px;background:#fffbe9;padding:0;z-index:5;font-size:13px}.cover-item-fields{padding-top:10px;border-top:1px solid #0001}.cover-item-fields label{display:block;font-size:10px}.cover-item-fields textarea,.cover-item-fields input,.cover-item-fields select{width:100%;margin:5px 0;padding:7px;font-size:11px}.cover-item-fields .photo-edit-grid{gap:8px}.appearance-editor .spine-live{position:relative;overflow:hidden;border-radius:4px;background-size:cover}.cover-preview-only #book .memory-item{pointer-events:none!important;user-select:none}.cover-preview-only .page-lock-controls{display:none!important}.cover-preview-only .tool-dock [data-tool]:disabled{opacity:.28}.cover-preview-only #bookShell{cursor:grab}
/* The temporary workspace is a separate scrollable canvas beneath the album. */
#deskTray.tray-panel{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;max-width:100%;margin:24px 0 0!important;padding:14px!important;border:1px solid #ffffff70!important;background:#ffffff3d!important;box-shadow:inset 0 1px #ffffff55!important;border-radius:18px;overflow:hidden!important;pointer-events:auto;z-index:1;min-height:0!important;isolation:isolate}#deskTray[hidden]{display:none!important}.tray-panel .tray-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 0 12px;position:relative;z-index:2}.tray-panel .tray-heading strong{font-size:12px}.tray-panel .tray-heading small{display:block;font-size:10px;color:var(--muted);margin-top:4px;line-height:1.7}.tray-panel .tray-heading>div:last-child{display:flex;gap:5px;flex:none}.tray-heading button{font-size:10px;min-height:32px;padding:6px 10px;border-radius:9px;background:#fff9;border:1px solid #0001}.tray-viewport{width:100%;overflow:auto;max-height:80dvh;border:1px dashed #55453435;border-radius:12px;overscroll-behavior:contain;background:#ffffff19}.tray-panel .tray-canvas{position:relative!important;max-width:none!important;min-width:100%;min-height:340px;touch-action:pan-x pan-y;overflow:hidden;background-image:radial-gradient(#6150381a .7px,transparent .8px);background-size:22px 22px}.tray-panel .tray-photo-card{position:absolute!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;touch-action:none;overflow:visible!important;cursor:grab;contain:layout style}.tray-panel .tray-photo-art{position:absolute;inset:0;overflow:visible!important;aspect-ratio:auto!important}.tray-panel .tray-scale-paper{transform-origin:0 0;position:absolute;left:0;top:0;container-type:inline-size;pointer-events:none}.tray-panel .tray-photo-actions{position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);display:none;white-space:nowrap;z-index:4;background:#fcfcf9f0;border-radius:12px;box-shadow:0 4px 18px #0002;padding:4px;gap:2px}.tray-panel .selected .tray-photo-actions{display:flex}.tray-panel .tray-photo-actions button{font-size:10px;min-width:28px;min-height:30px;padding:4px 7px;border:0;background:transparent}.tray-panel .tray-resize,.tray-panel .tray-rotate{display:none;position:absolute;z-index:4;width:26px;height:26px;border:1px solid #8a9d88;background:#fffefa;border-radius:50%;font-size:14px;pointer-events:auto}.tray-panel .selected .tray-resize,.tray-panel .selected .tray-rotate{display:block}.tray-panel .tray-resize{right:-13px;bottom:-13px}.tray-panel .tray-rotate{left:calc(50% - 13px);top:-30px}.tray-panel .selected{outline:1px solid #91a08a;outline-offset:6px}.immersive #deskTray{display:none!important}.tool-dock #addSpreadBtn{display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:4px;margin:0!important;font-size:10px;padding:7px 9px;border:0;white-space:nowrap}.tool-dock #addSpreadBtn svg{width:20px;height:20px}#landscapeWorkspace{white-space:nowrap;min-width:52px;font-size:11px}.workspace-more-content button{text-align:left!important}
/* Focus is independent of read-only mode; creation remains available. */
body.focus-mode{overflow:hidden!important}.focus-mode .sidebar,.focus-mode .topbar,.focus-mode .menu-scrim,.focus-mode #storageBanner{display:none!important}.focus-mode #workspace{position:fixed;inset:0;z-index:800;width:100vw!important;height:100dvh!important;max-width:none!important;overflow:auto!important;padding:82px 0 0!important;margin:0!important;background:var(--desk);isolation:isolate}.focus-mode .album-heading,.focus-mode .photo-finder,.focus-mode .page-strip-row,.focus-mode .workspace-actions{display:none!important}.focus-mode .studio-commandbar{display:flex!important;position:fixed!important;top:10px!important;left:16px!important;right:16px!important;z-index:830!important;margin:0!important;justify-content:space-between!important}.focus-mode .workspace-modes{display:block!important}.focus-mode .studio-command-actions{display:flex!important;align-items:center;gap:9px}.focus-mode .studio-commandbar button,.focus-mode .workspace-more summary{background:#ffffffa6;backdrop-filter:blur(15px);border-radius:10px}.focus-mode .album-controls{position:fixed!important;top:50px!important;left:16px;right:16px;z-index:820;margin:0!important;display:flex!important;padding:0!important;justify-content:space-between!important}.focus-mode .album-controls .surface-navigation{flex:0 1 auto;background:#ffffffb5}.focus-mode .layout-switch{background:#ffffffb5}.focus-mode #landscapeWorkspace{background:var(--green);color:var(--on-accent);font-weight:600}.focus-mode #desk{width:100%;min-height:calc(100dvh - 82px);border:0!important;border-radius:0!important;padding:8px 24px 20px!important;box-shadow:none!important;margin:0!important;overflow:visible}.focus-mode #bookStage{max-width:100%!important;margin:4px auto 8px!important;padding:0!important;min-height:0}.focus-mode #bookShell{max-width:100%!important;width:min(100%,calc(var(--page-fit-height,600px)*var(--book-ratio,1.82)))!important}.focus-mode.reader-single #bookShell,.focus-mode.book-cover-open #bookShell{width:min(100%,calc(var(--page-fit-height,600px)*var(--page-ratio,.91)))!important}.focus-mode #bookNavigation{margin:5px auto;min-height:37px;justify-content:center}.focus-mode .desk-topline{position:absolute;right:24px;top:6px;z-index:65;min-height:0}.focus-mode .tool-dock{z-index:850!important}.focus-mode .tool-dock.dock-inline{margin:10px auto 0!important}.focus-mode .tool-panel{z-index:900!important}.focus-mode #selectionToolbar{z-index:910}.focus-mode .layer-portal{z-index:940!important}.focus-mode #deskTray{margin-top:25px!important}.focus-mode.immersive .studio-command-actions>.history-buttons,.focus-mode.immersive #arrangeBtn,.focus-mode.immersive #toggleTools,.focus-mode.immersive .workspace-more{display:none!important}
@media(max-width:720px){.appearance-editor .material-options>label{gap:5px;padding:7px;font-size:10px}.material-swatch{width:42px;height:42px}.appearance-editor .style-preview-column{position:relative;top:auto;z-index:0;backdrop-filter:none!important;background:transparent!important}.appearance-editor .format-exterior-preview{height:250px}.appearance-editor .exterior-stage .exterior-book{height:88%;max-width:78%}.appearance-editor .appearance-cover-design{margin-bottom:15px}.tray-panel .tray-heading{align-items:start;flex-wrap:wrap}.tray-panel .tray-heading small{max-width:230px}.tray-panel .tray-viewport{max-height:72dvh}.focus-mode #workspace{padding-top:89px!important}.focus-mode #desk{padding:10px 12px 18px!important;min-height:calc(100dvh - 89px)}.focus-mode .studio-commandbar{left:10px!important;right:10px!important}.focus-mode .studio-command-actions{gap:4px}.focus-mode .album-controls{left:10px;right:10px;flex-wrap:nowrap;gap:5px;top:54px!important}.focus-mode .surface-navigation{min-width:0;flex-shrink:1!important}.focus-mode .surface-navigation button{padding:5px 7px;font-size:10px;min-width:0}.focus-mode .layout-switch{flex-shrink:0;margin:0}.focus-mode .layout-switch button{padding:5px 6px;font-size:10px}.focus-mode #landscapeWorkspace{min-width:55px}.tool-dock.dock-inline #addSpreadBtn{width:42px!important}.focus-mode .desk-topline{right:12px;top:5px}.focus-mode #bookShell{width:min(100%,calc(var(--page-fit-height,500px)*var(--book-ratio,1.82)))!important}.focus-mode.reader-single #bookShell{width:min(100%,calc(var(--page-fit-height,500px)*var(--page-ratio,.91)))!important}}
@media(max-height:500px) and (orientation:landscape){.focus-mode #workspace{padding-top:43px!important}.focus-mode .studio-commandbar{top:6px!important;left:10px!important;right:auto!important}.focus-mode .studio-command-actions{display:none!important}.focus-mode .album-controls{top:6px!important;left:150px;right:10px;justify-content:flex-end!important;gap:9px}.focus-mode #desk{padding:3px 64px 9px 12px!important;min-height:calc(100dvh - 43px)}.focus-mode #bookNavigation{min-height:29px}.focus-mode .tool-dock{right:6px!important;top:53px!important}.focus-mode .desk-topline{display:none}.focus-mode #bookShell{max-width:100%!important}.tool-dock #addSpreadBtn{height:32px;padding:2px!important}.tool-dock #addSpreadBtn span{display:none}}

@media(max-width:720px){.appearance-editor .style-settings-column>.photo-edit-grid:first-child{grid-template-columns:1fr}}

@media(max-width:379px){.focus-mode .album-controls{flex-wrap:wrap;justify-content:center!important;row-gap:5px}.focus-mode #workspace{padding-top:126px!important}.focus-mode #desk{min-height:calc(100dvh - 126px)}.focus-mode .surface-navigation{flex-basis:100%!important;justify-content:center}.focus-mode .album-controls .layout-switch{margin-left:auto}.focus-mode .studio-command-actions{gap:2px}.focus-mode .studio-command-actions>button{padding:5px;font-size:10px}}
@media(max-width:339px){.tool-dock.dock-inline{padding:5px!important;gap:1px!important}.tool-dock.dock-inline button,.tool-dock.dock-inline #addSpreadBtn{width:36px!important;min-width:30px!important}.tool-dock.dock-inline .dock-grip{width:12px!important}}

/* v13.css */
/* Shared action geometry: symbols and text have the same center line. */
.studio-commandbar,.studio-command-actions,.studio-command-actions>.history-buttons{display:flex;align-items:center;gap:8px}
.studio-command-actions>.history-buttons{margin:0;padding:0;position:static;gap:2px}
.studio-command-actions>button,.studio-command-actions>.workspace-more>summary,.studio-command-actions>.history-buttons>button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:36px;min-height:36px;line-height:1;margin:0;padding:0 10px;vertical-align:middle;font:400 12px/1 var(--sans)}
.studio-command-actions>.history-buttons>button{width:32px;padding:0;font-size:19px}.studio-command-actions summary{list-style:none}.studio-command-actions summary::-webkit-details-marker{display:none}.top-actions .avatar{display:none}
/* One desk surface behind the entire immersive workspace. */
#focusBackdrop{display:none}.focus-mode #workspace{background:transparent!important}.focus-mode #focusBackdrop{display:block;position:fixed;inset:0;z-index:-1;width:100vw;height:100dvh;max-width:none;min-height:0;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;pointer-events:none;overflow:hidden}.focus-mode #desk{background:none!important}.focus-mode #desk::before,.focus-mode #desk::after{display:none!important}.focus-mode .studio-commandbar,.focus-mode .album-controls{background:transparent!important;border:0!important;box-shadow:none!important}.focus-mode .studio-commandbar button,.focus-mode .studio-commandbar summary{background:#faf9f2bd;backdrop-filter:blur(16px)}.focus-mode .surface-navigation,.focus-mode .layout-switch{background:#faf9f2c4!important}
.tray-drag-ghost,.photo-drag-ghost{z-index:6500!important;pointer-events:none!important;opacity:1!important;will-change:transform}.tray-drag-ghost{position:fixed!important;overflow:visible!important;contain:none!important}.tray-drag-ghost .memory-item{pointer-events:none!important}
/* Dedicated storage canvas with a compact, contextual header. */
.tray-panel .tray-heading{align-items:center;gap:12px;padding-bottom:10px}.tray-panel .tray-heading>div:first-child{display:flex;align-items:center;gap:9px;white-space:nowrap}.tray-panel .tray-heading small{margin:0;font-size:10px}.tray-panel .tray-heading button{padding:0 10px;min-height:34px;line-height:1;font-size:11px}.tray-panel .tray-viewport{position:relative;max-height:58dvh;scrollbar-width:thin;scrollbar-color:#94867170 transparent}.tray-panel:not(:has(.tray-photo-card)) .tray-viewport{height:180px;max-height:30dvh}.tray-panel .tray-canvas{background-size:24px 24px;background-image:radial-gradient(#61503812 .6px,transparent .8px)}.tray-panel .tray-empty-hint{position:absolute;z-index:2;top:65px;left:0;width:100%;margin:0;text-align:center;color:var(--muted);font-size:11px;pointer-events:none}.tray-panel:has(.tray-photo-card) .tray-empty-hint{display:none}
/* Bounded dialog layout: heading and commit actions remain visible. */
#modal:has(.appearance-editor),#modal:has(.backup-center){padding:0;width:1040px;max-width:calc(100vw - 24px);max-height:92dvh;overflow:hidden;background:#f7f8f6}
#modal:has(.backup-center){width:880px}
#modal:has(.appearance-editor) #modalForm,#modal:has(.backup-center) #modalForm{display:flex;flex-direction:column;max-height:92dvh;min-height:0}
#modal:has(.appearance-editor) .modal-heading,#modal:has(.backup-center) .modal-heading{flex:none;padding:20px 24px;margin:0;border-bottom:1px solid #00000009;background:#fbfcfa}
#modal:has(.appearance-editor) #modalContent,#modal:has(.backup-center) #modalContent{min-height:0;overflow:auto;padding:20px 24px;overscroll-behavior:contain;scrollbar-width:thin}
#modal:has(.appearance-editor) .modal-footer{flex:none;margin:0;padding:14px 24px;border-top:1px solid #00000009;background:#fbfcfa}
.appearance-editor{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:24px;align-items:start}.appearance-editor .style-preview-column{position:sticky;top:0;background:transparent;backdrop-filter:none}.appearance-editor .format-exterior-preview{height:270px;margin:0 0 14px;border-radius:16px;background:radial-gradient(ellipse at 50% 88%,#d3cbbc68,transparent 68%),#edf0ea70;overflow:hidden}.appearance-editor .format-exterior-preview .exterior-hint{display:none}.appearance-editor .format-exterior-preview .exterior-book{height:77%;max-width:75%}.appearance-editor .exterior-controls{gap:5px;bottom:8px}.appearance-session-tools{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:12px}.appearance-session-tools button{min-height:32px;padding:5px 9px;border-radius:8px;border:1px solid #0001;background:#fff;font-size:11px}.appearance-session-tools button:disabled{opacity:.35}.appearance-session-tools>span{margin-left:auto;font-size:10px;color:var(--muted)}.appearance-editor .form-field{font-size:11px;margin-bottom:12px}.appearance-editor input:not([type=checkbox]):not([type=radio]),.appearance-editor select{min-height:36px;border-radius:9px;font-size:12px}.appearance-editor .photo-edit-grid{gap:10px}.appearance-options{padding:13px;background:#fff9;border:1px solid #0000000c;border-radius:12px;margin:0 0 12px}.appearance-options>summary,.appearance-options>h3{font:600 12px/1.5 var(--sans);margin:0;cursor:pointer}.appearance-options[open]>summary{margin-bottom:14px}.appearance-options .date-form-fields{margin:0}.appearance-editor .format-options{gap:6px;margin:0 0 12px}.appearance-editor .format-options>label{padding:8px;min-height:80px;border-radius:9px}.appearance-editor .format-mini{width:22px;max-height:30px;margin-bottom:5px}.appearance-editor .format-options strong{font-size:10px}.appearance-editor .format-options small{font-size:9px}.appearance-editor .material-options{gap:6px;margin:8px 0 0}.appearance-editor .material-options>label{padding:7px;gap:5px;font-size:10px}.appearance-editor .material-swatch{width:30px;height:32px}.appearance-editor .panel-label{margin:10px 0;font-size:11px}.appearance-image-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.appearance-image-card{border:1px solid #0000000b;border-radius:10px;padding:10px;background:#fcfdfb}.appearance-image-card .form-field{margin-bottom:7px}.appearance-image-card>div{display:flex;gap:5px;flex-wrap:wrap}.appearance-image-card button,.cover-photo-actions button{font-size:10px;min-height:32px;padding:5px 8px;border-radius:7px;border:1px solid #0001;background:#fff}.appearance-image-card>small{display:block;font-size:9px;color:var(--muted);margin-top:6px}.appearance-editor .check-field{font-size:11px;line-height:1.6;margin:10px 0 0}.appearance-editor .spine-designer{padding:13px;border:1px solid #0000000c;border-radius:12px;background:#fff9;margin:0 0 10px}.appearance-editor .spine-designer summary{margin-bottom:0}.appearance-editor .spine-designer[open] summary{margin-bottom:12px}.appearance-editor .spine-live{margin:10px 0}.appearance-editor .appearance-cover-design{background:#fff9}.appearance-cover-design .tiny-help{font-size:10px}.draft-recovery{border-radius:10px;padding:10px 12px;margin:0 0 16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11px}.draft-recovery span{margin-right:auto}.draft-recovery button{min-height:30px;border-radius:7px;padding:4px 9px;background:#fff;border:1px solid #0001}
/* Backups are the primary action; technical details and destructive actions are folded. */
.backup-intro{margin:0 0 18px;color:var(--muted);font-size:12px;line-height:1.7}.backup-center-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}.storage-card{padding:18px;border:1px solid #0000000d;border-radius:14px;background:#fff;min-width:0}.storage-card h3{font:600 14px/1.5 var(--sans);margin:0 0 14px}.storage-card button{font-size:12px;border-radius:9px;min-height:36px}.storage-card .button{display:flex;justify-content:center;align-items:center;min-height:39px}.storage-card .backup-actions{display:grid;grid-template-columns:1fr;gap:8px}.last-backup{font-size:10px;color:var(--muted);margin:12px 0}.backup-import-options{margin-top:12px;font-size:11px}.backup-import-options small{display:block;line-height:1.6;font-size:10px;color:var(--muted);margin-top:7px}.storage-card .storage-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:none;border:0;border-radius:0;padding:0;margin:0 0 12px}.storage-summary>span{font-size:10px;color:var(--muted)}.storage-summary strong{display:block;font-size:14px;font-weight:500;color:var(--ink);margin:4px 0 0}.storage-card details>summary,.storage-card>summary{font-size:11px;cursor:pointer}.storage-card .text-button{margin:3px 0 12px;font-size:11px;padding:0;min-height:32px}.storage-location{border:0!important;border-radius:0!important;background:none!important;padding:12px 0 0!important;margin:0!important}.storage-location p{display:grid;grid-template-columns:48px 1fr;gap:8px;font-size:10px;line-height:1.6;margin:8px 0}.storage-location p>span{color:var(--muted)}.storage-location p strong{font-size:10px}.storage-location code{font-size:9px;word-break:break-all;min-width:0}.storage-location small{font-size:10px;line-height:1.6;color:var(--muted)}.storage-card .advanced-storage-actions{display:grid;gap:7px;margin:8px 0 0}.storage-card .advanced-storage-actions button,.storage-card #openRecovery{width:100%;padding:7px 10px;background:#f5f6f3;border:1px solid #00000009;text-align:center}.storage-card .offline-settings{padding:0;border:0;margin:0;background:none}.storage-card .offline-settings p{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 12px}.storage-card .offline-settings>div{display:grid;gap:8px}.storage-advanced{grid-column:1/-1}.storage-advanced>summary{font-weight:500;font-size:12px}.storage-advanced[open]>summary{margin-bottom:14px}#storageMaintenanceSection,#storageResetSection .storage-reset-actions{display:flex;gap:8px;flex-wrap:wrap;margin:0}#storageMaintenanceSection button,#storageResetSection button{padding:8px 12px;border:1px solid #0001;background:#f7f8f5;font-size:11px}#storageResetSection{margin-top:10px}#storageResetSection .danger-text{color:#b35749;background:#fff8f6}.storage-footer-note{font-size:10px;color:var(--muted);margin:15px 0 0;line-height:1.6}
@media(max-width:720px){.studio-commandbar{gap:8px;flex-wrap:wrap}.studio-command-actions{gap:3px;margin-left:auto}.studio-command-actions>button,.studio-command-actions>.workspace-more>summary{padding:0 7px;min-height:34px;height:34px;font-size:11px}.studio-command-actions>.history-buttons>button{height:34px;min-height:34px;width:27px;font-size:18px}.appearance-editor{grid-template-columns:1fr;gap:16px}.appearance-editor .style-preview-column{position:relative;top:auto}.appearance-editor .format-exterior-preview{height:240px}.appearance-editor .appearance-cover-design{margin-bottom:0}.backup-center-grid{grid-template-columns:1fr;gap:12px}.storage-card{padding:16px}#modal:has(.appearance-editor) #modalContent,#modal:has(.backup-center) #modalContent{padding:16px}#modal:has(.appearance-editor) .modal-heading,#modal:has(.backup-center) .modal-heading{padding:17px 16px}#modal:has(.appearance-editor) .modal-footer{padding:12px 16px}.tray-panel .tray-heading{gap:8px;flex-wrap:wrap}.tray-panel .tray-heading>div:last-child{margin-left:auto;gap:4px}.tray-panel .tray-heading button{font-size:10px;min-height:34px;padding:0 8px}.focus-mode .studio-command-actions{gap:2px}.focus-mode .studio-commandbar{flex-wrap:nowrap}.focus-mode .studio-commandbar .workspace-modes{flex:none}.focus-mode .studio-command-actions>button,.focus-mode .studio-command-actions summary{padding:0 5px}.focus-mode #workspace{scroll-padding-top:135px}}
@media(max-width:420px){.tray-panel .tray-heading>div:last-child{width:100%;justify-content:flex-end}.appearance-session-tools>span{width:100%;margin:2px 0}.appearance-editor .photo-edit-grid{gap:8px}.appearance-image-card{padding:8px}}
@media(max-height:500px) and (orientation:landscape){.focus-mode .studio-command-actions{display:none!important}.focus-mode #workspace{scroll-padding-top:55px}}

/* workbench.css */
/* Shared controls and the responsive workspace. */
:root{--control-height:36px;--control-radius:9px;--ui-gap:8px}
button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.studio-command-actions button,.studio-command-actions summary{min-height:var(--control-height)!important;height:var(--control-height)!important;line-height:1!important}
.workspace-more-content{padding:7px!important;border-radius:14px}.workspace-more-content button{font-size:12px!important;min-height:40px}.workspace-more-content #exportAlbumBtn,.workspace-more-content #guideSettings{border-top:1px solid #0000000c;border-radius:0;padding-top:14px!important}
.tool-dock.dock-inline{max-width:100%;flex-wrap:wrap}.tool-dock #addSpreadBtn{min-width:48px;width:auto!important}.tool-dock #resetDock{display:none}
.selection-toolbar{border:1px solid #00000016}.selection-toolbar button{min-width:32px;min-height:34px}.selection-toolbar .selection-caption{font-size:11px;padding:0 7px;max-width:120px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media(max-width:1100px){
 .sidebar,.sidebar-collapsed .sidebar{width:260px!important;transform:translateX(-100%)!important;z-index:800}
 .sidebar.open,.sidebar-collapsed .sidebar.open{transform:translateX(0)!important}.app-shell,.sidebar-collapsed .app-shell{margin-left:0!important}
 .mobile-only{display:inline-flex!important}.menu-scrim.visible{display:block;position:fixed;inset:0;z-index:790;background:#26322b66;backdrop-filter:blur(3px)}
 .workspace{padding-left:20px;padding-right:20px}.studio-commandbar{flex-wrap:wrap}.studio-command-actions{margin-left:auto}.tool-dock.dock-inline .dock-grip{display:none}
}
/* View zoom changes the rendered paper dimensions, never stored element geometry. */
#canvasViewport{display:contents}.canvas-controls{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;position:relative;z-index:5;margin:8px auto 10px;color:var(--ink);font-size:11px}
.canvas-controls>span{color:var(--muted);margin-right:6px}.canvas-controls button,.canvas-controls select{background:#fff9;border:1px solid #ffffff50;border-radius:var(--control-radius);height:32px;min-height:32px;padding:0 9px;font-size:11px;color:var(--ink)}
.canvas-controls button[aria-pressed=true]{background:var(--green);color:var(--on-accent)}.canvas-controls button:disabled{opacity:.4}.canvas-controls #zoomIn,.canvas-controls #zoomOut{font-size:17px;width:32px;padding:0}
#canvasViewport.canvas-zoomed{display:block;position:relative;width:100%;height:min(65dvh,650px);min-height:200px;overflow:auto;overscroll-behavior:contain;border:1px solid #ffffff60;border-radius:12px;scrollbar-width:thin}
#canvasViewport.canvas-zoomed #bookStage{width:var(--canvas-stage-width)!important;min-width:100%;max-width:none!important;margin:0!important;padding:24px!important;box-sizing:border-box;display:block!important}
#canvasViewport.canvas-zoomed #bookShell{width:var(--canvas-book-width)!important;max-width:none!important;margin:auto!important}
#canvasViewport.canvas-hand,#canvasViewport.canvas-hand *{cursor:grab!important;touch-action:none!important;user-select:none!important}.canvas-hand:active{cursor:grabbing!important}
.focus-mode #canvasViewport.canvas-zoomed{height:calc(100dvh - 250px);min-height:150px}.immersive .canvas-controls>span{display:none}
.book-is-turning .canvas-controls{pointer-events:none;opacity:.6}
/* Recognizable page directory and text search. */
.memory-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-height:52dvh;overflow:auto;padding:5px}
.memory-directory button{display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:9px;min-width:0;background:#f4f3ed;border:1px solid #0000000c;border-radius:11px;text-align:left}
.memory-directory img,.directory-paper{display:block;width:100%;height:112px;object-fit:cover;border-radius:6px}.directory-paper{padding:16px;background:#fffcf0;color:#717769;font:12px/1.7 var(--serif);overflow:hidden}
.memory-directory strong{font-size:12px}.memory-directory small{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-text-icon{width:48px;min-width:48px;height:48px;display:grid;place-items:center;background:var(--soft);border-radius:8px;font-family:var(--serif)}
.photo-search-hit strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%}.photo-search-hit>span:not(.search-text-icon){min-width:0;flex:1}
/* Appearance crops, accessible settings and explicit backup coverage. */
.appearance-editor .form-field,.appearance-options>summary,.appearance-options>h3{font-size:12px}.appearance-editor .material-options>label{font-size:11px}.appearance-editor .format-options strong{font-size:11px}
.appearance-editor .heading-sync{margin:0 0 15px}.cover-crop-fields{border-top:1px solid #0001;margin-top:10px;padding-top:8px}.cover-crop-fields summary{font-size:11px;cursor:pointer}.cover-crop-fields label{display:grid;grid-template-columns:60px 1fr;align-items:center;gap:5px;font-size:10px;margin:8px 0}.cover-crop-fields input[type=range]{min-height:24px!important;width:100%}
.backup-scope{font-size:12px;line-height:1.6;border-top:1px solid #0000000b;margin-top:14px;padding-top:12px}.backup-scope small{display:block;color:var(--muted);font-size:11px}.last-backup{font-size:11px;line-height:1.9}
/* The tray has one canvas and a compact list for finding or placing materials. */
.tray-list-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 10px}.tray-list-tools input[type=search]{flex:1;min-width:110px;border:1px solid #ffffff66;border-radius:9px;background:#fff7;padding:8px;font-size:12px}.tray-list-tools button,.tray-list-tools select{min-height:34px;border:1px solid #ffffff55;background:#fff9;border-radius:8px;padding:6px 9px;font-size:11px}
.tray-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:9px;max-height:45dvh;overflow:auto;scrollbar-width:thin}.tray-list article{display:flex;align-items:center;gap:8px;min-width:0;background:#fff9;padding:9px;border:1px solid #fff9;border-radius:11px}.tray-list article:has(input:checked){border-color:var(--green);background:var(--soft)}.tray-list img{width:44px;height:44px;object-fit:contain;border-radius:5px}.tray-list label{display:flex;align-items:center;gap:7px;min-width:0;flex:1;font-size:12px}.tray-list label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tray-list button{min-height:34px;font-size:11px;padding:4px 7px;background:#fff;border:1px solid #0001;border-radius:7px}.tray-list .tray-symbol{font-size:22px;width:34px;text-align:center}.tray-list-empty{font-size:12px;padding:20px;color:var(--muted)}
.tray-panel .tray-heading small{font-size:11px}.tray-panel .tray-heading strong{font-size:13px}
@media(max-width:720px){
 .workspace{padding-left:12px;padding-right:12px}.canvas-controls{gap:4px;justify-content:center}.canvas-controls>span{display:none}.canvas-controls button,.canvas-controls select{min-height:36px;font-size:11px;padding:0 8px}.canvas-controls #panCanvas{font-size:10px}.memory-directory{grid-template-columns:repeat(2,minmax(0,1fr))}
 .appearance-editor input:not([type=checkbox]):not([type=radio]):not([type=range]),.appearance-editor select{font-size:14px!important;min-height:42px}.appearance-editor .form-field{font-size:13px}.appearance-editor button,.storage-card button{min-height:40px}.appearance-image-grid{gap:8px}.cover-crop-fields label{grid-template-columns:1fr;font-size:11px}.cover-crop-fields input[type=range]{min-height:34px!important}
 .selection-toolbar{flex-wrap:wrap;max-width:calc(100vw - 16px)}.selection-toolbar button{min-width:34px;min-height:36px}.selection-caption{display:none}
 .tray-list-tools{gap:5px}.tray-list-tools input[type=search]{flex-basis:100%}.tray-list{grid-template-columns:1fr}.tray-list article{padding:8px}.tray-list button{min-height:40px}
}
@media(max-height:500px) and (orientation:landscape){.canvas-controls{margin:4px 0;justify-content:flex-end}.canvas-controls>span{display:none}.canvas-controls button,.canvas-controls select{height:28px;min-height:28px}.focus-mode #canvasViewport.canvas-zoomed{height:calc(100dvh - 160px)}.memory-directory img,.directory-paper{height:80px}}
@media(prefers-reduced-motion:reduce){#canvasViewport{scroll-behavior:auto}}

/* app-install.css */
.app-install-button{color:var(--green);border-color:color-mix(in srgb,var(--green) 25%,transparent);white-space:nowrap}
.app-install-button svg{width:13px;height:13px}
.app-install-button:hover{background:color-mix(in srgb,var(--green) 8%,var(--surface))}
.install-guide{display:grid;justify-items:start;gap:13px;font-size:12px;line-height:1.75}
.install-guide img{border-radius:15px}
.install-guide p{margin:0}
.install-guide .button{margin-top:3px}
@media(max-width:720px){.app-install-button{width:34px;min-width:34px;min-height:34px;padding:7px}.app-install-button span{display:none}.app-install-button svg{width:18px;height:18px}}
@media(max-width:390px){.top-actions #siteThemeBtn{display:none}.top-actions{gap:3px}}
