:root{font-family:'Noto Sans TC',sans-serif;font-size:16px;color:#303030;background:#f8f8f7;font-weight:400;--red:#bb2929;--line:#dededb}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button,a,input,select,textarea{outline-offset:4px}input,select,textarea{width:100%;border:1px solid #d6d6d3;border-radius:3px;background:white;color:#303030;padding:11px 12px;min-height:44px}input:focus,select:focus,textarea:focus{outline:1px solid #777;border-color:#777}textarea{resize:vertical;line-height:1.8}button{border:0}h1,h2,h3,p{margin:0}h1{font-size:19px;font-weight:500}h2{font-size:28px;font-weight:400;letter-spacing:.05em}h3{font-size:18px;font-weight:500}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}.button{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;min-height:44px;background:white;border:1px solid #cfcfcb;border-radius:3px;white-space:nowrap;font-size:14px}.button:hover:not(:disabled){background:#f0f0ee;border-color:#777}.button.primary{background:#343434;color:white;border-color:#343434}.button.primary:hover:not(:disabled){background:#151515}.text-button{font-size:14px;background:none;color:#5d5d5d;min-height:40px;padding:6px 8px}.text-button:hover{color:var(--red)}.admin-header{height:86px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line)}.admin-brand{display:flex;align-items:center;gap:16px;letter-spacing:.1em}.admin-brand small{display:block;font-size:13px;letter-spacing:.08em;color:#777;margin-top:5px}.logo-crop{position:relative;overflow:hidden;width:54px;height:35px}.logo-crop img{position:absolute;width:205px;max-width:none;left:-24px;top:-192px;filter:grayscale(1) brightness(1.08)}.header-actions{display:flex;gap:28px;font-size:14px;color:#616161}.save-bar{min-height:76px;padding:14px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.save-bar strong{font-size:14px;font-weight:500}.save-bar #save-time{display:block;font-size:12px;color:#777;margin-top:5px}.save-actions{display:flex;gap:10px}a[aria-disabled=true]{opacity:.4;cursor:default}.admin-layout{display:grid;grid-template-columns:310px minmax(0,1fr);max-width:1680px;margin:0 auto;align-items:start}.sidebar{background:#f8f8f7;border-right:1px solid var(--line);height:calc(100vh - 76px);position:sticky;top:76px;padding:24px 20px;display:flex;flex-direction:column}.manager-tabs{display:flex;border-bottom:1px solid #d1d1ce;margin-bottom:26px;gap:20px}.manager-tabs button{padding:8px 0 12px;background:none;font-size:15px;color:#777;border-bottom:2px solid transparent}.manager-tabs button.selected{border-bottom-color:var(--red);color:#333}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sidebar-heading span{font-size:13px;color:#777;margin-left:4px}.sidebar #search{margin-bottom:10px}.sidebar select{font-size:14px}.hint{font-size:12px;color:#777;line-height:1.8;margin:12px 0}#project-sidebar{display:flex;min-height:0;flex-direction:column;flex:1}#project-list{overflow:auto;flex:1;margin:0 -8px;padding:0 6px 0 0}.project-row{display:flex;align-items:center;border:1px solid transparent;border-left:2px solid transparent;border-bottom-color:#e6e6e3;min-height:76px;gap:8px}.project-row.selected{background:white;border-color:#dededb;border-left-color:var(--red)}.project-row.drag-over{border-top:3px solid var(--red)}.drag-handle{font-size:18px;color:#a0a09a;cursor:grab;line-height:1;flex-shrink:0;padding:8px 2px}.project-select{display:flex;align-items:center;text-align:left;gap:10px;padding:10px 0;flex:1;min-width:0;background:none}.project-select img{width:46px;height:50px;object-fit:cover;background:#e5e5e1;flex-shrink:0}.project-select .list-copy{min-width:0;flex:1}.project-select strong{font-size:14px;font-weight:400;line-height:1.6;display:block;overflow-wrap:anywhere}.project-select small{font-size:12px;color:#888;display:block;margin-top:4px}.order-actions{display:flex;flex-direction:column;align-items:center}.order-actions button{font-size:12px;color:#777;background:none;padding:3px 5px;min-height:30px}.order-actions button:hover{color:var(--red);background:#eee}.sidebar-bottom{border-top:1px solid var(--line);padding-top:16px;margin-top:20px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.sidebar-bottom>span{font-size:12px;color:#888;overflow-wrap:anywhere}.editor{padding:42px 48px 100px;max-width:1200px;width:100%;background:white;min-height:calc(100vh - 162px)}.editor-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:34px}.eyebrow{font-family:'Roboto',sans-serif;letter-spacing:.2em;font-size:12px;color:#878787;margin-bottom:10px}.visibility-control{font-size:14px;display:flex;align-items:center;gap:9px;white-space:nowrap}.visibility-control input{width:18px;height:18px;min-height:0;accent-color:var(--red)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px 22px}.form-grid label{display:flex;flex-direction:column;gap:9px;font-size:14px;color:#616161;position:relative}.span-two{grid-column:1/-1}.required{position:absolute;right:0;top:0;font-size:12px;color:#999}.photos-section{margin-top:50px;border-top:1px solid var(--line);padding-top:30px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.section-heading p{font-size:13px;line-height:1.8;color:#888;margin-top:8px}.section-heading h3 span{font-size:13px;color:#888;margin-left:5px}.upload-zone{border:1px dashed #bfbfb9;padding:24px;text-align:center;background:#fafaf9;cursor:pointer;font-size:14px;color:#666;line-height:1.8;margin-bottom:24px}.upload-zone span{display:block;color:#888;font-size:12px;margin-top:4px}.upload-zone.drag-over{background:#f7eaea;border-color:var(--red)}#upload-progress{font-size:14px;color:#666;margin:12px 0 20px}#photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 18px}.photo-card{border:1px solid #e0e0db;background:white;min-width:0}.photo-card.drag-over{outline:2px solid var(--red)}.photo-preview{position:relative;background:#f0f0ed;aspect-ratio:1.4;overflow:hidden}.photo-preview img{width:100%;height:100%;object-fit:contain}.photo-preview .cover-badge{position:absolute;top:8px;left:8px;padding:4px 8px;background:#333;color:white;font-size:12px}.photo-preview .photo-number{position:absolute;bottom:7px;right:7px;font-family:Roboto,sans-serif;font-size:12px;padding:3px 7px;background:rgba(255,255,255,.9)}.photo-preview .drag-handle{position:absolute;right:8px;top:6px;background:rgba(255,255,255,.9);padding:4px}.photo-fields{padding:12px}.photo-fields label{display:block;font-size:12px;color:#777;margin-bottom:10px}.photo-fields input{font-size:13px;margin-top:6px;min-height:38px;padding:8px}.photo-actions{display:flex;flex-wrap:wrap;gap:2px;border-top:1px solid #ededeb;padding:5px}.photo-actions button{font-size:12px;min-height:35px;padding:6px;background:none;color:#666}.photo-actions button:hover{color:var(--red);background:#f5f5f2}.photo-actions button.remove{margin-left:auto}.empty-message{font-size:14px;color:#777;padding:30px 0;line-height:1.8}#settings-form>h3{margin:36px 0 24px;padding-bottom:12px;border-bottom:1px solid var(--line)}#settings-form>h3:first-child{margin-top:0}.studio-photo-edit{margin-top:28px;padding:22px;background:#f8f8f6}.studio-photo-edit img{display:block;max-width:100%;max-height:250px;margin-bottom:18px}.studio-photo-edit p{font-size:14px;color:#888;margin-bottom:15px}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:100;background:#303030;color:white;box-shadow:0 6px 30px #0002;padding:14px 22px;font-size:14px;line-height:1.8;max-width:90vw;width:max-content;border-radius:3px}#notice.error{background:#822626}#notice button{margin-left:15px;color:white;background:none;text-decoration:underline}dialog{max-width:480px;width:calc(100% - 40px);padding:34px;border:0;box-shadow:0 12px 80px #0003}dialog::backdrop{background:#0005}dialog h2{font-size:24px;margin-bottom:18px}dialog p{font-size:15px;line-height:1.9;margin:12px 0;color:#666}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}.auth-card{max-width:460px;margin:16vh auto;padding:42px;background:white;border:1px solid #e0e0dc}.auth-card h1{font-size:28px;font-weight:400;margin:12px 0 22px}.auth-card>p:not(.eyebrow){line-height:1.8;margin-bottom:28px;font-size:15px}.auth-card .text-link{display:block;font-size:14px;margin-top:24px;color:#777}.error-panel{max-width:600px;margin:70px auto;padding:35px;background:white}.error-panel p{margin:20px 0;line-height:1.8}.error-panel a{margin-left:10px}@media(min-width:1500px){#photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1100px){.admin-layout{grid-template-columns:270px minmax(0,1fr)}.editor{padding:32px 28px}#photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:750px){.admin-header{padding:16px;height:78px}.admin-brand{font-size:14px;gap:10px}.logo-crop{transform:scale(.8);width:45px}.header-actions{gap:14px;font-size:13px}.save-bar{padding:12px 16px;align-items:flex-start;flex-direction:column;gap:12px}.save-actions{width:100%;gap:8px}.save-actions .button{flex:1;padding:9px 6px;font-size:13px}.admin-layout{display:block}.sidebar{height:auto;position:static;border-right:0;border-bottom:1px solid var(--line);padding:20px 16px}.manager-tabs{margin-bottom:18px}#project-list{max-height:245px}.sidebar-bottom{display:none}.editor{padding:28px 18px 100px}.editor-heading{align-items:flex-start;margin-bottom:25px}h2{font-size:23px}.visibility-control{font-size:13px;margin-top:26px}.form-grid{gap:22px 14px}.form-grid input,.form-grid textarea,.form-grid select{font-size:16px}.section-heading{align-items:flex-start}#photo-grid{gap:20px 12px}.photo-fields{padding:9px}.photo-fields input{font-size:14px}.photo-actions button{min-height:40px;padding:6px}.upload-zone{padding:20px 12px}.auth-card{margin:12vh 20px;padding:32px}.save-bar #save-time{display:none}}@media(max-width:370px){#photo-grid{grid-template-columns:1fr}.header-actions{gap:8px}.admin-brand{letter-spacing:0}.form-grid{grid-template-columns:1fr}.span-two{grid-column:auto}}@media(prefers-reduced-motion:no-preference){button,a{transition:background .16s,color .16s}.photo-card{animation:appear .2s ease}@keyframes appear{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}}
