:root{--bg:#f6f5f1;--card:#fff;--ink:#1f2328;--sub:#5b616b;--line:#dcd9d1;--accent:#2b5fd9;--late:#c62828;--late-bg:#fdecea;font-size:18px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer}.app{max-width:1280px;margin:0 auto;padding:16px}.top h1{margin:0 0 4px;font-size:1.7rem}.top p{color:var(--sub);margin:0 0 16px}.layout{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}@media (width>=1000px){.layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start}aside{position:sticky;top:16px}}.filters{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:12px 14px}.filter-row,.tag-line{align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.filter-label{color:var(--sub);flex:0 0 3.6em;padding-top:6px;font-weight:700}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;min-height:40px;padding:6px 14px}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.chip.static{cursor:default;background:#f1efe9;min-height:0;padding:3px 12px}.filter-foot{align-items:center;gap:14px;display:flex}.link{color:var(--accent);background:0 0;border:0;padding:6px 0;text-decoration:underline}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1300px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.card{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:12px;width:100%;padding:0;display:block;overflow:hidden}.card:hover,.card:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2b5fd933}.card img{aspect-ratio:4/5;object-fit:cover;width:100%;display:block}.card-body{padding:8px 10px 10px;display:block}.card-name{align-items:center;gap:6px;font-weight:700;display:flex}.dot{background:var(--accent);border-radius:50%;width:9px;height:9px}.card-brand{color:var(--sub);font-size:.9rem;display:block}.mini-tags{color:var(--sub);flex-wrap:wrap;gap:4px;margin-top:4px;font-size:.8rem;display:flex}.mini-tags span{background:#f1efe9;border-radius:6px;padding:0 6px}.empty{background:var(--card);border:1px dashed var(--line);text-align:center;color:var(--sub);border-radius:12px;padding:24px}.requests{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px}.requests h2{margin:0 0 10px;font-size:1.15rem}.requests ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.req{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.req.late{border-color:var(--late);background:var(--late-bg);color:var(--late)}.req-title{overflow-wrap:anywhere;display:block}.req-meta{color:var(--sub);flex-wrap:wrap;gap:4px 12px;margin-top:2px;font-size:.9rem;display:flex}.req.late .req-meta{color:var(--late)}.req-due{font-weight:700}.req-status{color:var(--ink);background:#f1efe9;border-radius:6px;padding:0 8px}.note{color:var(--sub);margin:10px 0 0;font-size:.8rem}.overlay{z-index:10;background:#14161aa6;justify-content:center;align-items:flex-start;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--card);border-radius:14px;grid-template-columns:minmax(0,1fr);gap:16px;width:100%;max-width:860px;padding:16px;display:grid;position:relative}@media (width>=720px){.modal{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.modal img{object-fit:contain;background:#eee;border-radius:10px;width:100%;max-height:80vh}.close{z-index:1;border:1px solid var(--line);background:#fff;border-radius:50%;width:44px;height:44px;position:absolute;top:8px;right:8px}.modal-info h2{margin:0 0 8px;padding-right:48px}.brand-line,.tone{margin:0 0 10px}.tone strong,.brand-line strong{color:var(--sub);font-size:.85rem;display:block}.fb{margin-top:14px;display:block}.fb strong{margin-bottom:4px;display:block}.fb input{width:100%;font:inherit;border:1px solid var(--line);border-radius:8px;padding:10px 12px}.fb small{color:var(--sub)}.pager{align-items:center;gap:10px;margin-bottom:10px;display:flex}.pager-btn{border:1px solid var(--line);background:#fff;border-radius:10px;min-height:44px;padding:0 14px}.pager-pos{color:var(--sub)}.req-btn{text-align:left;background:#fff;width:100%;display:block}.req-btn:hover,.req-btn:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2b5fd933}.req-btn.late{background:var(--late-bg)}.req.picked{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.req-hint{color:var(--accent);margin-top:4px;font-size:.85rem;display:block}.req.late .req-hint{color:var(--late)}.top-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.top-row h1{margin:0}.primary{background:var(--accent);color:#fff;border:0;border-radius:10px;min-height:44px;padding:0 18px;font-weight:700}.primary:disabled{opacity:.5;cursor:not-allowed}.toast{background:#e7f4ea;border:1px solid #b9dcc1;border-radius:10px;padding:8px 12px;color:#1d5a2c!important}.add-form .add-preview img{object-fit:contain;width:100%;max-height:60vh}.add-form select,.add-form input[type=file],.tag-add input{width:100%;font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 12px}.tag-add{gap:8px;margin-top:6px;display:flex}.form-error{background:var(--late-bg);border:1px solid var(--late);color:var(--late);border-radius:8px;padding:8px 12px}.form-actions{gap:10px;margin-top:14px;display:flex}.empty p{margin:0 0 10px}
