body{background:#faf7f1}.admin-main{max-width:1550px;margin:auto;padding:35px}.admin-main h1{font-size:30px;margin:6px 0 20px}.login-panel{max-width:410px;margin:50px auto;background:#fffdf9;border:1px solid var(--line);border-radius:10px;padding:35px}.login-panel .primary{margin-top:25px}.admin-heading,.actions,.filter-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.actions{flex-wrap:wrap}.admin-main button,header button,.file-button{padding:11px 14px;border:1px solid #d9c8b6;border-radius:5px;background:#fffdf9;color:var(--ink);font:inherit;font-size:12px;cursor:pointer}.admin-main .accent,.admin-main .primary{background:var(--orange);color:white;border-color:var(--orange)}.admin-main .primary{font-size:14px;padding:16px}.contacts-panel{background:#eee4d5;padding:22px;border-radius:8px;margin:18px 0 24px;display:flex;gap:20px;justify-content:space-between;align-items:center;flex-wrap:wrap}.contacts-panel h2{font-size:17px}.contacts-panel p{font-size:11px;line-height:1.8;max-width:650px}.contacts-panel>p{width:100%;margin:0}.file-button input{display:block;font-size:10px;max-width:200px;margin-top:8px}.filter-row{justify-content:flex-start;flex-wrap:wrap;margin:24px 0}.filter-row label{font-size:11px}.filter-row input{display:block;min-height:40px;margin-top:8px;border:1px solid var(--line);padding:10px;border-radius:4px;background:white}.filter-row select{margin-top:8px;padding:10px}.filter-row span{margin-left:auto;font-size:12px;color:var(--muted)}.admin-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.9fr);gap:22px}.order-list,.editor-panel{background:#fffdf9;border:1px solid var(--line);border-radius:7px;min-width:0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:14px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{font-weight:600;background:#f0e8dc;color:#836b56}td small{display:block;font-size:10px;color:var(--muted);margin-top:7px;max-width:140px;overflow-wrap:anywhere}.selected-row{background:#f9ecdc}.editor-panel{padding:23px}.editor-panel h2{font-size:20px}.editor-panel h3{font-size:14px;margin:25px 0 12px}.editor-panel label{font-size:12px}.editor-panel input,.editor-panel select,.editor-panel textarea{width:100%;border:1px solid #dbcbb7;border-radius:4px;padding:11px;background:#fffdf9;color:var(--ink);font:inherit;font-size:12px;margin:7px 0 12px}.editor-panel textarea{min-height:65px}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.contact-preview{padding:14px;background:#f4ede1;border-radius:5px;font-size:12px;line-height:1.9;overflow-wrap:anywhere}.contact-preview p{margin:3px 0}.edit-line{display:grid;grid-template-columns:1fr 65px 90px 40px;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:10px 0;font-size:12px}.edit-line input{margin:0}.edit-line small{display:block;color:var(--muted);margin-top:5px;line-height:1.6}.danger{color:#b04432!important}.audit{font-size:10px;color:var(--muted);line-height:1.8}.manual-add{border-top:1px solid var(--line);margin-top:18px;padding-top:10px}.editor-panel .actions{justify-content:flex-start;margin-top:15px}#session-name{font-size:12px;margin-right:15px}#print-area{display:none}[hidden]{display:none!important}@media(max-width:1050px){.admin-layout{grid-template-columns:1fr}.admin-main{padding:20px}.admin-heading{flex-wrap:wrap}.edit-line{grid-template-columns:1fr 60px 80px 35px}}@media print{@page{size:A4;margin:15mm}body>*{display:none!important}body>#print-area{display:block!important;color:#222;background:white;font-family:'Malgun Gothic',sans-serif;font-size:11pt}#print-area h1{font-size:24pt;margin-bottom:8mm}#print-area h2{font-size:14pt}#print-area table{font-size:10pt;margin-top:8mm}#print-area th,#print-area td{padding:4mm 2mm;border-bottom:1px solid #bbb}#print-area thead{display:table-header-group}#print-area tr{break-inside:avoid}#print-area .print-total{text-align:right;font-size:16pt;margin-top:8mm}#print-area p{line-height:1.7;overflow-wrap:anywhere}#print-area .print-note{font-size:9pt;color:#666;margin-top:8mm}}
.admin-tabs{display:flex;gap:8px;margin:0 0 25px;padding:5px;background:#eee4d5;border-radius:6px}.admin-tabs button{flex:1;border:0;background:transparent;padding:14px;font-weight:700}.admin-tabs button.active{background:var(--orange);color:#fff}.view-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 20px}.view-heading h2{font-size:22px}.view-heading p{font-size:11px;color:var(--muted);margin:7px 0 0}.catalog-layout{display:grid;grid-template-columns:minmax(330px,.8fr) minmax(420px,1.2fr);gap:22px}.catalog-list{background:#fffdf9;border:1px solid var(--line);border-radius:7px;overflow:hidden}.catalog-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px;border-bottom:1px solid var(--line)}.catalog-row:last-child{border-bottom:0}.catalog-row strong{display:block;font-size:13px}.catalog-row small{display:block;color:var(--muted);font-size:10px;margin-top:6px}.inline-form{display:flex;align-items:end;gap:12px;background:#eee4d5;padding:18px;border-radius:7px;margin-bottom:16px}.inline-form label{flex:1;font-size:12px}.inline-form input{display:block;width:100%;margin-top:7px;padding:11px;border:1px solid #d9c8b6;border-radius:4px;background:#fffdf9}.category-list{background:#fffdf9;border:1px solid var(--line);border-radius:7px}.category-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:14px;border-bottom:1px solid var(--line)}.category-row:last-child{border-bottom:0}.category-row input{min-width:0;padding:11px;border:1px solid #d9c8b6;border-radius:4px}.product-option-row{display:grid;grid-template-columns:minmax(150px,1fr) 110px minmax(150px,1fr) 40px;gap:8px;align-items:center;margin-bottom:8px}.product-option-row input{margin:0}.trash-note{padding:13px;background:#f8e7d9;color:#8b482d;border-radius:5px;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}#pdf-stage{position:fixed;left:-12000px;top:0;width:794px;background:#fff;z-index:-1}.pdf-document{width:794px;min-height:1123px;padding:58px 62px;background:#fff;color:#231f1c;font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif}.pdf-document header{height:auto;padding:0 0 24px;background:#fff;border-bottom:3px solid #854324;align-items:end}.pdf-document header p{margin:0 0 8px;color:#854324;font-size:13px;font-weight:700}.pdf-document header h1{margin:0;font-size:31px;letter-spacing:0}.pdf-document header>strong{font-size:11px;max-width:240px;overflow-wrap:anywhere}.pdf-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:25px 0}.pdf-meta p{margin:0;padding:14px;background:#f8f3ec;color:#74655b;font-size:10px;line-height:1.7}.pdf-meta strong{color:#231f1c;font-size:12px}.pdf-address{margin:20px 0}.pdf-address h2{font-size:15px;margin-bottom:10px}.pdf-address p{font-size:12px;line-height:1.9}.pdf-document table{font-size:12px;margin-top:20px}.pdf-document th{background:#854324;color:#fff}.pdf-document td,.pdf-document th{padding:12px 10px}.pdf-total{text-align:right;font-size:22px;font-weight:800;color:#854324;margin:24px 0}.pdf-notice{background:#fff4d4;border:1px solid #ecd48e;padding:16px;font-size:12px;line-height:1.8}.pdf-document footer{padding:18px 0 0;margin-top:30px;border-top:1px solid #ddd;font-size:10px;color:#76685f}@media(max-width:900px){.catalog-layout{grid-template-columns:1fr}.view-heading{align-items:flex-start;flex-direction:column}.admin-tabs{overflow:auto}.admin-tabs button{min-width:130px}.product-option-row{grid-template-columns:1fr 90px 1fr 38px}}@media(max-width:600px){.category-row{grid-template-columns:1fr 1fr}.category-row input{grid-column:1/-1}.inline-form{align-items:stretch;flex-direction:column}.product-option-row{grid-template-columns:1fr 80px 38px}.product-option-row [data-option-image]{grid-column:1/-1;grid-row:2}.product-option-row .danger{grid-column:3;grid-row:1}.admin-tabs{margin-left:-10px;margin-right:-10px}}

/* 2026-10-26: popup and multi-photo administration */
.notice-editor{max-width:900px}.toggle-row{display:flex!important;align-items:center;gap:10px;padding:14px;background:#f1e8dc;border-radius:6px;margin-bottom:18px}.toggle-row input{width:20px!important;height:20px;margin:0!important}.image-drop{border:2px dashed #d1b99e;background:#faf4eb;padding:24px;text-align:center;border-radius:7px;transition:.15s}.image-drop.over{border-color:var(--orange);background:#f5e4d3}.image-drop strong,.image-drop span{display:block}.image-drop span{font-size:10px;color:var(--muted);margin:7px 0 12px}.image-drop input{max-width:100%;margin:0 auto!important}.image-sort{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.image-thumb{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#eee;cursor:grab}.image-thumb img{display:block;width:100%;height:100%;object-fit:cover}.image-thumb>span{position:absolute;left:6px;top:6px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#231b18cc;color:#fff;font-size:10px}.image-thumb button{position:absolute;right:5px;top:5px;width:28px;height:28px;padding:0!important;background:#fff!important;border-radius:50%!important;font-size:18px!important}.image-thumb:active{cursor:grabbing}#image-stage{position:fixed;left:-12000px;top:0;width:794px;background:#fff;z-index:-1}@media(max-width:600px){.image-sort{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* 2026-10-26: gift packaging price administration */
.packaging-note{padding:14px;background:#fff5d7;border:1px solid #ead18d;border-radius:6px;font-size:12px;line-height:1.7}.packaging-table{display:grid;gap:9px;margin:16px 0}.packaging-row{display:grid;grid-template-columns:minmax(220px,1fr) 140px 90px 70px;gap:9px;align-items:center;padding:12px;background:#fffdf9;border:1px solid var(--line);border-radius:6px}.packaging-row input{width:100%;padding:10px;border:1px solid #d9c8b6;border-radius:4px}.packaging-row .package-active{display:flex;align-items:center;gap:6px;font-size:12px}.packaging-row .package-active input{width:18px;height:18px;margin:0}@media(max-width:650px){.packaging-row{grid-template-columns:1fr 110px}.packaging-row .package-active{grid-column:1}.packaging-row button{grid-column:2}}
/* 2026-10-26: gift packaging sample photos */
.packaging-row{grid-template-columns:130px minmax(220px,1fr) 80px 100px}.package-photo-upload{position:relative;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:118px;margin:0!important;border:2px dashed #d5bea5;border-radius:6px;background:#faf4eb;overflow:hidden;cursor:pointer}.package-photo-upload.over{border-color:var(--orange);background:#f7e7d7}.package-photo-upload img{width:100%;height:82px;object-fit:cover}.package-photo-upload small{font-size:9px;color:var(--muted)}.package-photo-upload input{position:absolute;width:1px!important;height:1px;padding:0!important;opacity:0}.package-photo-empty{display:grid;place-items:center;width:100%;height:72px;color:#8f7967;font-size:11px}.package-fields{display:grid;grid-template-columns:minmax(160px,1fr) 120px;gap:9px}.package-actions{display:grid;gap:6px}.package-actions button{padding:8px!important}@media(max-width:760px){.packaging-row{grid-template-columns:110px 1fr}.package-fields{grid-template-columns:1fr}.packaging-row .package-active{grid-column:1}.package-actions{grid-column:2}}
/* 2026-10-26: automatic delivery fee */
.admin-cost-summary{margin-top:14px;border-top:1px solid var(--line)}.admin-cost-summary>div{display:flex;justify-content:space-between;align-items:center;padding:10px 0;font-size:12px}.admin-cost-summary small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.admin-cost-summary .total{border-top:1px solid var(--line);font-size:14px}
/* 2026-10-29: order aggregation */
.aggregate-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.aggregate-stats>div{padding:17px;background:#eee4d5;border-radius:6px}.aggregate-stats span{display:block;font-size:10px;color:var(--muted);margin-bottom:7px}.aggregate-stats strong{font-size:20px}.aggregate-section{margin-top:18px;background:#fffdf9;border:1px solid var(--line);border-radius:7px;overflow:hidden}.aggregate-heading{display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid var(--line)}.aggregate-heading h3{margin:0;font-size:16px}.aggregate-heading span{font-size:11px;color:var(--muted)}.aggregate-items{line-height:1.8;min-width:260px}.aggregate-items small{display:inline;max-width:none;margin:0;color:var(--muted)}.aggregate-contacts{margin-bottom:18px}.aggregate-pdf-page{width:794px;height:1123px;padding:48px 44px 38px;background:#fff;color:#231f1c;font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif;display:flex;flex-direction:column}.aggregate-pdf-page header{height:auto;padding:0 0 18px;background:#fff;border-bottom:3px solid #854324;display:flex;justify-content:space-between;align-items:end}.aggregate-pdf-page header p{margin:0 0 6px;color:#854324;font-size:12px;font-weight:700}.aggregate-pdf-page header h1{margin:0;font-size:27px}.aggregate-pdf-page header>strong{font-size:11px}.aggregate-pdf-summary{display:flex;gap:22px;padding:13px 0;font-size:11px;color:#65564b}.aggregate-pdf-page table{table-layout:fixed;font-size:10px}.aggregate-pdf-page th{background:#854324;color:white}.aggregate-pdf-page th:nth-child(1){width:16%}.aggregate-pdf-page th:nth-child(2){width:31%}.aggregate-pdf-page th:nth-child(3){width:39%}.aggregate-pdf-page th:nth-child(4){width:14%}.aggregate-pdf-page td,.aggregate-pdf-page th{padding:9px 8px;line-height:1.45;overflow-wrap:anywhere}.aggregate-pdf-page td small{display:inline;color:#6f6259;font-size:8px}.aggregate-pdf-page footer{margin-top:auto;padding-top:12px;border-top:1px solid #ddd;text-align:right;font-size:9px;color:#77685e}@media(max-width:800px){.aggregate-stats{grid-template-columns:1fr 1fr}.aggregate-section table{min-width:760px}}
/* 2026-10-29: current orders and delivered archive */
.aggregate-folder-tabs{display:flex;gap:6px;padding:5px;margin:0 0 18px;background:#eee4d5;border-radius:6px}.aggregate-folder-tabs button{flex:1;border:0;background:transparent;font-weight:700}.aggregate-folder-tabs button.active{background:var(--orange);color:#fff}.aggregate-section[hidden],.aggregate-current-only[hidden]{display:none!important}#delivered-archive table{min-width:920px}#delivered-archive th:nth-child(1){width:150px}#delivered-archive th:nth-child(5){width:110px}
/* 2026-10-31: editable order quantities and line removal */
.edit-line{grid-template-columns:minmax(140px,1fr) 132px 90px 78px}.order-qty-control{display:grid;grid-template-columns:36px minmax(48px,1fr) 36px;align-items:center}.order-qty-control button{height:38px;padding:0;font-size:17px}.order-qty-control input{height:38px;text-align:center;border-radius:0}.remove-order-line{padding:9px 6px!important;white-space:nowrap}.add-menu-qty{display:block;margin-top:8px}.add-menu-qty input{max-width:120px}@media(max-width:1050px){.edit-line{grid-template-columns:minmax(120px,1fr) 125px 80px 76px}}@media(max-width:620px){.edit-line{grid-template-columns:1fr 125px}.edit-line>strong,.edit-line>input[data-price]{grid-column:1}.remove-order-line{grid-column:2;grid-row:2}.order-qty-control{grid-column:2}}
/* 2026-10-31: address book connection status */
#contacts-status,#aggregate-contacts-status{width:100%;margin:0;padding:10px 12px;border-radius:5px;font-weight:700}#contacts-status.disconnected,#aggregate-contacts-status.disconnected{background:#f4ede1;color:#796a5d}#contacts-status.connected,#aggregate-contacts-status.connected{background:#e1f3e5;color:#176334;border:1px solid #b9ddc1}
/* 2026-10-31: optional administrator delivery-fee override */
.delivery-fee-editor{display:flex;align-items:center;justify-content:flex-end;gap:7px}.delivery-fee-editor input{width:100px!important;margin:0!important;text-align:right}.delivery-fee-editor button{padding:9px 10px!important;white-space:nowrap}#delivery-fee-mode{color:var(--muted);font-size:9px}@media(max-width:520px){.delivery-fee-editor{max-width:190px}.delivery-fee-editor input{width:78px!important}}
