@import"https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&display=swap";@media print{body{background:#fff!important;color:#000!important;font-family:Lato,sans-serif;font-size:12pt;line-height:1.4}.no-print{display:none!important}.print-page{background:#fff;color:#000;padding:0;margin:0}}.print-page{background:#fff;color:#000;max-width:8.5in;margin:0 auto;padding:.5in;font-family:Lato,sans-serif;min-height:11in}.print-header{text-align:center;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid black}.print-header img{max-width:400px;height:auto;margin:0 auto .75rem;display:block}.print-header h1{font-size:16pt;font-weight:700;margin:0;letter-spacing:.5px}.print-info{margin-bottom:1rem}.print-info-row{display:flex;margin-bottom:.25rem}.print-info-label{font-weight:700;min-width:120px}.print-info-value{flex:1}.print-table{width:100%;border-collapse:collapse;margin-bottom:1rem}.print-table th,.print-table td{padding:4px 8px;text-align:left;border-bottom:1px solid #ddd;font-size:11pt}.print-table th{font-weight:700;border-bottom:2px solid black}.print-section{margin-bottom:1.5rem}.print-section-title{font-size:12pt;font-weight:700;border-bottom:2px solid black;margin-bottom:.75rem;padding-bottom:.25rem}.print-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.25rem 2rem}.print-form-field{display:flex;gap:.5rem;padding:2px 0}.print-form-field .label{font-weight:700;white-space:nowrap}.print-timeline-row{display:grid;grid-template-columns:100px 200px 1fr;gap:1rem;padding:4px 0;border-bottom:1px solid #eee}.print-timeline-row .time{font-weight:700}.print-music-header{display:flex;justify-content:space-between;font-weight:700;margin-bottom:.5rem;border-bottom:2px solid black;padding-bottom:.25rem}.print-music-row{display:grid;grid-template-columns:200px 1fr 100px;gap:1rem;padding:2px 0;border-bottom:1px solid #eee;font-size:10pt}.print-footer{text-align:center;margin-top:2rem;padding-top:.5rem;border-top:2px solid black;font-size:10pt;color:#666}.print-actions{display:flex;justify-content:center;gap:1rem;margin-bottom:1rem;padding:1rem}@media print{.print-actions{display:none}.print-page{padding:0;max-width:none;min-height:auto}.print-form-grid{page-break-inside:auto}.print-section{page-break-inside:avoid}}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #e8e8e8;--bg-row-alt: #fafafa;--text-primary: #222222;--text-secondary: #555555;--text-muted: #888888;--accent: #2a6cb6;--accent-hover: #1e5a9e;--green: #4caf50;--green-hover: #45a049;--yellow: #ffc107;--yellow-hover: #e6ac00;--red: #f44336;--red-hover: #d32f2f;--border: #dddddd;--border-light: #cccccc;--shadow: rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-content{flex:1;padding:1.5rem;max-width:1200px;width:100%;margin:0 auto}.navbar{background:#fff;border-bottom:1px solid var(--border);padding:.5rem 1.5rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.navbar-brand{display:flex;align-items:center;gap:.75rem;color:var(--text-primary);font-size:1.1rem;font-weight:600}.navbar-brand img{height:60px;width:auto}.navbar-links{display:flex;align-items:center;gap:.25rem}.nav-link{display:flex;flex-direction:column;align-items:center;padding:.5rem .75rem;color:var(--text-secondary);font-size:.7rem;text-decoration:none;border-radius:6px;transition:all .2s;gap:.2rem}.nav-link:hover,.nav-link.active{background:var(--bg-tertiary);color:var(--text-primary);text-decoration:none}.nav-link svg{width:22px;height:22px}.card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 1px 3px var(--shadow)}.card-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.35rem}.form-input,.form-select,.form-textarea{width:100%;padding:.6rem .75rem;background:#fff;border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.9rem;transition:border-color .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent)}.form-textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.form-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer}.form-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.25rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:var(--green-hover)}.btn-yellow{background:var(--yellow);color:#333}.btn-yellow:hover{background:var(--yellow-hover)}.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red-hover)}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.btn-outline:hover{border-color:var(--text-primary);color:var(--text-primary)}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.btn-icon{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%}.song-list{display:flex;flex-direction:column}.song-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);transition:background .15s}.song-row:nth-child(2n){background:var(--bg-row-alt)}.song-row:hover{background:#f0f0f0}.song-info{flex:1;min-width:0}.song-title{font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-artist{font-size:.85rem;color:var(--text-muted);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-actions{display:flex;gap:.5rem;flex-shrink:0;margin-left:1rem}.song-actions .btn-icon{width:32px;height:32px;font-size:1.1rem;border:2px solid transparent}.song-actions .btn-icon.active{transform:scale(1.1);box-shadow:0 0 8px var(--shadow)}.search-bar{display:flex;align-items:center;background:#fff;border:1px solid var(--border);border-radius:8px;padding:.6rem 1rem;margin-bottom:1rem;gap:.5rem;box-shadow:0 1px 3px var(--shadow)}.search-bar input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:1rem;outline:none}.search-bar input::placeholder{color:var(--text-muted)}.category-tabs{display:flex;gap:.5rem;justify-content:center;margin-bottom:1rem;flex-wrap:wrap}.category-tab{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem;background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:.75rem;font-weight:600;transition:all .2s;gap:.2rem;min-width:70px}.category-tab:hover,.category-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.subcategory-bar{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem;padding:.5rem;background:#fff;border:1px solid var(--border);border-radius:8px}.subcategory-bar select{padding:.5rem;background:#fff;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;font-size:.9rem;min-width:200px}.timeline-row{display:grid;grid-template-columns:140px 200px 1fr 40px;gap:.75rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}.timeline-row:last-child{border-bottom:none}.event-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:1.25rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;transition:border-color .2s;box-shadow:0 1px 3px var(--shadow)}.event-card:hover{border-color:var(--accent)}.event-card-info h3{font-size:1.1rem;margin-bottom:.25rem}.event-card-info p{font-size:.85rem;color:var(--text-muted)}.event-card-actions{display:flex;gap:.5rem}.badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:12px;font-size:.75rem;font-weight:600}.badge-green{background:var(--green);color:#fff}.badge-yellow{background:var(--yellow);color:#333}.badge-red{background:var(--red);color:#fff}.music-list-section{margin-bottom:2rem}.music-list-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:8px 8px 0 0;font-weight:600}.music-list-header.must-play{background:var(--green);color:#fff}.music-list-header.like{background:var(--yellow);color:#333}.music-list-header.do-not-play{background:var(--red);color:#fff}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background:#fff}.login-card{background:#fff;border:none;border-radius:12px;padding:2.5rem;width:100%;max-width:440px;text-align:center}.login-logo{display:flex;justify-content:center;margin-bottom:2rem}.login-logo img{max-width:360px;width:100%;height:auto}.login-title{text-align:center;font-size:1.1rem;margin-bottom:2rem;color:var(--text-muted);font-weight:400;letter-spacing:.5px}.login-error{background:#f443361a;border:1px solid var(--red);color:var(--red);padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.85rem;text-align:center}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-title{font-size:1.5rem;font-weight:700}.save-status{font-size:.8rem;color:var(--text-muted);display:flex;align-items:center;gap:.4rem}.save-status.saved{color:var(--green)}.save-status.saving{color:var(--yellow)}@media (max-width: 768px){.form-row,.form-row-3{grid-template-columns:1fr}.timeline-row{grid-template-columns:1fr;gap:.5rem;padding:.75rem 0}.navbar-links{gap:0}.nav-link{padding:.5rem;font-size:.6rem}.song-row{flex-wrap:wrap;gap:.5rem}.song-actions{margin-left:0;width:100%;justify-content:flex-end}.app-content{padding:1rem}.event-card{flex-direction:column;gap:1rem;align-items:flex-start}}
