/* Readable sizing for a lab monitor.
   The base theme drew body text at 14px, table cells at 13px and several
   captions between 7.5px and 11px, which staff could not read across the
   room. This sheet raises the floor and grows the top bars to match.
   It loads after compact-nav.css, which owns the header with !important. */

body{font-size:15px}

/* Header: taller bar, bigger brand and menu labels. */
body>header{height:68px!important}
body>header .brand b{font-size:25px!important}
body>header .brand span,body>header .brand small,body>header .brand-wordmark small{font-size:12px!important;letter-spacing:.14em}
body>header nav button,body>header nav a{font-size:19px!important}
body>header .icons .utility-button{height:44px!important}
body>header .icons .utility-icon{width:27px!important;height:27px!important}
body>header .icons .notification-badge{font-size:12px!important}
/* Give each top-level destination an equal hit area and the same arrow. */
body>header nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));min-width:0}
body>header nav button{width:100%;min-width:0!important;gap:8px!important;padding:0 8px!important}
body>header .icons{flex:0 0 auto!important;width:auto!important;min-width:0!important;padding:0 14px!important}
body>header nav .tooth-nav-chevron{display:inline-block!important;flex:0 0 8px;width:8px;height:8px;margin:0 0 4px 2px!important;border-right:2px solid currentColor;border-bottom:2px solid currentColor;font-size:0!important;transform:rotate(225deg)!important}
body>header nav button.active .tooth-nav-chevron{transform:rotate(45deg)!important}
body>header nav .accounting-nav-icon{width:25px;height:25px;flex:0 0 25px}
body>header nav button.nav-today::before{width:25px;height:25px;flex:0 0 25px;margin:0}
@media(max-width:900px){body>header nav{grid-template-columns:repeat(6,minmax(110px,1fr));overflow-x:auto!important}}
#app{min-height:calc(100vh - 68px)!important}
#app>.subnav{top:68px!important;height:70px!important;min-height:70px!important;max-height:70px!important}
#app>.subnav>.sub-button{height:70px!important;font-size:17px}

/* Tables: the main reading surface. */
.table-wrap table{font-size:15px}
.table-wrap th{font-size:14px}
.table-wrap td{font-size:15px}
.table-wrap td small,.prosthetic-table-meta,.backend-intake .table-wrap small{font-size:13px!important}
.table-wrap td b{font-size:15px}

/* Captions and pills that had fallen to 10-12px. */
small{font-size:13px}
.chip,.status,.ai-state,.page-info,.basis-caption,.source-badge,.catalog-count{font-size:13px!important}
.intake-status-filters button{font-size:14px}
.intake-status-filters button b{font-size:12px}
.table-wrap td button,.table-wrap td a{font-size:13px}
.notification-badge{font-size:12px!important}

/* Cards, forms and dialogs. */
.today-intake-card .today-intake-time{font-size:20px}
.today-intake-card{font-size:15px}
.order-board-card{font-size:14px}
.order-board-card-title{font-size:17px}
.action{font-size:14px}
h1{font-size:27px}
h2{font-size:22px}
h3,.prosthetic-info-title{font-size:17px}
label,.field-label,.review-field span,.analysis-field span{font-size:14px}
input,select,textarea,button{font-size:15px}
.unified-order-fields dt{font-size:12px}
.unified-order-fields dd{font-size:15px}
.muted{font-size:14px}

@media(max-width:900px){
 body>header{height:60px!important}
 #app{min-height:calc(100vh - 60px)!important}
 #app>.subnav{top:60px!important}
 body>header nav button,body>header nav a{font-size:16px!important}
}

/* Remaining captions the first pass missed. */
.order-board-lane-pill,.order-board-count,.order-board-order{font-size:13px!important}
.order-board-card-tools .order-board-count{font-size:12px!important}
.today-intake-source,.today-intake-state,.today-intake-new{font-size:13px!important}
.intake-status-filters button b,.chip b{font-size:12px!important}
.order-board-column>header b{font-size:15px}
.prosthetic-calendar-meta,.week-order-card small{font-size:13px!important}
.review-field em,.analysis-field em{font-size:12px}
.order-board-work,.order-board-note,.order-board-meta,.order-board-assignee{font-size:13px!important}
.intake-status-filters b,.chip b,.filter-count{font-size:12px!important}

/* Dialogs: use the monitor instead of leaving a third of it empty. */
body .order-detail-modal-backdrop .unified-order-drawer{width:min(1720px,calc(100vw - 40px))!important;max-height:calc(100vh - 36px)}
body .intake-review-modal{width:min(1720px,96vw)!important;max-height:95vh}
body .order-preview-media,body .intake-file-view{min-height:0}
body .order-original-image,body .intake-file-view img{max-height:none}
body .order-detail-pane-head h3,body .intake-review-modal h2{font-size:21px}
body .modal .box{padding:30px}
@media(max-width:1100px){
 body .order-detail-modal-backdrop .unified-order-drawer,body .intake-review-modal{width:calc(100vw - 20px)!important}
}

/* Staff tick on the notification list. */
.today-intake-check{flex:0 0 30px;width:30px;height:30px;margin-right:4px;padding:0;border:2px solid #c3d2d1;border-radius:7px;background:#fff;cursor:pointer;position:relative;transition:border-color .12s ease,background .12s ease}
.today-intake-check:hover{border-color:var(--mint-dark,#00849b)}
.today-intake-check:focus-visible{outline:2px solid var(--mint,#00aac8);outline-offset:2px}
.today-intake-check::after{content:"";position:absolute;left:9px;top:4px;width:8px;height:15px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg) scale(.4);opacity:0;transition:opacity .12s ease,transform .12s ease}
.today-intake-check.is-checked{border-color:#00849b;background:#00849b}
.today-intake-check.is-checked::after{opacity:1;transform:rotate(45deg) scale(1)}
.today-intake-card.is-checked{opacity:.66}
.today-intake-card.is-checked .today-intake-body h4{text-decoration:line-through;text-decoration-color:#9fb1b0}

/* Gmail and Medit Link orders need different handling, so the notification
   list labels and filters them by channel. */
.today-intake-sources{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.today-source-chip{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border:1px solid #d6e0df;border-radius:17px;background:#fff;color:#4a5f5e;font-size:14px;font-weight:700;cursor:pointer}
.today-source-chip b{font-size:12px;color:#6d8281;font-weight:800}
.today-source-chip:hover{border-color:#a9c4c2}
.today-source-chip.active{border-color:#00849b;background:#e9f9fc;color:#006e82}
.today-source-chip.active b{color:#006e82}
.today-source-chip.is-gmail.active{border-color:#c8434a;background:#fdeced;color:#a93238}
.today-source-chip.is-gmail.active b{color:#a93238}
.today-source-chip.is-medit.active{border-color:#2a6fb5;background:#eaf2fc;color:#215c99}
.today-source-chip.is-medit.active b{color:#215c99}
.today-intake-source{display:inline-block;padding:2px 9px;border-radius:11px;background:#eef3f3;color:#4a5f5e;font-weight:700}
.today-intake-source.is-gmail{background:#fdeced;color:#a93238}
.today-intake-source.is-medit{background:#eaf2fc;color:#215c99}
.today-intake-card.source-gmail{border-left-color:#e08a8e}
.today-intake-card.source-medit{border-left-color:#7aa6d8}

/* Board cards: size them to their content and show the countdown. */
.order-board-card{flex:0 0 auto!important;min-height:0!important;padding:13px 14px 11px!important}
.order-board-card-meta{margin-top:8px!important;padding-top:8px!important}
.order-board-card-title{margin-top:6px!important}
.order-board-note{margin-top:5px!important}
.order-board-assignee{margin-bottom:6px}
.order-board-assignee i{width:21px;height:21px;font-size:11px}
.order-board-card-title{line-height:1.3}
.board-due{margin-left:7px;padding:2px 7px;border-radius:10px;background:#eef3f3;color:#4a5f5e;font-style:normal;font-size:12px;font-weight:800}
.board-due.is-soon{background:#fff3e2;color:#95611a}
.board-due.is-today{background:#e9f9fc;color:#006e82}
.board-due.is-late{background:#fdeced;color:#a93238}
/* The lane already names the status, so the card keeps one compact footer row. */
.order-board-card-meta{display:flex!important;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.order-board-assignee{margin-bottom:0!important}
.order-board-meta-bottom{display:flex;align-items:center;gap:8px;margin-left:auto}
.order-board-tags .board-tag[class*="board-tag-"]{display:none}
/* A remake needs attention without looking like an overdue order. */
.remake-warning{display:inline-flex;align-items:center;gap:5px;width:max-content;padding:3px 8px;border:1px solid #e4b66d;border-radius:12px;background:#fff4df;color:#885512;font-size:12px;font-style:normal;font-weight:800;line-height:1.25;white-space:nowrap}
.remake-warning::before{content:"!";display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#b87519;color:#fff;font-size:11px;line-height:1}
.order-board-card.is-remake{border-left:3px solid #d49a45}
.order-clinic-pane tr.is-remake td:first-child{box-shadow:inset 3px 0 #d49a45}
.backend-intake tr.is-remake td:first-child{box-shadow:inset 3px 0 #d49a45}
.today-intake-body .remake-warning{margin-left:8px;vertical-align:2px}

/* Today's list: only unfinished work wears the alert colour. A confirmed row
   used to keep the pink "new arrival" background, so a finished shift looked
   exactly like an untouched one. */
.today-intake-card.is-new.is-done{background:#fafbfb;box-shadow:none}
.today-intake-card.is-done{background:#fafbfb}
.today-intake-card.is-new.is-done .today-intake-state,.today-intake-card.is-done .today-intake-state{color:#6d8281}
.today-intake-card.is-done .today-intake-new{background:#dfe7e6;color:#566a69}
.today-intake-card.is-pending:not(.is-new){background:#fffdf6}
.today-intake-card.is-pending .today-intake-state{color:#95611a}
.today-intake-card.is-done .action{border-color:#dbe3e2;color:#56696a}

/* 회계: per-clinic billing for a month. */
.accounting-basis,.accounting-month{display:inline-flex;align-items:center;gap:4px;border:1px solid #d6e0df;border-radius:9px;padding:3px;background:#fff}
.accounting-basis button,.accounting-month button{height:32px;padding:0 13px;border:0;border-radius:7px;background:transparent;color:#4a5f5e;font-size:14px;font-weight:700;cursor:pointer}
.accounting-basis button.active{background:#e9f9fc;color:#006e82}
.accounting-basis button:hover,.accounting-month button:hover{background:#f1f6f5}
.accounting-month b{min-width:86px;text-align:center;font-size:15px;color:#233738}
.accounting-summary{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 18px}
.accounting-summary>div{flex:0 0 auto;min-width:170px;padding:14px 18px;border:1px solid var(--line);border-radius:9px;background:#fff}
.accounting-summary span{display:block;font-size:13px;color:var(--muted)}
.accounting-summary b{font-size:22px;color:#006e82}
.accounting-summary>div.is-warn{border-color:#e6c48a;background:#fffaf2}
.accounting-summary>div.is-warn b{color:#95611a}
.accounting-page .money{text-align:right}
.accounting-page tbody tr.is-open{background:#f4fcfe}
.accounting-warn{color:#95611a;font-weight:700}
.accounting-detail{margin-top:22px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.accounting-detail header{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#f4fcfe;border-bottom:1px solid var(--line)}
.accounting-detail header h3{margin:0;flex:1}
.accounting-nav-icon{display:block;width:21px;height:21px;background:currentColor;mask-position:center;mask-size:contain;mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2.5'/%3E%3Cpath d='M8 8h8M8 12h5M8 16h8'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2.5'/%3E%3Cpath d='M8 8h8M8 12h5M8 16h8'/%3E%3C/g%3E%3C/svg%3E")}
.accounting-detail header h3{color:#233738;font-size:18px}

/* 서울복음치과 is the lab's own clinic; outside customers stay unmarked. */
.clinic-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:9px;font-size:11px;font-style:normal;font-weight:800;vertical-align:1px}
.clinic-tag.is-internal{background:#e7f0ff;color:#2a5fa8}
.order-board-note .clinic-tag{margin-left:5px}
.accounting-page tbody tr.is-internal td:first-child{box-shadow:inset 3px 0 #7aa0d8}
.accounting-summary>div.is-internal{border-color:#bcd2f2;background:#f5f9ff}
.accounting-summary>div.is-internal b{color:#2a5fa8}
.accounting-summary small{display:block;margin-top:4px;font-size:12px;color:var(--muted)}
.order-ledger-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:4px 0 20px}
.order-ledger-tabs button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px;padding:0 18px;border:1px solid #dce5e3;border-radius:10px;background:#fff;color:#526668;font-size:17px;font-weight:800;text-align:left;cursor:pointer}
.order-ledger-tabs button.active{border-color:#276d79;background:#eef7f7;color:#175b67;box-shadow:inset 0 0 0 1px #276d79}
.order-ledger-tabs button:last-child.active{border-color:#2a5fa8;background:#f0f6ff;color:#2a5fa8;box-shadow:inset 0 0 0 1px #2a5fa8}
.order-ledger-tabs button b{font-size:14px;white-space:nowrap}
.order-clinic-panes{display:grid;margin-top:18px}
.order-clinic-pane{min-width:0;border:1px solid #dce5e3;border-radius:12px;background:#fff;overflow:hidden}
.order-clinic-pane.is-internal{border-color:#bcd2f2}
.order-clinic-pane>header{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid #dcebe8;background:#f4faf9}
.order-clinic-pane.is-internal>header{background:#f5f9ff;border-bottom-color:#dce8f8}
.order-clinic-pane>header h2{margin:0;font-size:18px;color:#233738}
.order-clinic-pane.is-internal>header h2{color:#2a5fa8}
.order-clinic-pane>header span{margin-left:auto;color:#526668;font-weight:800}
.order-clinic-empty{margin:0;padding:30px 18px;color:#637573}
.order-clinic-pane .table-wrap{margin:0}
.order-workspace-board .order-clinic-pane .order-board{width:100%;min-width:0;min-height:420px;height:min(66vh,700px);overflow-x:auto;grid-template-columns:repeat(7,minmax(282px,1fr))}
