.app-shell{max-width:1120px;margin:0 auto;padding:0 1.5rem 3rem;animation:fade-up .45s ease both}.skip-link{position:absolute;left:-9999px;top:.75rem;z-index:2000;padding:.55rem 1rem;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-weight:600;text-decoration:none;box-shadow:var(--shadow-md)}.skip-link:focus{left:1.5rem}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 0;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.app-header nav{display:flex;align-items:center;gap:.25rem}.header-nav-link{padding:.45rem .85rem;border-radius:var(--radius-sm);text-decoration:none;color:var(--color-text-muted);font-weight:500;font-size:.95rem;transition:color .15s ease,background .15s ease}.header-nav-link:hover{color:var(--color-text);background:#1a4d3e0f}.header-nav-link.active{color:var(--color-primary);background:var(--color-primary-soft)}.header-actions{display:flex;align-items:center;gap:.5rem}.brand{display:flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-weight:700;font-size:1.35rem;text-decoration:none;color:var(--color-text);letter-spacing:-.03em}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-sm);background:linear-gradient(145deg,var(--color-primary) 0%,#256b55 100%);color:#fff;font-size:.85rem;font-family:var(--font-display);font-weight:700;box-shadow:var(--shadow-sm)}.brand-tagline{display:block;font-family:var(--font-body);font-size:.72rem;font-weight:500;color:var(--color-text-faint);letter-spacing:.02em;text-transform:uppercase;margin-top:.1rem}.header-auth-loading{color:var(--color-text-faint);padding:.5rem .65rem}.header-sign-in{font-size:.88rem;padding:.45rem .85rem}.header-user-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .65rem .35rem .35rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface-raised);text-decoration:none;color:var(--color-text);font-size:.88rem;font-weight:500;transition:border-color .15s ease,box-shadow .15s ease;cursor:pointer;font-family:inherit}a.header-user-chip{cursor:pointer}.header-user-chip:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);color:var(--color-text)}.header-user-avatar{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;border-radius:var(--radius-pill);background:var(--color-primary);color:#fff;font-size:.75rem;font-weight:700}.header-user-email{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.65rem .85rem;margin-bottom:1rem;border-radius:var(--radius-md);background:var(--color-primary-soft);border:1px solid #b8d4c8}.session-bar-label{font-size:.92rem;color:var(--color-text-muted)}.account-menu-wrap{position:relative}.account-menu{position:absolute;top:calc(100% + .35rem);right:0;min-width:220px;padding:.5rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-lg);z-index:200;animation:fade-up .2s ease both}.account-menu-email{margin:.25rem .5rem .5rem;font-size:.78rem;color:var(--color-text-faint);word-break:break-all}.account-menu-item{display:block;width:100%;padding:.55rem .65rem;border:none;border-radius:var(--radius-sm);background:transparent;text-align:left;text-decoration:none;color:var(--color-text);font-size:.9rem;font-weight:500;cursor:pointer;font-family:inherit}.account-menu-item:hover{background:var(--color-bg-subtle)}.account-menu-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.account-menu-sign-out{color:var(--color-error);margin-top:.25rem;border-top:1px solid var(--color-border);border-radius:0 0 var(--radius-sm) var(--radius-sm);padding-top:.65rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a2e2880;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1100;animation:fade-in .2s ease}.modal-dialog{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);width:min(480px,100%);max-height:90vh;overflow:auto;padding:1.35rem 1.5rem 1.5rem;box-shadow:var(--shadow-lg);animation:fade-up .25s ease}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.modal-header h2{margin:0;font-family:var(--font-display);font-size:1.45rem}.modal-subtitle{margin:.35rem 0 0;font-size:.9rem}.modal-close{font-size:1.1rem;line-height:1;padding:.35rem .5rem}.sign-in-modal .auth-panel{border:none;background:transparent;padding:0;margin:0}.app-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.app-footer-tagline{margin:0;font-size:.85rem;color:var(--color-text-faint)}.app-footer-nav{display:flex;gap:1rem}.app-footer-nav a{font-size:.88rem;font-weight:500;text-decoration:none;color:var(--color-text-muted)}.app-footer-nav a:hover{color:var(--color-primary)}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:auto;max-height:min(480px,60vh);background:var(--color-surface-raised)}.table-wrap table{margin:0}.table-wrap th{position:sticky;top:0;z-index:1}.table-wrap td input{width:100%;min-width:7rem;border:1px solid transparent;background:transparent;padding:.35rem .4rem;border-radius:var(--radius-sm)}.table-wrap td input:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 2px #1a4d3e1f}.workspace,.panel,.page{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.35rem 1.5rem;box-shadow:var(--shadow-sm)}.panel h2,.page h1{color:var(--color-text)}.panel h2{margin:0;font-size:1.35rem}.page h1{margin:0 0 .35rem;font-size:1.75rem}.workspace-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;padding-bottom:0;border-bottom:2px solid var(--color-bg-subtle)}.tabs{display:flex;gap:0;margin-bottom:-2px}.tab{display:inline-flex;align-items:center;gap:.45rem;border:none;border-bottom:2px solid transparent;background:transparent;border-radius:0;padding:.65rem 1.1rem;cursor:pointer;color:var(--color-text-muted);font-weight:500;font-size:.95rem;transition:color .15s ease,border-color .15s ease;margin-bottom:-2px}.tab:hover{color:var(--color-text)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:transparent}.tab-step{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border-radius:var(--radius-pill);background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:.72rem;font-weight:700;font-family:var(--font-body)}.tab.active .tab-step{background:var(--color-primary);color:#fff}.tab-complete{color:var(--color-success)}.tab-complete .tab-step{background:var(--color-success-soft);color:var(--color-success);border:1px solid #86efac}.tab-badge{margin-left:.15rem;background:var(--color-error);color:#fff;border-radius:var(--radius-pill);padding:.05rem .4rem;font-size:.7rem;font-weight:600;line-height:1.3}.workspace-progress{display:flex;align-items:center;gap:.85rem;margin-bottom:1.35rem}.workspace-progress-track{flex:1;height:6px;background:var(--color-bg-subtle);border-radius:var(--radius-pill);overflow:hidden}.workspace-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#2d7a62);border-radius:var(--radius-pill);transition:width .35s ease}.workspace-progress-label{font-size:.82rem;font-weight:500;color:var(--color-text-muted);white-space:nowrap}.panel-intro{margin:0 0 1rem;padding:.75rem .9rem;border-radius:var(--radius-md);background:var(--color-bg-subtle);border-left:3px solid var(--color-accent);color:var(--color-text-muted);font-size:.92rem;line-height:1.5}.section-heading{margin:1.35rem 0 .75rem;font-family:var(--font-body);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-faint)}.section-heading:first-of-type{margin-top:.5rem}.capacity-summary{margin-top:1.25rem;padding:.85rem 1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-subtle)}.capacity-summary-warning{border-color:#fcd34d;background:var(--color-warning-soft)}.capacity-summary-header{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin-bottom:.55rem}.capacity-summary-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.capacity-summary-numbers{font-size:.88rem;color:var(--color-text-muted)}.capacity-bar-track{height:8px;border-radius:var(--radius-pill);background:#fff9;border:1px solid var(--color-border);overflow:hidden}.capacity-bar-fill{height:100%;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--color-primary),#2d7a62);transition:width .35s ease}.capacity-bar-fill-warning{background:linear-gradient(90deg,var(--color-error),#dc2626)}.capacity-summary-message{margin:.55rem 0 0;font-size:.88rem;color:var(--color-text-muted)}.capacity-summary-message-ok{color:var(--color-success);font-weight:500}.capacity-summary-message-warning{color:var(--color-warning);font-weight:500}.capacity-add-btn{margin-top:.75rem}.panel-animate{animation:fade-up .35s ease both}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.assignment-name-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem;font-weight:600;font-size:.9rem;color:var(--color-text-muted)}.assignment-name-field input{font-weight:400;font-size:1.05rem;padding:.6rem .75rem;color:var(--color-text)}.workspace-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.workspace-header .assignment-name-field{flex:1;min-width:min(100%,280px);margin-bottom:0}.autosave-indicator{display:inline-flex;align-items:center;gap:.4rem;margin:0;font-size:.82rem;color:var(--color-text-faint);white-space:nowrap}.autosave-dot{width:.45rem;height:.45rem;border-radius:var(--radius-pill);background:var(--color-success);box-shadow:0 0 0 2px var(--color-success-soft)}.workspace-step-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.workspace-step-nav-hint{margin:0;font-size:.88rem}.btn-label-short{display:none}.jobs-card-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.jobs-card{padding:1rem 1.1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-raised);box-shadow:var(--shadow-sm);animation:fade-up .35s ease both}.jobs-card-draft{border-color:#e8c9a0;background:linear-gradient(135deg,var(--color-accent-soft) 0%,var(--color-surface) 100%)}.jobs-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}.jobs-card-name{font-family:var(--font-display);font-weight:600;font-size:1.05rem;line-height:1.3}.jobs-card-meta{display:flex;gap:1rem;font-size:.88rem;color:var(--color-text-muted);margin-bottom:.85rem}.jobs-card-open{width:100%;justify-content:center}.form-row{display:flex;gap:1.25rem;flex-wrap:wrap;margin:1rem 0}.form-row label,.field-block{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:500;color:var(--color-text-muted)}.btn-primary,.btn-secondary,.btn-text{cursor:pointer;border-radius:var(--radius-sm);border:1px solid transparent;padding:.5rem 1rem;font-weight:600;font-size:.9rem;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .15s ease}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--color-surface-raised);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover{border-color:var(--color-border-strong);background:var(--color-bg-subtle)}.btn-text{background:transparent;color:var(--color-link);padding:.5rem .65rem}.btn-text:hover{background:#1a4d3e0f}.btn-accent{cursor:pointer;border-radius:var(--radius-sm);border:1px solid transparent;padding:.65rem 1.35rem;font-weight:700;font-size:1rem;font-family:var(--font-display);letter-spacing:-.01em;background:linear-gradient(145deg,var(--color-accent) 0%,#9a4d15 100%);color:#fff;box-shadow:var(--shadow-md);transition:background .15s ease,transform .1s ease,box-shadow .15s ease}.btn-accent:hover:not(:disabled){box-shadow:var(--shadow-lg)}.btn-accent:active:not(:disabled){transform:translateY(1px)}.btn-accent:disabled{opacity:.5;cursor:not-allowed}.summary{margin-top:.75rem}.summary.warning{color:var(--color-warning)}.summary.success{color:var(--color-success)}.field-error{color:var(--color-error);font-size:.875rem}.banner.error{background:var(--color-error-soft);border:1px solid #fecaca;color:var(--color-error);padding:.85rem 1rem;border-radius:var(--radius-md)}.banner.info{background:var(--color-info-soft);border:1px solid #b8d4ea;color:var(--color-info);padding:.85rem 1rem;border-radius:var(--radius-md);margin-bottom:.85rem}.banner.info strong{display:block;margin-bottom:.2rem}.callout{display:flex;gap:.75rem;align-items:flex-start;padding:.85rem 1rem;border-radius:var(--radius-md);background:var(--color-accent-soft);border:1px solid #e8c9a0;color:var(--color-warning);font-size:.92rem;line-height:1.45;margin-bottom:1.25rem}.callout-icon{flex-shrink:0;font-size:1.1rem;line-height:1.4}.callout p{margin:0}.stats-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.85rem;margin:1.25rem 0}.stat-card{padding:.85rem 1rem;border-radius:var(--radius-md);background:var(--color-bg-subtle);border:1px solid var(--color-border)}.stat-card-value{display:block;font-family:var(--font-display);font-size:1.65rem;font-weight:700;color:var(--color-primary);line-height:1.1}.stat-card-label{display:block;font-size:.8rem;font-weight:500;color:var(--color-text-muted);margin-top:.25rem;text-transform:uppercase;letter-spacing:.03em}.validation-list{list-style:none;padding:0;margin:0}.validation-ready{display:flex;align-items:center;gap:.65rem;padding:.85rem 1rem;border-radius:var(--radius-md);background:var(--color-success-soft);border:1px solid #86efac;color:var(--color-success)}.validation-ready-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:var(--radius-pill);background:var(--color-success);color:#fff;font-size:.8rem;font-weight:700;flex-shrink:0}.validation-ready p{margin:0;font-weight:500}.validation-issues-summary{display:flex;gap:.5rem;margin-bottom:.65rem;flex-wrap:wrap}.validation-count{font-size:.78rem;font-weight:600;padding:.2rem .55rem;border-radius:var(--radius-pill)}.validation-count-error{background:var(--color-error-soft);color:var(--color-error)}.validation-count-warning{background:var(--color-warning-soft);color:var(--color-warning)}.validation-item{display:flex;align-items:flex-start;gap:.55rem;padding:.65rem 0;border-bottom:1px solid var(--color-bg-subtle)}.validation-item:last-child{border-bottom:none}.validation-item-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:var(--radius-pill);font-size:.7rem;font-weight:700;margin-top:.1rem}.validation-item-icon-error{background:var(--color-error-soft);color:var(--color-error)}.validation-item-icon-warning{background:var(--color-warning-soft);color:var(--color-warning)}.validation-item-message{flex:1;min-width:0;line-height:1.45}.validation-item-error .validation-item-message{color:var(--color-error)}.validation-item-warning .validation-item-message{color:var(--color-warning)}.validation-fix-btn{flex-shrink:0;padding:.25rem .5rem;font-size:.85rem}.validation-item.error{color:var(--color-error)}.validation-item.warning{color:var(--color-warning)}.submit-section{margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.submit-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:1rem}.submit-hint{margin:0;font-size:.88rem}.submit-success .success-card{padding:1.5rem;border-radius:var(--radius-lg);background:var(--color-success-soft);border:1px solid #86efac;text-align:center;animation:fade-up .4s ease both}.success-card-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-pill);background:var(--color-success);color:#fff;font-size:1.25rem;font-weight:700;margin-bottom:.65rem}.submit-success h3{margin:0 0 .35rem;font-family:var(--font-display);color:var(--color-success)}.submit-success .field-block{text-align:left;margin-top:1rem}.submit-success .form-row{justify-content:center}.access-mode-selector{border:none;margin:0 0 1rem;padding:0}.access-mode-legend{font-weight:600;margin-bottom:.75rem;font-family:var(--font-display)}.access-mode-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem}.access-mode-card{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.1rem;border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:var(--color-surface-raised);transition:border-color .15s ease,box-shadow .15s ease;position:relative}.access-mode-card:hover{border-color:var(--color-border-strong)}.access-mode-card.selected{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:var(--shadow-sm)}.access-mode-card input[type=radio]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.access-mode-card:has(input:focus-visible){outline:2px solid var(--color-primary);outline-offset:2px}.access-mode-card-icon{font-size:1.35rem;line-height:1;margin-bottom:.15rem}.access-mode-card-title{font-weight:600}.access-mode-card-copy{color:var(--color-text-muted);font-size:.92rem;line-height:1.45}.access-mode-card-note{color:var(--color-warning);font-size:.85rem;line-height:1.35}.hint{color:var(--color-text-muted);font-size:.95rem;line-height:1.5}.badge{display:inline-block;padding:.2rem .6rem;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;letter-spacing:.01em}.badge-queued{background:var(--color-warning-soft);color:var(--color-warning)}.badge-running{background:var(--color-info-soft);color:var(--color-info)}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-failed{background:var(--color-error-soft);color:var(--color-error)}.status-badge.draft{background:var(--color-bg-subtle);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.2rem .6rem;font-size:.8rem;font-weight:600}.page-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.page-nav{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;font-size:.88rem;margin-bottom:1rem;color:var(--color-text-muted)}.page-nav a{text-decoration:none;font-weight:500;color:var(--color-link)}.page-nav a:hover{text-decoration:underline}.page-nav-sep{color:var(--color-text-faint);-webkit-user-select:none;user-select:none}.page-nav-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border);justify-content:space-between}.jobs-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;margin-top:.5rem}.jobs-table-wrap table{margin:0}.jobs-table-wrap th:first-child,.jobs-table-wrap td:first-child{padding-left:1rem}.jobs-table-wrap th:last-child,.jobs-table-wrap td:last-child{padding-right:1rem}.jobs-table-wrap tbody tr:last-child td{border-bottom:none}.jobs-row-draft{background:#b85c1a0a}.jobs-row-draft .jobs-row-name{font-weight:600}.jobs-row:hover{background:#1a4d3e0a}.job-open-link{font-weight:600;text-decoration:none;padding:.3rem .65rem;border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);transition:background .12s ease}.job-open-link:hover{background:var(--color-primary);color:#fff}.job-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.job-hero{padding:1.15rem 1.25rem;margin:-.35rem -.5rem 1.25rem;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-bg-subtle) 0%,var(--color-surface) 100%);border:1px solid var(--color-border)}.job-hero h1{margin:0}.job-stepper{display:flex;gap:0;list-style:none;padding:0;margin:1rem 0 0;counter-reset:step}.job-stepper-step{flex:1;display:flex;align-items:flex-start;gap:.55rem;position:relative;padding-right:.75rem}.job-stepper-step:not(:last-child):after{content:"";position:absolute;top:.85rem;left:2.25rem;right:.25rem;height:2px;background:var(--color-border);z-index:0}.job-stepper-step-done:not(:last-child):after,.job-stepper-step-active:not(:last-child):after{background:var(--color-primary)}.job-stepper-marker{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:var(--radius-pill);background:var(--color-bg-subtle);border:2px solid var(--color-border);font-size:.75rem;font-weight:700;color:var(--color-text-muted);position:relative;z-index:1}.job-stepper-step-done .job-stepper-marker{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.job-stepper-step-active .job-stepper-marker{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent);animation:pulse-marker 1.5s ease infinite}.job-stepper-step-failed .job-stepper-marker{background:var(--color-error-soft);border-color:var(--color-error);color:var(--color-error)}@keyframes pulse-marker{0%,to{box-shadow:0 0 #b85c1a59}50%{box-shadow:0 0 0 6px #b85c1a00}}.job-stepper-content{display:flex;flex-direction:column;gap:.1rem;min-width:0;padding-top:.15rem}.job-stepper-content strong{font-size:.88rem;font-weight:600}.job-stepper-detail{font-size:.78rem;color:var(--color-text-muted);line-height:1.35}.progress-card{margin:1rem 0;padding:1rem 1.15rem;border-radius:var(--radius-md);border:1px solid var(--color-border)}.progress-card.queued{background:var(--color-warning-soft);border-color:#fcd34d}.progress-card.running{background:var(--color-info-soft);border-color:#93c5fd}.progress-bar-wrap{display:flex;align-items:center;gap:.65rem;margin-top:.65rem}.progress-bar-wrap progress{flex:1;height:8px;border:none;border-radius:var(--radius-pill);overflow:hidden;background:#fff9}.progress-bar-wrap progress::-webkit-progress-bar{background:#fff9;border-radius:var(--radius-pill)}.progress-bar-wrap progress::-webkit-progress-value{background:linear-gradient(90deg,var(--color-primary),#2d7a62);border-radius:var(--radius-pill)}.progress-bar-wrap progress::-moz-progress-bar{background:linear-gradient(90deg,var(--color-primary),#2d7a62);border-radius:var(--radius-pill)}.progress-bar-label{font-size:.85rem;font-weight:600;color:var(--color-primary);min-width:2.5rem}.job-actions{display:flex;gap:.75rem;margin:1rem 0;flex-wrap:wrap}.spinner{width:1.25rem;height:1.25rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.timeline{color:var(--color-text-muted)}.results-panel{margin:1.25rem 0}.results-hero{display:flex;gap:1.25rem;align-items:flex-start;padding:1.15rem 1.25rem;margin-bottom:1.5rem;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-success-soft) 0%,var(--color-surface) 70%);border:1px solid #86efac}.results-score-ring{--score-pct: 0;flex-shrink:0;width:5.25rem;height:5.25rem;border-radius:50%;background:conic-gradient(var(--color-success) calc(var(--score-pct) * 1%),var(--color-bg-subtle) 0);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.results-score-ring-muted{background:conic-gradient(var(--color-text-muted) calc(var(--score-pct) * 1%),var(--color-bg-subtle) 0)}.results-score-inner{width:4.1rem;height:4.1rem;border-radius:50%;background:var(--color-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.results-score-value{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--color-success)}.results-score-ring-muted .results-score-value{color:var(--color-text)}.results-score-label{font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.results-hero-body{flex:1;min-width:0}.results-hero-title{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.35rem;color:var(--color-success)}.results-hero-copy{margin:0 0 .75rem}.metric-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem}.metric-chip{display:inline-block;padding:.25rem .6rem;border-radius:var(--radius-pill);background:#ffffffb3;border:1px solid var(--color-border);font-size:.78rem;font-weight:500;color:var(--color-text-muted)}.results-section-title{margin:0 0 .85rem;font-family:var(--font-display);font-size:1.15rem;color:var(--color-text)}.tent-pref-score-perfect{color:var(--color-success);font-weight:600}.locked-results-panel{margin:1.25rem 0}.locked-results-hero{display:flex;gap:.85rem;align-items:flex-start;padding:1rem 1.15rem;margin-bottom:1rem;border-radius:var(--radius-md);background:var(--color-warning-soft);border:1px solid #fcd34d}.locked-results-lock{font-size:1.5rem;line-height:1;flex-shrink:0}.locked-results-hero h2{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.25rem}.locked-results-metrics{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.locked-preview-wrap{position:relative;padding:1rem;border-radius:var(--radius-md);border:1px dashed var(--color-border-strong);background:var(--color-bg-subtle);margin-bottom:1.25rem}.locked-preview-label{margin:0 0 .75rem;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.locked-preview-wrap .tent-card-anonymous{filter:blur(.3px);opacity:.92}.upgrade-prompt{padding:1rem 1.15rem;border-radius:var(--radius-md);background:var(--color-accent-soft);border:1px solid #e8c9a0;text-align:center}.upgrade-prompt .hint{margin:0 0 .85rem}.panel-header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.results-summary-bar{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;padding:.85rem 1.1rem;background:var(--color-success-soft);border:1px solid #86efac;border-radius:var(--radius-md);margin-bottom:1rem}.results-metric{color:var(--color-success);font-size:.95rem;font-weight:500}.results-actions{display:flex;gap:.5rem;margin-left:auto;flex-wrap:wrap}.tent-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.85rem;margin-bottom:1rem}.tent-card-grid .tent-card{animation:fade-up .4s ease both}.tent-card-grid .tent-card:nth-child(1){animation-delay:.02s}.tent-card-grid .tent-card:nth-child(2){animation-delay:.05s}.tent-card-grid .tent-card:nth-child(3){animation-delay:.08s}.tent-card-grid .tent-card:nth-child(4){animation-delay:.11s}.tent-card-grid .tent-card:nth-child(5){animation-delay:.14s}.tent-card-grid .tent-card:nth-child(6){animation-delay:.17s}.tent-card-grid .tent-card:nth-child(n+7){animation-delay:.2s}.tent-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.85rem;background:var(--color-surface-raised);box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,transform .15s ease}.tent-card:hover{box-shadow:var(--shadow-md)}.tent-card-header{font-family:var(--font-display);font-weight:600;font-size:1.05rem;margin-bottom:.5rem;padding-bottom:.4rem;border-bottom:1px solid var(--color-border);color:var(--color-primary)}.tent-card-campers{list-style:none;padding:0;margin:0 0 .5rem}.tent-card-campers li{padding:.2rem 0;font-size:.92rem}.tent-card-footer{font-size:.85rem;color:var(--color-text-muted)}.results-audit{margin-top:.5rem}.results-audit-table{width:100%;border-collapse:collapse;margin-top:.75rem;font-size:.9rem}.results-audit-table th,.results-audit-table td{border:1px solid var(--color-border);padding:.45rem .6rem;text-align:left}.results-audit-table th{background:var(--color-bg-subtle)}.toggle{display:flex;align-items:center;gap:.45rem;font-size:.9rem;color:var(--color-text-muted);cursor:pointer}.toggle input{accent-color:var(--color-primary)}.empty{color:var(--color-text-muted);font-style:italic}.auth-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.15rem 1.25rem;margin:1rem 0;background:var(--color-bg-subtle)}.auth-panel h2{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.2rem}.device-list{list-style:none;padding:0;margin:0 0 1rem}.device-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--color-border)}.locked-results-banner{margin-bottom:1rem}.locked-results-banner h2{margin:0 0 .35rem}.locked-results-panel .upgrade-prompt{margin-top:1.25rem}.solve-progress-diagram{margin-top:1rem}.solve-progress-metrics{margin:0 0 .75rem;color:var(--color-text-muted);font-size:.95rem}.anonymous-slot-list{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;padding:0;margin:0}.anonymous-slot{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-pill);background:var(--color-bg-subtle);color:var(--color-text);font-size:.75rem;font-weight:600}.tent-card-anonymous .tent-card-header{margin-bottom:.5rem}.import-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a2e2873;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.import-dialog{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);width:min(900px,100%);max-height:90vh;overflow:auto;padding:1.25rem 1.5rem 1.5rem;box-shadow:var(--shadow-lg);animation:fade-up .25s ease}.import-dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.85rem}.import-dialog-header h2{margin:0;font-family:var(--font-display)}.import-dialog-actions{display:flex;gap:.5rem;margin-bottom:.85rem}.file-input-label{cursor:pointer}.import-mode-fieldset{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.85rem;margin:.85rem 0;display:flex;gap:1rem}.import-mode-fieldset legend{padding:0 .35rem;font-weight:600}.import-preview,.import-dialog-footer{margin-top:1rem}.field-block textarea{width:100%;min-height:8rem;margin-top:.35rem}.campers-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:1.25rem;align-items:start}.campers-layout-stacked{grid-template-columns:1fr}.campers-main{min-width:0}.validation-sidebar{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;background:var(--color-bg-subtle);position:sticky;top:1rem}.validation-sidebar-title{margin:0 0 .75rem;font-size:1rem;font-family:var(--font-display)}.validation-sidebar-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0 0 .85rem;padding-bottom:.85rem;border-bottom:1px solid var(--color-border)}.validation-sidebar-stats dt{font-size:.72rem;color:var(--color-text-muted);margin-bottom:.1rem;text-transform:uppercase;letter-spacing:.03em}.validation-sidebar-stats dd{margin:0;font-weight:700;font-size:1.15rem;font-family:var(--font-display)}.validation-sidebar-stats .has-warnings{color:var(--color-warning)}.validation-sidebar-stats .has-errors{color:var(--color-error)}.mobile-data-entry-banner{margin-bottom:1rem}.mobile-data-entry-banner p{margin:.35rem 0 0}.ui-state{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.5rem 1.75rem;border-radius:var(--radius-md);border:1px dashed var(--color-border-strong);background:var(--color-bg-subtle)}.ui-state-loading{flex-direction:row;align-items:center}.ui-state-empty{border-style:solid;background:var(--color-surface);text-align:center;align-items:center;padding:2.5rem 1.75rem}.ui-state-error{border-color:#fecaca;background:var(--color-error-soft);color:var(--color-error)}.ui-state-icon{font-size:1.75rem;line-height:1;margin-bottom:.25rem}.ui-state-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.ui-state-message{margin:0;color:inherit;opacity:.85;max-width:36ch}.ui-state-action{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.ui-state-spinner{flex-shrink:0}.admin-shell{max-width:1200px;margin:0 auto;padding:1rem 1.5rem 2rem}.admin-header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem;padding-bottom:.85rem;border-bottom:1px solid var(--color-border)}.admin-header nav{display:flex;gap:.75rem}.admin-header nav a.active{font-weight:700;text-decoration:underline}.admin-header-meta{margin-left:auto;display:flex;align-items:center;gap:.75rem}.admin-page h1{margin-top:0}.admin-sign-in{max-width:640px}.admin-dev-sign-in{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--color-border)}.admin-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem 1.25rem;margin:1rem 0 1.5rem}.admin-meta-grid dt{font-size:.8rem;color:var(--color-text-muted);margin-bottom:.15rem}.admin-meta-grid dd{margin:0;font-weight:600}.admin-actions{display:flex;align-items:center;gap:.75rem}.admin-payload-section{margin-top:1.5rem}.admin-json{background:#0f172a;color:#e2e8f0;padding:1rem;border-radius:var(--radius-md);overflow:auto;font-size:.85rem}.admin-settings-form{display:grid;gap:1rem;max-width:420px;margin-top:1rem}.admin-settings-form label{display:flex;flex-direction:column;gap:.35rem}.admin-search-form{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap;margin:1rem 0}.admin-grant-form{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.checkbox-row{flex-direction:row!important;align-items:center;gap:.5rem!important}.pagination-row{display:flex;align-items:center;gap:1rem;margin-top:1rem}.results-access.locked{color:var(--color-warning);font-weight:600}.results-access.full{color:var(--color-success);font-weight:600}.error-text{color:var(--color-error)}@media (max-width: 640px){.app-shell{padding:0 1rem 2rem}.app-header{display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand actions" "nav nav";gap:.65rem .5rem;align-items:center}.app-header .brand{grid-area:brand}.app-header nav{grid-area:nav;width:100%;justify-content:flex-start}.header-actions{grid-area:actions;width:auto;justify-content:flex-end}.brand-tagline,.btn-label-long{display:none}.btn-label-short{display:inline}.header-sign-in{padding:.4rem .65rem;font-size:.82rem}.page-header-row{flex-direction:column;align-items:stretch}.page-header-row .btn-secondary{align-self:flex-start}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.tab{white-space:nowrap;padding:.55rem .85rem}.workspace-progress{flex-direction:column;align-items:stretch}.workspace-progress-label{white-space:normal}.workspace-header{flex-direction:column;align-items:stretch}.autosave-indicator{justify-content:flex-end}.workspace-step-nav{flex-direction:column;align-items:stretch}.workspace-step-nav .btn-primary,.workspace-step-nav .btn-secondary{width:100%;justify-content:center}.job-stepper{flex-direction:column;gap:.75rem}.job-stepper-step:not(:last-child):after{display:none}.results-actions{margin-left:0;width:100%}.results-hero{flex-direction:column;align-items:center;text-align:center}.results-hero-body{display:flex;flex-direction:column;align-items:center}.metric-chips{justify-content:center}.account-menu{right:0;left:auto;min-width:min(280px,calc(100vw - 2rem))}}@media print{.app-header,.no-print{display:none!important}.app-shell{max-width:none;padding:0}.page,.results-panel,.tent-card{border:none;box-shadow:none}.results-printable{break-inside:avoid}.tent-card-grid{grid-template-columns:repeat(3,1fr)}.tent-card{break-inside:avoid;page-break-inside:avoid}.results-summary-bar{background:#fff;border:1px solid #ccc}}:root{--font-display: "Fraunces", Georgia, "Times New Roman", serif;--font-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--color-bg: #f6f1e8;--color-bg-subtle: #ebe4d6;--color-surface: #fffcf7;--color-surface-raised: #ffffff;--color-text: #1a2e28;--color-text-muted: #5a6b63;--color-text-faint: #8a9690;--color-primary: #1a4d3e;--color-primary-hover: #143d31;--color-primary-soft: #e4f0eb;--color-accent: #b85c1a;--color-accent-hover: #9a4d15;--color-accent-soft: #f8ead8;--color-border: #d8d0c2;--color-border-strong: #c4b9a8;--color-link: #1a5c4a;--color-success: #166534;--color-success-soft: #dcfce7;--color-warning: #92400e;--color-warning-soft: #fef3c7;--color-error: #991b1b;--color-error-soft: #fee2e2;--color-info: #1e4a6e;--color-info-soft: #e8f2fa;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(26, 46, 40, .06);--shadow-md: 0 4px 16px rgba(26, 46, 40, .08);--shadow-lg: 0 8px 32px rgba(26, 46, 40, .1);font-family:var(--font-body);font-size:16px;line-height:1.55;color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(184,92,26,.07),transparent),radial-gradient(ellipse 60% 40% at 100% 100%,rgba(26,77,62,.05),transparent),var(--color-bg)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");z-index:-1}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.25}a{color:var(--color-link);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--color-primary-hover)}button,input,select,textarea{font:inherit}input,select,textarea{padding:.5rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #1a4d3e26}input::placeholder{color:var(--color-text-faint)}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid var(--color-border);padding:.65rem .75rem;text-align:left}th{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);background:var(--color-bg-subtle)}tbody tr{transition:background .12s ease}tbody tr:hover{background:#1a4d3e08}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
