:root{--bg: #f7f6f3;--card: #ffffff;--ink: #1f2421;--muted: #6b7280;--accent: #2f6f4f;--accent-ink: #ffffff;--border: #e3e1db;--danger: #b23b3b;--radius: 8px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}.app{max-width:880px;margin:0 auto;padding:24px 16px 64px}.app-header h1{margin:0 0 4px;font-size:1.6rem}.app-header p{margin:0 0 20px;color:var(--muted)}.searchbar{display:flex;gap:8px;margin-bottom:16px}.searchbar input{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem}button{cursor:pointer;font-size:.95rem;padding:9px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);color:var(--ink)}button:hover{border-color:var(--accent)}button[disabled]{opacity:.6;cursor:default}.searchbar button,.request-books,.add-selected,.modal-actions button[type=submit]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.error{color:var(--danger);margin:8px 0}.results{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:20px}.results table{width:100%;border-collapse:collapse}.results th{text-align:left;font-size:.8rem;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--border)}.results td{padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}.cover{width:40px;height:56px;object-fit:cover;border-radius:4px;cursor:zoom-in}.no-cover{display:inline-block;width:40px;text-align:center;color:var(--muted)}.results td.availability{white-space:normal}.source-badge{display:inline-block;font-size:.68rem;line-height:1.25;font-weight:600;padding:3px 8px;border-radius:999px;white-space:normal;max-width:130px}.badge-stock{background:#e9f3ec;color:#1c7a3f;border:1px solid rgba(28,122,63,.25)}.badge-discovery{background:#fff4e5;color:#9a5b00;border:1px solid rgba(154,91,0,.25)}.results tr.desc-row td{padding-top:0;border-bottom:1px solid var(--border)}.book-description{margin:0 0 6px;padding:8px 10px;background:var(--bg);border-radius:6px;font-size:.85rem;line-height:1.45;color:var(--muted);white-space:pre-wrap}.add-selected{margin-top:12px}.results td.price{white-space:nowrap;font-weight:600;color:var(--accent)}.request-list{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:20px}.request-list h2{font-size:1.1rem;margin:4px 0 12px}.request-list ul{list-style:none;margin:0 0 12px;padding:0}.request-list-hint{margin:0 0 10px;color:var(--muted);font-size:.9rem}.request-list li{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.rl-title{flex:1 1 240px}.rl-pages{color:var(--muted);font-size:.85rem;white-space:nowrap}.rl-price{font-weight:600;color:var(--accent);white-space:nowrap}.results td.pages{white-space:nowrap;color:var(--muted)}.rl-platforms{display:flex;gap:12px}.rl-platform{display:inline-flex;align-items:center;gap:4px;font-size:.9rem;color:var(--ink);white-space:nowrap}.rl-platform input{margin:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--card);border-radius:var(--radius);padding:20px;width:100%;max-width:380px}.modal-tabs{display:flex;gap:8px;margin-bottom:14px}.modal-tabs .active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.modal form{display:flex;flex-direction:column;gap:10px}.modal input{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}.confirmation{background:#e9f3ec;border:1px solid var(--accent);border-radius:var(--radius);padding:16px;margin-top:20px}.confirmation p{margin:0 0 12px}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;z-index:1000}.lightbox-frame{position:relative;display:inline-block;max-width:92vw;max-height:92vh;cursor:zoom-out}.lightbox-img{display:block;max-width:92vw;max-height:92vh;object-fit:contain;border-radius:6px;box-shadow:0 8px 40px #00000080}.lightbox-watermark{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:6px;background-repeat:repeat;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='140'%3E%3Ctext%20x='8'%20y='80'%20transform='rotate(-30%20100%2070)'%20font-family='Arial,sans-serif'%20font-size='20'%20fill='white'%20fill-opacity='0.6'%3Eketabb.com%3C/text%3E%3C/svg%3E")}@media (max-width: 600px){.app{padding:16px 12px 56px}.app-header h1{font-size:1.3rem}.app-header p{font-size:.92rem}.searchbar{flex-direction:column;gap:8px}.searchbar input,.searchbar button{width:100%;font-size:1rem;padding:12px;min-height:44px}.results{background:transparent;border:none;padding:0}.results table,.results tbody,.results tr,.results td{display:block;width:100%}.results thead{display:none}.results .book-row{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:12px;display:grid;column-gap:12px;row-gap:2px;align-items:start;grid-template-columns:72px 1fr;grid-template-areas:"cover title" "cover author" "cover price" "cover pages" "avail avail" "qty   qty" "add   add"}.results .book-row td{border:none;padding:2px 0}.results .book-row .cell-select{position:absolute;top:8px;right:8px;width:auto;padding:0}.results .book-row .cell-select input{width:20px;height:20px}.results .book-row .cell-cover{grid-area:cover;align-self:start}.cover{width:72px;height:100px}.results .book-row .cell-title{grid-area:title;font-weight:700;font-size:1.05rem;padding-right:26px}.results .book-row .cell-author{grid-area:author;color:var(--muted);font-size:.9rem}.results .book-row td.price{grid-area:price;font-size:1.05rem;margin-top:2px}.results .book-row td.price:before{content:"Price: ";font-weight:400;color:var(--muted);font-size:.85rem}.results .book-row td.pages{grid-area:pages;font-size:.85rem}.results .book-row td.pages:not(:empty):before{content:"Pages: "}.results .book-row td.availability{grid-area:avail;margin-top:8px}.source-badge{max-width:none}.results .book-row td.quantity{grid-area:qty;display:flex;align-items:center;gap:8px;margin-top:8px}.results .book-row td.quantity:before{content:"Quantity";color:var(--muted);font-size:.9rem}.results .book-row td.quantity input{width:72px;min-height:40px;font-size:1rem}.results .book-row .cell-add{grid-area:add;margin-top:10px}.results .book-row .cell-add button{width:100%;min-height:44px}.results .desc-row{margin:-10px 0 12px}.results .desc-row td{padding:0;border:none}.book-description{background:var(--card);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius)}.add-selected{width:100%;min-height:44px}.request-list{padding:12px}.request-list li{gap:6px 12px}.rl-title{flex:1 1 100%;font-weight:600}.request-books{width:100%;min-height:44px}}
