.nav-file-select{background:#ffffff26;border-color:#ffffff4d;color:#fff;font-size:.88rem;min-width:140px;height:34px;padding:0 8px;box-sizing:border-box}.nav-file-select option{background:#1a73e8;color:#fff}[data-theme=dark] .nav-file-select option{background:#1e1e1e}.nav-search-input{background:#ffffff26;border-color:#ffffff4d;color:#fff;font-size:.88rem;width:200px;height:34px;padding:0 10px;box-sizing:border-box}.nav-search-input::placeholder{color:#fff9}.nav-file-select:focus,.nav-search-input:focus{background:#ffffff40;border-color:#fff9;outline:none}.feature-title-wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.roadmap-filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding-top:6px;flex-shrink:0}.roadmap-filter-btn{border:1px solid var(--primary);color:var(--primary);background:transparent;padding:3px 12px;font-size:.82rem;font-family:Prompt,sans-serif;cursor:pointer;transition:background .15s,color .15s}.roadmap-filter-btn:hover{background:#1a73e81a}.roadmap-filter-btn.active{background:var(--primary);color:#fff}[data-theme=dark] .feature-section,[data-theme=dark] .module-block{background:var(--surface);border-color:var(--line)}[data-theme=dark] .module-summary{background:#1a237e22;color:var(--primary);border-color:var(--line)}[data-theme=dark] .item-cell{background:var(--surface);border-color:var(--line)}[data-theme=dark] .file-select,[data-theme=dark] .search-input{background:var(--surface);border-color:var(--line);color:var(--text)}[data-theme=dark] .search-hit{background:#f9a82550;color:var(--text)}[data-theme=dark] .project-link{background:var(--primary);color:#121212}[data-theme=dark] .feat-no{background:#4caf501f;border-color:#4caf5059;color:#81c784}[data-theme=dark] .module-badge{color:var(--md-sys-color-on-primary)}[data-theme=dark] .feat-roadmap{background:#1a73e826}.btn-base{padding:8px 16px;font-weight:500;cursor:pointer;font-family:Prompt,sans-serif}.feature-section{background:var(--surface);padding:16px}.feature-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}.feature-title{font-size:1.4rem;font-weight:600;color:var(--text);font-family:Open Sans,sans-serif}.feature-subtitle{color:var(--text-secondary);font-size:.9rem;margin-top:2px}.project-link{padding:0 12px;height:34px;box-sizing:border-box;background:#fff3;color:#fff;font-weight:400;font-size:.88rem;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.3);transition:background .2s;white-space:nowrap}.project-link:hover{background:#ffffff52;text-decoration:none;color:#fff}.project-link-icon{font-size:18px}.file-select,.search-input{border:1px solid #3c6fb2;color:var(--text);font-family:Prompt,sans-serif;outline:none;transition:border-color .2s}.file-select:focus,.search-input:focus{border-color:var(--primary)}.file-select{min-width:180px}.search-input{width:min(420px,100%);padding:8px 12px}.module-block{margin-bottom:8px;border:1px solid var(--line);overflow:clip;background:var(--surface)}.module-summary{padding:10px 16px;cursor:pointer;font-weight:500;background:#e8f0fe;color:#1a73e8;list-style:none;display:flex;align-items:center;gap:10px;position:sticky;top:52px;z-index:30;border-bottom:1px solid var(--line)}.module-chevron{display:inline-block;transition:transform .2s;font-size:19px}.module-badge{background:var(--primary);color:var(--md-sys-color-on-primary);padding:2px 8px;font-size:.79rem;font-weight:500}.module-content{padding:0;overflow-x:auto;overflow-y:visible}.module-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-weight:300}.module-table tbody .item-row:last-child td{border-bottom:none!important}.item-cell{padding:8px 16px;border-bottom:1px solid var(--line);vertical-align:top;background:var(--surface);width:42%}.item-cell-d{width:58%;border-left:1px solid var(--line)}.feat-name{display:grid;grid-template-columns:auto 1fr;column-gap:11px;align-items:start;font-weight:500}.feat-no-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}.feat-no{display:inline-block;min-width:52px;text-align:center;font-variant-numeric:tabular-nums;background:#e8f5e9;border:1px solid #A5D6A7;padding:2px 8px;color:#2e7d32;font-size:.79rem;font-weight:500}.feat-head{min-width:0;display:flex;align-items:flex-start;gap:8px}.feat-title{white-space:pre-wrap;overflow-wrap:anywhere;flex:1}.feat-roadmap{font-weight:400;color:var(--primary);white-space:nowrap;font-size:.79rem;background:#1a73e81a;padding:1px 6px;text-align:center;width:100%}.item-d{white-space:pre-wrap;overflow-wrap:anywhere}.feat-remark{color:var(--text-secondary);margin-top:4px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.88rem}.no-results{display:none;text-align:center;color:var(--text-secondary);padding:40px}.search-hit{background:#fff176;padding:0 2px}.detail-section{background:var(--surface);padding:18px}.detail-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}.detail-title{font-size:1.4rem;font-weight:700;color:#0b3f63}.detail-source{color:#4f6478;font-size:.95rem}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.detail-back{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#184461}.btn-save-customer{padding:8px 12px;border:none;border-radius:8px;background:#1f8a70;color:#fff;font-weight:600;cursor:pointer}.btn-print{padding:8px 12px;border:none;border-radius:8px;background:#c4831a;color:#fff;font-weight:600;cursor:pointer}.detail-module{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:12px;overflow:hidden}.detail-module>summary{padding:10px 12px;background:#eaf4ff;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:700;color:#0b3f63}.detail-chevron{font-size:18px}.detail-module-badge{background:#0b4f7b;color:#fff;border-radius:5px;padding:2px 8px;font-size:12px}.detail-module-name{flex:1}.detail-table-wrap{padding:8px 10px 10px 24px;overflow-x:auto}.detail-table{width:100%;border-collapse:collapse;font-size:13px}.detail-table td,.detail-table th{border-bottom:1px solid var(--line);padding:8px 10px;vertical-align:top}.detail-table tr:last-child td{border-bottom:none}.detail-feature-head{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;margin-bottom:6px}.new-item .detail-feature-head{align-items:start}.new-item td{background:#fff5f5}.detail-no{display:inline-block;min-width:52px;text-align:center;font-variant-numeric:tabular-nums;background:linear-gradient(140deg,#43b084bf,#8cdfbeb3);border:1px solid rgba(51,153,109,.45);border-radius:5px;padding:2px 8px;color:#0b3f2d;font-size:.79rem;font-weight:600}.detail-no-new{background:linear-gradient(140deg,#e53e3e,#fc8181);border-color:#b91c1c73;color:#fff;white-space:pre-wrap;overflow-wrap:anywhere;font-weight:500}.detail-roadmap{font-weight:300;color:#256d85}.standard-item-wrap{position:relative;padding-right:70px}.standard-item-wrap>.btn-unuse-item{position:absolute;top:0;right:0}.btn-unuse-item{border:1px solid #cbd5e0;border-radius:5px;padding:2px 8px;background:#f7fafc;color:#4a5568;cursor:pointer;font-size:11px;font-family:Sarabun,sans-serif;flex-shrink:0}.item-unused .btn-unuse-item{background:#ebf8ff;border-color:#90cdf4;color:#2b6cb0}.item-unused .detail-feature-title,.item-unused .detail-desc{text-decoration:line-through;color:#a0aec0}.item-unused .detail-no{opacity:.45}.btn-remove-item{border:none;background:none;cursor:pointer;color:#b91c1c;padding:2px;display:flex;align-items:center;flex-shrink:0}.btn-remove-item .material-symbols-rounded{font-size:18px}.btn-add-item{border:none;border-radius:6px;padding:5px 9px;background:#0b4f7b;color:#fff;cursor:pointer;font-size:12px}.detail-desc{margin-top:2px;padding-left:64px;white-space:pre-wrap;overflow-wrap:anywhere}.requirement-wrap{margin-top:8px;padding-left:64px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.requirement-input{flex:1;min-width:220px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:12px}.new-item-editor{flex:1;display:flex;flex-direction:column;gap:8px}.new-item-input,.new-item-textarea{width:100%;border:1px solid var(--line);border-radius:6px;font-size:12px;padding:6px 8px;color:#b91c1c}.new-item-textarea{min-height:64px;resize:vertical;font-family:inherit}.modal-new-item{display:none;position:fixed;inset:0;background:#00000073;z-index:1200;align-items:center;justify-content:center}.modal-new-item-box{width:min(620px,95vw);background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 10px 30px #0000002e;font-family:Sarabun,sans-serif}.modal-new-item-title{font-size:1.1rem;color:#0b3f63;margin-bottom:10px}.modal-label{display:block;font-size:12px;color:#3f4f60;margin-bottom:4px}.modal-input,.modal-textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-family:Sarabun,sans-serif}.modal-input{margin-bottom:10px}.modal-textarea{min-height:110px;resize:vertical}.modal-error{display:none;color:#c03636;font-size:12px;margin-top:8px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.modal-btn-cancel{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.modal-btn-confirm{padding:8px 12px;border:none;border-radius:8px;background:#0b4f7b;color:#fff;font-weight:600;cursor:pointer}@media print{*{background:transparent!important;box-shadow:none!important;text-shadow:none!important;color:#000!important}nav,#btn-save-customer,#btn-print,.btn-add-item,a,.modal-new-item,.material-symbols-rounded,.chevron{display:none!important}section,.detail-module,.detail-table,.detail-table td,.detail-table th{border:none!important;border-radius:0!important}.detail-module{break-inside:avoid;margin-bottom:10px}.btn-unuse-item,.btn-remove-item{display:none!important}.item-unused .detail-feature-title,.item-unused .detail-desc{text-decoration:line-through!important}.requirement-input,.new-item-input,.new-item-textarea{border:none!important;padding:0!important;background:transparent!important}.requirement-input{color:#c05c00!important}.requirement-input:placeholder-shown{display:none!important}.requirement-wrap:has(.requirement-input:placeholder-shown){display:none!important}body{background:#fff!important}}
