:root{
  font-family:Inter,"Noto Sans KR","Malgun Gothic",system-ui,sans-serif;
  color:#111827;background:#f3f4f6;
}
*{box-sizing:border-box}
body{margin:0;background:#f3f4f6;color:#111827}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.auth-shell{min-height:100vh;display:grid;place-items:center;align-content:center;gap:20px;padding:24px}
.brand-card,.auth-card,.modal-card,.summary-card,.order-card{background:white;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 8px 28px rgba(15,23,42,.06)}
.brand-card{display:flex;align-items:center;gap:16px;width:min(560px,100%);padding:18px 22px}
.brand-card h1{margin:0;font-size:22px}
.brand-card p{margin:5px 0 0;color:#6b7280;font-size:14px}
.brand-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#111827;color:white;font-weight:800;letter-spacing:-1px}
.brand-mark.small{width:38px;height:38px;border-radius:10px;font-size:14px}
.auth-card{width:min(560px,100%);padding:22px}
.tabs{display:flex;gap:8px;border-bottom:1px solid #e5e7eb;margin-bottom:18px;overflow:auto}
.tab{border:0;background:transparent;padding:10px 14px;color:#6b7280;border-bottom:2px solid transparent;white-space:nowrap}
.tab.active{color:#111827;border-bottom-color:#111827;font-weight:700}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid label{display:grid;gap:7px;font-weight:650;font-size:14px}
.form-grid input,.form-grid select,.form-grid textarea,.toolbar input,.inline-form input,.inline-form select{
  width:100%;border:1px solid #d1d5db;border-radius:11px;padding:11px 12px;background:white;color:#111827;outline:none
}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.toolbar input:focus{border-color:#111827}
.full{grid-column:1/-1}
.wide{width:100%;grid-column:1/-1}
.primary,.secondary,.ghost,.icon-btn,.danger{border:0;border-radius:10px;padding:10px 14px}
.primary{background:#111827;color:white;font-weight:700}
.secondary{background:#e5e7eb;color:#111827;font-weight:700}
.ghost{background:transparent;color:#374151}
.danger{background:#fee2e2;color:#991b1b;font-weight:700}
.icon-btn{background:#f3f4f6;font-size:22px;line-height:1;padding:8px 12px}
.hint{color:#6b7280;font-size:13px}
.optional{font-weight:400;color:#9ca3af;font-size:12px}
.app-shell{min-height:100vh}
.topbar{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;padding:12px 22px}
.topbar-title{display:flex;align-items:center;gap:10px}
.topbar-title div:last-child{display:grid;gap:3px}
#userLabel{font-size:12px;color:#6b7280}
.top-actions{display:flex;gap:4px}
.main{max-width:1240px;margin:0 auto;padding:24px}
.summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.summary-row.four{grid-template-columns:repeat(4,1fr)}
.summary-row.five{grid-template-columns:repeat(5,1fr)}
.summary-card{border:1px solid #e5e7eb;padding:18px;text-align:left}
.summary-card span{color:#6b7280}
.summary-card strong{display:block;font-size:28px;margin-top:4px}
.summary-card.active{outline:2px solid #111827}
.toolbar{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;margin:18px 0}
.orders-list{display:grid;gap:12px}
.order-card{padding:17px;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px}
.order-main{min-width:0}
.order-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.order-top h3{margin:0;font-size:17px}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;background:#e5e7eb}
.badge.pending{background:#fee2e2;color:#991b1b}
.badge.done{background:#dcfce7;color:#166534}
.badge.auto{background:#dbeafe;color:#1d4ed8}
.badge.manual{background:#ede9fe;color:#6d28d9}
.badge.unclassified{background:#fef3c7;color:#92400e}
.order-content{white-space:pre-wrap;margin:10px 0;color:#374151;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.meta{display:flex;gap:10px;flex-wrap:wrap;color:#6b7280;font-size:12px}
.order-side{display:grid;gap:8px;align-content:start}
.card-preview{width:100%;height:150px;border-radius:12px;border:1px solid #e5e7eb;overflow:hidden;background:#f9fafb;position:relative}
.card-preview img{width:100%;height:100%;object-fit:cover}
.card-preview iframe{width:100%;height:100%;border:0;pointer-events:none;background:white}
.pdf-label{position:absolute;left:8px;bottom:8px;background:rgba(17,24,39,.82);color:white;padding:4px 7px;border-radius:7px;font-size:11px}
.modal{position:fixed;inset:0;z-index:50;background:rgba(17,24,39,.45);display:grid;place-items:center;padding:18px}
.modal-card{width:min(720px,100%);max-height:92vh;overflow:auto;padding:20px}
.modal-card.large{width:min(1000px,100%)}
.modal-card.xlarge{width:min(1160px,100%)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:12px}
.modal-head h2{margin:0}
.modal-sub{margin:5px 0 0;color:#6b7280;font-size:13px}
.info-box{padding:12px 14px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;color:#1e3a8a}
.classification-preview{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:12px;background:#f9fafb;border:1px solid #e5e7eb;color:#374151}
.classification-preview .dot{width:9px;height:9px;border-radius:50%;background:#9ca3af}
.classification-preview.success{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.classification-preview.success .dot{background:#2563eb}
.classification-preview.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}
.classification-preview.warn .dot{background:#f59e0b}
.attachment-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px}
.upload-preview{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#f9fafb;min-height:120px}
.upload-preview img{width:100%;height:120px;object-fit:cover;display:block}
.upload-preview iframe{width:100%;height:150px;border:0;background:white}
.upload-name{padding:8px;font-size:11px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.detail-grid{display:grid;grid-template-columns:150px 1fr;gap:10px 14px}
.detail-grid dt{font-weight:700;color:#6b7280}
.detail-grid dd{margin:0}
.detail-content{white-space:pre-wrap;padding:14px;background:#f9fafb;border-radius:12px;margin:14px 0;min-height:52px}
.attachments-title{margin:20px 0 10px}
.detail-attachments{display:grid;gap:14px}
.detail-file{border:1px solid #e5e7eb;border-radius:14px;overflow:hidden;background:#f9fafb}
.detail-file-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;background:white;border-bottom:1px solid #e5e7eb}
.detail-file-head span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.detail-file img{display:block;max-width:100%;max-height:650px;margin:auto;object-fit:contain;background:#111827}
.pdf-preview{width:100%;height:620px;border:0;background:white}
.process-box,.classification-box{margin-top:18px;padding-top:18px;border-top:1px solid #e5e7eb}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.inline-form input,.inline-form select{flex:1 1 160px}
.table-wrap{overflow:auto;border:1px solid #e5e7eb;border-radius:12px}
table{width:100%;border-collapse:collapse;background:white}
th,td{padding:11px 12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top;font-size:13px}
th{background:#f9fafb;white-space:nowrap}
.keyword-chips{display:flex;flex-wrap:wrap;gap:5px;min-width:260px}
.keyword-chip{display:inline-flex;align-items:center;gap:4px;background:#f3f4f6;border-radius:999px;padding:4px 7px}
.keyword-chip button{border:0;background:transparent;color:#9ca3af;padding:0 2px}
.admin-block{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #e5e7eb}
.toast{position:fixed;right:18px;bottom:18px;z-index:100;background:#111827;color:white;padding:12px 16px;border-radius:10px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;max-width:min(420px,calc(100vw - 36px))}
.toast.show{opacity:1;transform:translateY(0)}
.empty{padding:36px;text-align:center;color:#6b7280;background:white;border-radius:16px;border:1px dashed #d1d5db}
.mobile-nav{display:none}

@media(max-width:820px){
  .topbar{padding:10px 12px}
  .top-actions #refreshBtn{display:none}
  .main{padding:12px 12px 88px}
  .summary-row.four,.summary-row.five{grid-template-columns:repeat(2,1fr)}
  .summary-row{gap:8px}
  .summary-card{padding:12px}
  .summary-card strong{font-size:22px}
  .toolbar{grid-template-columns:1fr auto}
  #newOrderBtn{display:none}
  #kakaoImportBtn{grid-column:2}
  #adminBtn{grid-column:2}
  .order-card{grid-template-columns:1fr}
  .order-side{grid-template-columns:minmax(0,1fr) auto;align-items:end}
  .card-preview{height:140px}
  .mobile-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;background:white;border-top:1px solid #e5e7eb;padding:10px 12px calc(10px + env(safe-area-inset-bottom));z-index:20}
  .mobile-nav button{border:0;border-radius:11px;padding:12px}
  .form-grid{grid-template-columns:1fr}
  .full,.wide{grid-column:1}
  .detail-grid{grid-template-columns:1fr}
  .detail-grid dd{margin-bottom:6px}
  .pdf-preview{height:480px}
}

.import-progress{padding:14px;border:1px solid #dbeafe;background:#f8fbff;border-radius:12px;display:grid;gap:9px}
.import-progress-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.import-progress-track{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden}
.import-progress-bar{height:100%;width:0%;background:#111827;border-radius:999px;transition:width .25s ease}
.import-result{padding:12px 14px;border-radius:12px;background:#f9fafb;color:#374151;min-height:0}
.import-result:empty{display:none}
.import-result.success{background:#ecfdf5;color:#166534;border:1px solid #a7f3d0}
.import-result.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}

.quick-status-btn{width:100%;font-weight:750}
.quick-status-btn.complete{background:#111827;color:#fff}
.quick-status-btn.reopen{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
.badge.hospital{background:#e0f2fe;color:#075985}
.badge.learning{background:#f3e8ff;color:#7e22ce}
.badge.exact{background:#dcfce7;color:#166534}
.classification-admin-block{margin-top:22px;padding-top:20px}
.classification-reason{padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;color:#475569}
.source-label{display:inline-flex;font-size:10px;padding:2px 5px;border-radius:999px;background:#e5e7eb;color:#4b5563;margin-left:3px}
.source-label.learned{background:#f3e8ff;color:#7e22ce}
.source-label.manual{background:#dbeafe;color:#1d4ed8}
.learning-actions{display:flex;gap:6px;white-space:nowrap}


.summary-row.six{grid-template-columns:repeat(6,1fr)}
.order-review{margin-top:8px;padding:18px;border:1px solid #dbe4ee;border-radius:14px;background:#f8fafc}
.review-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.review-head h3{margin:0 0 4px}
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.review-grid .full{grid-column:1/-1}
.review-field{position:relative}
.review-field>label,.review-section-title label{display:block;font-weight:700;margin-bottom:6px}
.selected-value{min-height:38px;padding:9px 11px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;color:#334155}
.search-suggestions{position:relative;z-index:20;border:1px solid #cbd5e1;border-radius:10px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.12);max-height:260px;overflow:auto;margin-top:5px}
.search-result{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid #f1f5f9;background:#fff;color:#0f172a}
.search-result:hover{background:#f8fafc}
.search-result:last-child{border-bottom:0}
.search-result small{display:block;margin-top:3px;color:#64748b}
.product-add-row{position:relative;margin-top:10px}
.review-item{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(90px,.5fr) minmax(90px,.5fr) minmax(160px,1fr) auto;gap:8px;align-items:end;padding:10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;margin-bottom:8px}
.review-item-title{font-weight:750}
.review-item-title small{display:block;color:#64748b;font-weight:500;margin-top:3px}
.review-item label{font-size:12px;color:#475569}
.review-item input{margin-top:4px}
.review-section-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:8px}
.review-extracted{border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:10px 12px}
.review-extracted pre{white-space:pre-wrap;word-break:break-word;max-height:260px;overflow:auto;font-family:inherit;font-size:12px;color:#475569}
.order-items-summary{min-width:170px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}
.order-items-summary strong{display:block;font-size:12px;margin-bottom:5px}
.order-item-line{font-size:12px;line-height:1.45;color:#334155}
.badge.dealer{background:#fef3c7;color:#92400e}
.badge.type-unclassified{background:#f1f5f9;color:#475569}
.org-manage-row input,.org-manage-row select{min-width:110px}
.org-keyword-editor{display:flex;gap:6px;margin-top:8px}
.ocr-note{font-size:12px;color:#64748b;margin-top:6px}

@media(max-width:900px){
  .summary-row.six{grid-template-columns:repeat(2,1fr)}
  .review-grid{grid-template-columns:1fr}
  .review-grid .full{grid-column:auto}
  .review-item{grid-template-columns:1fr 1fr}
  .review-item-title,.review-item-learning{grid-column:1/-1}
}

.paste-drop-zone{
  border:1.5px dashed #94a3b8;
  border-radius:12px;
  padding:14px 16px;
  background:#f8fafc;
  color:#475569;
  line-height:1.6;
  cursor:default;
}
.paste-drop-zone.dragover{
  border-color:#2563eb;
  background:#eff6ff;
  color:#1d4ed8;
}
.paste-drop-zone:focus{outline:2px solid #bfdbfe;outline-offset:2px}

.storage-info{display:grid;grid-template-columns:140px 1fr;gap:7px 12px;margin:14px 0}
.storage-info dt{font-weight:700;color:#374151}
.storage-info dd{margin:0;word-break:break-all;font-family:Consolas,"Courier New",monospace}
.storage-change-grid{display:grid;grid-template-columns:minmax(280px,2fr) minmax(220px,1fr) auto;gap:8px;align-items:center;margin:12px 0}
.storage-change-grid input,.storage-change-grid select{padding:10px 11px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}
@media(max-width:760px){.storage-info{grid-template-columns:1fr}.storage-change-grid{grid-template-columns:1fr}}


/* v0.5.0 mobile/server-ready UI polish */
.topbar{position:sticky;top:0;z-index:30;backdrop-filter:saturate(160%) blur(12px);background:rgba(255,255,255,.94)}
.order-card{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.order-card:hover{transform:translateY(-1px);box-shadow:0 12px 32px rgba(15,23,42,.09);border-color:#dbe3ef}
.order-side{align-content:start}
.card-action-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.order-delete-btn{border:0;background:#fff1f2;color:#be123c;border-radius:10px;padding:9px 10px;font-weight:700;font-size:12px;min-width:48px}
.order-delete-btn:hover{background:#ffe4e6}
.order-item-line{line-height:1.55}
.review-item{align-items:end}
.review-item-title small{line-height:1.4}

@media(max-width:820px){
  body{background:#eef2f7}
  .app-shell{padding-bottom:78px}
  .topbar{padding:10px 14px;min-height:58px}
  .topbar-title strong{font-size:15px}
  .topbar-title .brand-mark.small{width:34px;height:34px;font-size:12px}
  #userLabel{max-width:54vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .top-actions{gap:4px}
  .top-actions button{padding:8px 9px;font-size:12px}
  .main{padding:12px 10px 28px}
  .summary-row.six{display:flex;overflow-x:auto;gap:8px;padding:2px 1px 8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .summary-row.six::-webkit-scrollbar{display:none}
  .summary-row.six .summary-card{flex:0 0 104px;min-height:72px;padding:11px 12px;border-radius:16px;scroll-snap-align:start}
  .summary-card strong{font-size:22px}
  .toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;position:sticky;top:58px;z-index:18;background:rgba(238,242,247,.95);backdrop-filter:blur(8px);padding:6px 0 10px}
  .toolbar #searchInput{grid-column:1/-1;min-height:44px;border-radius:14px;background:white}
  .toolbar #newOrderBtn{display:none}
  .toolbar #kakaoImportBtn,.toolbar #orgManageBtn,.toolbar #adminBtn{padding:9px 8px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .orders-list{gap:10px}
  .order-card{padding:14px;border-radius:18px;gap:12px;box-shadow:0 5px 18px rgba(15,23,42,.055)}
  .order-top{gap:6px}
  .order-top h3{font-size:17px;width:100%;margin-bottom:2px}
  .badge{font-size:11px;padding:5px 7px}
  .order-content{font-size:14px;line-height:1.55;max-height:5.1em;overflow:hidden}
  .meta{font-size:11px;gap:7px}
  .order-side{gap:8px}
  .order-item-summary{padding:10px;border-radius:13px;background:#f8fafc}
  .card-action-row{grid-template-columns:1fr auto}
  .detail-btn,.quick-status-btn{min-height:42px}
  .order-delete-btn{min-height:42px;padding:8px 11px}
  .mobile-nav{grid-template-columns:1fr 1.2fr;box-shadow:0 -8px 28px rgba(15,23,42,.09);border-top:0}
  .mobile-nav button{min-height:48px;font-weight:800}
  .modal{align-items:stretch;padding:0}
  .modal-card,.modal-card.large{width:100%;max-width:none;height:100dvh;max-height:100dvh;border-radius:0;border:0;display:flex;flex-direction:column;padding:0}
  .modal-head{position:sticky;top:0;z-index:5;background:white;padding:16px 16px 12px;border-bottom:1px solid #e5e7eb;margin:0}
  .modal-head h2{font-size:20px;margin:0}
  .modal-sub{font-size:12px;margin-top:4px}
  .modal-card>form,.modal-card>.form-grid,#detailBody{padding:14px 14px calc(92px + env(safe-area-inset-bottom));overflow-y:auto}
  #orderForm{display:grid}
  .review-grid{grid-template-columns:1fr}
  .review-item{grid-template-columns:1fr 1fr;gap:9px;padding:12px;border-radius:15px}
  .review-item-title{grid-column:1/-1}
  .review-item-learning{grid-column:1/-1}
  .review-item-remove,.detail-item-remove{grid-column:1/-1;min-height:40px}
  .paste-drop-zone{padding:16px 12px;border-radius:14px}
  .attachment-preview{display:flex;overflow-x:auto;gap:8px;-webkit-overflow-scrolling:touch}
  .attachment-thumb{flex:0 0 116px}
  input,select,textarea{font-size:16px!important}
}


/* v0.5.1 compact detail + learning management */
.detail-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.detail-summary-strip>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;min-width:0}
.detail-summary-strip span{display:block;color:#64748b;font-size:11px;margin-bottom:3px}
.detail-summary-strip strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.detail-core h3{margin:10px 0 6px;font-size:14px}
.detail-content.compact{margin:0 0 10px;min-height:0;max-height:180px;overflow:auto;padding:12px;font-size:14px;line-height:1.5}
.detail-section{border:1px solid #e2e8f0;border-radius:12px;background:white;margin-top:8px;overflow:hidden}
.detail-section>summary{cursor:pointer;list-style:none;padding:12px 14px;font-weight:800;font-size:14px;background:#f8fafc;display:flex;align-items:center;justify-content:space-between}
.detail-section>summary::-webkit-details-marker{display:none}
.detail-section>summary::after{content:'＋';color:#64748b;font-weight:500}
.detail-section[open]>summary::after{content:'－'}
.detail-section-body{padding:12px 14px}
.compact-grid{grid-template-columns:110px 1fr;font-size:13px;gap:7px 10px}
.compact-form{gap:10px}
.compact-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important}
.compact-check input{width:auto!important;margin:0}
.detail-inline-actions{display:flex;gap:8px;flex-wrap:wrap}
.compact-attachments{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.compact-file{display:flex;flex-direction:column}
.detail-thumb-link{display:block;height:120px;background:#0f172a}
.compact-file img{width:100%;height:120px;object-fit:cover;max-height:none}
.compact-file .detail-file-head{border-top:1px solid #e5e7eb;border-bottom:0;padding:7px 9px;font-size:11px}
.compact-file .secondary{padding:6px 8px;font-size:11px}
.learning-search-row{display:grid;grid-template-columns:minmax(240px,1fr) 180px auto;gap:8px}
.learning-search-row input,.learning-search-row select{border:1px solid #d1d5db;border-radius:10px;padding:10px 11px;background:white}
.learning-subtabs{display:flex;gap:4px;overflow:auto;margin:0 0 10px;border-bottom:1px solid #e5e7eb}
.learning-pane .table-wrap{max-height:56vh}
.learning-actions button{padding:7px 9px;font-size:11px}
.server-ready-box{background:#f8fbff;border:1px solid #dbeafe!important;border-radius:12px;padding:14px!important}
@media(max-width:820px){
  .detail-summary-strip{grid-template-columns:1fr 1fr;gap:6px}
  .detail-summary-strip>div{padding:9px 10px}
  .detail-summary-strip strong{font-size:12px}
  .detail-content.compact{max-height:150px}
  .detail-section>summary{padding:12px;font-size:13px}
  .detail-section-body{padding:10px}
  .compact-grid{grid-template-columns:1fr}
  .compact-grid dt{margin-top:5px}
  .compact-grid dd{margin-bottom:3px}
  .compact-attachments{display:grid;grid-template-columns:1fr 1fr}
  .learning-search-row{grid-template-columns:1fr}
  .learning-pane .table-wrap{max-height:none}
  .learning-actions{display:grid;grid-template-columns:repeat(3,auto)}
}


/* v0.5.2 mobile cross-check, permissions, DuckDNS */
.permission-create{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 2px}
.permission-create label,.permission-editor label{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#374151}
.permission-editor{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:260px}
.permission-editor button{padding:6px 8px;font-size:11px}
.ddns-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end;margin:10px 0 12px}
.ddns-grid .compact-check{grid-column:1/-1}.ddns-grid button{min-height:42px}
.input-suffix{display:flex;align-items:stretch}.input-suffix input{border-radius:10px 0 0 10px;min-width:0;flex:1}
.input-suffix span{display:flex;align-items:center;padding:0 10px;border:1px solid #d1d5db;border-left:0;border-radius:0 10px 10px 0;background:#f8fafc;color:#64748b;font-size:12px;white-space:nowrap}
.detail-original-section{margin:8px 0 12px}.detail-original-section h3{margin:0 0 8px;font-size:14px}
.detail-original-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.detail-original-gallery .detail-file{background:#0f172a}.detail-original-gallery .detail-thumb-link{display:flex;height:clamp(260px,42vh,520px);align-items:center;justify-content:center;background:#0f172a}
.detail-original-gallery .detail-thumb-link img{width:100%;height:100%;max-height:none;object-fit:contain;background:#0f172a}.detail-original-gallery .detail-file-head{background:white}
.attachment-preview{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.upload-preview{min-height:220px}.upload-preview img{height:240px;object-fit:contain;background:#0f172a}.upload-preview iframe{height:240px}
@media(max-width:700px){.ddns-grid{grid-template-columns:1fr}.ddns-grid .compact-check{grid-column:1}.permission-editor{min-width:220px}.detail-original-gallery{display:flex;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.detail-original-gallery .detail-file{flex:0 0 88vw;scroll-snap-align:start}.detail-original-gallery .detail-thumb-link{height:320px}.attachment-preview{display:flex;overflow-x:auto;gap:10px}.attachment-preview .upload-preview{flex:0 0 84vw;min-height:260px}.upload-preview img,.upload-preview iframe{height:280px}}
\n\n/* v0.5.4 mobile dashboard refinement + auto-login */\n.remember-login{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start;gap:8px;font-weight:600!important;color:#475569}\n.remember-login input{width:auto!important;margin:0;accent-color:#111827}\n\n@media(max-width:820px){\n  /* Six status cards stay visible at once: compact 2 x 3 grid. */\n  .summary-row.six{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:7px;padding:0}\n  .summary-row.six .summary-card{min-width:0;min-height:54px;padding:9px 12px;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}\n  .summary-row.six .summary-card span{font-size:12px;white-space:nowrap}\n  .summary-row.six .summary-card strong{display:block;font-size:20px;line-height:1;margin:0;text-align:right}\n\n  /* New order is the primary action; Kakao/org/admin remain compact secondary actions. */\n  .toolbar{position:static;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0;background:transparent;backdrop-filter:none;padding:0}\n  .toolbar #searchInput{grid-column:1/-1;min-height:43px;order:1}\n  .toolbar #newOrderBtn{display:block;grid-column:1/-1;order:2;min-height:56px;border-radius:15px;font-size:17px;font-weight:850;box-shadow:0 7px 18px rgba(15,23,42,.16)}\n  .toolbar #kakaoImportBtn{grid-column:auto;order:3}\n  .toolbar #orgManageBtn{grid-column:auto;order:4}\n  .toolbar #adminBtn{grid-column:auto;order:5}\n  .toolbar #kakaoImportBtn,.toolbar #orgManageBtn,.toolbar #adminBtn{min-height:38px;padding:8px 7px;font-size:11px;border-radius:10px}\n\n  /* Bottom CTA remains for one-thumb access; the primary action is visually dominant. */\n  .mobile-nav{grid-template-columns:.8fr 1.4fr}\n  #mobileNewBtn{font-size:15px}\n}\n

/* v0.5.5 attachment actions */
.attachment-actions{display:flex;flex-direction:column;gap:9px}
.attachment-actions-head{font-weight:700;color:#334155}
.attachment-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.attachment-picker-btn{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:12px;cursor:pointer;font-weight:800;text-align:center}
.visually-hidden-file{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
@media(max-width:700px){.attachment-action-buttons{grid-template-columns:1fr 1fr}.attachment-picker-btn{min-height:48px;font-size:14px}.camera-picker-btn{font-size:15px}}


/* v0.5.6 desktop/mobile action sizing + 3-state order workflow */
.badge.hold{background:#fef3c7;color:#92400e}
.quick-status-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.quick-status-btn.hold,.hold-action{background:#fef3c7;color:#92400e;border:1px solid #fde68a;font-weight:750}
.detail-status-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.hold-reason-box{margin:12px 0;padding:12px 14px;border:1px solid #fde68a;background:#fffbeb;border-radius:12px;color:#78350f}
.hold-reason-box strong{display:block;margin-bottom:5px}
.hold-reason-box small{display:block;margin-top:6px;color:#92400e}

@media(min-width:821px){
  .toolbar{grid-template-columns:minmax(320px,1fr) 190px 122px auto auto;align-items:stretch}
  .toolbar #newOrderBtn{min-height:54px;border-radius:14px;font-size:17px;font-weight:850;padding:12px 22px;box-shadow:0 7px 18px rgba(15,23,42,.13)}
  .toolbar #kakaoImportBtn{align-self:center;min-height:34px;padding:7px 9px;font-size:11px;border-radius:9px;white-space:nowrap}
}

@media(max-width:820px){
  /* Kakao TXT import is a PC-only administrative convenience. */
  #kakaoImportBtn{display:none!important}
  .toolbar{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .toolbar #searchInput{grid-column:1/-1!important}
  .toolbar #newOrderBtn{grid-column:1/-1!important}
  .toolbar #orgManageBtn,.toolbar #adminBtn{grid-column:auto!important}
  .quick-status-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-status-actions{grid-template-columns:1fr}
}


/* v0.5.8 live analysis, shipment photos, archive, compact detail + floating modal close */
.archive-toggle{font-size:11px;padding:7px 9px;white-space:nowrap}
.archive-toggle.active{background:#111827;color:#fff}
.modal-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.top-register-btn{min-height:40px;padding:9px 16px;font-weight:850;white-space:nowrap}
.content-drop-target{border-radius:14px;transition:.15s ease}
.content-drop-target textarea{min-height:150px}
.content-drop-hint{font-size:11px;color:#64748b;font-weight:500;margin-top:-1px}
.content-drop-target.dragover{outline:3px solid rgba(37,99,235,.25);background:#eff6ff}
.content-drop-target.dragover textarea{border-color:#2563eb;background:#fff}

@media(min-width:901px){
  .order-modal-card{width:min(1420px,96vw)}
  #orderForm.live-analysis-layout{grid-template-columns:minmax(0,1fr) minmax(480px,1.05fr);column-gap:18px;align-items:start}
  #orderForm.live-analysis-layout>:not(#orderReview){grid-column:1!important}
  #orderForm.live-analysis-layout>#orderReview{grid-column:2!important;grid-row:1/30;margin:0;position:sticky;top:0;max-height:calc(92vh - 105px);overflow:auto;background:#f8fafc}
  #orderForm.live-analysis-layout>#orderReview .review-grid{grid-template-columns:1fr 1fr}
  #orderForm.live-analysis-layout>#orderReview .review-grid .full{grid-column:1/-1}
  #orderForm.live-analysis-layout #analyzeOrderBtn{max-width:210px;justify-self:start}
}

.order-review-live{display:block}
.shipment-photo-card{width:min(520px,100%)}
.shipment-photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.shipment-photo-actions #shipmentPhotoLaterBtn{grid-column:1/-1}
.detail-section-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}
.detail-section-title-row h3{margin:0;font-size:14px}
.compact-action{padding:7px 10px;font-size:11px}
.compact-empty{padding:12px;min-height:0}
.detail-shipment-section{margin:8px 0 12px}
.shipment-gallery .detail-file{border:2px solid #dbeafe}

@media(min-width:901px){
  .detail-modal-card{width:min(1380px,96vw)}
  #detailBody{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:10px 14px;align-items:start}
  #detailBody>.detail-summary-strip{grid-column:1/-1}
  #detailBody>.detail-grid-left{grid-column:1}
  #detailBody>.detail-grid-right{grid-column:2}
  #detailBody>.hold-reason-box{grid-column:1}
  #detailBody>.detail-section:not(.detail-grid-right){grid-column:1/-1}
  #detailBody>.detail-original-section,#detailBody>.detail-shipment-section,#detailBody>.detail-core{margin-top:0}
  .detail-original-gallery{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
  .detail-original-gallery .detail-thumb-link{height:170px!important;min-height:170px!important}
  .detail-original-gallery .detail-file-head{font-size:10px;padding:6px 8px}
  .detail-content.compact{max-height:120px}
  .detail-section-body{max-height:330px;overflow:auto}
}

@media(max-width:900px){
  .modal-head-actions{gap:6px}
  .top-register-btn{min-height:38px;padding:8px 11px;font-size:12px}
  #orderForm.live-analysis-layout{display:grid;grid-template-columns:1fr!important}
  #orderForm.live-analysis-layout>*{grid-column:1!important}
  #orderForm.live-analysis-layout>#orderReview{grid-column:1!important;grid-row:auto!important;position:static;max-height:none;overflow:visible;margin-top:6px}
  .content-drop-hint{display:none}
  #detailBody{display:block}
  .detail-original-gallery .detail-thumb-link{height:240px!important}
  .shipment-photo-actions{grid-template-columns:1fr 1fr}
  .archive-toggle{font-size:10px;padding:7px 8px}
}

@media(max-width:520px){
  .shipment-photo-actions{grid-template-columns:1fr}
  .shipment-photo-actions #shipmentPhotoLaterBtn{grid-column:1}
  .topbar .archive-toggle{max-width:92px;overflow:hidden;text-overflow:ellipsis}
}




/* v0.5.9: close button is attached to the modal window's top-right corner and stays visible while the card scrolls. */
.modal-card{position:relative}
.modal-close-floating{
  position:sticky!important;
  top:0!important;
  right:0!important;
  z-index:120!important;
  float:right;
  margin:-16px -16px 0 12px!important;
  width:46px;
  height:46px;
  padding:0!important;
  display:grid;
  place-items:center;
  border:1px solid rgba(15,23,42,.12)!important;
  border-radius:0 16px 0 14px!important;
  background:rgba(248,250,252,.98)!important;
  color:#111827!important;
  font-size:29px!important;
  font-weight:400;
  line-height:1!important;
  box-shadow:-4px 5px 16px rgba(15,23,42,.12)!important;
  backdrop-filter:blur(8px);
}
.modal-close-floating:hover{background:#fff!important}
.modal-close-floating:active{transform:scale(.97)}
.modal-head{padding-right:42px}
@media(max-width:820px){
  .modal-close-floating{margin:0!important;position:fixed!important;top:max(0px,env(safe-area-inset-top))!important;right:0!important;border-radius:0 0 0 14px!important;width:48px;height:48px}
  .modal-head{padding-right:58px!important}
}

/* v0.5.9: large attachment preview for every attachment surface. */
[data-file-preview],.upload-preview,.detail-file{cursor:zoom-in}
.file-preview-overlay{position:fixed;inset:0;z-index:240;background:rgba(15,23,42,.78);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px 56px 28px;backdrop-filter:blur(3px)}
.file-preview-content{width:min(1200px,94vw);height:min(78vh,860px);display:flex;align-items:center;justify-content:center;background:#0f172a;border-radius:16px;overflow:hidden;box-shadow:0 22px 70px rgba(0,0,0,.4)}
.file-preview-content img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.file-preview-content iframe{width:100%;height:100%;border:0;background:white}
.pdf-viewer-shell{width:100%;height:100%;display:flex;flex-direction:column;background:#eef2f7}.pdf-viewer-toolbar{height:52px;display:flex;align-items:center;justify-content:center;gap:14px;background:#fff;border-bottom:1px solid #d8dee8;flex:0 0 auto}.pdf-viewer-canvas-wrap{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:14px;position:relative}.pdf-viewer-canvas-wrap canvas{max-width:100%;height:auto;background:white;box-shadow:0 6px 24px rgba(15,23,42,.18)}.pdf-render-status{font-size:13px;color:#64748b;text-align:center;padding:8px}.pdf-preview-error{background:#fff;color:#172033;border-radius:14px;padding:24px;max-width:680px;margin:auto}.pdf-canvas-preview{display:flex;align-items:center;justify-content:center;position:relative}.pdf-canvas-preview canvas{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#fff}
.file-preview-name{margin-top:10px;max-width:min(1200px,94vw);padding:7px 12px;border-radius:9px;background:rgba(255,255,255,.95);color:#111827;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-preview-close{position:fixed;top:12px;right:14px;z-index:241;width:48px;height:48px;border:0;border-radius:14px;background:white;color:#111827;font-size:30px;line-height:1;box-shadow:0 8px 28px rgba(0,0,0,.28)}
.upload-preview{transition:transform .12s ease,box-shadow .12s ease}
.upload-preview:hover,.detail-file:hover{box-shadow:0 10px 28px rgba(15,23,42,.14)}
.shipment-selected-preview{grid-column:1/-1;max-height:280px;overflow:auto;margin-top:4px}
.shipment-selected-preview:empty{display:none}
.shipment-photo-actions #shipmentUploadConfirmBtn{grid-column:1/-1}

/* Focused per-customer learned-data management. */
.classification-search-block input,.org-learning-search-wrap input{width:100%;border:1px solid #d1d5db;border-radius:10px;padding:10px 11px;background:white}
.org-learning-search-wrap{position:relative;max-width:680px}
.org-learning-manager .selected-value{margin:10px 0;padding:10px 12px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:10px;font-weight:800}
.org-learning-row-actions{display:flex;gap:6px;flex-wrap:wrap}
.org-learning-source{white-space:nowrap}
@media(max-width:700px){
  .file-preview-overlay{padding:54px 8px 12px}
  .file-preview-content{width:96vw;height:72vh;border-radius:12px}
  .file-preview-name{max-width:96vw}
  .file-preview-close{top:max(4px,env(safe-area-inset-top));right:4px}
  .shipment-selected-preview{display:flex;max-height:none;overflow-x:auto}
  .shipment-selected-preview .upload-preview{flex:0 0 82vw}
}

.pdf-mini-preview{height:150px;background:#fff;overflow:hidden}.pdf-mini-preview iframe{width:100%;height:100%;border:0;pointer-events:none}.pdf-mini-preview .pdf-thumb-canvas{max-width:100%;max-height:150px;width:auto;height:auto}.user-manage-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}


/* v0.5.10 full backup/restore and immediate shipment-upload status */
.restore-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.restore-row input[type=file]{flex:1;min-width:240px;padding:10px;border:1px solid #d1d5db;border-radius:10px;background:#fff}
.shipment-selected-preview .empty{width:100%}
@media(max-width:700px){.restore-row{display:grid;grid-template-columns:1fr}.restore-row input[type=file]{min-width:0;width:100%}}


/* v0.5.10 administrator-selectable image storage policy */
.image-storage-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.storage-mode-card{display:flex;gap:10px;align-items:flex-start;border:1px solid #d7dde6;border-radius:12px;padding:14px;background:#fff;cursor:pointer}
.storage-mode-card:has(input:checked){border-color:#4667d8;box-shadow:0 0 0 2px rgba(70,103,216,.10)}
.storage-mode-card input{margin-top:3px}
.storage-mode-card span{display:grid;gap:5px}
.storage-mode-card strong{font-size:14px}
.storage-mode-card small{font-size:12px;line-height:1.55;color:#667085}
.storage-setting-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
@media(max-width:700px){.image-storage-settings{grid-template-columns:1fr}.storage-mode-card{padding:12px}}

/* v0.5.11 performance: paged order loading */
.orders-more-wrap { display:flex; justify-content:center; padding:12px 0 28px; }
#loadMoreOrdersBtn { min-width:180px; }
#loadMoreOrdersBtn.hidden { display:none; }

.pdf-card-light { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:120px; gap:8px; }
.pdf-card-light .pdf-card-icon { font-weight:800; font-size:22px; letter-spacing:.08em; opacity:.72; }


/* v0.5.12 startup/UI/mobile overflow + bulk completion */
html,body{width:100%;max-width:100%;overflow-x:hidden}
.app-shell,.main,.topbar,.toolbar,.orders-list,.order-card,.order-main,.order-side,.modal,.modal-card,.form-grid,.order-review,.review-grid,.review-field{min-width:0;max-width:100%}
.topbar-title{min-width:0}.topbar-title>div:last-child{min-width:0}.topbar-title strong{overflow:hidden;text-overflow:ellipsis}
.bulk-complete-bar{display:flex;align-items:center;gap:12px;margin:8px 0 12px;padding:9px 11px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}
.bulk-select-all{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:750}.bulk-select-all input,.bulk-order-check input{width:18px;height:18px;accent-color:#111827}
#bulkSelectedCount{font-size:12px;color:#64748b;margin-right:auto}.bulk-complete-bar button{padding:8px 12px;font-size:12px}
.order-card{position:relative}.bulk-order-check{position:absolute;top:10px;right:10px;z-index:2;display:grid;place-items:center;padding:4px;border-radius:8px;background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(15,23,42,.08)}
.keyword-org-search{position:relative;flex:1 1 240px;min-width:0}.keyword-org-search>input{width:100%}
.keyword-search-form{align-items:stretch}

@media(min-width:901px){
  #orderForm.live-analysis-layout{grid-template-columns:minmax(0,1.28fr) minmax(360px,.72fr)!important;column-gap:14px!important}
  #orderForm.live-analysis-layout>#orderReview{min-width:0}
  #orderForm.live-analysis-layout>#orderReview .review-grid{grid-template-columns:1fr!important}
  #orderForm.live-analysis-layout>#orderReview .review-grid .full{grid-column:1!important}
  #orderForm.live-analysis-layout>#orderReview .review-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:7px!important;padding:8px!important}
  #orderForm.live-analysis-layout>#orderReview .review-item-title,#orderForm.live-analysis-layout>#orderReview .review-item-learning,#orderForm.live-analysis-layout>#orderReview .review-item-remove{grid-column:1/-1!important}
  #orderForm.live-analysis-layout>#orderReview .review-item input{padding:8px 9px;font-size:12px}
  #orderForm.live-analysis-layout>#orderReview .review-item label{font-size:11px}
}

@media(max-width:820px){
  body{font-size:14px}
  .auth-shell{display:block;min-height:100dvh;padding:7px!important}
  .brand-card{width:100%;padding:12px 13px;margin:0 0 8px;gap:10px;border-radius:14px}
  .brand-card .brand-mark{width:42px;height:42px;border-radius:11px;font-size:13px;flex:0 0 42px}
  .brand-card h1{font-size:17px!important;line-height:1.25;white-space:nowrap;letter-spacing:-.5px}
  .brand-card p{font-size:11px!important;line-height:1.45;margin-top:3px}
  .auth-card{width:100%;padding:14px 12px;border-radius:14px}
  .tabs{margin-bottom:12px}.tab{padding:8px 9px;font-size:13px}
  .form-grid{gap:10px}.form-grid label{font-size:13px;gap:5px}
  .form-grid input,.form-grid select,.form-grid textarea,.toolbar input,.inline-form input,.inline-form select{padding:9px 10px;font-size:14px!important;min-width:0}
  .remember-login{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;width:100%;gap:12px!important;padding:2px 1px;font-size:13px!important}
  .remember-login input{width:20px!important;height:20px!important;margin:0 0 0 auto!important;flex:0 0 20px}
  .primary,.secondary,.ghost,.danger{font-size:13px}
  .topbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:6px 6px!important;gap:4px}
  .topbar-title{gap:5px!important;min-width:0}.brand-mark.small{width:29px;height:29px;border-radius:8px;font-size:10px;flex:0 0 29px}
  .topbar-title strong{display:block;font-size:12px;line-height:1.15;white-space:nowrap;letter-spacing:-.35px}
  #userLabel{font-size:9px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
  .top-actions{gap:0!important;align-items:center}.top-actions button{padding:5px 4px!important;font-size:9px!important;line-height:1.05;white-space:nowrap}
  .archive-toggle{max-width:none!important;font-size:9px!important}
  .main{padding:7px 4px 82px!important;width:100%;max-width:100%}
  .summary-row.six{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;padding:0!important;overflow:visible!important}
  .summary-row.six .summary-card{min-width:0!important;min-height:46px!important;padding:7px 9px!important;border-radius:11px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:6px!important}
  .summary-row.six .summary-card span{font-size:10px!important}.summary-row.six .summary-card strong{font-size:17px!important;margin:0!important}
  .toolbar{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;margin:8px 0!important;width:100%}
  .toolbar #searchInput{grid-column:1/-1!important;min-height:38px!important;font-size:13px!important}
  .toolbar #newOrderBtn{grid-column:1/-1!important;min-height:46px!important;font-size:14px!important;border-radius:12px!important}
  .toolbar #orgManageBtn,.toolbar #adminBtn{min-width:0!important;min-height:36px!important;padding:7px 5px!important;font-size:11px!important}
  .orders-list{gap:8px!important}.order-card{grid-template-columns:minmax(0,1fr)!important;gap:8px!important;padding:12px 10px!important;border-radius:14px!important;width:100%;overflow:hidden}
  .order-top{gap:5px!important}.order-top h3{font-size:16px!important;line-height:1.25}.badge{font-size:10px!important;padding:4px 6px!important}
  .order-content{font-size:13px!important;line-height:1.45;margin:7px 0!important}.meta{font-size:10px!important;gap:5px!important}
  .order-side{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px!important;width:100%;min-width:0}
  .order-items-summary{width:100%!important;min-width:0!important;padding:7px 8px!important;font-size:11px!important;border-radius:9px!important}
  .order-items-summary strong{font-size:11px!important}.order-item-line{font-size:11px!important;line-height:1.4;overflow-wrap:anywhere}
  .card-action-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;width:100%}
  .detail-btn,.order-delete-btn,.quick-status-btn{min-height:36px!important;padding:7px 8px!important;font-size:12px!important}
  .quick-status-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;width:100%}
  .bulk-complete-bar{margin:5px 0 8px;padding:7px;gap:7px;flex-wrap:wrap}.bulk-select-all{font-size:11px}.bulk-select-all input,.bulk-order-check input{width:16px;height:16px}.bulk-complete-bar button{font-size:11px;padding:7px 9px}
  .bulk-order-check{top:6px;right:6px;padding:3px}
  .mobile-nav{grid-template-columns:.9fr 1.1fr!important;gap:5px!important;padding:6px 5px calc(6px + env(safe-area-inset-bottom))!important}
  .mobile-nav button{min-height:43px!important;padding:9px!important;font-size:13px!important}
  .modal{padding:0!important;overflow-x:hidden!important}.modal-card,.modal-card.large,.modal-card.xlarge{width:100%!important;max-width:100%!important;height:100dvh!important;max-height:100dvh!important;overflow-x:hidden!important}
  .modal-head{padding:11px 50px 9px 10px!important;gap:5px!important}.modal-head h2{font-size:17px!important}.modal-sub{font-size:10px!important;line-height:1.35}
  .modal-head-actions{gap:4px!important}.top-register-btn{min-height:32px!important;padding:6px 8px!important;font-size:10px!important}
  .modal-close-floating{width:42px!important;height:42px!important;font-size:25px!important;top:max(0px,env(safe-area-inset-top))!important;right:0!important}
  .modal-card>form,.modal-card>.form-grid,#detailBody{padding:9px 7px calc(78px + env(safe-area-inset-bottom))!important;overflow-x:hidden!important}
  #orderForm.live-analysis-layout{grid-template-columns:minmax(0,1fr)!important;width:100%;overflow-x:hidden}
  #orderForm.live-analysis-layout>*{grid-column:1!important;min-width:0!important;max-width:100%!important}
  #orderForm.live-analysis-layout>#orderReview{width:100%!important;min-width:0!important;overflow-x:hidden!important;padding:8px!important}
  .review-grid{grid-template-columns:minmax(0,1fr)!important;width:100%}.review-grid>*{min-width:0;max-width:100%}
  .review-item{grid-template-columns:minmax(0,1fr)!important;gap:6px!important;padding:8px!important;border-radius:10px!important;width:100%;overflow:hidden}
  .review-item-title,.review-item-learning,.review-item-remove{grid-column:1!important}
  .review-item input{width:100%;min-width:0;padding:8px!important;font-size:13px!important}.review-item label{font-size:11px!important}
  .review-item-remove{min-height:34px!important;font-size:11px!important}
  .review-section-title{display:block!important}.review-section-title .hint{display:block;margin-top:3px;font-size:10px}
  .product-add-row,.product-add-row input{min-width:0!important;width:100%!important}
  .attachment-preview{max-width:100%;overflow-x:auto}.attachment-preview .upload-preview{flex:0 0 72vw!important;min-width:0!important}
  .shipment-selected-preview .upload-preview{flex:0 0 72vw!important}
  .keyword-search-form{display:grid!important;grid-template-columns:minmax(0,1fr)!important}.keyword-org-search{width:100%;min-width:0}
  .table-wrap{max-width:100%;overflow:auto}
}

@media(max-width:390px){
  .topbar-title strong{font-size:11px}.top-actions button{font-size:8.5px!important;padding:4px 3px!important}
  .main{padding-left:3px!important;padding-right:3px!important}
  .order-card{padding-left:8px!important;padding-right:8px!important}
  .brand-card h1{font-size:16px!important}
}


/* v0.5.12 final polish: centered large screens and tighter review/detail columns */
@media(min-width:1241px){
  .main{width:1240px;margin-left:auto!important;margin-right:auto!important}
  .topbar{padding-left:max(22px,calc((100vw - 1240px)/2 + 22px));padding-right:max(22px,calc((100vw - 1240px)/2 + 22px))}
}
.auth-shell{justify-items:center}
@media(min-width:901px){
  #orderForm.live-analysis-layout{grid-template-columns:minmax(0,1.42fr) minmax(310px,.58fr)!important;column-gap:12px!important}
  #detailBody{grid-template-columns:minmax(0,1.38fr) minmax(310px,.62fr)!important;gap:10px 12px!important}
  #detailBody>.detail-grid-right .detail-section-body{padding:9px!important}
  #detailBody>.detail-grid-right summary{font-size:12px!important;padding:9px 10px!important}
  #detailBody>.detail-grid-right .review-item,#detailBody>.detail-grid-right .form-grid{font-size:12px!important}
}
.user-role-select{min-width:92px;padding:6px 7px;border:1px solid #d1d5db;border-radius:8px;background:#fff;font-size:12px}
@media(max-width:820px){
  .auth-shell,.app-shell,.main,.topbar,.orders-list,.order-card,.modal,.modal-card,#orderForm,#detailBody{overflow-x:hidden!important}
  .topbar{width:100vw;max-width:100vw}
  .top-actions{min-width:0;max-width:112px;justify-self:end}
  .top-actions .ghost{max-width:58px;overflow:hidden;text-overflow:ellipsis}
  .order-top{padding-right:24px}
  .review-head h3{font-size:14px!important}.review-head .hint{font-size:9px!important}
  .review-head{margin-bottom:8px!important}
}


/* v0.5.13 Android/WebView modal scrolling and attachment picker reliability */
@media(max-width:820px){
  .modal:not(.hidden){display:block!important;overflow:hidden!important;touch-action:pan-y!important}
  .modal-card,.modal-card.large,.modal-card.xlarge{
    display:block!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y!important;
    padding-bottom:calc(18px + env(safe-area-inset-bottom))!important;
  }
  .modal-head{
    position:sticky!important;
    top:0!important;
    z-index:20!important;
    background:#fff!important;
  }
  .modal-card>form,.modal-card>.form-grid,#detailBody{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    touch-action:pan-y!important;
    padding-bottom:calc(110px + env(safe-area-inset-bottom))!important;
  }
  #orderForm.live-analysis-layout,#orderReview,.review-grid{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .attachment-picker-btn{display:flex!important;align-items:center!important;justify-content:center!important;min-width:0!important;width:100%!important}
  .visually-hidden-file{position:fixed!important;left:-9999px!important;top:-9999px!important;pointer-events:auto!important}
}


/* v0.5.15 관리자 승인 고속화 + 모바일 새로고침 */
.admin-fast-loading{display:flex;align-items:center;justify-content:center;gap:8px;min-height:74px;color:#64748b;font-size:13px}
.spinner-dot{width:9px;height:9px;border-radius:50%;background:#111827;animation:ncPulse .8s ease-in-out infinite alternate}
@keyframes ncPulse{from{opacity:.25;transform:scale(.8)}to{opacity:1;transform:scale(1.15)}}
@media(max-width:820px){
  .mobile-nav{grid-template-columns:.9fr .9fr 1.25fr!important}
  #mobileRefreshBtn{display:block!important;white-space:nowrap}
}


/* v0.5.16 mobile safe-area, compact editors, learning/admin */
.review-org-learning-label{display:block;margin-top:8px;font-size:12px;color:#475569}
.review-org-learning-label input{margin-top:4px}
.review-item{grid-template-columns:minmax(120px,1.2fr) minmax(75px,.65fr) minmax(62px,.45fr) minmax(62px,.45fr) minmax(130px,1fr) auto!important}
.review-item>*{min-width:0}
.review-item input{min-width:0;width:100%}
#detailBody>.detail-grid-right{min-width:0}
#detailBody>.detail-grid-right .review-item{grid-template-columns:minmax(0,1fr) minmax(0,.7fr)!important;overflow:hidden}
#detailBody>.detail-grid-right .review-item-title,#detailBody>.detail-grid-right .review-item-learning,#detailBody>.detail-grid-right .review-item-remove{grid-column:1/-1!important}
#detailBody>.detail-grid-right .review-item-remove{max-width:84px;justify-self:end;padding:6px 10px}

/* v0.5.19 inherited Android WebView: restore native page scrolling while keeping status-bar safe area. */
html.nc-android-app{
  margin:0!important;
  padding:0!important;
  height:auto!important;
  min-height:100%!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  position:static!important;
  overscroll-behavior:auto!important;
  overscroll-behavior-y:auto!important;
  touch-action:auto!important;
  background:#f4f7fb;
}
html.nc-android-app body{
  margin:0!important;
  padding-top:env(safe-area-inset-top,0px)!important;
  height:auto!important;
  min-height:100dvh!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  position:static!important;
  overscroll-behavior:auto!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch;
  background:#f4f7fb;
}
/* The order list uses the WebView/page's native vertical scroll. */
html.nc-android-app .app-shell,
html.nc-android-app .main,
html.nc-android-app .orders-list{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:visible!important;
  position:static!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y!important;
}
html.nc-android-app .app-shell{min-height:100dvh!important}
/* Keep the header sticky inside the normal document scroller; do not create a second page scroller. */
html.nc-android-app .topbar{
  top:0!important;
  touch-action:pan-y!important;
}
/* Modals remain independently scrollable. */
html.nc-android-app .modal{
  padding-top:env(safe-area-inset-top,0px)!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  background:#f4f7fb;
}
html.nc-android-app .modal-card,
html.nc-android-app .modal-card.large,
html.nc-android-app .modal-card.xlarge{
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  -webkit-overflow-scrolling:touch;
}
html.nc-android-app .modal-close-floating{top:calc(env(safe-area-inset-top,0px) + 6px)!important}
@media(max-width:820px){
  html.nc-android-app .modal-card,
  html.nc-android-app .modal-card.large,
  html.nc-android-app .modal-card.xlarge{
    height:calc(100dvh - env(safe-area-inset-top,0px))!important;
    min-height:0!important;
    max-height:calc(100dvh - env(safe-area-inset-top,0px))!important;
  }
}


/* v0.5.19 notification center */
.notification-modal-card{max-width:1050px}
.notification-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.notification-status-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel-soft,#f8fafc);display:flex;flex-direction:column;gap:5px;min-width:0}
.notification-status-card.wide{grid-column:1/-1}
.notification-status-card span{font-size:12px;color:var(--muted)}
.notification-status-card strong{font-size:14px;word-break:break-word}
.notification-block{margin-bottom:14px}
.notification-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
.notification-form .full{grid-column:1/-1}
.notification-field{display:flex;flex-direction:column;gap:7px}
.field-label{font-size:13px;font-weight:700}
.weekday-picker{display:flex;flex-wrap:wrap;gap:7px}
.weekday-picker label{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:var(--panel,#fff);cursor:pointer}
.notification-user-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;padding:10px}
.notification-user-item{display:flex;align-items:flex-start;gap:7px;border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--panel,#fff)}
.notification-user-item span{display:flex;flex-direction:column;gap:2px;min-width:0}
.notification-user-item small,.small-note{font-size:12px;color:var(--muted);margin-top:3px;white-space:normal;word-break:break-word}
.notification-actions{display:flex;justify-content:flex-end}
.notification-history-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
@media(max-width:760px){
  .notification-status-grid,.notification-form{grid-template-columns:1fr}
  .notification-status-card.wide,.notification-form .full{grid-column:1}
  .notification-user-list{grid-template-columns:1fr}
  .notification-modal-card{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
}

/* v0.5.22 PDF server previews + review header overlap fixes */
.review-head{position:relative;min-width:0}
.review-head>div:first-child{min-width:0}
.review-head #reviewConfidence,
.review-head .badge{
  flex:0 0 auto!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:max-content!important;
  max-width:none!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  writing-mode:horizontal-tb!important;
  line-height:1.2!important;
}
@media(min-width:901px){
  /* Keep the sticky live-analysis panel below the modal X button. */
  #orderForm.live-analysis-layout>#orderReview{
    top:56px!important;
    max-height:calc(92vh - 160px)!important;
  }
}
@media(max-width:900px){
  .order-review-live .review-head{padding-right:52px}
}
.pdf-server-preview{display:flex;align-items:center;justify-content:center;background:#fff;overflow:hidden}
.pdf-server-preview img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#fff}
.card-preview.pdf-server-preview{position:relative;min-height:120px}
.card-preview.pdf-server-preview img{width:100%;max-height:150px;object-fit:contain}
.card-preview.pdf-server-preview .pdf-label{position:absolute;left:6px;bottom:6px;background:rgba(255,255,255,.92);padding:3px 6px;border-radius:6px;font-size:10px;color:#475569}
.pdf-mini-preview.pdf-server-preview{height:180px;border-bottom:1px solid #e5e7eb}
.pdf-mini-preview.pdf-server-preview img{width:100%;height:100%;object-fit:contain}
.server-pdf-viewer{background:#eef2f7}
.pdf-viewer-image-wrap{flex:1;min-height:0;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:14px;position:relative}
.pdf-viewer-image-wrap img{display:block;max-width:100%;height:auto;background:#fff;box-shadow:0 6px 24px rgba(15,23,42,.18)}
.pdf-viewer-image-wrap .pdf-render-status{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:2;background:rgba(255,255,255,.94);border-radius:8px;padding:6px 10px;white-space:nowrap}
.brand-mark.browser-logo{background:#fff!important;padding:3px!important;overflow:hidden}
.brand-mark.browser-logo img{width:100%;height:100%;object-fit:contain;display:block}


/* v0.5.23 image/PDF zoom + searchable organization picker in order detail */
.detail-org-search-wrap{position:relative;min-width:0}.detail-org-search-wrap>input[type="text"],.detail-org-search-wrap>input:not([type]){width:100%}.detail-org-search-wrap .search-suggestions{position:absolute;left:0;right:0;top:100%;z-index:90}
.media-zoom-shell{width:100%;height:100%;display:flex;flex-direction:column;background:#0f172a;min-height:0}
.media-zoom-toolbar{height:48px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 10px;background:#fff;border-bottom:1px solid #d8dee8;color:#334155;z-index:4}
.media-zoom-toolbar .zoom-control{width:38px;min-width:38px;height:34px;padding:0;font-size:22px;line-height:1}.media-zoom-toolbar .zoom-reset{height:34px;padding:0 10px}.media-zoom-scale{min-width:52px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.media-zoom-hint{font-size:12px;color:#64748b;white-space:nowrap}
.media-zoom-stage,.zoom-preview-stage{flex:1;min-height:0;position:relative;overflow:hidden!important;touch-action:none!important;overscroll-behavior:contain;user-select:none;-webkit-user-select:none;cursor:zoom-in;background:#0f172a}
.media-zoom-stage.is-zoomed,.zoom-preview-stage.is-zoomed{cursor:grab}.media-zoom-stage.is-zoomed:active,.zoom-preview-stage.is-zoomed:active{cursor:grabbing}
.zoom-preview-target{position:absolute!important;left:50%!important;top:50%!important;transform-origin:center center!important;max-width:96%!important;max-height:96%!important;width:auto!important;height:auto!important;object-fit:contain!important;will-change:transform;-webkit-user-drag:none;user-select:none}
.server-pdf-viewer .media-zoom-toolbar{background:#f8fafc}.server-pdf-viewer .pdf-viewer-image-wrap{padding:0!important;display:block!important;overflow:hidden!important;background:#475569}.server-pdf-viewer .pdf-viewer-image-wrap img.zoom-preview-target{max-width:94%!important;max-height:94%!important;box-shadow:0 6px 24px rgba(15,23,42,.28)}
@media(max-width:720px){.media-zoom-toolbar{height:auto;min-height:46px;gap:6px;flex-wrap:wrap;padding:5px 6px}.media-zoom-hint{display:none}.media-zoom-toolbar .zoom-reset{font-size:12px}.file-preview-content{height:78vh}.zoom-preview-target{max-width:98%!important;max-height:98%!important}.detail-org-search-wrap .search-suggestions{max-height:220px}}

/* v0.5.24 server-side PDF preview before/after registration + Kakao detail organization picker */
.local-pdf-preview{position:relative;width:100%;height:240px;background:#fff}.local-pdf-preview>img{width:100%!important;height:100%!important;object-fit:contain!important;background:#fff!important}
.local-pdf-preview-status{position:absolute;left:10px;right:10px;bottom:10px;padding:7px 9px;border-radius:8px;background:rgba(255,255,255,.94);box-shadow:0 2px 10px rgba(15,23,42,.12);font-size:12px;color:#475569;text-align:center}
.detail-org-search-wrap{position:relative}.detail-org-search-wrap input{width:100%}.detail-org-search-wrap .detail-org-add-new{border-top:1px solid #e5e7eb;background:#f8fafc}.detail-org-search-wrap .detail-org-add-new small{display:block;color:#64748b;margin-top:2px}
@media(max-width:700px){.local-pdf-preview{height:280px}}

/* v0.5.25 order-detail top-aligned columns + original PDF preview/download */
#detailBody{display:block!important;min-width:0}
.detail-main-columns{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:14px;align-items:start;min-width:0}
.detail-main-left,.detail-main-right{min-width:0}
.detail-main-left{display:flex;flex-direction:column;gap:12px}
.detail-main-right{display:flex;flex-direction:column;gap:10px;align-self:start}
.detail-main-left>.detail-original-section,
.detail-main-left>.detail-shipment-section,
.detail-main-left>.detail-core,
.detail-main-left>.hold-reason-box,
.detail-main-left>.detail-section,
.detail-main-right>.detail-section{margin:0!important;min-width:0}
.detail-main-right>.detail-section:first-child{margin-top:0!important}
.detail-main-right .review-item,.detail-main-right .form-grid{min-width:0}
.detail-main-right .review-item{grid-template-columns:minmax(0,1fr) minmax(0,.7fr)!important;overflow:hidden}
.detail-main-right .review-item-title,.detail-main-right .review-item-learning,.detail-main-right .review-item-remove{grid-column:1/-1!important}
.detail-main-right .review-item-remove{max-width:84px;justify-self:end;padding:6px 10px}

.detail-original-gallery .pdf-original-file{grid-column:1/-1;background:#fff;cursor:default}
.pdf-original-inline{width:100%;height:clamp(330px,46vh,560px);background:#fff;border-bottom:1px solid #e5e7eb;overflow:hidden}
.pdf-original-inline iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.detail-file-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;flex:0 0 auto}
.pdf-original-file .detail-file-head{gap:8px;align-items:center}
.pdf-original-file .detail-file-head>span{flex:1 1 220px}
.pdf-original-file .secondary{white-space:nowrap;text-decoration:none}

.pdf-original-viewer-shell{width:100%;height:100%;display:flex;flex-direction:column;min-height:0;background:#fff}
.pdf-original-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid #e2e8f0;background:#f8fafc;flex:0 0 auto}
.pdf-original-viewer-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pdf-original-viewer-actions a{text-decoration:none;white-space:nowrap}
.pdf-original-viewer-frame{width:100%;flex:1 1 auto;min-height:0;border:0;background:#fff}
.pdf-original-viewer-fallback{flex:0 0 auto;padding:7px 10px;border-top:1px solid #e2e8f0;background:#fff;color:#64748b;font-size:11px;text-align:center}
.pdf-original-viewer-fallback a{font-weight:700;color:#2563eb}

@media(min-width:901px){
  .detail-main-right{position:sticky;top:8px}
  .detail-main-right .detail-section-body{max-height:330px;overflow:auto}
}
@media(max-width:1100px) and (min-width:901px){
  .detail-main-columns{grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr);gap:10px}
  .pdf-original-inline{height:420px}
}
@media(max-width:900px){
  .detail-main-columns{display:flex;flex-direction:column;gap:12px;width:100%}
  .detail-main-left,.detail-main-right{width:100%;display:flex;flex-direction:column;gap:10px}
  .detail-main-right{position:static}
  .detail-main-right .detail-section-body{max-height:none;overflow:visible}
  .pdf-original-inline{height:clamp(300px,55vh,520px)}
}
@media(max-width:520px){
  .pdf-original-inline{height:360px}
  .pdf-original-file .detail-file-head{align-items:flex-start;flex-direction:column}
  .detail-file-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .detail-file-actions .secondary{width:100%;text-align:center;justify-content:center}
  .pdf-original-viewer-toolbar{align-items:flex-start;flex-direction:column}
  .pdf-original-viewer-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .pdf-original-viewer-actions .secondary{width:100%;text-align:center}
}
