@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');

:root{--green:#01796f;--green-dark:#07534d;--brown:#805e2b;--gold:#ddb374;--cream:#fbf8f1;--ink:#17302c;--muted:#62746f;--line:#e3e9e4;--lyrics-size:22px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;-webkit-text-size-adjust:100%}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:disabled{opacity:.32;cursor:not-allowed}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.canti-topbar{min-height:78px;padding:12px max(24px,calc((100vw - 1160px)/2));display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:3px solid var(--green)}
.canti-brand{display:inline-flex;gap:12px;align-items:center;text-decoration:none;color:var(--green-dark);font-family:Manrope,Arial,sans-serif;font-weight:800;line-height:1.15}
.canti-brand img{object-fit:contain}
.canti-brand small{display:block;color:var(--brown);font-size:12px;font-weight:700;letter-spacing:.03em;margin-top:3px}
.canti-shell{max-width:1208px;margin:auto;padding:0 24px 72px}
.canti-intro{padding:48px 0 34px}
.canti-eyebrow{display:block;color:var(--green);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:Manrope,Arial,sans-serif}
h1{font-size:clamp(32px,4vw,52px);line-height:1.1;letter-spacing:-.045em;margin-bottom:12px}
.canti-intro p{color:var(--muted);font-size:17px;margin-bottom:0}
.canti-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:24px;align-items:start}
.canti-list,.canti-reader,.canti-card,.canti-empty{background:#fff;border:1px solid var(--line);box-shadow:0 12px 34px rgba(16,62,55,.045);border-radius:22px}
.canti-list{padding:14px;position:sticky;top:20px}
.canti-list h2{display:flex;justify-content:space-between;align-items:center;font-size:19px;margin:8px 10px 14px}
.canti-list h2 span,.canti-count{color:var(--muted);font:700 12px 'DM Sans',Arial,sans-serif;background:#edf5f1;border-radius:20px;padding:7px 10px}
.canti-list-item{display:flex;gap:14px;align-items:center;padding:16px 13px;text-decoration:none;border-radius:15px;transition:background .2s ease}
.canti-list-item:hover,.canti-list-item.is-active{background:#edf6f2;text-decoration:none}
.canti-list-number{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:#e5f2ed;color:var(--green);font:800 14px Manrope,Arial,sans-serif}
.canti-list-copy{min-width:0;flex:1}
.canti-list-copy small{display:block;color:var(--green);font-size:12px;font-weight:800;margin-bottom:3px}
.canti-list-copy strong{display:block;font:700 15px Manrope,Arial,sans-serif;line-height:1.35}
.canti-arrow{font-size:27px;color:var(--green)}
.canti-reader{min-height:480px;overflow:hidden}
.canti-song{display:none}
.canti-song.is-active{display:block}
.canti-reader-head{display:flex;justify-content:space-between;align-items:center;padding:20px 28px;border-bottom:1px solid var(--line)}
.canti-back,.canti-font-controls button,.canti-reader-foot button{background:transparent;border:0;color:var(--green-dark);font-weight:800}
.canti-back{font-size:24px;padding:4px 6px}
.canti-back span{font-size:14px;vertical-align:3px}
.canti-font-controls{display:flex;gap:7px}
.canti-font-controls button{border:1px solid var(--line);border-radius:10px;min-width:43px;height:40px;font-size:15px}
.canti-font-controls button:hover,.canti-reader-foot button:hover{background:#edf6f2}
.canti-song-content{padding:40px clamp(24px,5vw,70px) 56px}
.canti-moment{display:inline-block;color:var(--green-dark);background:#e5f2ed;font-size:13px;font-weight:800;border-radius:99px;padding:8px 13px;margin-bottom:20px}
.canti-song-content h2{font-size:clamp(28px,3vw,40px);line-height:1.15;letter-spacing:-.04em;margin-bottom:34px}
.canti-lyrics{font-size:var(--lyrics-size);line-height:1.55;letter-spacing:.005em}
.canti-stanza+.canti-stanza{margin-top:1.4em}
.canti-line{min-height:1.55em;overflow-wrap:anywhere}
.canti-line-heading{font-size:.73em;letter-spacing:.08em;text-transform:uppercase;color:var(--green);font-weight:800;margin-bottom:.35em}
.canti-reader-foot{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:14px 26px;gap:12px}
.canti-reader-foot button{border-radius:10px;padding:12px 10px}
.canti-reader-foot button:last-child{margin-left:auto}
.canti-empty{padding:48px;text-align:center}
.canti-empty h2{font-size:24px}
.canti-empty p,.canti-muted{color:var(--muted)}
.canti-admin-shell{max-width:1080px}
.canti-admin-shell .canti-intro{padding-bottom:26px}
.canti-public-link{display:inline-flex;margin-top:15px;color:var(--green-dark);font-weight:800;text-underline-offset:4px}
.canti-admin-tabs{display:flex;gap:9px;margin-bottom:20px}
.canti-admin-tabs a{background:#fff;border:1px solid var(--line);padding:12px 16px;border-radius:12px;text-decoration:none;font-weight:800;color:var(--green-dark)}
.canti-admin-tabs a:hover{background:#edf6f2}
.canti-card{padding:28px;margin-bottom:24px;scroll-margin-top:16px}
.canti-section-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:22px}
.canti-section-head .canti-eyebrow{margin-bottom:5px}
.canti-section-head h2{font-size:27px;letter-spacing:-.035em;margin:0}
.canti-program-list{list-style:none;margin:0 0 18px;padding:0}
.canti-program-list>li{display:flex;gap:13px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}
.canti-program-main{flex:1;min-width:0}
.canti-program-main strong,.canti-catalog-item strong{display:block;font:800 16px Manrope,Arial,sans-serif;margin-bottom:7px}
.canti-catalog-main{flex:1;min-width:0}
.canti-preview-trigger{border:0;background:#e5f2ed;color:var(--green-dark);border-radius:9px;padding:8px 11px;margin:2px 0 12px;font-size:13px;font-weight:800}
.canti-preview-trigger:hover{background:#d3e9dd}
.canti-catalog-main .canti-preview-trigger{margin:0 12px 0 0}
.canti-preview-dialog{width:min(720px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--line);border-radius:20px;color:var(--ink);background:#fff;box-shadow:0 24px 70px rgba(9,45,38,.24)}
.canti-preview-dialog::backdrop{background:rgba(9,30,27,.6)}
.canti-preview-head{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;background:#fff;border-bottom:1px solid var(--line);z-index:1}
.canti-preview-head h2{font-size:clamp(19px,3vw,25px);line-height:1.25;margin:0}
.canti-preview-close{display:grid;place-items:center;flex:none;width:40px;height:40px;border:0;border-radius:10px;background:#e5f2ed;color:var(--green-dark);font-size:27px;line-height:1}
.canti-preview-close:hover{background:#d3e9dd}
.canti-preview-body{padding:26px clamp(20px,5vw,48px) 42px}
.canti-preview-body .canti-lyrics{font-size:clamp(18px,2.3vw,22px)}
.canti-inline-form,.canti-row-actions,.canti-catalog-actions,.canti-editor-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.canti-row-actions{flex-wrap:nowrap}
.canti-row-actions button{border:1px solid var(--line);background:#fff;width:34px;height:34px;border-radius:9px;font-size:19px;line-height:1}
.canti-row-actions button:hover{background:#edf6f2}
.canti-admin select,.canti-admin input:not([type=hidden]),.canti-admin textarea{background:#fff;color:var(--ink);border:1px solid #cbd8d1;border-radius:10px;padding:10px 12px;max-width:100%}
.canti-admin select{font-size:14px}
.canti-small-button,.canti-primary{border:0;background:var(--green);color:#fff;border-radius:10px;padding:11px 14px;font-weight:800}
.canti-small-button{font-size:13px}
.canti-primary{padding:14px 22px}
.canti-small-button:hover,.canti-primary:hover{background:var(--green-dark)}
.canti-text-button{background:transparent;border:0;color:var(--green-dark);font-weight:800;padding:8px}
.canti-danger-text{color:#a13838!important}
.canti-editor{background:#f7faf7;border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:24px}
.canti-editor h3{margin-bottom:20px}
.canti-editor label,.canti-login label{display:block;font-weight:800;margin:16px 0 7px}
.canti-editor input,.canti-editor textarea{display:block;width:100%}
.canti-editor textarea{resize:vertical;line-height:1.5}
.canti-help{font-size:13px;color:var(--muted);margin:9px 0 20px}
.canti-catalog-item{display:flex;justify-content:space-between;gap:16px;align-items:center;border-top:1px solid var(--line);padding:17px 0}
.canti-song-code{display:block;margin-bottom:4px;color:var(--green);font-size:12px;font-weight:800;letter-spacing:.06em}
.canti-catalog-item a{color:var(--green);font-size:13px;font-weight:800}
.canti-sort{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-5px 0 20px;font-size:13px;font-weight:800;color:var(--muted)}
.canti-sort a{display:inline-block;padding:8px 12px;border:1px solid var(--line);border-radius:9px;text-decoration:none;color:var(--green-dark);background:#fff}
.canti-sort a:hover,.canti-sort a[aria-current="true"]{background:#e5f2ed;border-color:#b9d9ca}
.canti-search-form{margin-bottom:18px}
.canti-search-form label{display:block;font-size:14px;font-weight:800;margin-bottom:8px}
.canti-search-row{display:flex;gap:9px}
.canti-search-row input{flex:1;min-width:0}
.canti-search-status{color:var(--muted);font-size:13px;margin:-8px 0 14px}
.canti-search-status:empty{display:none}
@media(max-width:480px){.canti-search-row{display:grid;grid-template-columns:minmax(0,1fr)}.canti-search-row input,.canti-search-row button{width:100%;min-height:44px}.canti-search-row input{font-size:16px}}
.canti-catalog-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:13px}
.canti-catalog-tools .canti-sort{margin:0}
.canti-new-link{color:var(--green-dark);font-size:14px;font-weight:800;text-decoration:none}
.canti-new-link:hover{text-decoration:underline}
.canti-result-count{color:var(--muted);font-size:13px;margin-bottom:4px}
.canti-no-results{border-top:1px solid var(--line);padding:24px 0}
.canti-no-results p{color:var(--muted);margin:6px 0 0}
.canti-no-results a{color:var(--green-dark);font-weight:800}
.canti-pagination{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px;margin-top:8px;font-size:14px}
.canti-pagination span{color:var(--muted);margin-right:auto}
.canti-pagination a{color:var(--green-dark);font-weight:800;text-decoration:none;padding:8px 10px;border:1px solid var(--line);border-radius:9px}
.canti-pagination a:hover{background:#e5f2ed}
#editor .canti-editor{background:transparent;border:0;padding:0;margin:0}
.canti-notice{background:#e5f2ed;color:var(--green-dark);border:1px solid #b9d9ca;padding:14px 18px;border-radius:12px;margin-top:22px;font-weight:700}
.canti-login{max-width:460px;margin:70px auto}
.canti-login h1{font-size:32px}
.canti-login p{color:var(--muted)}
.canti-login input,.canti-login .canti-primary{display:block;width:100%}
.canti-login .canti-primary{margin-top:18px}
.canti-alert{background:#fff0ef;color:#9a3434;border:1px solid #edc9c6;padding:14px 18px;border-radius:12px;margin-top:22px}
@media(max-width:760px){.canti-topbar{min-height:68px;padding:9px 17px}.canti-brand img{width:43px;height:43px}.canti-shell{padding:0 16px 55px}.canti-intro{padding:34px 3px 26px}.canti-intro p{font-size:15px}.canti-layout{display:block}.canti-list{position:static;padding:10px}.canti-reader{display:none;margin:0 -16px;border:0;border-radius:0;min-height:calc(100dvh - 68px)}.canti-shell.is-reading .canti-intro,.canti-shell.is-reading .canti-list{display:none}.canti-shell.is-reading .canti-reader{display:block}.canti-shell.is-reading{padding-bottom:0}.canti-reader-head{position:sticky;top:0;background:#fff;z-index:2;padding:14px 18px}.canti-song-content{padding:30px 24px 54px}.canti-song-content h2{margin-bottom:30px}.canti-lyrics{line-height:1.5}.canti-reader-foot{padding:12px 18px}.canti-card{padding:20px}.canti-section-head h2{font-size:23px}.canti-program-list>li,.canti-catalog-item{align-items:flex-start}.canti-program-list>li{flex-wrap:wrap}.canti-program-main{flex-basis:calc(100% - 55px)}.canti-row-actions{margin-left:51px}.canti-catalog-item{display:block}.canti-catalog-actions{margin-top:12px}.canti-admin-tabs{overflow-x:auto}.canti-admin-tabs a{white-space:nowrap}.canti-login{margin:40px auto}}
