*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.6;color:#1a1a1a;background:#f5f4f0;min-height:100vh;padding:2rem 1rem}main{max-width:680px;margin:0 auto;background:#fff;border-radius:12px;padding:2.5rem 2rem;box-shadow:0 2px 16px #00000012}h1{font-size:1.75rem;font-weight:700;margin-bottom:.4rem}.subtitle{color:#555;margin-bottom:2rem}.form-section{margin-bottom:2rem}.section-label{display:block;font-weight:600;font-size:1rem;margin-bottom:.4rem}.section-hint{color:#666;font-size:.9rem;margin-bottom:.8rem}.required{color:#c0392b}input:not([type=radio]):not([type=checkbox]):not([type=search]),textarea{width:100%;border:1px solid #d0cfc9;border-radius:8px;padding:.6rem .85rem;font-size:1rem;font-family:inherit;color:#1a1a1a;transition:border-color .15s}input:not([type=radio]):not([type=checkbox]):not([type=search]):focus,textarea:focus{outline:none;border-color:#7c5cbf;box-shadow:0 0 0 3px #7c5cbf26}textarea{resize:vertical}.grid-wrapper{overflow-x:auto}.preference-grid{width:100%;border-collapse:collapse;min-width:380px}.preference-grid thead th{font-weight:600;font-size:.9rem;text-align:left;padding:.5rem 1rem .5rem 0;border-bottom:2px solid #e0dfd8;color:#1a1a1a}.preference-grid thead th:not(.col-time){text-align:center}.preference-grid tbody tr{border-bottom:1px solid #eeedea}.preference-grid tbody tr:last-child{border-bottom:none}.preference-grid td{padding:.75rem 1rem .75rem 0;font-size:.95rem;vertical-align:middle}.preference-grid td:not(.col-time){text-align:center}.col-time{width:40%}.preference-grid input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid #b0aead;border-radius:50%;cursor:pointer;transition:border-color .15s,background-color .15s;display:inline-block;vertical-align:middle}.preference-grid input[type=radio]:checked{border-color:#7c5cbf;background-color:#7c5cbf;box-shadow:inset 0 0 0 4px #fff}.preference-grid input[type=radio]:hover:not(:checked){border-color:#7c5cbf}.preference-grid input[type=radio]:focus-visible{outline:3px solid rgba(124,92,191,.35);outline-offset:2px}.error-msg{background:#fdf0ee;border:1px solid #e8b4ad;color:#9b2c2c;border-radius:8px;padding:.7rem 1rem;font-size:.9rem;margin-bottom:1rem}.success-card{text-align:center;padding:2rem 1rem}.success-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#7c5cbf;color:#fff;font-size:1.6rem;margin-bottom:1rem}.success-card h2{font-size:1.4rem;margin-bottom:.5rem}.success-card p{color:#555}button[type=submit]{display:block;width:100%;padding:.8rem 1rem;background:#7c5cbf;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}button[type=submit]:hover{background:#6a4da8}button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.btn-add{display:inline-block;padding:.55rem 1rem;background:#7c5cbf;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;margin-bottom:1.25rem}.btn-add:hover{background:#6a4da8}.btn-secondary{padding:.55rem 1rem;background:transparent;color:#555;border:1px solid #d0cfc9;border-radius:8px;font-size:.95rem;cursor:pointer;font-family:inherit}.btn-secondary:hover{background:#f5f4f0}.btn-edit,.btn-delete{font-size:.8rem;padding:.25rem .65rem;border-radius:6px;border:1px solid;cursor:pointer;font-family:inherit;background:transparent}.btn-edit{border-color:#7c5cbf;color:#7c5cbf}.btn-edit:hover{background:#f0eef7}.btn-delete{border-color:#c0392b;color:#c0392b}.btn-delete:hover{background:#fdf0ee}.site-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;font-size:.9rem;gap:1rem}.site-nav a{color:#7c5cbf;text-decoration:none}.site-nav a:hover{text-decoration:underline}.site-nav a.active{font-weight:600;text-decoration:underline}.toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}.toolbar input[type=search]{flex:1;min-width:200px;border:1px solid #d0cfc9;border-radius:8px;padding:.5rem .85rem;font-size:.95rem;font-family:inherit}.toolbar input[type=search]:focus{outline:none;border-color:#7c5cbf;box-shadow:0 0 0 3px #7c5cbf26}.filter-label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;cursor:pointer;white-space:nowrap}.play-count{font-size:.85rem;color:#888;margin-bottom:1rem}.play-card{border:1px solid #eeedea;border-radius:10px;padding:1rem 1.25rem;margin-bottom:.75rem}.play-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.play-title{font-weight:700;font-size:1rem;margin:0}.play-author{color:#555;font-size:.9rem;margin:.1rem 0 .5rem}.play-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.badge{display:inline-block;font-size:.75rem;padding:.15rem .55rem;border-radius:999px;background:#f0eef7;color:#5a3f9e;border:1px solid #d8d0f0}.badge-read{background:#eaf4ee;color:#276749;border-color:#b2dfc0}.badge-pdf{background:#fef9e7;color:#7d6008;border-color:#f5e08a}.play-blurb{font-size:.88rem;color:#555;line-height:1.55;margin:0}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.card-actions{display:flex;gap:.5rem;flex-shrink:0}.play-form-container{background:#faf9f7;border:1px solid #e0dfd8;border-radius:10px;padding:1.25rem;margin-bottom:1.5rem}.play-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem}.checkbox-section{display:flex;align-items:flex-end;padding-bottom:.5rem}.form-actions{display:flex;gap:.75rem;margin-top:.5rem}.login-sent-msg{margin-top:1rem;color:#276749;background:#eaf4ee;border:1px solid #b2dfc0;border-radius:8px;padding:.7rem 1rem;font-size:.9rem}.empty-msg{color:#888;font-size:.95rem;padding:1rem 0}.home-links{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}.home-link-card{display:block;padding:1.25rem 1.5rem;border:1px solid #e0dfd8;border-radius:10px;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.home-link-card:hover{border-color:#7c5cbf;box-shadow:0 2px 8px #7c5cbf1a}.home-link-card h2{font-size:1.1rem;color:#7c5cbf;margin-bottom:.2rem}.home-link-card p{font-size:.9rem;color:#666;margin:0}
