:root{font-family:system-ui,-apple-system,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;color:#1a2b3c;background:#f5f7fa}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}.hello{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem}.hello .status,.dashboard .status,.qr-labels .status{color:#667;font-size:.9rem}.login{max-width:420px;margin:0 auto;padding:3rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.login .tagline{color:#667;margin-bottom:1.5rem}.login form{display:flex;flex-direction:column;gap:1rem}label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600}input,select{font-size:1.1rem;padding:.75rem;border:1px solid #c3ccd6;border-radius:8px;background:#fff}button{font-size:1rem;padding:.6rem 1rem;border:1px solid #c3ccd6;border-radius:8px;background:#fff;cursor:pointer}.btn-big{font-size:1.2rem;font-weight:700;padding:1rem;border:none;border-radius:10px;background:#1a5fb4;color:#fff}.btn-big:disabled{opacity:.6}.error{color:#c01c28;font-size:.9rem}.notice{color:#1a5fb4;font-size:.9rem}.projects{max-width:860px;margin:0 auto;padding:1.5rem 1.25rem 4rem;display:flex;flex-direction:column;gap:1.5rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.topbar .who{color:#667;font-size:.85rem}.project-form{background:#fff;border:1px solid #e1e6ec;border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.project-form .fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.draft-steps{display:flex;flex-direction:column;gap:.6rem}.draft-steps .template-list li{background:#f5f7fa}.project-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e1e6ec;border-radius:12px;overflow:hidden}.project-table th,.project-table td{text-align:left;padding:.75rem;border-bottom:1px solid #eef1f5;font-size:.95rem}.project-table th{background:#f0f3f7;font-size:.85rem}.danger{color:#c01c28;border-color:#e6b3b8}.empty{color:#667;text-align:center;padding:2rem 0}.steps{max-width:640px;margin:0 auto;padding:1.5rem 1.25rem 4rem;display:flex;flex-direction:column;gap:1rem}.back{align-self:flex-start;border:none;background:none;padding:.25rem 0;color:#1a5fb4;font-weight:600;cursor:pointer}.step-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.step-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;background:#fff;border:1px solid #e1e6ec;border-radius:12px;padding:1rem}.step-list li.done{background:#f5f8fc;color:#667}.step-name{font-size:1.05rem;font-weight:600;flex:1 1 auto}.step-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:0 0 auto}.step-outsource{display:flex;align-items:center;gap:.6rem;flex:1 1 100%;font-size:.85rem;color:#667}.step-outsource label{display:flex;flex-direction:row;align-items:center;gap:.3rem;font-size:.85rem;font-weight:400;color:#667}.step-outsource input[type=checkbox]{width:1rem;height:1rem}.step-outsource input[type=date]{font-size:.8rem;padding:.25rem .4rem;width:auto}.step-quantity,.work-quantity,.work-defect-form label{display:flex;flex-direction:row;align-items:center;gap:.4rem;flex:1 1 100%;font-size:.85rem;font-weight:400;color:#667}.step-quantity input[type=number],.work-quantity input[type=number]{font-size:.95rem;padding:.35rem .3rem;width:3.5rem;text-align:center}.quantity-stepper{display:flex;align-items:center;gap:.3rem}.quantity-stepper-total{font-variant-numeric:tabular-nums;color:#445b6e}.quantity-stepper-btn{font-size:1rem;font-weight:700;width:1.9rem;height:1.9rem;padding:0;line-height:1;border-radius:6px;flex:0 0 auto}.quantity-stepper-btn:disabled{opacity:.5}.work-defect-form{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;flex:1 1 100%;font-size:.85rem;color:#667}.work-defect-form label{flex:0 0 auto}.work-defect-form input[type=number]{width:4.5rem;font-size:.95rem;padding:.35rem .5rem}.work-defect-form input[type=text]{width:10rem;font-size:.9rem;padding:.35rem .5rem}.templates,.workers,.cost{max-width:640px;margin:0 auto;padding:1.5rem 1.25rem 4rem;display:flex;flex-direction:column;gap:1rem}.worker-role{color:#667;font-size:.8rem;font-weight:400}.template-form{display:flex;gap:.75rem}.template-form input{flex:1}.template-list{list-style:none;display:flex;flex-direction:column;gap:.6rem}.template-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;background:#fff;border:1px solid #e1e6ec;border-radius:10px;padding:.75rem 1rem}.template-name{font-weight:600;flex:1 1 auto}.template-actions{display:flex;align-items:center;gap:.4rem;flex:0 0 auto}.project-files{margin-bottom:1.25rem}.project-files h3{margin:0 0 .5rem;font-size:1rem}.project-files .template-list{margin-bottom:.75rem}.file-open{background:none;border:none;padding:0;color:#1a5fb4;font-weight:600;text-align:left;flex:1 1 auto}.file-open:hover{text-decoration:underline}.file-upload-label{display:block;text-align:center;cursor:pointer}.file-upload-label.is-uploading{opacity:.6}.file-upload-label input[type=file]{display:none}.work{max-width:640px;margin:0 auto;padding:1.5rem 1.25rem 4rem;display:flex;flex-direction:column;gap:1rem}.work-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.work-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;background:#fff;border:1px solid #e1e6ec;border-radius:12px;padding:1rem}.work-list li.in-progress{background:#fff8e8;border-color:#e0b34d}.work-list li.complete{background:#eaf7ee;border-color:#3f7a52}.work-info{display:flex;flex-direction:column;gap:.2rem}.work-number{font-size:.85rem;color:#667}.work-name{font-size:1.1rem;font-weight:700}.work-step{font-size:.95rem;color:#445b6e}.work-meta{font-size:.82rem;color:#667}.work-sequence{word-break:break-word}.work-badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;color:#fff;background:#3f7a52}.work-actions{display:flex;align-items:center;gap:.6rem;flex:0 0 auto}.btn-complete{background:#3f7a52}.work-detail-link{border:none;background:none;padding:0;color:#667;font-size:.8rem;text-decoration:underline;cursor:pointer}.tabs{display:flex;gap:.5rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #e1e6ec;overflow-x:auto;-webkit-overflow-scrolling:touch}.tabs button{flex:0 0 auto;padding:.65rem 1rem;min-height:44px;white-space:nowrap}.tabs button.active{background:#1a5fb4;border-color:#1a5fb4;color:#fff;font-weight:700}.tabs button.scan-tab{border-color:#1a5fb4;font-weight:700}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.dashboard{display:flex;flex-direction:column;gap:1rem}.dashboard-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e1e6ec;border-radius:12px;overflow:hidden}.dashboard-table th,.dashboard-table td{text-align:left;padding:.75rem;border-bottom:1px solid #eef1f5;font-size:.95rem}.dashboard-table th{background:#f0f3f7;font-size:.85rem}.dashboard-table tbody tr{cursor:pointer}.dashboard-table tbody tr:hover{background:#f5f8fc}.dashboard-table tr.alert-soon{background:#fff4e5}.dashboard-table tr.alert-soon:hover{background:#ffe9cc}.dashboard-table tr.alert-overdue{background:#fdecec}.dashboard-table tr.alert-overdue:hover{background:#fbd9d9}.alert-badge{display:inline-block;margin-left:.5rem;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;color:#fff;background:#c01c28}.alert-soon .alert-badge{background:#e07a1f}.step-bar{display:flex;gap:2px;height:8px;margin-bottom:.3rem}.step-bar-segment{flex:1 1 0;min-width:4px;border-radius:2px;background:#fff;border:1px solid #c3ccd6}.step-bar-segment.done{background:#1a5fb4;border-color:#1a5fb4}.step-bar-segment.pending.outsourced{background:#6b7684;border-color:#6b7684}.step-bar-count{font-size:.8rem;color:#667}.outsource-badge{display:inline-block;margin-left:.5rem;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;color:#fff;background:#6b7684}.analytics{display:flex;flex-direction:column;gap:1.5rem}.analytics-card{background:#fff;border:1px solid #e1e6ec;border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.analytics-card h3{font-size:1rem}.analytics-summary{font-size:1.1rem;font-weight:700}.analytics-table{width:100%;border-collapse:collapse}.analytics-table th,.analytics-table td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid #eef1f5;font-size:.9rem}.analytics-table th{background:#f0f3f7;font-size:.8rem}.qr-labels{display:flex;flex-direction:column;gap:1rem}.hint{color:#667;font-size:.9rem}.label-picker{list-style:none;display:flex;flex-direction:column;gap:.25rem}.label-picker .pick{flex-direction:row;align-items:center;gap:.5rem;font-weight:400;font-size:1rem;padding:.35rem 0}.label-picker input[type=checkbox]{width:1.4rem;height:1.4rem}.label-sheet{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.label-cell{display:flex;align-items:center;gap:.75rem;border:1px dashed #c3ccd6;border-radius:8px;padding:.75rem;background:#fff;break-inside:avoid}.label-cell img{width:110px;height:110px}.label-cell .label-text{display:flex;flex-direction:column;gap:.15rem;font-size:.85rem}.label-cell .label-text strong{font-size:1.05rem}.scan{display:flex;flex-direction:column;gap:1rem;max-width:560px;margin:0 auto}.scan-frame{border-radius:12px;overflow:hidden;background:#000;aspect-ratio:3 / 4}.scan-frame video{width:100%;height:100%;object-fit:cover}.scan-canvas{display:none}.scan-error{display:flex;flex-direction:column;gap:.75rem}.quote-printhead{display:none;background:#fff;color:#111;padding:1rem}.quote-print-title{text-align:center;font-size:1.4rem;font-weight:700;letter-spacing:.2em;margin-bottom:1.5rem}.quote-print-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.75rem}.quote-print-client{font-size:1.1rem;font-weight:700;border-bottom:1px solid #333;padding-bottom:.25rem}.quote-print-meta{font-size:.85rem;color:#444}.quote-print-subject{margin-bottom:.75rem}.quote-print-amount{font-size:1.15rem;font-weight:700;margin-bottom:1rem}.quote-print-breakdown td.r{text-align:right;font-variant-numeric:tabular-nums}@media print{.no-print{display:none!important}body{background:#fff}.page{padding:0}.label-sheet{gap:4mm}.label-cell{border:1px dashed #999}.quote-printhead{display:block}.quote-printhead table{width:100%;border-collapse:collapse}.quote-printhead td{padding:.3rem .2rem;font-size:.95rem}.quote-print-sum td{border-top:2px solid #333;font-weight:700;font-size:1.1rem}}.quote{max-width:640px;margin:0 auto;padding:1.5rem 1.25rem 4rem;display:flex;flex-direction:column;gap:1rem}.quote form{display:flex;flex-direction:column;gap:1rem}.quote .card{background:#fff;border:1px solid #e1e6ec;border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.quote .row{display:flex;gap:.75rem}.quote .row>div{flex:1;display:flex;flex-direction:column;gap:.35rem}.quote-item-row{display:grid;grid-template-columns:1.5rem 2fr 1fr 4rem 2.5rem;gap:.5rem;align-items:center}.quote-confidence-flag{text-align:center;font-size:1rem}.quote .total{background:linear-gradient(135deg,#1a2b3c,#1a5fb4);color:#fff;border-radius:14px;padding:1.25rem;text-align:center}.quote .total .yen{font-size:2rem;font-weight:700}.quote .total .cap{font-size:.8rem;opacity:.85}.quote .gridset{display:grid;grid-template-columns:1fr 90px;gap:.5rem .75rem;align-items:center}.quote .gridset label{font-weight:500;font-size:.85rem}.quote .gridset input{padding:.5rem;font-size:.95rem;text-align:right}.quote summary{cursor:pointer;font-weight:700;color:#1a5fb4}.quote-ai-card{border:2px solid #1a5fb4!important}.quote-convert-form{flex-basis:100%;display:flex;flex-direction:column;gap:.5rem;border-top:1px dashed #c3ccd6;margin-top:.5rem;padding-top:.75rem}.quote-drawing-thumb{max-width:100%;max-height:200px;border:1px solid #c3ccd6;border-radius:8px}
