|
| 1 | +/* ========================================================================== |
| 2 | + OnlyAgent — app design system (matches the onlyagent.us landing page) |
| 3 | + src/assets/css/onlyagent-theme.css · link LAST in the shells. |
| 4 | + Visual only — no JS/crypto changes. Restyles the WebCrypt app into a |
| 5 | + card-based, professional dark UI. |
| 6 | + ========================================================================== */ |
| 7 | + |
| 8 | +:root{ |
| 9 | + --bg:#070b10; --bg-2:#0c131c; --panel:#0f1822; --panel-2:#13202c; |
| 10 | + --line:#1d2a38; --line-2:#26384a; --text:#e8eef5; --muted:#93a3b5; |
| 11 | + --accent:#3ad6c4; --accent-2:#2f8fff; --danger:#ff6b6b; --ok:#3ad6c4; |
| 12 | + --radius:16px; --radius-sm:11px; --max:980px; |
| 13 | + --grad:linear-gradient(135deg,var(--accent),var(--accent-2)); |
| 14 | + --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; |
| 15 | + --mono:'Share Tech Mono',ui-monospace,SFMono-Regular,Menlo,monospace; |
| 16 | +} |
| 17 | + |
| 18 | +/* ---------- base ---------- */ |
| 19 | +*{box-sizing:border-box} |
| 20 | +html{scroll-behavior:smooth} |
| 21 | +body{ |
| 22 | + margin:0;color:var(--text);font-family:var(--sans);line-height:1.6; |
| 23 | + -webkit-font-smoothing:antialiased; |
| 24 | + background: |
| 25 | + radial-gradient(1000px 520px at 82% -8%,rgba(47,143,255,.13),transparent 60%), |
| 26 | + radial-gradient(860px 520px at 4% 2%,rgba(58,214,196,.10),transparent 55%), |
| 27 | + var(--bg); |
| 28 | + background-attachment:fixed;min-height:100vh; |
| 29 | +} |
| 30 | +a{color:var(--accent);text-decoration:none;transition:.15s} |
| 31 | +a:hover{color:var(--accent-2)} |
| 32 | +h1,h2,h3,h4,h5,h6{margin:0;letter-spacing:-.02em;font-weight:700;line-height:1.18} |
| 33 | +p{margin:0 0 1rem} |
| 34 | +hr{border:0;border-top:1px solid var(--line);margin:28px 0} |
| 35 | +::selection{background:rgba(58,214,196,.28)} |
| 36 | +font{font-size:inherit!important} |
| 37 | + |
| 38 | +/* ---------- top nav (custom .oa-nav, replaces Bootstrap navbar) ---------- */ |
| 39 | +.oa-nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px); |
| 40 | + background:rgba(7,11,16,.8);border-bottom:1px solid var(--line)} |
| 41 | +.oa-nav .inner{max-width:var(--max);margin:0 auto;height:62px;display:flex; |
| 42 | + align-items:center;justify-content:space-between;padding:0 22px;gap:16px} |
| 43 | +.oa-brand{display:flex;align-items:center;gap:10px;font-weight:700} |
| 44 | +.oa-brand img{height:30px;width:auto;display:block} |
| 45 | +.oa-navlinks{display:flex;align-items:center;gap:6px;flex-wrap:wrap} |
| 46 | +.oa-navlinks a{color:var(--muted);font-size:14px;font-weight:500;padding:8px 12px;border-radius:9px} |
| 47 | +.oa-navlinks a:hover{color:var(--text);background:var(--panel)} |
| 48 | +.oa-navlinks a.active{color:var(--text);background:var(--panel);border:1px solid var(--line)} |
| 49 | +.oa-navlinks a i{margin-right:6px;color:var(--accent)} |
| 50 | +.oa-navlinks .sep{width:1px;height:22px;background:var(--line);margin:0 6px} |
| 51 | +@media(max-width:680px){.oa-navlinks a span{display:none}.oa-navlinks a i{margin:0}} |
| 52 | + |
| 53 | +/* legacy bootstrap navbar fallback (in case a page still uses it) */ |
| 54 | +.navbar.bg-dark{background:rgba(7,11,16,.8)!important;border-bottom:1px solid var(--line)} |
| 55 | +.navbar .navbar-brand,.navbar a{color:var(--muted)!important} |
| 56 | +.navbar .navbar-brand:hover{color:var(--text)!important} |
| 57 | +.navbar .fa{color:var(--accent)} |
| 58 | + |
| 59 | +/* ---------- layout ---------- */ |
| 60 | +.oa-main{max-width:var(--max);margin:0 auto;padding:0 22px 90px} |
| 61 | +.oa-page-head{text-align:center;padding:46px 0 30px} |
| 62 | +.oa-page-head .eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600; |
| 63 | + color:var(--accent);background:rgba(58,214,196,.08);border:1px solid rgba(58,214,196,.25); |
| 64 | + padding:6px 13px;border-radius:999px;margin-bottom:16px} |
| 65 | +.oa-page-head h1{font-size:clamp(26px,4.4vw,40px);font-weight:800} |
| 66 | +.oa-page-head p{color:var(--muted);max-width:56ch;margin:14px auto 0;font-size:17px} |
| 67 | + |
| 68 | +/* ---------- card (wraps tool forms + content) ---------- */ |
| 69 | +.oa-card,#container.oa-content{ |
| 70 | + background:var(--panel);border:1px solid var(--line);border-radius:var(--radius); |
| 71 | + padding:30px;margin:0 auto;max-width:680px; |
| 72 | + box-shadow:0 18px 50px rgba(0,0,0,.35); |
| 73 | +} |
| 74 | +#container.oa-content{display:block} |
| 75 | +#container fieldset{background:transparent;border:0;padding:0;margin:0} |
| 76 | +#container h4{font-size:16px;font-weight:600;color:var(--muted);text-align:center;margin:0 auto 22px;max-width:50ch} |
| 77 | +#container h4 font{font-size:16px!important} |
| 78 | +#container h3{font-size:15px;color:var(--text);margin-bottom:10px;font-weight:600} |
| 79 | +#container > div > h1{font-size:18px;color:var(--muted);text-align:center} |
| 80 | + |
| 81 | +/* ---------- form controls ---------- */ |
| 82 | +label{display:block;color:var(--text);font-weight:500;font-size:14px;margin:0 0 7px} |
| 83 | +input[type="text"],input[type="email"],input[type="password"],input[type="search"], |
| 84 | +input:not([type]),textarea,select,.form-control{ |
| 85 | + width:100%;background:var(--bg-2)!important;color:var(--text)!important; |
| 86 | + border:1px solid var(--line)!important;border-radius:var(--radius-sm)!important; |
| 87 | + padding:13px 15px!important;font-family:var(--sans);font-size:15px;margin-bottom:14px; |
| 88 | + transition:border-color .18s, box-shadow .18s; |
| 89 | +} |
| 90 | +textarea{min-height:54px;resize:vertical;line-height:1.5} |
| 91 | +#message{min-height:150px} |
| 92 | +input::placeholder,textarea::placeholder{color:var(--muted)!important;opacity:1} |
| 93 | +input:focus,textarea:focus,select:focus,.form-control:focus,input.focus,textarea.focus{ |
| 94 | + outline:none!important;border-color:var(--accent)!important; |
| 95 | + box-shadow:0 0 0 3px rgba(58,214,196,.15)!important;background:var(--bg-2)!important;color:var(--text)!important; |
| 96 | +} |
| 97 | +select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%); |
| 98 | + background-position:calc(100% - 20px) 19px,calc(100% - 14px) 19px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:38px!important} |
| 99 | +select option{background:var(--panel);color:var(--text)} |
| 100 | +fieldset{border:0;padding:0;margin:0} |
| 101 | +input[readonly]{background:var(--panel-2)!important;color:var(--accent)!important;font-family:var(--mono)} |
| 102 | + |
| 103 | +/* radio groups -> pill segment look */ |
| 104 | +#action,form#action{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px;color:var(--muted)} |
| 105 | +#action label,center label{display:inline-flex;align-items:center;gap:7px;margin:0; |
| 106 | + background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:8px 14px;color:var(--text);font-size:14px;cursor:pointer} |
| 107 | +input[type="radio"],input[type="checkbox"]{accent-color:var(--accent);width:auto;margin:0} |
| 108 | +center{display:block} |
| 109 | + |
| 110 | +/* file input */ |
| 111 | +input[type="file"]{width:100%;color:var(--muted);background:var(--bg-2);border:1px dashed var(--line-2); |
| 112 | + border-radius:var(--radius-sm);padding:18px;cursor:pointer;margin-bottom:14px} |
| 113 | +input[type="file"]::file-selector-button{background:var(--panel-2);color:var(--text);border:1px solid var(--line); |
| 114 | + border-radius:9px;padding:9px 15px;margin-right:14px;cursor:pointer;font-family:var(--sans);font-weight:600} |
| 115 | +input[type="file"]::file-selector-button:hover{border-color:var(--accent)} |
| 116 | +.block,.block-inner{background:transparent;border:0;padding:0;margin:0 0 14px} |
| 117 | +.block .block-inner{padding:0} |
| 118 | +.outline{border:0!important} |
| 119 | +#filedetails,#results{color:var(--muted);font-size:14px} |
| 120 | + |
| 121 | +/* ---------- buttons ---------- */ |
| 122 | +.btn,button,#onlykey_start,#submit,a.oa-btn{ |
| 123 | + font-family:var(--sans);font-weight:700;font-size:15px;border-radius:var(--radius-sm); |
| 124 | + padding:13px 20px;cursor:pointer;transition:.15s;border:1px solid transparent;display:inline-flex; |
| 125 | + align-items:center;justify-content:center;gap:8px; |
| 126 | +} |
| 127 | +/* primary submit / search */ |
| 128 | +button[type="submit"],#onlykey_start,#submit,.btn-success,.oa-btn-primary{ |
| 129 | + width:100%;background:var(--grad)!important;color:#04121a!important;border:0!important; |
| 130 | + box-shadow:0 10px 26px rgba(47,143,255,.22);margin-top:6px; |
| 131 | +} |
| 132 | +button[type="submit"]:hover,#onlykey_start:hover,#submit:hover,.btn-success:hover{filter:brightness(1.08);transform:translateY(-1px)} |
| 133 | +.btn-secondary,.btn-light,.btn-default{background:var(--panel-2)!important;border:1px solid var(--line)!important;color:var(--text)!important;width:auto} |
| 134 | +.btn-danger{background:var(--danger)!important;color:#1a0606!important;border:0!important} |
| 135 | +/* generic non-action buttons */ |
| 136 | +button{background:var(--panel-2);color:var(--text);border:1px solid var(--line)} |
| 137 | +button:hover{border-color:var(--accent)} |
| 138 | + |
| 139 | +/* ---------- home page (.oa-tools grid) ---------- */ |
| 140 | +.oa-hero{text-align:center;padding:54px 0 8px} |
| 141 | +.oa-hero h1{font-size:clamp(30px,5.2vw,50px);font-weight:800;max-width:16ch;margin:0 auto} |
| 142 | +.oa-hero h1 .g{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent} |
| 143 | +.oa-hero p{color:var(--muted);font-size:18px;max-width:54ch;margin:18px auto 0} |
| 144 | +.oa-tools{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:40px 0} |
| 145 | +@media(max-width:680px){.oa-tools{grid-template-columns:1fr}} |
| 146 | +.oa-tool{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius); |
| 147 | + padding:26px;transition:.18s;color:var(--text)} |
| 148 | +.oa-tool:hover{border-color:var(--line-2);transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.35);color:var(--text)} |
| 149 | +.oa-tool .ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:20px; |
| 150 | + color:#04121a;background:var(--grad);margin-bottom:16px} |
| 151 | +.oa-tool h3{font-size:19px;margin-bottom:6px} |
| 152 | +.oa-tool p{color:var(--muted);font-size:14.5px;margin:0} |
| 153 | +.oa-cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px} |
| 154 | + |
| 155 | +/* fancy-icons header on tool pages */ |
| 156 | +#fancy-icons{margin:8px 0 0;font-size:22px} |
| 157 | +#fancy-icons .fa{color:var(--accent)} |
| 158 | +#fancy-icons .fi-b{color:var(--muted)} |
| 159 | +.app-head img{filter:drop-shadow(0 8px 30px rgba(58,214,196,.22))} |
| 160 | + |
| 161 | +/* console / code (password-generator) */ |
| 162 | +pre{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px;overflow:auto;margin-top:6px} |
| 163 | +pre code,code{color:var(--accent);font-family:var(--mono);background:transparent} |
| 164 | +#messages,#header_messages,#terminal_messages{color:var(--accent)} |
| 165 | +.xterm-viewport,.xterm-screen{background:var(--bg-2)!important;border-radius:10px} |
| 166 | + |
| 167 | +/* ---------- modals ---------- */ |
| 168 | +.modal-content{background:var(--panel)!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;color:var(--text)!important;box-shadow:0 24px 70px rgba(0,0,0,.5)} |
| 169 | +.modal-header,.modal-footer{border-color:var(--line)!important} |
| 170 | +.modal-title{color:var(--text)} |
| 171 | +.modal-footer button{width:auto} |
| 172 | +.close{color:var(--muted);text-shadow:none;opacity:.8} |
| 173 | +.close:hover{color:var(--text)} |
| 174 | + |
| 175 | +/* tokenizer chips */ |
| 176 | +.tokenfield,.tokenizer{background:var(--bg-2)!important;border:1px solid var(--line)!important;border-radius:var(--radius-sm)!important;padding:6px!important;margin-bottom:14px} |
| 177 | +.token,.tokenfield .token{background:rgba(58,214,196,.14)!important;border:1px solid rgba(58,214,196,.35)!important;color:var(--text)!important;border-radius:8px!important} |
| 178 | +.token .close{color:var(--accent)} |
| 179 | + |
| 180 | +/* alerts */ |
| 181 | +.alert-success{background:rgba(58,214,196,.1)!important;border:1px solid rgba(58,214,196,.35)!important;color:var(--text)!important;border-radius:var(--radius-sm)} |
| 182 | +.alert-danger,.text-danger{color:var(--danger)!important} |
| 183 | +.alert-warning{background:rgba(255,172,2,.08)!important;border:1px solid rgba(255,172,2,.3)!important;color:#ffce6a!important;border-radius:var(--radius-sm)} |
| 184 | + |
| 185 | +/* ---------- footer ---------- */ |
| 186 | +.oa-footer{border-top:1px solid var(--line);padding:34px 22px;margin-top:30px} |
| 187 | +.oa-footer .inner{max-width:var(--max);margin:0 auto;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:14px} |
| 188 | +.oa-footer a{color:var(--muted)}.oa-footer a:hover{color:var(--text)} |
| 189 | + |
| 190 | +/* scrollbar */ |
| 191 | +*{scrollbar-color:var(--line) transparent} |
| 192 | +::-webkit-scrollbar{width:10px;height:10px} |
| 193 | +::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px} |
| 194 | +::-webkit-scrollbar-thumb:hover{background:var(--line-2)} |
0 commit comments