.fpb-wrap{max-width:1400px}.fpb-sub{margin-bottom:18px}.fpb-grid{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:18px}.fpb-card{background:#fff;border:1px solid #dcdcde;border-radius:8px;padding:18px;margin:14px 0}.fpb-card.danger{border-color:#d63638}.fpb-card label{display:block;margin:10px 0;font-weight:600}.fpb-card input[type=text],.fpb-card input:not([type]),.fpb-card input[type=date],.fpb-card textarea{width:100%;margin-top:4px}.fpb-card label span{color:#d63638}.fpb-wide{min-width:0}.fpb-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.fpb-list,.fpb-work-list{list-style:none;padding:0;margin:0}.fpb-job,.fpb-work{display:flex;align-items:center;gap:12px;border:1px solid #dcdcde;border-left:7px solid #a7aaad;border-radius:8px;padding:12px;margin:10px 0;background:#fff}.fpb-job.overdue,.fpb-work.overdue{border-left-color:#d63638}.fpb-job.today,.fpb-work.today{border-left-color:#dba617}.fpb-job.warning,.fpb-work.warning{border-left-color:#dba617}.fpb-job.hold,.fpb-work.hold{border-left-color:#787c82;background:#f6f7f7}.fpb-handle{cursor:grab;font-size:20px;color:#646970}.fpb-main{flex:1;min-width:0}.fpb-main strong{font-size:16px;margin-right:8px}.fpb-meta{margin-top:5px;color:#50575e}.fpb-actions{display:flex;gap:6px;flex-wrap:wrap}.fpb-badge{display:inline-block;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;margin-left:5px;background:#f0f0f1}.fpb-badge.overdue{background:#fbeaea;color:#8a1f11}.fpb-badge.today,.fpb-badge.warning{background:#fff4ce;color:#6b4e00}.fpb-badge.rush{background:#fff0b3;color:#674d00}.fpb-badge.hold{background:#e2e4e7;color:#3c434a}.fpb-front{max-width:1000px;margin:20px auto}.fpb-front-head{display:flex;justify-content:space-between;align-items:end;gap:12px}.fpb-rank{font-size:30px;font-weight:800;min-width:42px;text-align:center}.fpb-work:first-child{box-shadow:0 2px 10px rgba(0,0,0,.08);transform:scale(1.01)}.fpb-last{text-align:right;color:#646970;font-size:12px;margin-top:8px}.fpb-message{padding:16px;background:#f6f7f7;border-radius:6px}.fpb-message.error{background:#fbeaea;color:#8a1f11}@media(max-width:800px){.fpb-grid{grid-template-columns:1fr}.fpb-job,.fpb-work{align-items:flex-start;flex-wrap:wrap}.fpb-actions{width:100%}.fpb-front-head{display:block}.fpb-rank{font-size:24px}}

/* Web manager screen */
.fpb-manager-web{max-width:1400px;padding:4px 14px 28px;box-sizing:border-box}
.fpb-manager-title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:10px}
.fpb-manager-title h2{font-size:28px;margin:0 0 6px}
.fpb-login-user{font-size:13px;color:#646970;white-space:nowrap}
.fpb-manager-web .fpb-card{box-shadow:0 1px 3px rgba(0,0,0,.04)}
.fpb-manager-web .fpb-card input[type=text],
.fpb-manager-web .fpb-card input:not([type]),
.fpb-manager-web .fpb-card input[type=date],
.fpb-manager-web .fpb-card textarea{box-sizing:border-box;padding:9px 10px;border:1px solid #8c8f94;border-radius:4px;background:#fff;font:inherit}
.fpb-manager-web .fpb-inline-check{display:flex;align-items:center;gap:8px}
.fpb-manager-web .button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:5px 12px;border:1px solid #8c8f94;border-radius:4px;background:#f6f7f7;color:#1d2327;text-decoration:none;cursor:pointer;font:inherit}
.fpb-manager-web .button-primary{background:#2271b1;border-color:#2271b1;color:#fff}
.fpb-manager-web .button:disabled{opacity:.55;cursor:not-allowed}
.fpb-table-scroll{overflow-x:auto}
.fpb-history-table{width:100%;border-collapse:collapse;background:#fff}
.fpb-history-table th,.fpb-history-table td{padding:9px 10px;border-bottom:1px solid #dcdcde;text-align:left;vertical-align:top;font-size:13px}
.fpb-history-table th{font-weight:700;background:#f6f7f7;white-space:nowrap}
@media(max-width:800px){.fpb-manager-title{display:block}.fpb-login-user{margin-top:8px}.fpb-manager-web{padding-left:4px;padding-right:4px}.fpb-manager-title h2{font-size:23px}}

.fpb-badge.sample{background:#eef2f7;border:1px solid #b9c3cf;color:#394553}
.fpb-sample-tools{margin:0 0 18px}
.fpb-sample-buttons{display:flex;gap:8px;flex-wrap:wrap}
#fpb-delete-samples{border-color:#b32d2e;color:#b32d2e}

/* v1.3.7 customer visibility */
.fpb-customer{font-weight:700;font-size:0.95em;margin-bottom:3px;line-height:1.35}.fpb-work .fpb-customer{font-size:1em}.fpb-job .fpb-customer{color:#444}

/* v1.4.0 lightweight gantt */
.fpb-process-form{display:grid;grid-template-columns:2fr 1.4fr 1fr 1fr auto;gap:10px;align-items:end;margin:12px 0 18px}.fpb-process-form label{margin:0}.fpb-process-form select{width:100%;margin-top:4px;padding:9px 10px;border:1px solid #8c8f94;border-radius:4px;background:#fff}.fpb-gantt-scroll{overflow:auto;border:1px solid #dcdcde;border-radius:8px}.fpb-gantt{min-width:900px;background:#fff}.fpb-gantt-head,.fpb-gantt-row{display:grid;grid-template-columns:240px minmax(600px,1fr) 64px;align-items:stretch}.fpb-gantt-head{position:sticky;top:0;z-index:3;background:#f6f7f7;border-bottom:1px solid #dcdcde}.fpb-gantt-label{padding:8px 10px;border-right:1px solid #dcdcde;overflow:hidden}.fpb-gantt-label small{display:block;color:#646970;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fpb-gantt-days,.fpb-gantt-track{display:grid;grid-template-columns:repeat(var(--fpb-days),minmax(34px,1fr));position:relative}.fpb-gantt-day{border-right:1px solid #eee;text-align:center;padding:7px 2px;font-size:11px;white-space:nowrap}.fpb-gantt-day.today{font-weight:700;background:#fff4ce}.fpb-gantt-row{border-bottom:1px solid #eee;min-height:48px}.fpb-gantt-track{background-image:linear-gradient(to right,rgba(0,0,0,.06) 1px,transparent 1px);background-size:calc(100% / var(--fpb-days)) 100%;align-items:center}.fpb-gantt-bar{height:26px;border-radius:5px;background:#2271b1;color:#fff;font-size:11px;line-height:26px;padding:0 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;z-index:1;margin:0 2px}.fpb-gantt-bar.rush{outline:2px solid #dba617}.fpb-process-delete{align-self:center;margin:6px}.fpb-gantt-card{overflow:hidden}@media(max-width:900px){.fpb-process-form{grid-template-columns:1fr 1fr}.fpb-process-form button{grid-column:1/-1}.fpb-gantt-head,.fpb-gantt-row{grid-template-columns:190px minmax(600px,1fr) 64px}}

/* v1.4.1 completed items remain visible */
.fpb-job.done,.fpb-work.done{border-left-color:#4f6f52;background:#f7faf7;opacity:.92}.fpb-badge.done{background:#e5f2e6;color:#254b29}.fpb-completed-details,.fpb-front-completed{margin-top:20px;border-top:1px solid #dcdcde;padding-top:12px}.fpb-completed-details summary,.fpb-front-completed summary{cursor:pointer;padding:8px 0}.fpb-completed-list .fpb-job{margin:8px 0}.fpb-completed-work-list{margin-top:8px}.fpb-completed-work-list .fpb-work{box-shadow:none;transform:none}.fpb-reopen{border-color:#8c8f94}

/* v1.4.3 due-date calendar / future-ready simple gantt */
.fpb-gantt-legend{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 12px;font-size:12px;color:#50575e}.fpb-calendar-gantt .fpb-gantt-head,.fpb-calendar-gantt .fpb-gantt-row{grid-template-columns:250px minmax(700px,1fr) 110px}.fpb-gantt-side,.fpb-gantt-start-cell{padding:8px;border-left:1px solid #dcdcde;display:flex;align-items:center;justify-content:center;font-size:12px}.fpb-gantt-day.weekend{background:#f7f7f7}.fpb-calendar-gantt .fpb-gantt-track{min-height:48px}.fpb-simple-gantt-bar{height:14px;border-radius:7px;background:#8c8f94;align-self:center;margin:0 3px;z-index:1;opacity:.55}.fpb-simple-gantt-bar.overdue{background:#b32d2e}.fpb-simple-gantt-bar.today,.fpb-simple-gantt-bar.warning{background:#dba617}.fpb-due-marker{align-self:center;justify-self:center;z-index:2;font-size:20px;line-height:1;color:#50575e;text-shadow:0 0 2px #fff}.fpb-due-marker.overdue{color:#b32d2e}.fpb-due-marker.today,.fpb-due-marker.warning{color:#996800}.fpb-due-marker.rush{font-size:24px}.fpb-calendar-gantt .fpb-gantt-row.done{opacity:.48}.fpb-gantt-start-cell .button{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fpb-calendar-gantt .fpb-customer{display:block}@media(max-width:900px){.fpb-calendar-gantt .fpb-gantt-head,.fpb-calendar-gantt .fpb-gantt-row{grid-template-columns:190px minmax(700px,1fr) 100px}}

/* Ver.1.4.4: smartphone-friendly priority controls */
.fpb-mobile-order{display:none;gap:6px;flex-wrap:wrap}
.fpb-mobile-order .button{min-height:40px;min-width:78px;font-weight:700}
.fpb-job.fpb-moved{outline:2px solid #2271b1;outline-offset:2px}
@media(max-width:800px){
  .fpb-handle{display:none}
  .fpb-mobile-order{display:flex;width:100%;order:3}
  .fpb-actions{order:4}
  .fpb-main{width:100%}
  .fpb-mobile-order .button{flex:1;min-height:44px;font-size:15px}
}

.fpb-work-start-marker{align-self:center;justify-self:center;z-index:3;font-size:19px;line-height:1;font-weight:700;color:#2271b1;text-shadow:0 0 2px #fff}.fpb-gantt-row.done .fpb-work-start-marker{opacity:.8}


/* v1.4.8 manager card layout improvement */
.fpb-job,.fpb-work{align-items:flex-start}
.fpb-job{gap:14px}
.fpb-handle{flex:0 0 26px;align-self:flex-start;margin-top:8px;line-height:1}
.fpb-main{display:flex;flex-direction:column;gap:8px;min-width:0}
.fpb-job-title-row{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}
.fpb-job-title{display:block;font-size:18px;line-height:1.45;margin:0}
.fpb-badges{display:flex;gap:6px;flex-wrap:wrap}
.fpb-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(92px,max-content));gap:8px 14px;align-items:start}
.fpb-meta-item{display:flex;flex-direction:column;gap:2px;min-width:0}
.fpb-meta-label{font-size:12px;color:#646970;font-weight:700;line-height:1.2}
.fpb-meta-value{font-size:15px;color:#1d2327;line-height:1.35;word-break:break-word}
.fpb-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(116px,1fr));gap:8px;flex:0 0 290px;min-width:290px;align-self:flex-start}
.fpb-actions-grid .button{width:100%;min-height:42px;white-space:nowrap;padding:8px 10px;font-size:15px}
.fpb-actions-grid .button-primary{font-weight:700}
@media(max-width:1100px){
  .fpb-actions-grid{flex-basis:250px;min-width:250px}
  .fpb-actions-grid .button{font-size:14px}
}
@media(max-width:800px){
  .fpb-job{gap:10px}
  .fpb-main{width:100%;order:1}
  .fpb-mobile-order{display:grid;grid-template-columns:1fr 1fr;width:100%;order:2}
  .fpb-actions-grid{order:3;display:grid;grid-template-columns:1fr 1fr;width:100%;min-width:0;flex:1 1 100%}
  .fpb-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
  .fpb-job-title{font-size:16px}
}
