/* A shared visual language for the management workspace and photographer brief. */
.shooting-brief { --sb-ink:#192e38; --sb-muted:#61757e; --sb-line:#dce6e7; --sb-teal:#0f766e; color:var(--sb-ink); font-size:14px; line-height:1.55; min-width:0; }
.shooting-brief *, .shooting-lightbox * { box-sizing:border-box; }
.shooting-brief [hidden] { display:none !important; }
.shooting-brief button,.shooting-brief input,.shooting-brief select { font:inherit; box-shadow:none; }
.shooting-brief button { cursor:pointer; transition:background 140ms ease; }
.shooting-brief button:focus-visible,.shooting-brief input:focus-visible,.shooting-brief select:focus-visible,.shooting-lightbox button:focus-visible { outline:3px solid #5ba79f; outline-offset:3px; }
.sb-heading { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:8px 0 24px; }
.sb-eyebrow { color:var(--sb-teal); font-size:12px; font-weight:700; letter-spacing:.08em; }
.sb-heading h2 { font-size:24px; line-height:1.3; margin:4px 0 8px; letter-spacing:-.03em; }
.sb-heading p { color:var(--sb-muted); margin:0; }
.sb-tools { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; max-width:560px; }
.sb-tools button { min-height:40px; padding:8px 14px; border:1px solid var(--sb-line); border-radius:8px; color:var(--sb-ink); background:#fff; }
.sb-tools button:hover { background:#f0f6f5; }
.sb-tools button.primary { background:var(--sb-teal); color:#fff; border-color:var(--sb-teal); }
.sb-tools details { position:relative; }
.sb-tools summary { list-style:none; cursor:pointer; border:1px solid var(--sb-line); border-radius:8px; background:#fff; padding:8px 14px; min-height:40px; }
.sb-tools summary::-webkit-details-marker { display:none; }
.sb-template-menu { position:absolute; right:0; top:calc(100% + 6px); z-index:5; padding:6px; min-width:150px; border:1px solid var(--sb-line); border-radius:10px; background:white; box-shadow:0 8px 24px #193d3614; }
.sb-template-menu button { display:block; width:100%; border:0; text-align:left; }
.sb-overview { display:flex; align-items:center; gap:0; padding:22px 24px; border:1px solid var(--sb-line); border-radius:12px; background:#fff; }
.sb-overview > div:not(.sb-progress) { min-width:120px; padding-right:32px; margin-right:32px; border-right:1px solid var(--sb-line); display:flex; flex-direction:column; }
.sb-overview strong { font-size:28px; line-height:1.2; font-weight:650; font-variant-numeric:tabular-nums; }
.sb-overview strong small { font-size:16px; font-weight:400; color:var(--sb-muted); }
.sb-overview > div > span { color:var(--sb-muted); margin-top:5px; font-size:12px; }
.sb-progress { margin-left:auto; width:220px; max-width:30%; }
.sb-progress span { display:flex; justify-content:space-between; gap:12px; }
.sb-progress b { font-weight:600; color:var(--sb-teal); }
.sb-progress progress { display:block; width:100%; height:6px; margin-top:10px; border:0; border-radius:3px; overflow:hidden; accent-color:var(--sb-teal); background:#e7efed; }
.sb-progress progress::-webkit-progress-bar { background:#e7efed; }
.sb-progress progress::-webkit-progress-value { background:var(--sb-teal); }
.sb-filterbar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; padding:24px 0 12px; }
.sb-filters { display:flex; gap:4px; flex-wrap:wrap; }
.sb-filters button { min-height:40px; border:1px solid transparent; border-radius:8px; padding:7px 12px; background:transparent; color:var(--sb-muted); white-space:nowrap; font-weight:500; }
.sb-filters button span { margin-left:6px; font-size:12px; opacity:.85; font-variant-numeric:tabular-nums; }
.sb-filters button[aria-pressed=true] { background:#dfefeb; color:#0b655e; font-weight:650; }
.sb-search-controls { display:flex; gap:8px; }
.sb-search-controls input,.sb-search-controls select { min-height:40px; padding:8px 12px; border:1px solid var(--sb-line); border-radius:8px; color:var(--sb-ink); background:#fff; }
.sb-search-controls input { width:240px; }
.sb-search-controls input::placeholder { color:#70828a; }
.sb-results { font-size:12px; color:var(--sb-muted); padding-bottom:12px; }
.sb-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr)); gap:20px; align-items:start; }
.sb-card { min-width:0; overflow:hidden; border:1px solid var(--sb-line); border-radius:12px; background:#fff; }
.sb-card-head { display:flex; align-items:flex-start; gap:10px; padding:18px; }
.sb-number { font-size:12px; color:#607c79; font-variant-numeric:tabular-nums; padding-top:3px; }
.sb-card-heading { flex:1; min-width:0; }
.sb-tags { display:flex; flex-wrap:wrap; align-items:center; gap:6px; color:var(--sb-muted); font-size:11px; }
.sb-tags > span { overflow-wrap:anywhere; }
.sb-tags .sb-priority { padding:1px 6px; color:#9c4b17; background:#fff2e2; border-radius:4px; font-weight:600; }
.sb-card h3 { margin:5px 0 0; color:var(--sb-ink); font-size:17px; line-height:1.45; overflow-wrap:anywhere; }
.sb-status { font-size:11px; white-space:nowrap; color:#637680; padding-top:2px; }
.sb-status.is-done { color:var(--sb-teal); }
.shooting-brief .sb-image { position:relative; width:100%; height:230px; display:flex; align-items:center; justify-content:center; border:0; border-top:1px solid #edf2f2; border-bottom:1px solid #edf2f2; border-radius:0; padding:12px; background:#f3f6f5; overflow:hidden; }
.sb-image img { display:block; width:100%; height:100%; object-fit:contain; border-radius:0; }
.sb-image-label { position:absolute; bottom:12px; right:12px; padding:4px 8px; background:#fff; border:1px solid var(--sb-line); border-radius:5px; font-size:11px; color:#355854; font-weight:500; }
.sb-image-error { position:absolute; inset:0; display:grid; place-items:center; background:#f3f6f5; font-size:13px; color:var(--sb-muted); }
.shooting-brief .sb-image-placeholder { flex-direction:column; gap:6px; height:150px; color:var(--sb-muted); }
.sb-image-placeholder small { font-size:12px; color:#71878d; }
.sb-card-body { padding:18px; }
.sb-assignment { display:flex; gap:8px; color:var(--sb-muted); font-size:12px; }
.sb-assignment strong { font-weight:500; color:var(--sb-teal); }
.sb-brief { margin:10px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.sb-brief.is-empty { color:var(--sb-muted); }
.sb-extra { border-top:1px solid #edf2f2; margin-top:16px; padding-top:12px; font-size:12px; }
.sb-extra summary { cursor:pointer; color:var(--sb-muted); }
.sb-extra dl { display:grid; gap:6px; margin:12px 0 0; }
.sb-extra dl > div { display:grid; grid-template-columns:36px 1fr; gap:12px; }
.sb-extra dt { color:var(--sb-muted); }
.sb-extra dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.sb-card-actions { padding:12px 18px; border-top:1px solid #edf2f2; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.sb-card-actions > div { display:flex; gap:12px; flex-wrap:wrap; }
.sb-card-actions button { padding:4px 0; min-height:36px; border:0; border-radius:5px; background:transparent; color:var(--sb-teal); font-size:12px; font-weight:550; }
.sb-card-actions .sb-delete { color:var(--sb-muted); }
.sb-card-actions .sb-delete:hover { color:#b42318; }
.sb-card-actions .sb-complete { border:1px solid var(--sb-line); padding:6px 10px; color:#42625c; }
.sb-card-actions .sb-complete.is-done { background:#edf7f3; border-color:#cbe4da; }
.sb-card-actions button:disabled { opacity:.5; cursor:wait; }
.sb-empty { text-align:center; border:1px dashed #bdcecc; border-radius:12px; padding:52px 20px; background:#f8fbfa; }
.sb-empty strong { font-size:17px; }
.sb-empty p { color:var(--sb-muted); }
.sb-empty button { padding:8px 16px; border:1px solid var(--sb-line); border-radius:8px; background:#fff; color:var(--sb-teal); }
.shooting-portal.external-shell { width:min(1120px,100%); padding:32px 28px calc(28px + env(safe-area-inset-bottom)); }
.shooting-portal .external-hero { background:transparent; color:#192e38; box-shadow:none; border-radius:0; border-bottom:1px solid #dce6e7; padding:0 0 24px; margin:0 0 24px; }
.shooting-portal .external-kicker { color:#0f766e; font-size:12px; letter-spacing:.08em; }
.shooting-portal .external-hero h1 { font-size:28px; line-height:1.35; margin:10px 0; letter-spacing:-.025em; }
.shooting-portal .external-hero p { color:#61757e; font-size:13px; margin:0; }
.shooting-portal .external-hero small { color:#61757e; display:block; font-size:11px; margin-top:10px; }
.shooting-portal footer:not(.sb-card-actions) { color:#61757e; font-size:11px; }
.sb-refresh-message { font-size:12px; color:#a23525; }
.shooting-lightbox { padding:0; width:calc(100vw - 40px); max-width:1280px; height:calc(100dvh - 40px); max-height:100%; border:1px solid #d8e4e2; border-radius:12px; background:#f0f4f3; color:#192e38; box-shadow:0 20px 80px #0004; }
.shooting-lightbox[open] { display:flex; flex-direction:column; }
.shooting-lightbox::backdrop { background:#102422c9; }
.shooting-lightbox header,.shooting-lightbox footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 18px; flex-shrink:0; background:#fff; }
.shooting-lightbox header > div { display:flex; align-items:center; gap:14px; min-width:0; }
.shooting-lightbox header strong { overflow-wrap:anywhere; font-size:15px; }
.shooting-lightbox header span { color:#61757e; font-size:12px; white-space:nowrap; }
.shooting-lightbox button { font:500 13px system-ui; min-height:40px; padding:8px 12px; border:1px solid #dce6e7; background:#fff; color:#245b55; border-radius:8px; cursor:pointer; white-space:nowrap; }
.shooting-lightbox button:disabled { opacity:.4; cursor:default; }
.sb-lightbox-stage { flex:1; min-height:0; overflow:auto; display:flex; align-items:center; justify-content:center; padding:16px; }
.sb-lightbox-stage img { display:block; object-fit:contain; max-width:100%; max-height:100%; }
.sb-lightbox-stage.is-zoomed { display:block; }
.sb-lightbox-stage.is-zoomed img { width:200%; max-width:none; max-height:none; }
@media(min-width:1500px) { .sb-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:760px) {
  .sb-heading { align-items:flex-start; flex-direction:column; gap:16px; padding-bottom:20px; }
  .sb-heading h2 { font-size:22px; }
  .sb-tools { justify-content:flex-start; }
  .sb-overview { padding:18px 16px; flex-wrap:wrap; row-gap:16px; }
  .sb-overview > div:not(.sb-progress) { min-width:0; flex:1; margin:0; padding:0 12px; }
  .sb-overview > div:first-child { padding-left:0; }
  .sb-overview > div:nth-child(3) { border:0; padding-right:0; }
  .sb-overview strong { font-size:26px; }
  .sb-progress { flex-basis:100%; width:100%; max-width:100%; border-top:1px solid #edf2f2; padding-top:8px; }
  .sb-filterbar { gap:12px; padding-top:20px; }
  .sb-filters { width:100%; justify-content:space-between; gap:0; }
  .sb-filters button { min-height:44px; padding:7px 10px; }
  .sb-search-controls { width:100%; }
  .sb-search-controls input { width:0; flex:1; min-width:0; }
  .sb-search-controls select { max-width:115px; }
  .sb-search-controls input,.sb-search-controls select { min-height:44px; font-size:14px; }
  .sb-grid { grid-template-columns:1fr; gap:16px; }
  .sb-card-actions button { min-height:44px; }
  .shooting-portal.external-shell { padding:24px 16px calc(24px + env(safe-area-inset-bottom)); }
  .shooting-portal .external-hero { padding-bottom:20px; margin-bottom:20px; }
  .shooting-portal .external-hero h1 { font-size:24px; }
  .shooting-portal .sb-heading { flex-direction:row; align-items:center; gap:12px; }
  .shooting-portal .sb-eyebrow { display:none; }
  .shooting-portal .sb-heading h2 { font-size:20px; }
  .shooting-portal .sb-heading p { font-size:12px; }
  .shooting-portal .sb-tools { flex-shrink:0; }
  .shooting-lightbox { width:100vw; height:100dvh; max-height:100dvh; max-width:100vw; border:0; border-radius:0; }
  .shooting-lightbox footer { padding-bottom:calc(12px + env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) { .shooting-brief button { transition:none; } }
/* Compact task form; annotation editor keeps its dedicated canvas layout. */
.shooting-task-dialog:not(.shooting-annotation-dialog) { width:min(720px,100%); border-radius:12px; padding:24px; }
.shooting-task-dialog:not(.shooting-annotation-dialog) .modal-head h2 { font-size:22px; margin:0 0 8px; }
.shooting-task-dialog:not(.shooting-annotation-dialog) .modal-head p { font-size:13px; line-height:1.6; margin:0; }
#shooting-task-form { display:grid; gap:18px; }
#shooting-task-form .form-grid { gap:16px; }
#shooting-task-form label { display:grid; gap:8px; font-size:13px; font-weight:600; }
#shooting-task-form input,#shooting-task-form select,#shooting-task-form textarea { font-size:14px; font-weight:400; min-height:44px; border-radius:8px; padding:10px 12px; }
#shooting-task-form textarea { min-height:96px; }
#shooting-task-form input[type=file] { padding:12px; background:#f4f8f7; border:1px dashed #abc8c2; color:#526e69; }
#shooting-task-form input[type=file]::file-selector-button { border:1px solid #c8ded8; border-radius:6px; padding:8px 12px; margin-right:12px; background:white; color:#0f766e; font:inherit; cursor:pointer; }
#shooting-task-form small { font-size:12px; font-weight:400; }
#shooting-task-form .shooting-reference-preview { width:100%; height:160px; object-fit:contain; background:#f3f6f5; border-radius:8px; }
#shooting-task-form .shooting-reference-preview[hidden] { display:none; }
#shooting-task-form .modal-actions { margin-top:0; padding-top:16px; }
@media(max-width:760px) {
  .sb-search-controls input,.sb-search-controls select { font-size:16px; }
  .shooting-portal.external-shell { padding-top:calc(24px + env(safe-area-inset-top)); }
  .shooting-task-dialog:not(.shooting-annotation-dialog) { padding:20px; }
  #shooting-task-form input,#shooting-task-form select,#shooting-task-form textarea { font-size:16px; }
}
