:root{--loop-neutral-1100:#151c28;--loop-neutral-1000:#29303d;--loop-neutral-900:#374152;--loop-neutral-800:#48556b;--loop-neutral-700:#626f86;--loop-neutral-600:#758195;--loop-neutral-500:#8590a2;--loop-neutral-400:#b3b9c4;--loop-neutral-300:#dcdfe4;--loop-neutral-200:#f1f2f4;--loop-neutral-100:#f7f8f9;--loop-neutral-0:#fff;--loop-brand-600:#3f0fff;--loop-brand-500:#604ffc;--loop-brand-100:#f1f0ff;--loop-blue-700:#0050f0;--loop-blue-600:#1a66ff;--loop-blue-100:#e9f0ff;--loop-green-700:#1f845a;--loop-green-600:#22a06b;--loop-green-200:#baf3db;--loop-green-100:#dcfff1;--loop-yellow-800:#944f00;--loop-yellow-100:#fff8d6;--loop-red-700:#b82837;--loop-red-600:#e03344;--loop-red-200:#ffd2d7;--loop-red-100:#ffebed;--loop-font-family-body:"Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--loop-font-family-code:"JetBrains Mono", monospace;--loop-font-weight-bold:664;--loop-font-weight-medium:528;--loop-font-weight-regular:400;--loop-space-050:4px;--loop-space-075:6px;--loop-space-100:8px;--loop-space-150:12px;--loop-space-200:16px;--loop-space-250:20px;--loop-space-300:24px;--loop-space-400:32px;--loop-radius-md:8px;--loop-radius-sm:6px;--loop-radius-xs:4px}body{background:var(--loop-neutral-100);color:var(--loop-neutral-1100);font-family:var(--loop-font-family-body);font-size:.875rem;line-height:1.25rem;font-weight:var(--loop-font-weight-regular);margin:0;padding:0}header{padding:var(--loop-space-200) var(--loop-space-300);background:var(--loop-neutral-0);border-bottom:1px solid var(--loop-neutral-300);justify-content:space-between;align-items:center;display:flex}.header-brand{align-items:center;gap:var(--loop-space-100);display:flex}.header-logo{width:28px;height:28px}header h1{font-size:1.25rem;font-weight:var(--loop-font-weight-bold);letter-spacing:-.0125rem;color:var(--loop-neutral-1100);margin:0}#who{text-align:right}.who-email{color:var(--loop-neutral-700);font-size:.75rem;display:block}.signout-link{color:var(--loop-blue-600);font-size:.75rem;text-decoration:none;display:block}.signout-link:hover{text-decoration:underline}main{padding:var(--loop-space-300);max-width:960px;margin:0 auto}.intro{margin-bottom:var(--loop-space-250);padding:var(--loop-space-200) var(--loop-space-250);background:var(--loop-brand-100);border:1px solid var(--loop-brand-200,#ceccff);border-left:3px solid var(--loop-brand-600);border-radius:var(--loop-radius-sm);color:var(--loop-neutral-900);font-size:.875rem;line-height:1.6}.intro p{margin:0 0 var(--loop-space-075)}.intro p:last-child{margin-bottom:0}.intro code{background:var(--loop-neutral-0);border-radius:var(--loop-radius-xs);font-family:var(--loop-font-family-code);border:1px solid var(--loop-neutral-300);padding:2px 6px;font-size:.8rem}.intro-note{color:var(--loop-yellow-800);background:var(--loop-yellow-100);padding:var(--loop-space-075) var(--loop-space-150);border-radius:var(--loop-radius-xs);margin-top:var(--loop-space-050);font-size:.8rem;display:inline-block}.card{padding:var(--loop-space-250);background:var(--loop-neutral-0);border:1px solid var(--loop-neutral-300);border-radius:var(--loop-radius-md);margin-bottom:var(--loop-space-250)}.card h2{margin:0 0 var(--loop-space-150);font-size:1rem;font-weight:var(--loop-font-weight-bold);color:var(--loop-neutral-1100)}.upload-fields{gap:var(--loop-space-100);flex-direction:column;display:flex}.upload-fields input[type=text]{padding:var(--loop-space-100) var(--loop-space-150);border:1px solid var(--loop-neutral-300);border-radius:var(--loop-radius-sm);font-size:.875rem;font-family:var(--loop-font-family-body);color:var(--loop-neutral-1100);background:var(--loop-neutral-0)}.upload-fields input[type=text]::placeholder{color:var(--loop-neutral-500)}.upload-fields input[type=text]:focus{outline:2px solid var(--loop-brand-500);outline-offset:-1px;border-color:#0000}.upload-row{gap:var(--loop-space-150);align-items:center;display:flex}button{cursor:pointer;font-family:var(--loop-font-family-body);font-weight:var(--loop-font-weight-medium)}.btn-primary{padding:var(--loop-space-100) var(--loop-space-250);background:var(--loop-brand-600);color:var(--loop-neutral-0);border-radius:var(--loop-radius-sm);border:none;font-size:.875rem;transition:background .15s}.btn-primary:hover{background:var(--loop-brand-500)}.btn-secondary{padding:var(--loop-space-100) var(--loop-space-200);background:var(--loop-neutral-0);color:var(--loop-neutral-900);border:1px solid var(--loop-neutral-300);border-radius:var(--loop-radius-sm);font-size:.875rem;transition:background .15s,border-color .15s}.btn-secondary:hover{background:var(--loop-neutral-200);border-color:var(--loop-neutral-400)}.file-name{color:var(--loop-neutral-600);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.8rem;overflow:hidden}.error{color:var(--loop-red-700);padding:var(--loop-space-100) 0;font-size:.8rem}.list-header{margin-bottom:var(--loop-space-150);justify-content:space-between;align-items:center;display:flex}.list-header h2{margin:0}.list-controls{gap:var(--loop-space-100);align-items:center;display:flex}.filter-toggle{display:flex}.filter-btn{padding:var(--loop-space-100) var(--loop-space-200);border:1px solid var(--loop-neutral-300);background:var(--loop-neutral-0);color:var(--loop-neutral-800);cursor:pointer;font-size:.8rem;font-family:var(--loop-font-family-body);font-weight:var(--loop-font-weight-medium);transition:background .15s,color .15s}.filter-btn:first-child{border-radius:var(--loop-radius-sm) 0 0 var(--loop-radius-sm)}.filter-btn:last-child{border-radius:0 var(--loop-radius-sm) var(--loop-radius-sm) 0;border-left:none}.filter-btn:hover:not(.active){background:var(--loop-neutral-200)}.filter-btn.active{background:var(--loop-brand-600);color:var(--loop-neutral-0);border-color:var(--loop-brand-600)}.user-filter{padding:var(--loop-space-100) var(--loop-space-150);border:1px solid var(--loop-neutral-300);border-radius:var(--loop-radius-sm);background:var(--loop-neutral-0);color:var(--loop-neutral-800);font-size:.8rem;font-family:var(--loop-font-family-body)}.user-filter:focus{outline:2px solid var(--loop-brand-500);outline-offset:-1px;border-color:#0000}.refresh-btn{padding:var(--loop-space-100) var(--loop-space-150);border:1px solid var(--loop-blue-600);border-radius:var(--loop-radius-sm);background:var(--loop-blue-100);color:var(--loop-blue-700);font-size:.8rem;line-height:1;font-family:var(--loop-font-family-body);font-weight:var(--loop-font-weight-medium);transition:background .15s,color .15s}.refresh-btn:hover{background:var(--loop-blue-600);color:var(--loop-neutral-0)}.prototype{padding:var(--loop-space-200);border:1px solid var(--loop-neutral-300);border-radius:var(--loop-radius-sm);margin-bottom:var(--loop-space-100);background:var(--loop-neutral-0);justify-content:space-between;align-items:center;transition:border-color .15s;display:flex}.prototype:hover{border-color:var(--loop-neutral-400)}.proto-info{flex:1;min-width:0}.proto-title a{font-size:.875rem;font-weight:var(--loop-font-weight-bold);color:var(--loop-neutral-1100);text-decoration:none}.proto-title a:hover{color:var(--loop-brand-600);text-decoration:underline}.proto-desc{color:var(--loop-neutral-700);margin:var(--loop-space-050) 0;font-size:.8rem}.proto-url{align-items:center;gap:var(--loop-space-050);margin:var(--loop-space-050) 0;display:flex}.proto-url a{color:var(--loop-blue-600);word-break:break-all;font-size:.75rem;text-decoration:none}.proto-url a:hover{text-decoration:underline}.copy-btn{cursor:pointer;color:var(--loop-neutral-500);background:0 0;border:none;padding:0;font-size:.8rem;line-height:1}.copy-btn:hover{color:var(--loop-neutral-900)}.proto-meta{gap:var(--loop-space-050) var(--loop-space-250);color:var(--loop-neutral-600);margin-top:var(--loop-space-075);flex-wrap:wrap;font-size:.75rem;display:flex}.proto-meta strong{font-weight:var(--loop-font-weight-medium);color:var(--loop-neutral-800)}.proto-actions{gap:var(--loop-space-100);flex-shrink:0;align-items:center;display:flex}.keep-btn{padding:var(--loop-space-100) var(--loop-space-200);border:1px solid var(--loop-green-600);border-radius:var(--loop-radius-sm);background:var(--loop-green-100);color:var(--loop-green-700);font-size:.8rem;font-family:var(--loop-font-family-body);font-weight:var(--loop-font-weight-medium);transition:background .15s,color .15s}.keep-btn:hover{background:var(--loop-green-600);color:var(--loop-neutral-0)}.unkeep-btn{padding:var(--loop-space-100) var(--loop-space-200);border:1px solid var(--loop-neutral-300);border-radius:var(--loop-radius-sm);background:var(--loop-neutral-0);color:var(--loop-neutral-700);font-size:.8rem;font-family:var(--loop-font-family-body);font-weight:var(--loop-font-weight-medium);transition:background .15s}.unkeep-btn:hover{background:var(--loop-neutral-200);color:var(--loop-neutral-900)}.del-btn{padding:var(--loop-space-100) var(--loop-space-200);border:1px solid var(--loop-red-200);border-radius:var(--loop-radius-sm);background:var(--loop-red-100);color:var(--loop-red-700);font-size:.8rem;font-family:var(--loop-font-family-body);font-weight:var(--loop-font-weight-medium);transition:background .15s,color .15s}.del-btn:hover{background:var(--loop-red-600);color:var(--loop-neutral-0);border-color:var(--loop-red-600)}.expiry-normal{color:var(--loop-neutral-500);font-size:.75rem}.expiry-soon{color:var(--loop-yellow-800);font-weight:var(--loop-font-weight-medium);font-size:.75rem}.expiry-kept{color:var(--loop-green-700);font-size:.75rem}.signin-card{text-align:center;max-width:400px;padding:var(--loop-space-400) var(--loop-space-300);background:var(--loop-neutral-0);border-radius:var(--loop-radius-md);border:1px solid var(--loop-neutral-300);margin:15vh auto 0;box-shadow:0 1px 3px #0000000a,0 4px 12px #0000000a}.signin-card h1{font-size:1.5rem;font-weight:var(--loop-font-weight-bold);letter-spacing:-.015rem;margin:0 0 var(--loop-space-100);color:var(--loop-neutral-1100)}.signin-subtitle{color:var(--loop-neutral-700);margin:0 0 var(--loop-space-300);font-size:.875rem}.google-btn{align-items:center;gap:var(--loop-space-150);padding:var(--loop-space-100) var(--loop-space-250);font-size:.875rem;font-weight:var(--loop-font-weight-medium);font-family:var(--loop-font-family-body);color:var(--loop-neutral-900);background:var(--loop-neutral-0);border:1px solid var(--loop-neutral-300);border-radius:var(--loop-radius-sm);cursor:pointer;transition:background .15s,box-shadow .15s;display:inline-flex}.google-btn:hover{background:var(--loop-neutral-100);box-shadow:0 1px 3px #00000014}
