/* Bundled Pretendard (SIL OFL 1.1, see fonts/Pretendard-LICENSE.txt); CSP allows only same-origin fonts. */
@font-face {
  font-family:"Pretendard";
  src:local("Pretendard Variable"), url("fonts/PretendardVariable.woff2") format("woff2-variations");
  font-weight:45 920;
  font-style:normal;
  font-display:swap;
}
* {
  box-sizing:border-box;
}
[hidden] { display:none !important; }
.auth-panel { max-width:420px; margin:10vh auto; padding:28px; background:#fff; border:1px solid #e2e2e5; border-radius:10px; }
.auth-panel form { display:grid; gap:18px; margin:24px 0; }
.auth-panel label { display:grid; gap:8px; }
.auth-panel input { width:100%; }
#auth-message { white-space:pre-line; color:#5f5f6b; }
@media(max-width:600px) { .auth-panel { margin:32px 16px; padding:20px; } }
:root {
  font-family:"Pretendard","Pretendard Variable",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  font-variant-numeric:tabular-nums;
  color:#313137;
  background:#f4f4f5;
  font-size:14px;
}
body {
  margin:0;
}
a {
  color:inherit;
  text-decoration:none;
}
button,input,select {
  font:inherit;
}
button,.button {
  border:1px solid #dedee1;
  border-radius:7px;
  padding:11px 17px;
  background:white;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:600;
  color:#43434c;
}
button:hover,.button:hover {
  background:#e3f2f0;
}
button:disabled {
  cursor:default;
  opacity:.55;
}
input,select {
  border:1px solid #dfdfe1;
  border-radius:7px;
  padding:12px;
  background:white;
  color:#34343a;
}
input:focus,select:focus,button:focus-visible,a:focus-visible {
  outline:3px solid #99d5cf;
  outline-offset:2px;
}
.primary {
  background:#0f766e!important;
  color:white!important;
  border-color:#0f766e!important;
}
.danger {
  color:#bb3641;
  border-color:#eccbd0;
  margin-left:auto;
}
.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:232px;
  background:#18181b;
  color:#e4e4e7;
  padding:32px 20px;
  display:flex;
  flex-direction:column;
}
.brand {
  font-size:20px;
  font-weight:800;
  letter-spacing:1px;
  display:flex;
  align-items:center;
  gap:10px;
}
.brand-mark {
  background:#0f766e;
  padding:6px 10px;
  border-radius:8px;
}
.nav-label {
  font-size:10px;
  letter-spacing:2px;
  color:#71717a;
  margin:47px 12px 14px;
}
.sidebar nav {
  margin-top:36px;
}
nav a {
  display:flex;
  gap:12px;
  padding:15px 12px;
  border-radius:7px;
}
nav .selected {
  background:#27272a;
  color:white;
}
nav small {
  margin-left:auto;
  color:#a1a1aa;
}
.sidebar-bottom {
  margin-top:auto;
  font-size:12px;
  color:#a1a1aa;
}
.sidebar-bottom p {
  font-size:11px;
  color:#71717a;
  margin-left:13px;
}
.dot {
  display:inline-block;
  width:6px;
  height:6px;
  background:#77d0a8;
  border-radius:50%;
  margin-right:5px;
}
.workspace {
  margin-left:232px;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  position:relative;
}
main {
  padding:40px;
  max-width:1500px;
  width:100%;
  margin:0 auto;
  flex:1;
}
.page-title {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-bottom:30px;
}
h1 {
  font-size:26px;
  letter-spacing:-.5px;
  margin:8px 0 12px;
}
h2 {
  font-size:18px;
  margin:0;
}
h3 {
  font-size:16px;
}
.eyebrow {
  font-size:12px;
  font-weight:600;
  letter-spacing:0;
  color:#868690;
  margin:0 0 10px;
}
.subtitle {
  color:#84848f;
  margin:0;
  line-height:1.7;
}
.toolbar {
  display:flex;
  gap:10px;
  margin-bottom:20px;
}
.search {
  flex:1;
}
.search input {
  width:100%;
}
.panel {
  background:white;
  border:1px solid #e6e6e8;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 2px 4px #14253f03;
}
.panel-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:24px;
  gap:20px;
}
.panel-heading>span {
  font-size:12px;
  color:#92929c;
}
#count {
  font-size:12px;
  margin-left:6px;
  color:#0f766e;
  background:#f6f6f6;
  border-radius:20px;
  padding:4px 9px;
}
.table-wrap {
  overflow:auto;
}
table {
  border-collapse:collapse;
  width:100%;
  min-width:760px;
  text-align:left;
}
th {
  white-space:nowrap;
  font-size:12px;
  font-weight:500;
  color:#7f7f8a;
  background:#fafafa;
  padding:14px 24px;
  border-block:1px solid #f0f0f2;
}
td {
  padding:22px 24px;
  border-bottom:1px solid #f0f0f2;
  line-height:1.5;
  overflow-wrap:anywhere;
}
td:first-child {
  min-width:190px;
  font-weight:600;
}
td:nth-child(2) {
  max-width:340px;
  color:#83838d;
}
td:nth-child(3) {
  color:#83838d;
}
td a {
  color:#0f766e;
}
td small {
  display:block;
  color:#a5a5ad;
  font-size:10px;
  font-weight:400;
  margin-top:5px;
}
.badge {
  display:inline-block;
  white-space:nowrap;
  border-radius:20px;
  background:#eaf6f0;
  color:#278363;
  padding:5px 10px;
  font-size:11px;
}
.badge.inactive {
  background:#f2f2f3;
  color:#82828d;
}
.empty {
  text-align:center;
  padding:65px 20px;
  color:#8e8e98;
}
.empty-icon {
  font-size:32px;
  color:#60c8c0;
}
.back {
  display:inline-block;
  color:#81818c;
  margin:0 0 20px;
}
.fields {
  display:grid;
  grid-template-columns:150px 1fr;
  gap:0;
  margin:0 24px;
}
.fields dt,.fields dd {
  padding:18px 0;
  border-top:1px solid #f0f0f2;
  margin:0;
  overflow-wrap:anywhere;
}
.fields dt {
  color:#898994;
}
.actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:24px 0 0;
}
.detail .actions {
  margin:24px;
}
.help {
  color:#92929c;
  font-size:12px;
  line-height:1.8;
}
.detail .help {
  margin:0 24px 24px;
}
.related {
  margin-top:22px;
  padding:24px;
}
.related p {
  color:#92929b;
  font-size:12px;
}
.tabs {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:20px;
}
.tabs button {
  background:#f9f9fa;
  font-size:12px;
}
.form-panel {
  padding:32px;
  max-width:760px;
}
.form-panel .subtitle {
  margin-top:14px;
}
#store-form {
  margin-top:26px;
}
#store-form label {
  display:block;
  margin-bottom:22px;
  font-weight:600;
}
#store-form input {
  display:block;
  width:100%;
  margin-top:9px;
  font-weight:400;
}
.required {
  color:#0f766e;
}
#notice {
  padding:15px 20px;
  background:#f6f6f6;
  color:#123d39;
  border-radius:7px;
  margin-bottom:20px;
}
#notice.error {
  background:#fff0f0;
  color:#a83042;
}
footer {
  padding:24px 40px;
  color:#a2a2aa;
  font-size:11px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:16px;
}
.store-scopes { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
.store-scopes button[aria-pressed="true"] { color:#fff; background:#0f766e; border-color:#0f766e; }
.account-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px 16px; width:100%; max-width:100%; color:#767686; font-size:12px; line-height:1.5; }
.account-actions button { min-height:36px; max-width:100%; padding:6px 8px; border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.account-actions button:hover { color:#0f766e; }
#account-login-id { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.product-footer { display:flex; justify-content:space-between; gap:12px; width:100%; }
.product-footer-title { color:#868690; }
dialog {
  border:0;
  border-radius:12px;
  box-shadow:0 20px 70px #152f4860;
  max-width:460px;
  padding:30px;
  color:#313137;
}
dialog::backdrop {
  background:#14253f66;
}
dialog p {
  line-height:1.8;
  color:#7e7e89;
}
#contract-input-form { display:grid; gap:18px; }
#contract-input-form h2 { margin:0; }
#contract-input-fields { display:grid; gap:14px; }
#contract-input-fields label { display:grid; gap:7px; font-weight:600; }
#contract-input-fields input { width:100%; min-width:0; }
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
}
[hidden] {
  display:none!important;
}
@media(max-width:850px) {
  .sidebar {
    width:180px;
    padding:24px 14px;
  }
  .brand {
    font-size:16px;
  }
  .workspace {
    margin-left:180px;
  }
  main {
    padding:24px;
  }
  footer { padding-right:24px; padding-left:24px; }
  .page-title {
    align-items:flex-start;
    flex-direction:column;
  }
  th,td {
    padding:16px;
  }
  .panel-heading>span {
    display:none;
  }
}
@media(max-width:600px) {
  .sidebar {
    position:static;
    width:auto;
    padding:16px;
  }
  .nav-label,.sidebar-bottom {
    display:none;
  }
  .sidebar nav {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
    margin-top:14px;
    min-width:0;
  }
  .sidebar nav a {
    min-width:0;
    min-height:44px;
    padding:8px 5px;
    justify-content:center;
    text-align:center;
    font-size:12px;
  }
  .sidebar nav small {
    display:none;
  }
  .workspace {
    margin:0;
  }
  main {
    padding:22px 16px;
  }
  button,.button,input,select { min-height:44px; }
  footer { display:flex; padding:14px 16px 18px; border-top:1px solid #e7e7e9; gap:12px; }
  .account-actions { justify-content:flex-end; gap:6px 10px; font-size:11px; line-height:1.4; }
  #account-login-id { flex:1 1 100%; text-align:right; padding:2px 4px; }
  .account-actions button { min-height:44px; padding:8px 7px; white-space:normal; word-break:keep-all; overflow-wrap:anywhere; font-size:11px; }
  .product-footer { justify-content:center; gap:8px; font-size:10px; }
  .product-footer>span:last-child { display:none; }
  textarea { min-height:96px; }
  #list-view .table-wrap { overflow:visible; }
  #list-view table { min-width:0; }
  #list-view table,#list-view tbody,#list-view tr,#list-view td { display:block; width:100%; }
  #list-view thead { display:none; }
  #list-view tr { padding:8px 12px; border-bottom:1px solid #e8e8ea; }
  #list-view td { display:grid; grid-template-columns:72px minmax(0,1fr); gap:10px; border:0; padding:6px 0; overflow-wrap:anywhere; }
  #list-view td:before { content:attr(data-label); color:#7e7e89; font-size:11px; }
  #list-view td:first-child a { font-weight:700; }
  #store-equipment-list .table-wrap { overflow:visible; }
  #store-equipment-list table { min-width:0; }
  #store-equipment-list table,#store-equipment-list tbody,#store-equipment-list tr,#store-equipment-list td { display:block; width:100%; }
  #store-equipment-list thead { display:none; }
  #store-equipment-list tr { padding:10px 0; border-bottom:1px solid #e8e8ea; }
  #store-equipment-list td { display:grid; grid-template-columns:72px minmax(0,1fr); gap:10px; border:0; padding:5px 0; overflow-wrap:anywhere; }
  #store-equipment-list td:before { content:attr(data-label); color:#7e7e89; font-size:11px; }
  .toolbar {
    flex-wrap:wrap;
  }
  .search {
    flex-basis:100%;
  }
  .fields {
    grid-template-columns:100px 1fr;
  }
  .form-panel {
    padding:22px;
  }
  .danger {
    margin-left:0;
  }
}

.business-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.business-card { border: 1px solid #e6e6e8; border-radius: 8px; padding: 20px; margin: 12px 0; }
.business-card p { overflow-wrap: anywhere; }
.business-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
#business-form { margin-top: 26px; }
#business-form label { display: block; margin-bottom: 22px; font-weight: 600; }
#business-form input { display: block; width: 100%; margin-top: 9px; font-weight: 400; }
@media(max-width:600px) { .business-grid { grid-template-columns: 1fr; gap: 0; } }
.contract-card,.contract-term { border:1px solid #e6e6e8; border-radius:8px; padding:18px; margin:12px 0; }
.contract-card p,.contract-term p { color:#6d6d7b; }
.contract-item-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:end; margin:16px 0; padding:18px; border:1px solid #e6e6e8; border-radius:8px; }
.contract-item-row label:first-child { grid-column:1 / -1; }
.contract-item-row input,.contract-item-row select { width:100%; }
#contract-form>label { display:block; margin:18px 0; font-weight:600; }
#contract-form>label input,#contract-form>label select { display:block; width:100%; margin-top:8px; }
@media(max-width:600px) { .contract-item-row { grid-template-columns:minmax(0,1fr); } }

.contract-item-row label { display:flex; flex-direction:column; gap:8px; font-weight:600; }
.contract-item-row .item-return { width:20px; height:20px; margin:12px 0; }
/* Chapter 4: compact workspace, restrained surfaces and readable work lists. */
:root { background:#f4f4f5; }
.brand-mark { background:none; padding:0; border-radius:0; color:#2fc8bb; flex:none; }
.sidebar { width:216px; padding:28px 18px; }
.workspace { margin-left:216px; }
main { padding:28px; }
h1 { font-size:24px; letter-spacing:-.6px; margin:6px 0 10px; }
h2 { font-size:17px; }
.panel { border-radius:5px; box-shadow:none; }
button,.button,input,select,textarea { border-radius:4px; }
button,.button { padding:9px 13px; }
textarea { font:inherit; width:100%; padding:10px; border:1px solid #dfdfe1; color:inherit; resize:vertical; }
textarea:focus-visible,summary:focus-visible { outline:3px solid #99d5cf; outline-offset:2px; }
#project-view { background:white; border:1px solid #e6e6e8; padding:24px; border-radius:4px; }
#project-view h1 { margin-top:0; }
#project-view a { color:#0f766e; }
#project-view .p-title { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:12px 0 20px; }
#project-view .p-title .help { margin:6px 0 0; }
.p-toolbar,.p-inline-form { display:flex; align-items:end; flex-wrap:wrap; gap:14px; margin:16px 0; }
.p-inline-form .actions { margin:0; }
.p-field { display:flex; flex-direction:column; gap:7px; font-size:12px; min-width:0; color:#5f5f6b; }
.p-field input,.p-field select { width:100%; min-width:0; padding:9px; font-size:14px; }
.p-field:has(input[type=checkbox]),.p-field:has(input[type=radio]) { flex-direction:row-reverse; justify-content:flex-end; align-items:center; padding:8px 0; }
.p-field input[type=checkbox],.p-field input[type=radio] { width:18px; height:18px; flex:none; accent-color:#0f766e; }
.p-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:18px 0; }
.p-additional-current-equipment { display:grid; gap:8px; }
.p-additional-equipment-item { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 14px; border:1px solid #e8e8ea; border-radius:10px; background:#fff; }
.p-additional-equipment-item>div:first-child { display:grid; gap:4px; }
.p-additional-equipment-item>div:first-child span { color:#6f6f7d; font-size:13px; }
.p-additional-change-form { display:grid; grid-template-columns:repeat(3,minmax(120px,1fr)); align-items:end; gap:10px; padding:12px 0; }
.p-additional-products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.p-additional-product { margin:0; padding:14px; border:1px solid #e8e8ea; border-radius:10px; }
.p-additional-product-choice { display:flex; align-items:center; gap:10px; cursor:pointer; }
.p-additional-product-options { padding-top:12px; }
.p-additional-component { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:10px 0; border-top:1px solid #f0f0f1; }
.p-additional-contract-edit>summary { cursor:pointer; color:#124f4a; font-weight:600; }
.p-additional-completion { justify-content:flex-end; margin-top:8px; }
.p-section { margin:24px 0; padding-top:20px; border-top:1px solid #e8e8ea; }
.p-section>h2 { margin-bottom:16px; }
.p-section .help { color:#6f6f7d; }
.p-facts { display:grid; grid-template-columns:100px minmax(0,1fr) 100px minmax(0,1fr); gap:0 12px; margin:12px 0; }
.p-facts dt,.p-facts dd { margin:0; padding:11px 0; border-bottom:1px solid #f0f0f2; overflow-wrap:anywhere; white-space:pre-wrap; }
.p-facts dt { color:#7e7e89; font-size:12px; }
#project-view table { min-width:620px; }
#project-view th,#project-view td { padding:12px 14px; font-size:13px; }
#project-view td:first-child { min-width:100px; }
#project-view td:nth-child(2),#project-view td:nth-child(3) { color:inherit; }
#project-view td { vertical-align:top; }
#project-view td small { color:#747483; font-size:11px; }
.p-tabs { display:flex; gap:4px; border-bottom:1px solid #e1e1e4; overflow-x:auto; margin:24px 0 20px; }
.p-tabs button { border:none; border-radius:0; border-bottom:2px solid transparent; flex:none; padding:12px 18px; font-weight:500; }
.p-tabs .selected { color:#0f766e; border-bottom-color:#0f766e; font-weight:700; }
.p-flow { display:flex; list-style:none; padding:18px 0; margin:12px 0; overflow-x:auto; }
.p-flow li { flex:1; min-width:90px; position:relative; border-top:2px solid #e1e1e3; padding:16px 10px 0 0; color:#83838e; }
.p-flow li:before { content:""; width:8px; height:8px; background:white; border:2px solid #cbcbcf; position:absolute; left:0; top:-7px; border-radius:50%; }
.p-flow li.done { border-color:#0f766e; color:#313137; }
.p-flow li.done:before,.p-flow li.current:before { border-color:#0f766e; background:#0f766e; }
.p-flow li.current strong { color:#0f766e; }
.p-flow strong { font-size:12px; }
.p-flow small { display:block; font-size:11px; margin-top:5px; }
.p-workflow-nav { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin:16px 0 22px; }
.p-workflow-nav button { min-width:0; min-height:50px; padding:9px 10px; border:1px solid #e0e0e3; background:#fff; color:#51515c; font-size:12px; line-height:1.35; }
.p-workflow-nav button.selected { border-color:#0f766e; color:#0f413c; background:#f9f9f9; box-shadow:inset 0 0 0 1px #0f766e; font-weight:700; }
.p-workflow-nav button.current { border-color:#0f766e; color:#fff; background:#0f766e; box-shadow:inset 0 0 0 1px #0f766e; font-weight:700; }
.p-workflow-nav button.available { border-color:#4bd5c9; color:#0f766e; background:#f9f9f9; }
.p-workflow-nav button.waiting { color:#91919a; background:#f8f8f9; cursor:not-allowed; }
.p-workflow-nav button.done:not(.selected) { color:#16734b; border-color:#b8dfce; background:#f2faf6; }
.p-document-management { margin:10px 0 18px; border:1px solid #e6e6e8; border-radius:5px; padding:0 12px; }
.p-document-management>summary { padding:12px 2px; color:#5f5f6c; font-size:13px; font-weight:600; cursor:pointer; }
.p-extra-navigation { margin:0 0 20px; border-bottom:1px solid #e1e1e4; }
.p-extra-navigation>summary { padding:12px 2px; color:#5f5f6c; font-size:13px; font-weight:600; cursor:pointer; }
.p-extra-navigation .p-tabs { margin:0; }
.p-workflow-action { padding:18px; border:1px solid #e6e6e8; border-radius:5px; background:#fcfcfd; }
.p-workflow-action .actions { margin-top:14px; }
.p-workflow-complete { color:#16734b; font-weight:700; }
.p-product { border-top:1px solid #e8e8ea; padding:12px 0; }
.p-product>.p-field { font-size:14px; font-weight:600; }
.p-equipment-row { display:grid; grid-template-columns:1fr 1.3fr 1.3fr 70px auto; gap:12px; align-items:end; margin:14px 0; }
.p-contract-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; padding:18px 0; border-bottom:1px solid #e6e6e8; }
.p-task { display:grid; grid-template-columns:minmax(160px,1fr) 45px 140px auto; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid #e6e6e8; }
.p-task>small { color:#84848f; }
.p-task>details { grid-column:1 / -1; }
summary { cursor:pointer; color:#0f766e; padding:8px 0; font-size:13px; }
.p-activity { list-style:none; padding:0 0 0 14px; margin:20px 0; border-left:2px solid #e5e5e8; }
.p-activity li { padding:8px 0 12px 8px; border-bottom:1px solid #f0f0f2; }
.p-activity small { color:#7e7e89; font-size:12px; }
.p-activity p { white-space:pre-wrap; overflow-wrap:anywhere; margin:8px 0; line-height:1.6; }
.p-activity .comment { border-left:2px solid #40afa6; }
.p-activity-jump { align-self:flex-start; margin:8px 0 0; }
.p-activity-timeline { max-width:100%; }
.p-activity-timeline li { min-width:0; }
.p-activity-category { display:inline-block; margin-left:8px; padding:1px 5px; border:1px solid #e5e5e8; border-radius:3px; color:#5f5f6c; font-size:11px; }
.p-activity-more { margin:4px 0 12px; }
.p-return-form { min-width:340px; font-weight:400; }
@media(max-width:1000px) { .sidebar { width:180px; padding:24px 12px; } .workspace { margin-left:180px; } main { padding:20px; }  .p-equipment-row { grid-template-columns:1fr 1fr; } }
@media(max-width:600px) {
 .sidebar { position:static; width:auto; padding:16px; } .workspace { margin:0; } main { padding:14px; } #project-view { padding:16px; } #project-view .p-title { align-items:flex-start; flex-direction:column; }
 .p-additional-products { grid-template-columns:minmax(0,1fr); }
 .p-additional-component,.p-additional-change-form { grid-template-columns:minmax(0,1fr); }
 .p-additional-equipment-item { align-items:flex-start; flex-direction:column; }
 .p-grid,.p-contract-row { grid-template-columns:1fr; } .p-facts { grid-template-columns:90px minmax(0,1fr); } .p-task { grid-template-columns:minmax(0,1fr) auto; gap:10px; } .p-task>details { grid-column:1 / -1; }
 #project-view .p-project-table { min-width:0; }
 #project-view .p-project-table th,#project-view .p-project-table td { padding:10px 6px; font-size:12px; } #project-view .p-project-table td:first-child { min-width:75px; }
 .p-tabs button { padding:12px; } .p-inline-form { align-items:stretch; flex-direction:column; } .p-equipment-row { grid-template-columns:minmax(0,1fr); } .p-return-form { min-width:240px; }
 #project-view .p-section .table-wrap { overflow:visible; }
 #project-view .p-section table { min-width:0; }
 #project-view .p-section table,#project-view .p-section tbody,#project-view .p-section tr,#project-view .p-section td { display:block; width:100%; }
 #project-view .p-section thead { display:none; }
 #project-view .p-section tr { padding:9px 0; border-bottom:1px solid #e8e8ea; }
 #project-view .p-section td { display:grid; grid-template-columns:82px minmax(0,1fr); gap:9px; border:0; padding:6px 0; overflow-wrap:anywhere; }
 #project-view .p-section td:before { content:attr(data-label); color:#7e7e89; font-size:11px; }
}
#project-view .p-mobile-type { display:none; }
@media(max-width:600px) { #project-view .p-mobile-type { display:block; } }

/* Review actions remain visible at narrow widths. */
.p-toolbar {align-items:end;flex-wrap:wrap}.p-toolbar button {flex-shrink:0;min-height:42px}.p-back {display:inline-flex;min-height:42px;align-items:center;margin-bottom:12px}.contract-products {display:flex;flex-wrap:wrap;gap:16px;border:0;border-bottom:1px solid var(--line,#ddd);padding:12px 0}.contract-products label {display:flex;align-items:center;gap:8px}.contract-products input {width:auto}.contract-item-row output {align-self:center;white-space:nowrap}
.store-picker { display:grid; gap:8px; min-width:0; }
.store-picker-search { display:grid; gap:6px; }
.store-picker-search input { width:100%; }
.store-picker-status { margin:0; }
.store-picker-results { display:grid; gap:6px; max-height:300px; overflow:auto; }
.store-picker-result { display:grid; gap:3px; width:100%; min-height:48px; padding:10px 12px; text-align:left; }
.store-picker-result small,.store-picker-selected small { color:#747483; overflow-wrap:anywhere; }
.store-picker-selected { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:4px 10px; padding:10px 12px; border:1px solid #8bc6c1; border-radius:4px; background:#f9f9fa; }
.store-picker-caption { grid-column:1 / -1; color:#747483; font-size:12px; }
.store-picker-selected strong,.store-picker-selected small { min-width:0; overflow-wrap:anywhere; }
.schedule-target-lookup { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:end; }
.schedule-target-lookup .help { grid-column:1 / -1; margin:0; }

/* Chapter 15: keep payment history readable and actionable on narrow screens. */
@media(max-width:600px){
  dialog { box-sizing:border-box; width:calc(100vw - 32px); max-width:460px; max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); overflow:auto; padding:22px 18px; }
  dialog .actions { flex-wrap:wrap; }
  #contract-detail-view .contract-payment-list { overflow:visible; }
  #contract-detail-view .contract-payment-table { min-width:0; border-collapse:separate; border-spacing:0 10px; }
  #contract-detail-view .contract-payment-table thead { display:none; }
  #contract-detail-view .contract-payment-table,#contract-detail-view .contract-payment-table tbody { display:block; width:100%; }
  #contract-detail-view .contract-payment-table tbody { display:grid; gap:0; }
  #contract-detail-view .contract-payment-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 12px; width:100%; box-sizing:border-box; padding:10px 12px; border:1px solid #e6e6e8; border-radius:8px; }
  #contract-detail-view .contract-payment-table td { display:flex; flex-direction:column; min-width:0; gap:4px; padding:7px 3px; border:0; white-space:normal; overflow-wrap:anywhere; }
  #contract-detail-view .contract-payment-table td:before { content:attr(data-label); color:#7e7e89; font-size:11px; font-weight:600; }
  #contract-detail-view .contract-payment-table td:last-child { grid-column:1 / -1; align-items:stretch; margin-top:4px; border-top:1px solid #f0f0f2; }
  #contract-detail-view .contract-payment-table td:last-child button { width:100%; min-height:44px; white-space:normal; }
  #contract-detail-view .contract-payment-table td[colspan="6"] { grid-column:1 / -1; display:block; }
  #contract-detail-view .contract-payment-table td[colspan="6"]:before { display:none; }
}
.store-picker-selected small { grid-column:1; }
.store-picker-change { grid-column:2; grid-row:2 / span 2; min-height:44px; }

/* Chapter 5: compact document rows; mobile expands vertically. */
.document-slot{border-top:1px solid #e2e2e4;padding:14px 0}.document-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.document-row>strong{min-width:140px}.document-row .p-field{margin:0}.document-file{border-top:1px solid #e9e9eb;padding:12px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.document-file>strong{overflow-wrap:anywhere}.document-file>small{color:#6b6b79}.document-file details{flex-basis:100%}.document-preview{display:block;max-width:100%;max-height:700px;object-fit:contain;margin-top:10px}.document-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.document-slot>details{margin-top:10px}.document-slot summary{cursor:pointer;color:#44444c}.document-editor{margin-top:24px}.document-editor input,.document-editor select{width:100%;min-width:0}.document-list input[type=file]{max-width:100%}
@media(max-width:640px){.document-fields{grid-template-columns:1fr}.document-row{align-items:flex-start;flex-direction:column}.document-file{align-items:flex-start}.document-file>strong,.document-file>small{flex-basis:100%}.document-row .p-field{width:100%}.p-tabs{flex-wrap:wrap}.document-editor{min-width:0}}
@media(max-width:760px){.p-workflow-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.p-workflow-nav button{min-height:48px;padding:8px 5px;font-size:11px}}
@media(max-width:380px){.p-workflow-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Chapter 7: dense schedule list on desktop, readable action cards on mobile. */
#schedule-view{background:white;border:1px solid #e6e6e8;padding:24px;border-radius:4px}#schedule-view .p-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 20px}#schedule-view .p-title h1{margin-top:0}.schedule-quick{display:flex;gap:4px;border-bottom:1px solid #e1e1e4;margin-bottom:14px}.schedule-quick button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:11px 16px}.schedule-quick .selected{color:#0f766e;border-bottom-color:#0f766e;font-weight:700}.schedule-table{min-width:880px}.schedule-table th,.schedule-table td{padding:11px 12px;font-size:13px;vertical-align:top}.schedule-table td small{display:block;color:#747483;margin-top:4px}.schedule-table tr.cancelled{color:#81818c;background:#f8f8f9}.schedule-status{display:inline-block;border:1px solid #d5d5d9;border-radius:12px;padding:3px 8px;font-size:11px}.schedule-status.scheduled{color:#0f766e;border-color:#73d9d0}.schedule-status.cancelled{color:#767684}.schedule-actions{display:flex;gap:6px;flex-wrap:wrap;min-width:210px}.schedule-actions button,.schedule-actions .button{padding:6px 9px;font-size:12px}.schedule-form{max-width:820px}.schedule-conflicts{border-left:3px solid #c98b22;background:#fff8e9;padding:12px 14px;margin:14px 0}.schedule-conflicts p{margin:5px 0 0;color:#665126;font-size:12px}
@media(max-width:600px){#schedule-view{padding:15px}#schedule-view .p-title{align-items:flex-start;flex-direction:column}.schedule-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:visible;border:0}.schedule-quick button{min-height:44px;border:1px solid #e5e5e7;border-radius:4px}.schedule-quick .selected{border-color:#0f766e;background:#f7f7f8}.schedule-table{min-width:0}.schedule-table thead{display:none}.schedule-table,.schedule-table tbody,.schedule-table tr,.schedule-table td{display:block;width:100%}.schedule-table tr{border:1px solid #e5e5e7;border-radius:4px;margin:12px 0;padding:9px 12px}.schedule-table td{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;border:0;padding:6px 0}.schedule-table td:before{content:attr(data-label);color:#7e7e89;font-size:11px}.schedule-table td[data-label="대상"] a{display:inline-flex;align-items:center;min-height:44px;color:#0f766e;font-weight:700}.schedule-actions{min-width:0}.schedule-actions button,.schedule-actions .button{min-height:44px}.schedule-form .p-field{width:100%}.schedule-target-lookup{grid-template-columns:minmax(0,1fr)}.schedule-target-lookup>button{width:100%;min-height:44px}}

/* AS: dense desktop lists and readable mobile rows. */
.as-form { display:grid; gap:14px; max-width:760px; margin:18px 0; }
.as-notes,.as-table td { white-space:pre-wrap; overflow-wrap:anywhere; }
.as-table { width:100%; min-width:0; table-layout:auto; }
.as-list-table { table-layout:fixed; }
.as-table th,.as-table td { padding:9px 10px; vertical-align:top; }
.as-list-table th:nth-child(1),.as-list-table td:nth-child(1) { width:7%; }
.as-list-table th:nth-child(2),.as-list-table td:nth-child(2) { width:15%; }
.as-list-table th:nth-child(3),.as-list-table td:nth-child(3) { width:24%; }
.as-list-table th:nth-child(4),.as-list-table td:nth-child(4) { width:13%; }
.as-list-table th:nth-child(5),.as-list-table td:nth-child(5) { width:14%; }
.as-list-table th:nth-child(6),.as-list-table td:nth-child(6) { width:14%; }
.as-list-table th:nth-child(7),.as-list-table td:nth-child(7) { width:13%; }
.as-list-table td:nth-child(4),.as-list-table td:nth-child(5),.as-list-table td:nth-child(6) { white-space:normal; }
.as-table .as-date-time { display:grid; gap:2px; min-width:0; line-height:1.3; }
.as-table .as-date-time span { display:block; white-space:nowrap; }
.as-list-table td:nth-child(7) { overflow-wrap:anywhere; }
#as-view h2 { margin-top:28px; }
@media(max-width:760px) {
 .as-table { min-width:0; }
 .as-table th:nth-child(n),.as-table td:nth-child(n) { width:100%; }
 .as-table thead { display:none; }
 .as-table,.as-table tbody,.as-table tr,.as-table td { display:block; width:100%; }
 .as-table tr { padding:12px; border-bottom:1px solid #e1e1e3; }
 .as-table td { display:grid; grid-template-columns:95px minmax(0,1fr); border:0; padding:6px 0; }
 .as-table td::before { content:attr(data-label); color:#6e6e7d; }
 #as-view .p-section table { min-width:0; }
 #as-view .p-section thead { display:none; }
 #as-view .p-section table,#as-view .p-section tbody,#as-view .p-section tr,#as-view .p-section td { display:block; width:100%; }
 #as-view .p-section tr { padding:12px; border-bottom:1px solid #e1e1e3; }
 #as-view .p-section td { display:grid; grid-template-columns:95px minmax(0,1fr); border:0; padding:6px 0; }
 #as-view .p-section td::before { content:attr(data-label); color:#6e6e7d; }
 .as-form { max-width:100%; }
 #as-view .p-inline-form { display:grid; min-width:0; }
 #as-view .actions { flex-wrap:wrap; }
 #as-view .as-form button[type=submit] { width:100%; min-height:48px; }
}
.pagination { display:flex; gap:10px; align-items:center; justify-content:flex-end; margin-top:14px; }

/* Phase A-C: compact ADMIN user management. */
#user-view{background:white;border:1px solid #e6e6e8;padding:24px;border-radius:4px}#user-view .p-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 20px}.user-create{border-bottom:1px solid #e5e5e7;margin-bottom:18px;padding-bottom:14px}.user-create>summary{font-weight:700}.user-create-form,.user-edit-form,.user-reset-form{padding:8px 0 14px}.user-table{min-width:820px}.user-table th,.user-table td{padding:11px 12px;font-size:13px;vertical-align:top}.user-actions{min-width:190px}.user-actions details+details{margin-top:5px}.user-reset-form{min-width:280px}.user-reset-form .p-field{margin:8px 0}
@media(max-width:600px){#user-view{padding:15px}.user-table{min-width:0}.user-table thead{display:none}.user-table,.user-table tbody,.user-table tr,.user-table td{display:block;width:100%}.user-table tr{border:1px solid #e5e5e7;border-radius:4px;margin:12px 0;padding:9px 12px}.user-table td{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;border:0;padding:6px 0}.user-table td:before{content:attr(data-label);color:#7e7e89;font-size:11px}.user-actions,.user-reset-form{min-width:0}.user-actions details{grid-column:1/-1}.user-actions button{min-height:40px}}

#dashboard-view{max-width:1280px;margin:0 auto}.dash-title{margin:12px 0 14px}.dash-title h1{margin:4px 0}.dash-panel{background:#fff;border:1px solid #e6e6e8;border-radius:5px;padding:16px;margin:12px 0}.dash-panel h2{font-size:18px;margin:0 0 8px}.dash-panel>.help{margin:0 0 12px}.dash-today-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:720px}.dash-status-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dash-card{min-height:76px;text-align:left;background:#fafafa;border:1px solid #e5e5e7;border-radius:4px;padding:12px 16px;display:flex;flex-direction:column;justify-content:center;gap:6px;cursor:pointer}.dash-card:hover,.dash-card:focus-visible{border-color:#39746f;background:#f7f7f8}.dash-card span{font-size:13px;color:#5e5e69}.dash-card strong{font-size:24px;color:#2b2b30}.dash-detail{scroll-margin-top:16px}.dash-detail table{min-width:560px}.dash-calendar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dash-calendar-head h2{margin-bottom:4px}.dash-calendar-head p{margin-top:0}.dash-calendar-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dash-calendar-controls button{min-height:36px}.dash-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.dash-calendar-weekday{text-align:center;padding:8px;color:#5e5e69;font-size:12px;font-weight:700}.dash-calendar-day{min-height:76px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:7px;background:#fafafa;border:1px solid #e5e5e7;border-radius:4px;text-align:left;color:#33333a}.dash-calendar-day:hover,.dash-calendar-day:focus-visible{border-color:#39746f;background:#f7f7f8}.dash-calendar-day strong{font-size:15px;color:#33333a}.dash-calendar-day .dash-calendar-count{font-size:11px;line-height:1.2;white-space:nowrap;color:#20504c;font-weight:600}.dash-calendar-empty{min-height:1px}.dash-trend-legend{display:flex;gap:18px;margin:4px 0 2px;color:#5e5e69;font-size:12px}.dash-trend-legend span:before{content:"";display:inline-block;width:15px;height:2px;vertical-align:middle;margin-right:6px;background:#215a55}.dash-trend-legend .end:before{background:#868691}.dash-trend svg{display:block;width:100%;height:auto;max-height:205px;overflow:visible}.dash-trend-gridline{stroke:#ececee;stroke-width:1}.dash-trend-install,.dash-trend-end{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.dash-trend-install{stroke:#215a55}.dash-trend-end{stroke:#868691}.dash-trend-install-point{fill:#215a55}.dash-trend-end-point{fill:#868691}.dash-trend-value{font-size:10px;font-weight:500;pointer-events:none}.dash-trend-value.above{fill:#215a55}.dash-trend-value.below{fill:#868691}.dash-trend-month{fill:#727280;font-size:11px}
@media(max-width:760px){.dash-panel{padding:13px}.dash-calendar-head{flex-direction:column}.dash-calendar-controls{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.dash-calendar-controls strong{grid-column:1/-1;grid-row:1;text-align:center}.dash-calendar-controls button{padding:5px}.dash-calendar-controls button:nth-of-type(1){grid-row:2;grid-column:1}.dash-calendar-controls button:nth-of-type(2){grid-row:2;grid-column:2}.dash-calendar-controls button:nth-of-type(3){grid-row:2;grid-column:3}.dash-calendar-day{min-height:68px;padding:5px 4px}.dash-calendar-day .dash-calendar-count{font-size:10px;white-space:normal;line-height:1.1}.dash-calendar-grid{gap:3px}.dash-trend svg{min-height:130px}}
@media(max-width:520px){.dash-status-cards{grid-template-columns:1fr}.dash-today-cards{gap:8px}.dash-card{padding:10px}.dash-card span{font-size:12px}.dash-card strong{font-size:21px}.dash-calendar-day{min-height:62px}.dash-calendar-weekday{padding:5px 2px;font-size:11px}}

/* Keep the date anchored independently from the variable-width schedule content. */
.dash-calendar-day{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:min-content minmax(0,1fr);justify-content:stretch;align-content:start;justify-items:stretch;gap:4px;}
.dash-calendar-date{grid-row:1;align-self:start;justify-self:start;line-height:1.25;}
.dash-calendar-events{grid-row:2;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;max-width:100%;}
.dash-calendar-events>.dash-calendar-count{line-height:1.2;overflow-wrap:anywhere;}
.dash-today>.help,.dash-calendar-head .help,.dash-operations>.help,.dash-trend>.help{margin-bottom:0;}
.dash-office-weeks-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dash-office-week{min-width:0}
.dash-office-week h3{margin:0 0 8px;font-size:13px;font-weight:600;color:#5e5e69}
.dash-office-week-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dash-office-week .dash-card{min-width:0}
.p-workflow-nav{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));align-items:stretch}
.p-workflow-next{grid-column:1/-1;justify-self:start}
.p-workflow-actions{justify-content:flex-end;margin:0 0 18px}
.p-schedule-fields{max-width:620px}
@media(max-width:760px){.dash-office-weeks-grid{grid-template-columns:1fr}.p-workflow-nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.dash-office-week-cards{grid-template-columns:1fr}}
@media(max-width:380px){.p-workflow-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ai-query-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;}
.ai-query-field{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:12px;min-width:0;margin:0;font-size:14px;font-weight:600;line-height:1.4;color:#5e5e69;}
.ai-query-input{width:100%;min-width:0;height:44px;margin:0;padding:10px 12px;font:inherit;font-size:14px;line-height:1.4;font-weight:400;vertical-align:middle;}
.ai-query-form>button{min-height:44px;}
.ai-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;}
.ai-suggestions>p{flex-basis:100%;margin:0;color:#5e5e69;font-size:13px;font-weight:600;}
.ai-suggestion{border:1px solid #d4d4d8;background:#fafafa;border-radius:18px;padding:8px 12px;font-size:13px;line-height:1.35;text-align:left;cursor:pointer;}
.ai-suggestion:hover,.ai-suggestion:focus-visible{border-color:#1d7d75;background:#f7f7f7;}
.ai-result{margin-top:14px;}
.ai-result-list{display:grid;gap:10px;margin-top:12px;}
.ai-result-card{border:1px solid #e6e6e8;border-radius:8px;padding:12px 14px;min-width:0;overflow-wrap:anywhere;}
.ai-result-card p{margin:5px 0;color:#5e5e69;font-size:13px;}
.ai-result-card a{display:inline-block;margin-top:6px;}
.ai-result-count,.ai-result-basis{color:#5e5e69;font-size:13px;}
#search-form{flex-wrap:wrap;}
#search-form>label{min-width:150px;}
#search-form .search{flex:1 1 240px;}
#search-form>button{align-self:flex-end;min-height:42px;}
@media(max-width:600px){#search-form>label{flex:1 1 145px;min-width:0}.ai-query-form{grid-template-columns:minmax(0,1fr) auto;gap:8px}.ai-query-field{gap:8px}.ai-query-form>button{min-height:44px;padding:8px 12px}}

/* Visual review: shared surfaces, product choices and readable list cards. */
:root { --ui-radius:8px; --ui-border:#e6e6e8; --ui-space:20px; }
#sales-view,#as-view { background:#fff; border:1px solid var(--ui-border); border-radius:var(--ui-radius); padding:24px; }
#sales-view h1,#as-view h1 { margin-top:0; }
#sales-view .p-title { margin-bottom:20px; }
#sales-view .p-title .help { margin:6px 0 0; }
:is(#sales-view,#as-view,#schedule-view,#user-view) .empty { padding:32px 16px; }
:is(#sales-view,#as-view,#schedule-view,#user-view) th { font-weight:600; color:#5e5e69; }
:is(#sales-view,#as-view) .actions { margin:16px 0; }
:is(#sales-view,#as-view,#schedule-view,#user-view) .p-toolbar input { max-width:100%; }
.sales-author { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:12px 14px; background:#f8f8f9; border-radius:var(--ui-radius); margin:0 0 20px; }
.sales-author span { color:#6f6f7d; font-size:12px; }
.sales-optional { margin-top:20px; }
.p-additional-products { align-items:start; }
.p-additional-product:has(input[type=checkbox]:checked) { border-color:#71d7ce; background:#fbfbfc; }
.p-additional-product-choice { min-height:24px; font-size:14px; }
.p-additional-product-choice input { width:18px; height:18px; accent-color:#28847c; flex-shrink:0; }
.p-additional-component { grid-template-columns:repeat(2,minmax(0,1fr)); }
.p-additional-current-equipment { gap:8px; }
.p-current-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:20px; }
.p-current-summary>.p-section { margin:8px 0 0; padding:12px 0; border:0; min-width:0; }
.p-current-summary .p-facts { grid-template-columns:90px minmax(0,1fr); }
.p-additional-equipment-item:has(form) { flex-wrap:wrap; }
.p-additional-change-form { flex-basis:100%; min-width:0; }
.p-additional-completion { justify-content:flex-end; gap:10px; }
#project-view[data-project-type=ADDITIONAL_INSTALL] textarea[aria-label="비고"] { width:100%; }
.ui-disclosure>summary { padding:12px 0; cursor:pointer; font-weight:600; color:#565661; }
.ui-disclosure[open]>summary { margin-bottom:12px; }
#detail-view>.ui-disclosure { padding:12px 24px; }
#detail-view .fields,#contract-detail-view .fields { grid-template-columns:130px minmax(0,1fr) 130px minmax(0,1fr); column-gap:18px; }
#detail-view .fields dt,#detail-view .fields dd,#contract-detail-view .fields dt,#contract-detail-view .fields dd { padding:12px 0; }
#detail-view .detail .actions,#contract-detail-view .detail .actions { justify-content:flex-start; }
#detail-view #delete-button { margin-left:auto; }
#detail-view .contract-card,#detail-view .business-card { padding:16px; }
#detail-view .empty { padding:24px 12px; }
#contract-detail-view .contract-payment-table td { padding:12px; }
#contract-detail-view .contract-payment-table th { padding:12px; }
#contract-detail-view .contract-payment-table { min-width:0; }
#contract-detail-view>.ui-disclosure { padding:12px 24px; }
.p-bankbook-upload>h2 { margin-bottom:8px; }
.p-bankbook-upload .document-editor { margin-top:16px; }
.p-bankbook-upload .document-editor>h2 { font-size:15px; }
.p-bankbook-upload .document-row>strong { min-width:0; }
.p-bankbook-upload .document-slot { padding-top:10px; }
.p-bankbook-upload .document-fields { gap:12px; }
.p-bankbook-upload input[type=file] { width:100%; }
.as-table th { white-space:normal; word-break:keep-all; }
.as-table td { white-space:normal; }
.as-table:not(.as-list-table) { table-layout:fixed; }
.as-table:not(.as-list-table) td { overflow-wrap:anywhere; }
.as-list-table td .button { white-space:normal; max-width:100%; padding:4px 0; border:0; color:#0f766e; background:transparent; text-align:left; justify-content:flex-start; }
.as-list-table td:nth-child(3) .button { margin-right:8px; }
.as-date-time { font-variant-numeric:tabular-nums; }
.as-form { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:900px; }
.as-form .p-field:has(textarea),.as-form>.help,.as-form>button { grid-column:1/-1; }
.sales-table { min-width:0; table-layout:fixed; }
.sales-table th,.sales-table td { padding:12px 10px; font-size:13px; white-space:normal; }
.sales-table th:nth-child(1) { width:7%; }
.sales-table th:nth-child(2) { width:18%; }
.sales-table th:nth-child(3) { width:9%; }
.sales-table th:nth-child(4) { width:12%; }
.sales-table th:nth-child(5) { width:14%; }
.sales-table th:nth-child(6) { width:15%; }
.sales-table th:nth-child(7) { width:12%; }
.sales-table th:nth-child(8) { width:13%; }
.p-project-table { table-layout:fixed; }
.p-project-table th:nth-child(1) { width:7%; }
.p-project-table th:nth-child(2) { width:20%; }
.p-project-table th:nth-child(3) { width:15%; }
.p-project-table th:nth-child(4) { width:18%; }
.p-project-table th:nth-child(5) { width:15%; }
.p-project-table th:nth-child(6) { width:14%; }
.p-project-table th:nth-child(7) { width:11%; }
#project-view .p-project-table th { white-space:normal; }
.dash-today-cards { max-width:none; }
.dash-panel { border-radius:var(--ui-radius); }
.dash-card { text-align:left; align-items:flex-start; }
.dash-card strong { font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.dash-card-static { cursor:default; }
.dash-card-static:hover { border-color:#e5e5e7; background:#fafafa; }
.dash-trend-value { font-size:12px; }
.dash-trend-month { font-size:12px; }
@media(min-width:1200px) {
 .dash-management { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); grid-template-areas:"today operations" "calendar trend" "sales as" "people people"; gap:16px; align-items:start; }
 .dash-management>.dash-panel { margin:0; min-width:0; }
 .dash-management>.dash-today { grid-area:today; }
 .dash-management>.dash-operations { grid-area:operations; }
 .dash-management>.dash-calendar { grid-area:calendar; }
 .dash-management>.dash-trend { grid-area:trend; }
 .dash-management>.dash-sales { grid-area:sales; }
 .dash-management>.dash-as { grid-area:as; }
 .dash-management>.dash-people { grid-area:people; }
 .dash-management>.dash-detail { grid-column:1/-1; }
 .dash-management .dash-card { padding:12px; }
 .dash-management .dash-card strong { font-size:21px; }
 .dash-management .dash-calendar-head { flex-wrap:wrap; gap:8px; }
 .dash-management .dash-calendar-day { min-height:62px; }
}
@media(max-width:1000px) {
 .p-current-summary { grid-template-columns:1fr; gap:0; }
 #detail-view .fields,#contract-detail-view .fields { grid-template-columns:115px minmax(0,1fr); }
 .p-additional-products { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:1100px) {
 /* Preserve every field and the navigation link when a table becomes a card. */
 :is(#project-view .p-project-table,.sales-table,.as-table,.schedule-table,.user-table) { min-width:0; width:100%; display:block; }
 :is(#project-view .p-project-table,.sales-table,.as-table,.schedule-table,.user-table) thead { display:none; }
 :is(#project-view .p-project-table,.sales-table,.as-table,.schedule-table,.user-table) tbody { display:grid; gap:12px; }
 :is(#project-view .p-project-table,.sales-table,.as-table,.schedule-table,.user-table) tr { display:block; width:100%; padding:12px; border:1px solid var(--ui-border); border-radius:var(--ui-radius); }
 :is(#project-view .p-project-table,.sales-table,.as-table,.schedule-table,.user-table) td:nth-child(n) { display:grid; grid-template-columns:100px minmax(0,1fr); gap:12px; width:100%; min-width:0; border:0; padding:6px 0; font-size:13px; white-space:normal; }
 :is(#project-view .p-project-table,.sales-table,.as-table,.schedule-table,.user-table) td:before { content:attr(data-label); color:#6f6f7d; font-size:12px; }
 .schedule-actions,.user-actions,.user-reset-form { min-width:0; }
 .p-project-table td:nth-child(2) a,.sales-table td:last-child a { display:inline-flex; align-items:center; min-height:36px; font-weight:600; }
 #project-view .p-mobile-type { display:block; }
}
@media(max-width:760px) {
 #sales-view,#as-view { padding:16px; }
 .as-form { grid-template-columns:minmax(0,1fr); }
 .p-additional-change-form { grid-template-columns:minmax(0,1fr); }
 .sales-author { align-items:flex-start; }
 :is(#sales-view,#as-view,#schedule-view,#user-view) .p-toolbar { gap:12px; }
 :is(#sales-view,#as-view,#schedule-view,#user-view) .p-toolbar>.p-field { flex:1 1 130px; }
 .p-bankbook-upload .document-row { gap:8px; }
 #detail-view>.ui-disclosure,#contract-detail-view>.ui-disclosure { padding:10px 16px; }
}
@media(max-width:520px) {
 .p-additional-component { grid-template-columns:minmax(0,1fr); }
 .p-additional-completion { justify-content:stretch; }
 .p-additional-completion>button { flex:1; }
 .dash-office-week-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .dash-trend svg { min-height:170px; }
}

/* Technician PWA shell: isolated from the desktop workspace layout. */
#workspace.technician-workspace { margin:0; min-height:100dvh; width:100%; }
#workspace.technician-workspace>main {
  width:100%; max-width:none; min-width:0; margin:0; padding:18px 16px calc(100px + env(safe-area-inset-bottom));
}
#workspace.technician-workspace #dashboard-view { width:100%; max-width:560px; min-width:0; margin:0 auto; }
.tech-app,.tech-content { width:100%; min-width:0; }
.tech-eyebrow { margin:0 0 7px; color:#6f6f7d; font-size:13px; font-weight:650; }
.tech-heading { margin:0; color:#18181b; font-size:28px; line-height:1.2; letter-spacing:-.035em; }
.tech-intro { margin:10px 0 0; color:#5f5f6b; font-size:15px; line-height:1.5; }
.tech-date-label { margin:0 0 14px; color:#18181b; font-size:22px; font-weight:750; line-height:1.35; }
.tech-today-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,.8fr); gap:6px; }
.tech-today-actions>.tech-secondary-action { display:flex; min-width:0; align-items:center; justify-content:center; padding:0 6px; font-size:13px; text-align:center; white-space:nowrap; }
.tech-today-list { margin-top:20px; }
.tech-list-heading { display:flex; align-items:center; gap:10px; min-height:42px; margin-bottom:12px; }
.tech-list-heading h2 { flex:1; margin:0; color:#18181b; font-size:18px; }
.tech-count { color:#6f6f7d; font-size:13px; font-variant-numeric:tabular-nums; }
.tech-refresh,.tech-secondary-action {
  min-height:44px; padding:0 14px; border:1px solid #e2e2e5; border-radius:10px; background:#fff; color:#35353b;
  font:inherit; font-size:14px; font-weight:650; cursor:pointer;
}
.tech-refresh:disabled { opacity:.55; cursor:wait; }
.tech-emergency-as,.tech-emergency-install { text-decoration:none; }
.tech-work-cards { display:grid; gap:12px; }
.tech-work-card,.tech-empty-card,.tech-profile-card {
  display:flex; min-width:0; flex-direction:column; gap:9px; padding:16px; border:1px solid #e2e2e5;
  border-radius:14px; background:#fff; color:inherit; text-decoration:none; box-shadow:0 2px 7px rgb(19 36 58 / 4%);
}
.tech-work-card { min-height:132px; transition:border-color .15s ease,transform .15s ease; }
.tech-work-card:active { transform:scale(.99); }
.tech-work-card.install { border-left:4px solid #1c6d66; }
.tech-work-card.as { border-left:4px solid #d97626; }
.tech-work-card.completed { border-left-color:#b2b2b8; background:#fafafa; }
.tech-work-top { display:flex; align-items:center; gap:9px; min-height:26px; }
.tech-type-badge { display:inline-flex; min-height:26px; align-items:center; padding:3px 9px; border-radius:999px; font-size:12px; font-weight:750; }
.tech-type-badge.install { background:#e2f8f6; color:#0f3f3b; }
.tech-type-badge.as { background:#fff1e5; color:#99430e; }
.tech-work-time { color:#18181b; font-size:17px; font-weight:750; font-variant-numeric:tabular-nums; }
.tech-urgent-badge { padding:4px 7px; border-radius:999px; background:#fff0ed; color:#bd382a; font-size:11px; font-weight:750; }
.tech-work-status { margin-left:auto; padding:4px 9px; border-radius:999px; font-size:12px; font-weight:700; }
.tech-work-card.scheduled .tech-work-status { background:#e2f8f6; color:#0f3f3b; }
.tech-work-card.in-progress .tech-work-status { background:#fff1e5; color:#99430e; }
.tech-work-card.completed .tech-work-status { background:#e7f3eb; color:#236846; }
.tech-work-card.completed .tech-work-time { color:#5f5f6b; }
.tech-work-store { overflow-wrap:anywhere; color:#2b2b30; font-size:17px; line-height:1.35; }
.tech-work-address,.tech-work-summary { display:-webkit-box; overflow:hidden; color:#5f5f6b; font-size:14px; line-height:1.45; overflow-wrap:anywhere; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.tech-work-visit { color:#45454d; font-size:13px; font-weight:650; }
.tech-empty-card { min-height:140px; align-items:center; justify-content:center; text-align:center; }
.tech-empty-card strong { color:#35353b; font-size:16px; }
.tech-empty-card p { margin:0; color:#6f6f7d; font-size:14px; line-height:1.5; }
.tech-empty-mark { display:grid; width:38px; height:38px; place-items:center; border-radius:50%; background:#edf7f1; color:#1c8151; font-size:20px; }
.tech-empty-card.error { border-color:#f1c9c5; background:#fff9f8; }
.tech-loading { margin:0; padding:20px 8px; color:#6f6f7d; text-align:center; }
.tech-calendar { min-width:0; margin-top:0; padding:14px 10px 16px; border:1px solid #e2e2e5; border-radius:14px; background:#fff; }
.tech-calendar-head { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:6px; margin-bottom:12px; }
.tech-calendar-month { margin:0; color:#2b2b30; font-size:18px; text-align:center; }
.tech-calendar-arrow { width:44px; height:44px; border:1px solid #e2e2e5; border-radius:10px; background:#fff; color:#35353b; font:inherit; font-size:27px; cursor:pointer; }
.tech-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; min-width:0; }
.tech-calendar-weekday { padding:4px 0 7px; color:#6f6f7d; font-size:12px; font-weight:650; text-align:center; }
.tech-calendar-day { display:flex; min-width:0; min-height:76px; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:4px 2px; border:1px solid transparent; border-radius:9px; background:#fff; color:#3b3b42; font:inherit; cursor:pointer; }
.tech-calendar-day.today { border-color:#1c6d66; }
.tech-calendar-day.selected { background:#124e49; color:#fff; }
.tech-calendar-day.selected.today { border-color:#0a2b28; }
.tech-calendar-number { font-size:15px; font-weight:700; line-height:1; }
.tech-calendar-count { min-width:16px; height:16px; padding:1px 3px; border-radius:8px; background:#e2f8f6; color:#0f3f3b; font-size:10px; font-weight:750; line-height:14px; text-align:center; }
.tech-calendar-day.selected .tech-calendar-count { background:#fff; color:#124e49; }
.tech-calendar-grid>.tech-loading,.tech-calendar-grid>.tech-inline-warning { grid-column:1/-1; }
.tech-schedule-list { margin-top:24px; }
.tech-schedule-date { margin:0 0 12px; color:#2b2b30; font-size:18px; }
.tech-profile-card { margin-top:20px; }
.tech-profile-card>strong { font-size:18px; color:#2b2b30; }
.tech-profile-card>span { color:#6f6f7d; font-size:14px; }
.tech-profile-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:8px; }
.tech-secondary-action { min-height:48px; }
.tech-bottom-nav {
  position:fixed; z-index:30; right:0; bottom:0; left:0; display:grid; width:min(100%,560px); grid-template-columns:repeat(4,minmax(0,1fr));
  margin:0 auto; padding:7px 8px calc(7px + env(safe-area-inset-bottom)); border:1px solid #e7e7ea; border-bottom:0;
  border-radius:16px 16px 0 0; background:rgb(255 255 255 / 97%); box-shadow:0 -5px 18px rgb(19 36 58 / 7%); backdrop-filter:blur(12px);
}
.tech-tab { display:flex; min-width:0; min-height:54px; flex-direction:column; align-items:center; justify-content:center; gap:3px; border-radius:10px; color:#6f6f7e; font-size:12px; font-weight:650; text-decoration:none; }
.tech-tab.active { background:#f6f6f6; color:#124e49; }
.tech-tab-icon { font-size:19px; line-height:1; }
@media(max-width:380px) {
  #workspace.technician-workspace>main { padding-right:12px; padding-left:12px; }
  .tech-work-card,.tech-empty-card,.tech-profile-card { padding:14px; }
  .tech-heading { font-size:25px; }
  .tech-date-label { font-size:20px; }
}
.tech-back-link { display:inline-flex; min-height:44px; align-items:center; margin:0 0 14px; color:#0f766e; font-size:15px; font-weight:700; text-decoration:none; }
.tech-installation-summary { display:grid; gap:12px; }
.tech-installation-meta { color:#5f5f6b; font-size:14px; font-weight:700; }
.tech-installation-summary>.tech-heading { margin:2px 0 0; overflow-wrap:anywhere; }
.tech-info-card,.tech-report-card { min-width:0; padding:16px; border:1px solid #e2e2e5; border-radius:14px; background:#fff; box-shadow:0 2px 7px rgb(19 36 58 / 4%); }
.tech-info-card h2,.tech-report-card h2 { margin:0 0 12px; color:#2b2b30; font-size:17px; }
.tech-info-value,.tech-office-note p { margin:0; color:#45454d; font-size:15px; line-height:1.55; overflow-wrap:anywhere; }
.tech-phone-link { display:inline-flex; min-height:44px; align-items:center; margin-top:6px; color:#124e49; font-size:16px; font-weight:750; overflow-wrap:anywhere; }
.tech-muted { margin:0; color:#6f6f7d; font-size:14px; line-height:1.5; }
.tech-reference-grid { display:flex; flex-wrap:wrap; gap:8px; }
.tech-reference-chip { max-width:100%; padding:8px 10px; border-radius:9px; background:#f5f5f5; color:#45454d; font-size:14px; overflow-wrap:anywhere; }
.tech-planned-list,.tech-notes-list { display:grid; gap:9px; }
.tech-planned-card,.tech-note-item { display:grid; min-width:0; gap:5px; padding:12px; border-radius:10px; background:#f8f8f9; color:#45454d; font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
.tech-planned-card strong { color:#2b2b30; font-size:14px; }
.tech-note-item p { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.tech-note-item small { color:#7e7e89; font-size:12px; }
.tech-report-card { display:grid; gap:12px; margin-top:14px; margin-bottom:18px; }
.tech-report-card>.tech-eyebrow { margin:0; }
.tech-report-card>h2 { margin:0; font-size:20px; }
.tech-install-equipment { display:grid; gap:11px; }
.tech-install-equipment-row { display:grid; min-width:0; grid-template-columns:1fr 1fr; gap:10px; padding:13px; border:1px solid #e7e7ea; border-radius:12px; background:#fcfcfd; }
.tech-install-equipment-row h3 { grid-column:1/-1; margin:0; color:#35353b; font-size:15px; overflow-wrap:anywhere; }
.tech-field { display:grid; min-width:0; gap:6px; color:#5f5f6b; font-size:13px; font-weight:650; }
.tech-field>span { overflow-wrap:anywhere; }
.tech-field input,.tech-field select,.tech-field textarea { width:100%; min-width:0; min-height:46px; padding:10px 11px; border:1px solid #d7d7db; border-radius:9px; background:#fff; color:#2b2b30; font:inherit; font-size:15px; }
.tech-field textarea { min-height:92px; resize:vertical; line-height:1.45; }
.tech-urgent-as-form { display:grid; gap:15px; margin-top:20px; padding-bottom:20px; }
.tech-urgent-as-store .store-picker { min-width:0; }
.tech-urgent-as-submit { width:100%; justify-self:stretch; min-height:52px; background:#124e49; color:#fff; border-color:#124e49; font-size:16px; }
.tech-urgent-as-submit:disabled { opacity:.6; }
.tech-report-fields { display:grid; gap:11px; }
.tech-remove-equipment { grid-column:1/-1; min-height:42px; border:1px solid #e1b5b1; border-radius:9px; background:#fff; color:#99443c; font:inherit; font-size:14px; font-weight:700; }
.tech-secondary-action { justify-self:start; }
.tech-inline-warning { margin:0; padding:11px 12px; border-radius:9px; background:#fff5e9; color:#8a4b0a; font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
.tech-report-completed,.tech-success-note { margin:0; color:#1d7148; font-size:14px; font-weight:700; line-height:1.5; }
.tech-installation-dock { position:sticky; bottom:calc(78px + env(safe-area-inset-bottom)); z-index:5; padding:9px 0 5px; background:linear-gradient(180deg,transparent,#fff 16%); }
.tech-submit-installation { width:100%; min-height:56px; border:0; border-radius:12px; background:#124e49; color:#fff; font:inherit; font-size:17px; font-weight:750; box-shadow:0 5px 14px rgb(23 101 189 / 22%); }
.tech-submit-installation:disabled { opacity:.6; }
@media(max-width:360px) { .tech-install-equipment-row { grid-template-columns:1fr; } }
.tech-as-page { display:grid; gap:12px; }
.tech-as-page>.tech-back-link { margin-bottom:0; }
.tech-as-header { display:grid; min-width:0; gap:5px; }
.tech-as-header .tech-heading { overflow-wrap:anywhere; }
.tech-as-symptom { display:block; margin-bottom:7px; color:#2b2b30; font-size:16px; line-height:1.4; overflow-wrap:anywhere; }
.tech-as-office-note { margin:12px 0 0; padding:10px 12px; border-radius:9px; background:#f5f5f5; color:#45454d; font-size:14px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; }
.tech-as-page .tech-planned-card .tech-secondary-action { justify-self:start; margin-top:4px; }
.tech-as-report-form,.tech-as-replacement,.tech-as-revisit-fields { display:grid; min-width:0; gap:11px; }
.tech-as-replacement { margin-top:10px; padding-top:12px; border-top:1px solid #e2e2e5; }
.tech-as-revisit-fields { padding:12px; border-radius:10px; background:#f8f8f9; }
.tech-as-report-form [hidden],.tech-as-revisit-fields[hidden] { display:none; }
.tech-as-action,.tech-as-complete { width:100%; min-height:52px; border:0; border-radius:11px; background:#124e49; color:#fff; font:inherit; font-size:16px; font-weight:750; }
.tech-as-complete { margin-top:2px; background:#16734b; }
.tech-as-action:disabled,.tech-as-complete:disabled { opacity:.55; }
.tech-as-history { min-width:0; padding:14px 16px; border:1px solid #e2e2e5; border-radius:12px; background:#fff; }
.tech-as-history summary { min-height:38px; color:#45454d; font-size:14px; font-weight:700; cursor:pointer; }
.tech-as-history .tech-note-item { margin-top:8px; white-space:pre-wrap; }
.tech-photo-body,.tech-photo-form { display:grid; min-width:0; gap:11px; }
.tech-photo-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.tech-photo-actions button { width:100%; }
.tech-photo-form input[type=file] { width:100%; min-width:0; padding:10px; border:1px solid #b8d9d7; border-radius:10px; background:#fafafa; font:inherit; font-size:14px; }
.tech-photo-progress { min-height:20px; margin:0; color:#45454d; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.tech-photo-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tech-photo-item { min-width:0; border:1px solid #e2e2e5; border-radius:10px; overflow:hidden; }
.tech-photo-item[open] { grid-column:1/-1; }
.tech-photo-item summary { display:grid; gap:5px; padding:6px; color:#45454d; font-size:13px; }
.tech-photo-item summary img { width:100%; height:110px; object-fit:cover; border-radius:6px; }
.tech-photo-item[open] summary img { display:none; }
.tech-photo-item summary span { padding:0 3px 3px; overflow-wrap:anywhere; }
.tech-photo-expanded { display:block; width:100%; max-height:70vh; object-fit:contain; padding:8px; }
.staff-leave-panel { min-width:0; margin:20px 0; padding:16px; border:1px solid #e2e2e5; border-radius:12px; background:#fff; }
.staff-leave-heading,.staff-leave-navigation,.staff-leave-controls,.staff-leave-row,.staff-priority-row { display:flex; align-items:center; gap:10px; }
.staff-leave-heading { justify-content:space-between; flex-wrap:wrap; }
.staff-leave-heading h2 { margin:0; font-size:18px; }
.staff-leave-navigation button { min-width:36px; min-height:36px; border:1px solid #e2e2e5; border-radius:8px; background:#fff; cursor:pointer; }
.staff-leave-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; margin-top:14px; }
.staff-leave-weekday { color:#5f5f6b; font-size:12px; text-align:center; }
.staff-leave-day { min-width:0; min-height:84px; padding:5px; border:1px solid #e6e6e8; border-radius:7px; }
.staff-leave-day.clickable { cursor:pointer; }
.staff-leave-day.clickable:hover { background:#f4f7ff; }
.staff-leave-day strong { display:block; margin-bottom:4px; font-size:13px; }
.staff-leave-name { display:block; color:#7a3f1b; font-size:12px; line-height:1.35; overflow-wrap:anywhere; }
.staff-leave-work-count { display:block; color:#183a37; font-size:11px; line-height:1.3; }
.staff-leave-details { margin-top:20px; }
.staff-leave-controls,.staff-leave-row,.staff-priority-row { flex-wrap:wrap; margin:8px 0; }
.staff-leave-row { padding:8px 0; border-bottom:1px solid #f0f0f1; }
.staff-leave-row>span,.staff-priority-row>span { min-width:170px; }
.staff-leave-controls input,.staff-leave-row input,.staff-priority-row input { min-height:38px; padding:6px; }
.staff-leave-controls button,.staff-leave-row button,.staff-priority-row button { min-height:38px; padding:6px 12px; }
.staff-priority-panel { margin-top:24px; }
.staff-priority-row input { width:88px; }
@media (max-width:600px) {
  .staff-leave-panel { padding:10px; }
  .staff-leave-grid { gap:2px; }
  .staff-leave-day { min-height:68px; padding:3px; }
  .staff-leave-name { font-size:11px; }
  .staff-leave-work-count { font-size:10px; }
}
.dash-calendar-events>.dash-calendar-leave { color:#7a3f1b; font-size:12px; line-height:1.25; overflow-wrap:anywhere; }
.tech-calendar-leave { max-width:100%; color:#7a3f1b; font-size:10px; line-height:1.2; overflow-wrap:anywhere; text-align:center; }
.tech-calendar-day.selected .tech-calendar-leave { color:#fff; }
.tech-leave-link { text-decoration:none; }
.dash-anomaly-feed { border-left:4px solid #d58a24; }
.dash-anomaly-feed h2 { margin-bottom:10px; }
.dash-anomaly-feed ul { display:grid; gap:7px; margin:0 0 12px; padding-left:20px; }
.dash-anomaly-feed li,.dash-anomaly-feed a { min-width:0; overflow-wrap:anywhere; }
.dash-anomaly-empty { margin:0 0 10px; color:#5f5f6b; }
.dash-anomaly-more { display:inline-block; font-weight:700; }
.anomaly-heading { margin-bottom:18px; }
.anomaly-heading h1 { margin:2px 0 6px; }
.anomaly-heading .subtitle { max-width:760px; }
.anomaly-filters { display:grid; grid-template-columns:minmax(150px,220px) minmax(130px,180px) minmax(220px,1fr) auto; gap:12px; align-items:end; margin-bottom:18px; padding:16px; border:1px solid #e2e2e5; border-radius:12px; background:#fff; }
.anomaly-filter { display:grid; min-width:0; gap:6px; color:#5f5f6b; font-size:13px; font-weight:700; }
.anomaly-filter select,.anomaly-filter input { width:100%; min-width:0; min-height:42px; }
.anomaly-filters button { min-height:42px; }
.anomaly-summary { margin:0 0 12px; color:#45454d; font-weight:700; }
.anomaly-list { display:grid; gap:12px; }
.anomaly-item { display:grid; gap:10px; padding:16px 18px; border:1px solid #e2e2e5; border-radius:12px; background:#fff; }
.anomaly-item-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.anomaly-item-head>div { display:grid; min-width:0; gap:4px; }
.anomaly-item-head strong { overflow-wrap:anywhere; }
.anomaly-type { color:#5f5f6b; font-size:12px; font-weight:700; }
.anomaly-severity { flex:0 0 auto; padding:4px 8px; border-radius:999px; background:#fff4df; color:#8a5500; font-size:12px; font-weight:750; }
.anomaly-severity.critical { background:#fde8e7; color:#a5352d; }
.anomaly-description { margin:0; line-height:1.5; overflow-wrap:anywhere; }
.anomaly-meta { display:flex; flex-wrap:wrap; gap:6px 14px; color:#6c6c79; font-size:13px; }
.anomaly-target { justify-self:start; }
@media(max-width:760px) { .anomaly-filters { grid-template-columns:1fr; } .anomaly-filters button { width:100%; } }

/* Page header: title on the left, every action grouped on the right (space-between spread 3+ items apart). */
.p-title > :first-child { margin-right:auto; }
.p-title, .page-title { flex-wrap:wrap; }
.p-title > .button, .p-title > button, .page-title > .button, .page-title > button { white-space:nowrap; }
/* Technician home quick actions fill their grid columns (a later justify-self:start left uneven gaps). */
.tech-today-actions > .tech-secondary-action { justify-self:stretch; }

/* Data import (admin) */
.data-import-panel{margin-bottom:16px;}
.data-import-field{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr);align-items:center;gap:10px;margin:8px 0;}
.data-import-field>span{font-weight:600;font-size:14px;}
.data-import-check{display:flex;align-items:center;gap:8px;margin:12px 0;}
.data-import-summary{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;}
.data-import-statuses{font-weight:600;}
#import-preview-button{margin:4px 0 20px;}
@media (max-width:640px){.data-import-field{grid-template-columns:minmax(0,1fr);gap:4px;}}
#import-preview td{white-space:nowrap;}#import-preview td:nth-child(3){white-space:normal;min-width:260px;}