[hidden]{display:none!important}
:root{--paper:#f5f3ed;--surface:#fff;--ink:#172b32;--muted:#596970;--line:#d7dfdb;--accent:#af4226;--accent-light:#fcebe3;--green:#286343;--radius:14px;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit}button,a,input,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 5vw;border-bottom:1px solid var(--line);background:var(--surface)}.brand{text-decoration:none;display:grid;gap:6px}.brand strong{font-size:15px;letter-spacing:.16em}.brand span{font-size:10px;letter-spacing:.23em;color:var(--muted)}nav{display:flex;align-items:center;gap:8px}nav a{font-size:13px;text-decoration:none}.skip{position:absolute;top:-100px;padding:12px;background:white}.skip:focus{top:0;z-index:10}
main{max-width:1216px;margin:0 auto;padding:48px 32px 64px;min-height:70vh}h1{font-size:clamp(28px,4vw,42px);line-height:1.12;letter-spacing:-.035em;margin:8px 0 14px}h2{font-size:21px;letter-spacing:-.025em;margin:0 0 18px}p{line-height:1.6}.eyebrow{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);font-weight:700}.subtle,.help{color:var(--muted);font-size:14px;line-height:1.6}.help{font-size:12px;margin:8px 0}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:32px}.page-head p{max-width:620px;margin:0}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:11px 16px;min-height:44px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{border-color:var(--ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:white}.btn.dark{background:var(--ink);border-color:var(--ink);color:white}.btn.quiet{background:transparent;border-color:transparent}.btn.danger{color:#a63222;border-color:#e8bfb8}.pill{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.04em;padding:6px 10px;border-radius:40px;background:#e9efeb;color:var(--green)}.pill.pending{color:#7f4714;background:#fff0d7}.pill.closed{color:var(--muted);background:#e9ecec}
.panel{background:var(--surface);padding:28px;border-radius:var(--radius);border:1px solid var(--line)}.login{max-width:490px;margin:6vh auto}.login p{margin-bottom:28px}.login form{display:grid;gap:18px}.field{display:grid;gap:7px}.field label,.label{font-size:12px;font-weight:600}.field input,.field textarea{background:var(--surface);border:1px solid #b8c5c2;color:var(--ink);padding:12px;border-radius:7px;width:100%;min-height:46px}.field textarea{resize:vertical;min-height:120px}.field input[type=file]{padding:20px;border:1px dashed #a8b7b3;background:#fafbf9}.form-row{display:grid;grid-template-columns:2fr 1fr;gap:16px}.upload{margin-bottom:28px}.upload form{display:grid;gap:18px}.upload progress{width:100%;accent-color:var(--accent)}.storage{min-width:240px;max-width:320px;font-size:12px}.storage progress{accent-color:var(--green);width:100%;height:6px}.review-list{display:grid;gap:12px}.review-row{display:flex;align-items:center;gap:20px;padding:22px 24px}.review-row .details{flex:1;min-width:0}.review-row h2{font-size:18px;margin:0 0 6px;overflow-wrap:anywhere}.review-row p{font-size:12px;color:var(--muted);margin:0}.row-actions{display:flex;flex-wrap:wrap;gap:8px}.empty{padding:50px 24px;text-align:center;border:1px dashed #b8c5c2;border-radius:12px;background:#ffffff66}.empty h2{margin:0 0 10px}.empty p{color:var(--muted);font-size:14px}.count{font-variant-numeric:tabular-nums}
.review-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:24px;align-items:start}.player{background:var(--ink);color:#fff;border-radius:var(--radius);padding:30px;position:sticky;top:20px}.player .eyebrow{color:#f5ad91}.player h2{font-size:22px;margin:12px 0 8px;overflow-wrap:anywhere}.player .file-label{font-size:12px;color:#b8c9cb;overflow-wrap:anywhere}.wave-wrap{position:relative;margin:30px 0 16px}.wave-wrap canvas{display:block;width:100%;height:130px;cursor:pointer}.player input[type=range]{width:100%;accent-color:#ef9874;cursor:pointer}.times{display:flex;justify-content:space-between;color:#c6d6d6;font-size:12px;font-variant-numeric:tabular-nums;margin:10px 0 24px}.transport{display:flex;gap:8px;flex-wrap:wrap}.player .btn{background:#29434a;color:white;border-color:#476066}.player .btn.primary{background:#f4ab89;color:#172b32;border-color:#f4ab89}.player .help{color:#c6d6d6;margin-top:20px}.player audio{display:none}.feedback-col{display:grid;gap:20px}.comment-form{display:grid;gap:16px}.comment-form h2{margin:0}.pin{font-variant-numeric:tabular-nums;background:var(--accent-light);padding:10px 14px;border-radius:7px;color:var(--accent);font-weight:600;font-size:13px}.comment-list{display:grid;gap:12px;margin-top:16px}.comment{padding:18px;border-radius:10px;background:white;border:1px solid var(--line);overflow-wrap:anywhere}.comment.resolved{background:#f0f4ef}.comment-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.timestamp{border:0;background:var(--accent-light);color:var(--accent);border-radius:6px;min-height:36px;padding:8px 10px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.comment-meta{font-size:12px;color:var(--muted)}.comment p{font-size:14px;white-space:pre-wrap;margin:14px 0}.comment .btn{font-size:12px;min-height:36px;padding:7px 11px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-head h2{margin:0;font-size:19px}.share-box{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.share-box input{min-width:160px;flex:1;border:1px solid var(--line);padding:12px;border-radius:7px;background:#fff;color:var(--muted);font-size:12px}.notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:20;background:var(--ink);color:white;max-width:min(90vw,720px);border-radius:10px;padding:14px 20px;box-shadow:0 10px 40px #172b3220;font-size:14px}.notice.error{background:#942d20}.loading{color:var(--muted)}footer{max-width:1216px;margin:auto;padding:24px 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.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}
@media(max-width:850px){main{padding:32px 20px 48px}.review-grid{grid-template-columns:1fr}.player{position:static}.review-row{align-items:flex-start;flex-wrap:wrap}.row-actions{width:100%}.page-head{flex-direction:column}.storage{width:100%;max-width:none}.panel{padding:22px}.topbar{padding:20px}.form-row{grid-template-columns:1fr}footer{padding:22px 20px;flex-direction:column;gap:8px}.transport .btn{flex:1}.share-box{margin-top:0}.wave-wrap canvas{height:100px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background .12s,border-color .12s}}

.music-info{margin-top:20px;border-top:1px solid #476066;padding-top:8px}.music-info h3{font-size:14px;margin-top:22px}.section-links{display:flex;gap:6px;flex-wrap:wrap}.music-info .btn{font-size:12px;padding:8px;min-height:38px;white-space:normal;text-align:left}.music-info details{font-size:12px}.music-info details .btn{display:flex;margin-top:8px}.music-info summary{cursor:pointer;padding:10px 0}
.review-delete{display:flex;justify-content:flex-end;margin:0 0 20px}
.review-grid>*{min-width:0}.player{box-shadow:0 16px 38px #172b3212}
.wave-wrap{border-radius:10px;overflow:hidden;background:#ffffff06;border:1px solid #ffffff12;margin-bottom:8px}
.wave-wrap canvas{height:160px;touch-action:pan-y}
.wave-ruler{display:flex;justify-content:space-between;gap:4px;font-size:11px;color:#b8c9cb;font-variant-numeric:tabular-nums;margin:0 0 14px}
.player input[type=range]{min-height:32px;margin:0}
.times{align-items:baseline;margin:6px 0 20px}.current-time{font-size:30px;font-weight:650;letter-spacing:-.04em;color:#fff}
.comment .btn,.timestamp,.music-info .btn{min-height:44px}.comment .actions{gap:8px;justify-content:space-between}
.comment-form .actions .primary{min-width:155px}.comment-form>.help{margin:0}
.mobile-player{display:none}
/* Desktop workspace keeps the waveform and feedback side by side. */
@media(min-width:851px){
 :root{--paper:#f1f3f3;--line:#dce3e1;--radius:18px}
 .topbar{padding:20px max(32px,calc((100vw - 1376px)/2));background:#ffffffed}
 main{max-width:1440px;padding:32px 40px 64px}
 h1{font-size:36px;font-weight:650;letter-spacing:-.04em}
 .page-head{margin-bottom:26px;align-items:center}.page-head .eyebrow{font-size:10px;letter-spacing:.18em}
 .review-open .page-head h1{margin:9px 0 10px;font-size:34px}
 .review-open .page-head p{font-size:13px;max-width:850px}
 .review-grid{grid-template-columns:minmax(0,1fr) minmax(350px,420px);gap:28px}
 .player{padding:28px;background:linear-gradient(145deg,#1b353d,#14272e);top:24px;border:1px solid #2d464d;box-shadow:0 16px 44px #172b3215}
 .player h2{font-size:20px;letter-spacing:-.02em;margin:10px 0 6px}.player .file-label{margin:0;color:#a9c1c4}
 .wave-wrap{margin:24px 0 10px;background:#0d202633;border:1px solid #93b8bc20;border-radius:12px}
 .wave-wrap canvas{height:220px}
 .wave-ruler{margin:0 0 12px;color:#abc2c4;font-size:11px}
 .player input[type=range]{min-height:24px}
 .times{margin:8px 0 22px}.current-time{font-size:38px;font-weight:550;letter-spacing:-.04em}
 .transport{padding-top:18px;border-top:1px solid #ffffff13;gap:10px}.transport .btn{border-radius:9px;font-size:13px;min-height:46px}
 .transport .primary{min-width:100px}.transport .btn:last-child:nth-child(4){margin-left:auto;background:#f4ab89;color:#172b32;border-color:#f4ab89}
 .player .help{margin-top:18px;font-size:12px}
 .panel{border-radius:18px;border-color:#e0e6e3;box-shadow:0 5px 18px #172b3204}
 .comment-form{padding:26px;gap:16px}.comment-form h2{font-size:22px;font-weight:650}
 .comment-form .pin{border:1px solid #f0d9cb;background:#fcf3ed;color:#884b30;border-radius:9px}
 .comment-form textarea{min-height:132px;background:#fbfcfb;border-color:#d0dad6;line-height:1.6;font-size:14px}
 .comment-form .actions{display:grid;gap:8px}.comment-form .actions .btn{width:100%}
 .comment-form .actions .primary{min-height:46px}.comment-form .actions .quiet{min-height:38px;font-size:12px}
 .feedback-col{gap:24px}.feedback-col>.panel h2{font-size:18px;margin-bottom:10px}
 .comment{box-shadow:0 3px 10px #172b3204;border-color:#dce4e0;border-radius:14px}.comment p{line-height:1.65}
 .section-head h2{font-size:18px;letter-spacing:-.02em}.section-head .count{font-size:12px;white-space:nowrap}
 .share-box{padding:14px;background:#ffffffb3;border:1px solid #dce4e0;border-radius:14px;margin-bottom:10px;gap:8px}
 .share-box input{border-color:#dbe3df;background:#f7f9f7;min-width:260px}.share-box .btn{font-size:12px;padding:9px 12px}
 .review-delete{margin:0 0 14px}.review-delete .btn{font-size:12px;min-height:36px;padding:7px 12px;background:transparent;border-color:transparent}
 .review-row{border-radius:14px;padding:22px 26px}.review-row .details h2{font-size:19px}.review-list{gap:14px}
 .login{max-width:480px;margin:7vh auto;padding:38px;box-shadow:0 20px 70px #172b320b}
 footer{max-width:1360px;padding:24px 0;font-size:11px}
}
@media(max-width:850px){
 .topbar{gap:16px}.topbar nav{min-width:0}.topbar nav .subtle{font-size:12px;text-align:right}
 .review-open main{padding-bottom:130px}.review-open footer{padding-bottom:125px}
 .review-open .page-head{margin-bottom:24px}.review-open .page-head h1{font-size:30px;overflow-wrap:anywhere}
 .player{padding:22px}.player h2{font-size:20px}.player .file-label{margin:8px 0 20px}
 .wave-wrap{margin-top:20px}.wave-wrap canvas{height:140px}.player .transport .btn{padding:11px 12px}
 .player .transport .btn:last-child:nth-child(4){flex-basis:100%;background:#f4ab89;color:#172b32;border-color:#f4ab89}
 .field input,.field textarea,.share-box input{font-size:16px}
 .comment-form .actions{align-items:stretch}.comment-form .actions .btn{width:100%}
 .section-head{flex-wrap:wrap;gap:8px}.section-head h2{flex:1}.section-head .count{font-size:12px}
 .review-row{padding:20px}.review-row .row-actions .btn{flex:1}.share-box{gap:8px}.share-box input{flex-basis:100%}.share-box .btn{flex:1}
 .music-info .section-links{gap:8px}.music-info .section-links .btn{max-width:100%}
 .mobile-player.is-visible{display:grid;grid-template-columns:auto minmax(50px,1fr) auto;align-items:center;gap:10px;position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:15;padding:12px 14px;background:#172b32;color:white;border:1px solid #476066;border-radius:14px;box-shadow:0 8px 36px #0005}
 .mobile-player .btn{font-size:13px;padding:9px 12px;min-height:44px}.mobile-player .primary{background:#f4ab89;color:#172b32;border-color:#f4ab89}
 .mini-wave{position:relative;min-width:0;height:44px}.mini-wave canvas{width:100%;height:44px;display:block}.mini-wave input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}.mini-wave:focus-within{outline:2px solid #f4ab89;outline-offset:3px;border-radius:4px}
 .mini-clock{grid-column:2;font-size:11px;font-variant-numeric:tabular-nums;color:#d0dede;grid-row:2;margin-top:-6px}
 .mobile-player>.btn:last-child:nth-child(4){grid-column:3;grid-row:1/3;background:#29434a;color:white;border-color:#476066}
 .review-open .notice{bottom:115px}
}
