diff --git a/index.html b/index.html index 568ebe0..ffccfb7 100644 --- a/index.html +++ b/index.html @@ -250,6 +250,54 @@ .postcode-badge span{color:#ff0099} /* ── Inline milestone strip on proposal cards ── */ .card-milestone{margin-top:8px} +/* ── Profile button ── */ +#profile-btn{position:fixed;top:14px;left:14px;z-index:9999;width:38px;height:38px;border-radius:50%;border:2px solid #444;cursor:pointer;padding:0;overflow:hidden;background:#111;display:flex;align-items:center;justify-content:center;transition:border-color .2s} +#profile-btn:hover{border-color:#ff0099} +#profile-btn img{width:100%;height:100%;object-fit:cover} +#profile-btn .pb-initials{font-family:'Roboto Mono',monospace;font-size:13px;font-weight:700;color:#ff0099;line-height:1} +/* ── Profile modal ── */ +.profile-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:9998;display:none;align-items:center;justify-content:center;padding:16px} +.profile-overlay.open{display:flex} +.profile-modal{background:#000;border:2px solid #ff0099;max-width:380px;width:100%;font-family:'Roboto Mono',monospace;max-height:90vh;overflow-y:auto} +.profile-modal-head{background:#ff0099;color:#000;padding:12px 16px;display:flex;justify-content:space-between;align-items:center} +.profile-modal-head h3{margin:0;font-size:14px;font-weight:700;letter-spacing:1px} +.profile-modal-close{background:none;border:none;color:#000;font-size:20px;cursor:pointer;line-height:1;padding:0 2px} +.profile-modal-body{padding:20px} +.profile-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:20px} +.profile-avatar-lg{width:80px;height:80px;border-radius:50%;border:2px solid #ff0099;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#111;flex-shrink:0} +.profile-avatar-lg img{width:100%;height:100%;object-fit:cover} +.profile-avatar-lg .pf-initials{font-size:28px;font-weight:700;color:#ff0099} +.profile-upload-btn{background:none;border:1px solid #444;color:#aaa;padding:6px 14px;font-family:'Roboto Mono',monospace;font-size:11px;cursor:pointer;letter-spacing:.5px;position:relative;overflow:hidden} +.profile-upload-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0} +.profile-upload-btn:hover{border-color:#ff0099;color:#fff} +.profile-field{margin-bottom:14px} +.profile-field label{display:block;font-size:10px;color:#aaa;text-transform:uppercase;letter-spacing:1px;margin-bottom:5px} +.profile-input{width:100%;background:#0a0a0a;border:1px solid #333;color:#fff;padding:9px 12px;font-family:'Roboto Mono',monospace;font-size:13px;box-sizing:border-box} +.profile-input:focus{outline:none;border-color:#ff0099} +.profile-theme-row{display:flex;gap:8px} +.profile-theme-btn{flex:1;background:none;border:1px solid #333;color:#aaa;padding:7px;font-family:'Roboto Mono',monospace;font-size:12px;cursor:pointer;transition:all .15s} +.profile-theme-btn.active{background:#ff0099;color:#000;border-color:#ff0099} +.profile-save-btn{width:100%;background:#ff0099;color:#000;border:none;padding:12px;font-family:'Roboto Mono',monospace;font-size:14px;font-weight:700;cursor:pointer;letter-spacing:1px;margin-top:16px} +.profile-save-btn:hover{background:#ff33aa} +.profile-save-btn:disabled{opacity:.5;cursor:not-allowed} +.profile-msg{font-size:11px;min-height:16px;margin-top:6px;font-family:'Roboto Mono',monospace} +.profile-msg.ok{color:#11cc77} +.profile-msg.err{color:#ff0099} +.profile-uid{font-size:10px;color:#444;margin-top:14px;word-break:break-all} +/* ── Avatars on cards/comments ── */ +.author-avatar{width:20px;height:20px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:6px;border:1px solid #333;flex-shrink:0} +.author-initial{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:9px;font-weight:700;color:#000;vertical-align:middle;margin-right:6px;flex-shrink:0} +.proposal-author{display:flex;align-items:center} +/* ── LIGHT MODE: profile ── */ +html[data-theme="light"] #profile-btn{background:#E8E6E2;border-color:#BBB} +html[data-theme="light"] .profile-overlay{background:rgba(0,0,0,.55)} +html[data-theme="light"] .profile-modal{background:#F5F3EF} +html[data-theme="light"] .profile-input{background:#FFF;border-color:#CCC;color:#111} +html[data-theme="light"] .profile-upload-btn{border-color:#CCC;color:#555} +html[data-theme="light"] .profile-upload-btn:hover{border-color:#ff0099;color:#111} +html[data-theme="light"] .profile-theme-btn{border-color:#CCC;color:#555} +html[data-theme="light"] .profile-avatar-lg{background:#E8E6E2} +html[data-theme="light"] .profile-uid{color:#999} /* ── LIGHT MODE: index.html-specific overrides ── */ html[data-theme="light"] .stats-bar{background:#E8E6E2;border-color:#CCC;color:#555} html[data-theme="light"] .stat-divider{color:#BBB} @@ -389,6 +437,42 @@ html[data-theme="light"] .join-check label{color:#555}
+ + + + +