:root{--bg: #faf9f7;--surface: #ffffff;--text: #1a1a18;--text-muted: #79766f;--text-faint: #a6a39b;--border: #e9e6e0;--border-strong: #d8d4cb;--accent: #1a1a18;--accent-contrast: #ffffff;--danger: #a32d2d;--danger-tint: #fbeceb;--session-0: #c05a34;--session-0-tint: #faeee6;--session-1: #8a8272;--session-1-tint: #f2f0eb;--session-2: #3f6470;--session-2-tint: #e9f0f1;--level-base: #4f7a5c;--level-base-tint: #ebf3ed;--level-consolidacao: #3f6fa8;--level-consolidacao-tint: #eaf1f8;--level-nova: #9a5aa8;--level-nova-tint: #f5edf7;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--sidebar-w: 232px;--tabbar-h: 60px;--shadow-card: 0 1px 2px rgba(26, 26, 24, .04)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}button{font:inherit;font-size:13.5px;font-weight:500;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .05s ease}button:hover{background:var(--bg);border-color:var(--text-faint)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}button.primary:hover{background:#333330}input,select{font:inherit;font-size:14px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);width:100%}input:focus,select:focus,button:focus-visible{outline:none;border-color:var(--text);box-shadow:0 0 0 3px #1a1a1814}label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.app-shell{min-height:100vh}.app-main{max-width:1040px;margin:0 auto;padding:32px 24px calc(48px + var(--tabbar-h))}.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20}.nav-logo{font-weight:700;font-size:15px;letter-spacing:-.01em}.nav-links{display:none}.nav-user{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted)}.nav-user span{display:none}.nav-user button{padding:7px 12px}.mobile-tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--surface);border-top:1px solid var(--border);z-index:20;padding-bottom:env(safe-area-inset-bottom,0)}.mobile-tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0 8px;font-size:11px;font-weight:600;color:var(--text-faint)}.mobile-tabbar a svg{width:20px;height:20px}.mobile-tabbar a.active{color:var(--text)}@media (min-width: 900px){.app-shell{display:flex}.mobile-tabbar{display:none}.nav{position:sticky;top:0;height:100vh;flex-direction:column;align-items:stretch;justify-content:flex-start;width:var(--sidebar-w);flex-shrink:0;border-bottom:none;border-right:1px solid var(--border);padding:24px 16px;gap:28px}.nav-logo{font-size:17px;padding:0 8px}.nav-links{display:flex;flex-direction:column;gap:2px;font-size:14px;font-weight:500}.nav-links a{padding:9px 10px;border-radius:var(--radius-sm);color:var(--text-muted);display:flex;align-items:center;gap:10px}.nav-links a:hover{background:var(--bg);color:var(--text)}.nav-links a.active{background:var(--bg);color:var(--text);font-weight:600}.nav-links a svg{width:17px;height:17px;flex-shrink:0}.nav-user{margin-top:auto;flex-direction:column;align-items:stretch;gap:8px;padding:12px 10px 0;border-top:1px solid var(--border)}.nav-user span{display:block;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-user button{width:100%}.app-main{padding:48px 48px 64px;max-width:1100px}}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.page-header h2{font-size:20px;font-weight:700;letter-spacing:-.01em}.page-header .muted{margin-top:4px}@media (min-width: 900px){.page-header h2{font-size:26px}}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-card);transition:border-color .12s ease,transform .08s ease}a.card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.card-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.card strong{font-size:15px;letter-spacing:-.01em}.badge{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:20px;background:var(--bg);color:var(--text-muted);white-space:nowrap}.badge.public{background:#e6f4ed;color:#1f7a54}.badge.private{background:var(--bg);color:var(--text-muted)}.muted{color:var(--text-muted);font-size:13px}.empty-state{border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:40px 20px;text-align:center;color:var(--text-muted);grid-column:1 / -1}.session-columns{display:grid;grid-template-columns:1fr;gap:14px}@media (min-width: 700px){.session-columns{grid-template-columns:repeat(3,minmax(0,1fr))}}.session-column{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.session-column-header{padding:12px 14px;display:flex;align-items:center;gap:8px}.session-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.session-title{font-size:12.5px;font-weight:700;letter-spacing:.01em}.session-column-body{padding:4px 14px 10px}.session-column[data-session="0"] .session-column-header{background:var(--session-0-tint)}.session-column[data-session="0"] .session-dot{background:var(--session-0)}.session-column[data-session="1"] .session-column-header{background:var(--session-1-tint)}.session-column[data-session="1"] .session-dot{background:var(--session-1)}.session-column[data-session="2"] .session-column-header{background:var(--session-2-tint)}.session-column[data-session="2"] .session-dot{background:var(--session-2)}.song-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13.5px;padding:9px 0;border-bottom:1px solid var(--border)}.song-row:last-child{border-bottom:none}.song-row-title{font-weight:500}.song-row-meta{color:var(--text-faint);font-size:12px;white-space:nowrap}.level-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px}.level-dot.base{background:var(--level-base)}.level-dot.consolidacao{background:var(--level-consolidacao)}.level-dot.nova{background:var(--level-nova)}.generate-screen{display:grid;grid-template-columns:1fr;gap:20px}@media (min-width: 780px){.generate-screen{grid-template-columns:260px 1fr;align-items:start}}.generate-rules{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px}.generate-rules label:not(:first-child){margin-top:4px}.generate-rules button.primary{margin-top:12px}.generate-preview{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;min-height:200px}.generate-preview .muted{margin-bottom:8px}.warnings{margin:12px 0 0;padding:10px 12px;border-radius:var(--radius-sm);background:#fdf6e8;color:#8a6414;font-size:12.5px;list-style:none}.warnings li+li{margin-top:6px}.error{color:var(--danger);background:var(--danger-tint);border-radius:var(--radius-sm);padding:8px 10px;font-size:13px}.login-screen{max-width:380px;margin:14vh auto 0;padding:0 24px;text-align:center}.login-screen h1{font-size:26px;font-weight:800;letter-spacing:-.02em}.login-screen>p{color:var(--text-muted);font-size:14px;margin-top:8px}.login-screen form{display:flex;flex-direction:column;gap:10px;margin-top:24px}.login-screen button[type=submit]{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);padding:11px}.login-screen button[type=submit]:hover{background:#333330}.search-input{margin-bottom:18px;max-width:420px}.link-button{background:none;border:none;padding:6px 2px;font-size:13px;font-weight:600;color:var(--text-muted)}.link-button:hover{background:none;color:var(--text);text-decoration:underline}.icon-btn{width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;background:none;color:var(--text-faint);font-size:16px;line-height:1;border-radius:6px;flex-shrink:0}.icon-btn:hover{background:var(--danger-tint);color:var(--danger)}.song-row-meta{display:flex;align-items:center;gap:4px}.inline-form{display:flex;flex-direction:column;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;margin-top:8px}.inline-form-row{display:flex;gap:8px}.inline-form-row input,.inline-form-row select,.inline-form-row button{flex:1}.inline-form-tabs{display:flex;gap:6px;margin-bottom:2px}.inline-form-tabs button{flex:1;font-size:12px;padding:6px 8px;color:var(--text-muted)}.inline-form-tabs button.active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.event-types-layout{display:grid;grid-template-columns:1fr;gap:20px}@media (min-width: 780px){.event-types-layout{grid-template-columns:240px 1fr;align-items:start}}.event-type-list{display:flex;flex-direction:column;gap:8px}.event-type-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;cursor:pointer}.event-type-item:hover{border-color:var(--border-strong)}.event-type-item.active{border-color:var(--text);background:var(--bg)}.event-type-rules{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px}.rule-card{padding:12px 0;border-bottom:1px solid var(--border)}.rule-card:last-of-type{border-bottom:none}.rule-card .session-title{margin-bottom:8px}.rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media (min-width: 500px){.rules-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.rules-grid label{display:flex;flex-direction:column;gap:4px;font-size:10.5px}.rules-grid input{padding:7px 9px;font-size:13px}
