/* Styles for the configurable-architecture additions.
   The original styles.css is unchanged; this file only adds styles for new
   pieces (more needs, configure, module library) using the same
   palette and type scale. */

/* More needs */
.more-needs{margin-top:12px;border:1px solid #dce2d7;border-radius:9px;background:#fff}
.more-needs>summary,.library-group>summary,.module-options>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px}
.more-needs>summary::-webkit-details-marker,.library-group>summary::-webkit-details-marker,.module-options>summary::-webkit-details-marker{display:none}
.more-needs>summary{padding:14px 15px;font-size:12px;font-weight:600}
.more-needs>summary small,.library-group>summary small{margin-left:auto;font-weight:400;font-size:9px;color:#7b8779}
.more-needs>summary:after,.library-group>summary:after{content:'+';font-size:16px;line-height:1;color:#637667;margin-left:10px}
.more-needs[open]>summary:after,.library-group[open]>summary:after{content:'−'}
.more-needs>summary:focus-visible,.library-group>summary:focus-visible,.module-options>summary:focus-visible{outline:3px solid #b95027;outline-offset:2px;border-radius:6px}
.need-group{padding:0 13px 14px}
.need-group h4{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:#758361;margin:8px 0 0}
.need-group .need-grid{margin-top:9px}

/* Rename & configure */
.module-options{margin-top:12px;border-top:1px dashed #e0e5da;padding-top:10px}
.module-options>summary{font-size:10px;font-weight:600;color:#4f6743;min-height:32px}
.module-options>summary svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.module-options>summary small{font-size:8px;font-weight:600;background:#f7ede0;color:#87512d;padding:3px 6px;border-radius:4px}
.module-options>summary:after{content:'Show';margin-left:auto;font-weight:400;font-size:9px;color:#7f8975;text-decoration:underline;text-underline-offset:3px}
.module-options[open]>summary:after{content:'Hide'}
.module-options-body{padding:6px 0 4px}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin-top:12px}
.setting-field{display:block;font-size:10px;font-weight:600;color:#4b5e48}
.setting-field input,.setting-field select{margin-top:5px;min-height:36px;padding:7px 10px;font-size:11px;background:#fafbf8}
.setting-check{display:flex;align-items:flex-start;gap:8px;font-size:10px;color:#4b5e48;cursor:pointer;padding:3px 0}
.setting-check input{appearance:none;width:16px;height:16px;min-height:16px;padding:0;margin:1px 0 0;flex-shrink:0;border:1.5px solid #c7d1c0;border-radius:4px;background:#fff;cursor:pointer}
.setting-check input:checked{background:#365b38;border-color:#365b38;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m4 9 3 3 7-7' fill='none' stroke='white' stroke-width='1.8'/%3E%3C/svg%3E")}
.setting-multi{border:0;padding:0;margin:0;min-width:0;grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:18px}
.setting-multi legend{font-size:10px;font-weight:600;color:#4b5e48;margin-bottom:4px;padding:0}
.setting-help{display:block;font-size:9px;color:#7f8975;margin-top:4px;line-height:1.5}

/* Module library */
.library-heading{margin-top:30px}
.module-library{margin-top:16px;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}
.library-group{border-bottom:1px solid #e2e7dc}
.library-group:last-child{border-bottom:0}
.library-group>summary{padding:15px 18px;font-size:12px;font-weight:600}
.library-list{list-style:none;margin:0;padding:0 18px 10px}
.library-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-top:1px solid #eef1ea}
.library-item>div{flex:1;min-width:0}
.library-item strong{font-size:12px;font-weight:600;display:block}
.library-item p{font-size:10px;line-height:1.6;color:#6b7764;margin-top:3px}
.library-item.suggested{background:linear-gradient(90deg,#f1f5ec,transparent 70%);margin-inline:-18px;padding-inline:18px}
.suggested-tag{display:inline-block;font-size:8px;font-weight:600;color:#54713b;background:#e3ecd8;padding:3px 7px;border-radius:4px;margin-top:6px}
.add-button{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;border:1px solid #a9b59d;background:#fff;color:var(--forest);border-radius:6px;font-size:10px;font-weight:600;padding:7px 11px;min-height:34px}
.add-button:hover{background:#e2e8d8}
.add-button svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.plan-settings{color:#7b8870}

@media(max-width:850px){.settings-grid,.setting-multi{grid-template-columns:1fr}.library-group>summary{padding:13px 14px}.library-list{padding-inline:14px}.library-item.suggested{margin-inline:-14px;padding-inline:14px}}
@media(max-width:650px){.add-button span{display:none}.add-button{padding:7px 9px}.more-needs>summary small,.library-group>summary small{font-size:8px}}
@media print{.module-options,.module-library{display:none!important}}

/* FIX for a pre-existing display bug (also present in the original prototype):
   module and need icons rendered as solid black shapes because only
   [data-icon] icons were told to draw as outlines. This makes them line icons
   like the rest of the page. Delete this rule to restore the original look. */
.module-icon svg,.need-icon svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;display:block}

/* Hero example: "Configure" badge (Prompt 7 — modules are configured, never repurposed) */
.demo-state.configure{background:#ebc193;color:#503c23}
.setting-list textarea{width:100%;font:inherit;font-size:11px;line-height:1.5;border:1px solid #cdd6cc;border-radius:8px;padding:8px 10px;margin-top:8px;resize:vertical;background:#fff;color:var(--ink)}
