aboutsummaryrefslogtreecommitdiff
path: root/client/public/style.css
diff options
context:
space:
mode:
authorGravatar Moon Flower <mforoud86@gmail.com> 2026-02-27 23:37:44 +0330
committerGravatar Moon Flower <mforoud86@gmail.com> 2026-02-27 23:37:44 +0330
commit8ee3112ca09fd70a50c2159629b40700beb2d5c3 (patch)
tree42a8d3e5d7898e9d084f77e1345be270be0f5969 /client/public/style.css
parentsmall check (diff)
first client ver
Diffstat (limited to 'client/public/style.css')
-rw-r--r--client/public/style.css1164
1 files changed, 1164 insertions, 0 deletions
diff --git a/client/public/style.css b/client/public/style.css
new file mode 100644
index 0000000..f2cbd93
--- /dev/null
+++ b/client/public/style.css
@@ -0,0 +1,1164 @@
+:root {
+ --bg: #0c0b0a;
+ --surface: #141311;
+ --surface-raise: #1a1815;
+ --border: #221f1c;
+ --border-bright: #312d29;
+ --fg: #f5f0ea;
+ --fg-dim: #6e6760;
+ --fg-dimmer: #2e2a26;
+ --in-color: #ff2eb8;
+ --in-glow: rgba(255, 46, 184, .10);
+ --out-color: #39ff7a;
+ --out-glow: rgba(57, 255, 122, .10);
+ --all-color: #ffcc00;
+ --all-glow: rgba(255, 204, 0, .10);
+ --accent: #ff5533;
+ --radius: 6px;
+ --font-mono: 'Berkeley Mono', 'Courier New', monospace;
+ --font-display: 'Syne', sans-serif;
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+}
+
+html,
+body {
+ background: var(--bg);
+ color: var(--fg);
+ font-family: var(--font-mono);
+ font-size: 13px;
+ line-height: 1.6;
+ height: 100%;
+}
+
+body {
+ display: flex;
+ flex-direction: column;
+ min-height: 100vh;
+}
+
+body::before {
+ content: '';
+ position: fixed;
+ inset: 0;
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.02'/%3E%3C/svg%3E");
+ pointer-events: none;
+ z-index: 0;
+}
+
+.header {
+ padding: 18px 24px 14px;
+ flex-shrink: 0;
+ display: flex;
+ align-items: center;
+ gap: 10px;
+ border-bottom: 1px solid var(--border);
+ position: relative;
+ z-index: 400;
+}
+
+.header-text {
+ font-family: var(--font-mono);
+ font-weight: 700;
+ font-size: 15px;
+ letter-spacing: .08em;
+ text-transform: lowercase;
+}
+
+.header-badge {
+ margin-left: auto;
+ font-size: 10px;
+ color: var(--fg-dim);
+ letter-spacing: .12em;
+ display: flex;
+ align-items: center;
+ gap: 5px;
+}
+
+.header-badge span {
+ display: inline-block;
+ width: 7px;
+ height: 7px;
+ border-radius: 50%;
+}
+
+.dot-live {
+ background: #ff5533;
+ box-shadow: 0 0 7px #ff5533;
+ animation: pulse 2s ease-in-out infinite;
+}
+
+.dot-connecting {
+ background: var(--all-color);
+ box-shadow: 0 0 7px var(--all-color);
+ animation: pulse .8s ease-in-out infinite;
+}
+
+.dot-initializing {
+ background: var(--in-color);
+ box-shadow: 0 0 7px var(--in-color);
+ animation: pulse 1.2s ease-in-out infinite;
+}
+
+.dot-disconnected {
+ background: #cc2233;
+ box-shadow: 0 0 7px #cc2233;
+}
+
+@keyframes pulse {
+
+ 0%,
+ 100% {
+ opacity: 1
+ }
+
+ 50% {
+ opacity: .3
+ }
+}
+
+#sidebar-toggle {
+ display: none;
+ align-items: center;
+ justify-content: center;
+ width: 30px;
+ height: 30px;
+ background: transparent;
+ border: none;
+ border-radius: var(--radius);
+ color: var(--fg-dim);
+ cursor: pointer;
+ flex-shrink: 0;
+ transition: color .15s, background .15s;
+}
+
+#sidebar-toggle:hover {
+ background: rgba(255, 255, 255, .05);
+ color: var(--fg);
+}
+
+#sidebar-toggle svg {
+ width: 13px;
+ height: 13px;
+ display: block;
+}
+
+.layout {
+ display: flex;
+ flex: 1;
+ min-height: 0;
+ overflow: hidden;
+ position: relative;
+}
+
+sidebar {
+ width: 22%;
+ min-width: 200px;
+ max-width: 280px;
+ background: var(--surface);
+ border-right: 1px solid var(--border);
+ display: flex;
+ flex-direction: column;
+ flex-shrink: 0;
+ overflow: hidden;
+ position: relative;
+ z-index: 503 !important;
+}
+
+sidebar::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 1px;
+ background: linear-gradient(90deg, transparent, rgba(255, 85, 51, .22) 50%, transparent);
+ pointer-events: none;
+}
+
+s-head {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 13px 14px 10px;
+ border-bottom: 1px solid var(--border);
+ flex-shrink: 0;
+ font-size: 10px;
+ letter-spacing: .16em;
+ text-transform: uppercase;
+ color: var(--fg-dim);
+}
+
+s-head button {
+ display: none;
+ background: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ color: var(--fg-dim);
+ font-size: 13px;
+ cursor: pointer;
+ padding: 2px 6px;
+ line-height: 1;
+ transition: color .15s, border-color .15s, background .15s;
+}
+
+s-head button:hover {
+ color: var(--fg);
+ border-color: var(--border-bright);
+ background: rgba(255, 255, 255, .04);
+}
+
+s-body {
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+ overflow-y: auto;
+ padding: 10px 8px;
+ gap: 2px;
+ scrollbar-width: thin;
+ scrollbar-color: var(--border-bright) transparent;
+ padding-top: 20px;
+}
+
+s-body::-webkit-scrollbar {
+ width: 3px;
+}
+
+s-body::-webkit-scrollbar-thumb {
+ background: var(--border-bright);
+ border-radius: 2px;
+}
+
+s-cat {
+ display: block;
+ font-size: 9px;
+ letter-spacing: .18em;
+ text-transform: uppercase;
+ color: var(--fg-dimmer);
+ padding: 10px 8px 3px;
+}
+
+s-cat:first-child {
+ padding-top: 3px;
+}
+
+s-item {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ padding: 7px 10px;
+ border-radius: var(--radius);
+ border: 1px solid transparent;
+ cursor: pointer;
+ color: var(--fg-dim);
+ font-size: 12px;
+ transition: background .12s, border-color .12s, color .12s;
+ user-select: none;
+ position: relative;
+}
+
+s-item::before {
+ font-size: 11px;
+ opacity: .55;
+ flex-shrink: 0;
+ width: 12px;
+ text-align: center;
+ transition: opacity .12s;
+}
+
+s-item[channel]::before {
+ content: '#';
+}
+
+s-item[dm]::before {
+ content: '@';
+}
+
+s-item[archived]::before {
+ content: 'ยท';
+}
+
+s-item[badge]::after {
+ content: attr(badge);
+ margin-left: auto;
+ font-size: 9px;
+ padding: 1px 6px;
+ border-radius: 10px;
+ background: rgba(255, 85, 51, .15);
+ border: 1px solid rgba(255, 85, 51, .25);
+ color: var(--accent);
+ text-shadow: 0 0 6px rgba(255, 85, 51, .4);
+ flex-shrink: 0;
+ align-self: center;
+}
+
+s-item:hover {
+ background: rgba(255, 255, 255, .03);
+ border-color: var(--border);
+ color: var(--fg);
+}
+
+s-item:hover::before {
+ opacity: 1;
+}
+
+s-item[active] {
+ background: rgba(255, 85, 51, .07);
+ border-color: rgba(255, 85, 51, .18);
+ color: var(--fg);
+}
+
+s-item[active]::before {
+ opacity: 1;
+ color: var(--accent);
+ text-shadow: 0 0 8px rgba(255, 85, 51, .6);
+}
+
+/* s-item[archived] {
+ opacity: .5;
+} */
+
+s-dot {
+ display: inline-block;
+ width: 5px;
+ height: 5px;
+ border-radius: 50%;
+ flex-shrink: 0;
+ margin-left: auto;
+ margin-right: 7px;
+ align-self: center;
+}
+
+s-dot[online] {
+ background: var(--out-color);
+ box-shadow: 0 0 5px rgba(57, 255, 122, .7);
+}
+
+s-dot[away] {
+ background: var(--all-color);
+ box-shadow: 0 0 5px rgba(255, 204, 0, .7);
+}
+
+s-dot[offline] {
+ background: var(--fg-dimmer);
+}
+
+s-foot {
+ display: flex;
+ align-items: center;
+ gap: 9px;
+ padding: 10px 12px;
+ border-top: 1px solid var(--border);
+ flex-shrink: 0;
+}
+
+s-avatar {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 28px;
+ height: 28px;
+ border-radius: 5px;
+ background: linear-gradient(135deg, rgba(255, 85, 51, .3), rgba(255, 46, 184, .3));
+ border: 1px solid rgba(255, 85, 51, .2);
+ flex-shrink: 0;
+ font-size: 11px;
+ color: var(--accent);
+ text-shadow: 0 0 8px rgba(255, 85, 51, .6);
+
+ transform: scale(80%);
+}
+
+s-user {
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+ min-width: 0;
+}
+
+s-name {
+ display: block;
+ font-size: 12px;
+ color: var(--fg);
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+s-status {
+ display: block;
+ font-size: 10px;
+ color: var(--fg-dim);
+ letter-spacing: .06em;
+}
+
+.main {
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+ min-width: 0;
+ overflow: hidden;
+}
+
+container {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ flex: 1;
+ min-height: 0;
+ overflow-y: auto;
+ padding: 16px;
+ scrollbar-width: thin;
+ scrollbar-color: var(--border-bright) transparent;
+}
+
+container::-webkit-scrollbar {
+ width: 4px;
+}
+
+container::-webkit-scrollbar-thumb {
+ background: var(--border-bright);
+ border-radius: 2px;
+}
+
+box {
+ flex-shrink: 0;
+ padding: 12px 16px 16px;
+ border-top: 1px solid var(--border);
+ display: flex;
+ gap: 8px;
+ align-items: center;
+}
+
+.msg-row {
+ display: flex;
+ align-items: flex-start;
+ gap: 8px;
+ align-self: flex-start;
+ max-width: 85%;
+ animation: slideIn .2s ease-out both;
+}
+
+@keyframes slideIn {
+ from {
+ opacity: 0;
+ transform: translateY(5px)
+ }
+
+ to {
+ opacity: 1;
+ transform: translateY(0)
+ }
+}
+
+m-in,
+m-out,
+m-all,
+m-system {
+ display: block;
+ padding: 9px 13px;
+ border-radius: var(--radius);
+ font-size: 13px;
+ line-height: 1.55;
+ border: 1px solid transparent;
+ transition: background .15s, border-color .15s;
+}
+
+m-in {
+ color: var(--in-color);
+ background: var(--in-glow);
+ border-color: rgba(255, 46, 184, .12);
+ text-shadow: 0 0 14px rgba(255, 46, 184, .55);
+}
+
+m-in:hover {
+ background: rgba(255, 46, 184, .15);
+ border-color: rgba(255, 46, 184, .25);
+}
+
+m-out {
+ color: var(--out-color);
+ background: var(--out-glow);
+ border-color: rgba(57, 255, 122, .12);
+ text-shadow: 0 0 14px rgba(57, 255, 122, .55);
+}
+
+m-out:hover {
+ background: rgba(57, 255, 122, .15);
+ border-color: rgba(57, 255, 122, .25);
+}
+
+m-all {
+ color: var(--all-color);
+ background: var(--all-glow);
+ border-color: rgba(255, 204, 0, .12);
+ border-style: dashed;
+ text-shadow: 0 0 14px rgba(255, 204, 0, .55);
+}
+
+m-all:hover {
+ background: rgba(255, 204, 0, .15);
+ border-color: rgba(255, 204, 0, .28);
+}
+
+m-system {
+ color: var(--fg-dim);
+ background: rgba(110, 103, 96, .07);
+ border-color: rgba(110, 103, 96, .10);
+}
+
+m-system:hover {
+ background: rgba(110, 103, 96, .12);
+ border-color: rgba(110, 103, 96, .20);
+}
+
+.msg-prefix {
+ opacity: .45;
+ font-size: 11px;
+ margin-right: 3px;
+}
+
+blob {
+ display: block;
+ width: 38px;
+ height: 38px;
+ min-width: 38px;
+ border-radius: var(--radius);
+ /* border: 1px solid red; */
+ overflow: hidden;
+ flex-shrink: 0;
+}
+
+/* .msg-row:has(m-in) blob {
+ border-color: rgba(255, 46, 184, .15);
+}
+
+.msg-row:has(m-out) blob {
+ border-color: rgba(57, 255, 122, .15);
+}
+
+.msg-row:has(m-all) blob {
+ border-color: rgba(255, 204, 0, .15);
+ border-style: dashed;
+} */
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-family: var(--font-mono);
+ font-weight: 700;
+ line-height: 1.2;
+ letter-spacing: .04em;
+ color: var(--fg);
+}
+
+h1 {
+ font-size: 28px;
+ letter-spacing: .06em;
+ text-transform: lowercase;
+}
+
+h2 {
+ font-size: 20px;
+ letter-spacing: .05em;
+ text-transform: lowercase;
+}
+
+h3 {
+ font-size: 16px;
+}
+
+h4 {
+ font-size: 14px;
+ font-family: var(--font-mono);
+ letter-spacing: .08em;
+ text-transform: uppercase;
+ color: var(--fg-dim);
+}
+
+h5 {
+ font-size: 12px;
+ font-family: var(--font-mono);
+ letter-spacing: .10em;
+ text-transform: uppercase;
+ color: var(--fg-dim);
+}
+
+h6 {
+ font-size: 11px;
+ font-family: var(--font-mono);
+ letter-spacing: .12em;
+ text-transform: uppercase;
+ color: var(--fg-dimmer);
+}
+
+h1::after,
+h2::after {
+ content: '';
+ display: block;
+ margin-top: 6px;
+ height: 1px;
+ width: 2em;
+ background: var(--accent);
+ box-shadow: 0 0 8px var(--accent);
+}
+
+strong,
+b {
+ font-weight: 700;
+ color: var(--fg);
+ text-shadow: 0 0 10px rgba(245, 240, 234, .18);
+}
+
+a {
+ color: var(--accent);
+ text-decoration: none;
+ border-bottom: 1px dashed rgba(255, 85, 51, .4);
+ transition: color .15s, border-color .15s, text-shadow .15s;
+}
+
+a:hover {
+ color: #ff7755;
+ border-color: rgba(255, 119, 85, .7);
+ text-shadow: 0 0 10px rgba(255, 85, 51, .5);
+}
+
+a:visited {
+ color: #cc4422;
+ border-color: rgba(204, 68, 34, .4);
+}
+
+.btn {
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ font-family: var(--font-mono);
+ font-size: 12px;
+ letter-spacing: .06em;
+ padding: 8px 16px;
+ border-radius: var(--radius);
+ border: 1px solid transparent;
+ cursor: pointer;
+ transition: background .15s, border-color .15s, transform .1s, box-shadow .15s;
+ white-space: nowrap;
+ user-select: none;
+ text-decoration: none;
+}
+
+.btn:active {
+ transform: scale(.97);
+}
+
+.btn:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+}
+
+.btn:disabled {
+ opacity: .32;
+ cursor: not-allowed;
+ pointer-events: none;
+ filter: grayscale(.5);
+}
+
+.btn-primary {
+ background: rgba(255, 85, 51, .12);
+ border-color: rgba(255, 85, 51, .4);
+ color: #ff7755;
+ text-shadow: 0 0 8px rgba(255, 85, 51, .5);
+}
+
+.btn-secondary {
+ background: rgba(49, 45, 41, .5);
+ border-color: var(--border-bright);
+ color: var(--fg-dim);
+}
+
+.btn-danger {
+ background: rgba(255, 34, 68, .10);
+ border-color: rgba(255, 34, 68, .35);
+ color: #ff4466;
+ text-shadow: 0 0 8px rgba(255, 34, 68, .4);
+}
+
+.btn-warn {
+ background: rgba(255, 170, 0, .10);
+ border-color: rgba(255, 170, 0, .35);
+ color: #ffbb33;
+ text-shadow: 0 0 8px rgba(255, 170, 0, .4);
+}
+
+.btn-success {
+ background: rgba(57, 255, 122, .08);
+ border-color: rgba(57, 255, 122, .30);
+ color: var(--out-color);
+ text-shadow: 0 0 8px rgba(57, 255, 122, .4);
+}
+
+.btn-primary:hover {
+ background: rgba(255, 85, 51, .22);
+ border-color: rgba(255, 85, 51, .7);
+ box-shadow: 0 0 12px rgba(255, 85, 51, .2);
+}
+
+.btn-secondary:hover {
+ background: rgba(49, 45, 41, .9);
+ border-color: rgba(110, 103, 96, .5);
+ color: var(--fg);
+}
+
+.btn-danger:hover {
+ background: rgba(255, 34, 68, .20);
+ border-color: rgba(255, 34, 68, .65);
+ box-shadow: 0 0 12px rgba(255, 34, 68, .2);
+}
+
+.btn-warn:hover {
+ background: rgba(255, 170, 0, .20);
+ border-color: rgba(255, 170, 0, .60);
+ box-shadow: 0 0 12px rgba(255, 170, 0, .2);
+}
+
+.btn-success:hover {
+ background: rgba(57, 255, 122, .16);
+ border-color: rgba(57, 255, 122, .55);
+ box-shadow: 0 0 12px rgba(57, 255, 122, .2);
+}
+
+.send-btn {
+ background: rgba(255, 85, 51, .08);
+ border: 1px solid rgba(255, 85, 51, .28);
+ border-radius: var(--radius);
+ color: #ff7755;
+ font-family: var(--font-mono);
+ font-size: 12px;
+ letter-spacing: .06em;
+ padding: 9px 16px;
+ cursor: pointer;
+ white-space: nowrap;
+ text-shadow: 0 0 8px rgba(255, 85, 51, .5);
+ transition: background .15s, border-color .15s, transform .1s;
+}
+
+.send-btn:hover {
+ background: rgba(255, 85, 51, .16);
+ border-color: rgba(255, 85, 51, .5);
+}
+
+.send-btn:active {
+ transform: scale(.97);
+}
+
+input[type="text"],
+input[type="email"],
+input[type="password"],
+input[type="search"],
+input[type="number"] {
+ background: var(--surface);
+ border: 1px solid var(--border-bright);
+ border-radius: var(--radius);
+ color: var(--fg);
+ font-family: var(--font-mono);
+ font-size: 13px;
+ padding: 9px 13px;
+ outline: none;
+ width: 100%;
+ transition: border-color .15s, box-shadow .15s, background .15s;
+}
+
+input::placeholder {
+ color: var(--fg-dimmer);
+}
+
+input:focus {
+ border-color: rgba(255, 85, 51, .45);
+ box-shadow: 0 0 0 3px rgba(255, 85, 51, .07);
+ background: var(--surface-raise);
+}
+
+input:disabled {
+ opacity: .35;
+ cursor: not-allowed;
+}
+
+textarea {
+ background: var(--surface);
+ border: 1px solid var(--border-bright);
+ border-radius: var(--radius);
+ color: var(--fg);
+ font-family: var(--font-mono);
+ font-size: 13px;
+ padding: 9px 13px;
+ outline: none;
+ width: 100%;
+ resize: none;
+ min-height: 80px;
+ transition: border-color .15s, box-shadow .15s, background .15s;
+}
+
+textarea::placeholder {
+ color: var(--fg-dimmer);
+}
+
+textarea:focus {
+ border-color: rgba(255, 85, 51, .45);
+ box-shadow: 0 0 0 3px rgba(255, 85, 51, .07);
+ background: var(--surface-raise);
+}
+
+textarea:disabled {
+ opacity: .35;
+ cursor: not-allowed;
+}
+
+field {
+ display: flex;
+ flex-direction: column;
+ gap: 5px;
+}
+
+field>label {
+ font-size: 10px;
+ letter-spacing: .12em;
+ text-transform: uppercase;
+ color: var(--fg-dim);
+ cursor: default;
+}
+
+label:has(input[type="radio"]),
+label:has(input[type="checkbox"]) {
+ display: inline-flex;
+ align-items: center;
+ gap: 9px;
+ cursor: pointer;
+ font-size: 13px;
+ color: var(--fg-dim);
+ user-select: none;
+ transition: color .15s;
+}
+
+label:has(input[type="radio"]):hover,
+label:has(input[type="checkbox"]):hover,
+label:has(input[type="radio"]:checked),
+label:has(input[type="checkbox"]:checked) {
+ color: var(--fg);
+}
+
+label>input[type="radio"],
+label>input[type="checkbox"] {
+ display: none;
+}
+
+indicator {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 14px;
+ height: 14px;
+ border-radius: 50%;
+ border: 1px solid var(--border-bright);
+ background: var(--surface);
+ flex-shrink: 0;
+ transition: border-color .15s, box-shadow .15s;
+}
+
+indicator::after {
+ content: '';
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ background: var(--accent);
+ box-shadow: 0 0 6px rgba(255, 85, 51, .8);
+ opacity: 0;
+ transform: scale(0);
+ transition: opacity .15s, transform .15s;
+}
+
+label:has(input[type="checkbox"]) indicator {
+ border-radius: 3px;
+}
+
+label:has(input[type="checkbox"]) indicator::after {
+ width: 5px;
+ height: 5px;
+ border-radius: 1px;
+}
+
+label:has(input[type="radio"]:checked) indicator,
+label:has(input[type="checkbox"]:checked) indicator {
+ border-color: rgba(255, 85, 51, .6);
+ box-shadow: 0 0 0 3px rgba(255, 85, 51, .08);
+}
+
+label:has(input[type="radio"]:checked) indicator::after,
+label:has(input[type="checkbox"]:checked) indicator::after {
+ opacity: 1;
+ transform: scale(1);
+}
+
+row {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+}
+
+val {
+ min-width: 32px;
+ text-align: right;
+ font-size: 11px;
+ color: var(--accent);
+ text-shadow: 0 0 6px rgba(255, 85, 51, .5);
+ letter-spacing: .06em;
+ flex-shrink: 0;
+}
+
+input[type="range"] {
+ -webkit-appearance: none;
+ appearance: none;
+ flex: 1;
+ height: 4px;
+ border-radius: 2px;
+ background: var(--border-bright);
+ outline: none;
+ cursor: pointer;
+}
+
+input[type="range"]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ width: 14px;
+ height: 14px;
+ border-radius: 50%;
+ background: var(--accent);
+ border: 1px solid rgba(255, 85, 51, .5);
+ box-shadow: 0 0 8px rgba(255, 85, 51, .55);
+ transition: box-shadow .15s, transform .1s;
+}
+
+input[type="range"]::-webkit-slider-thumb:active {
+ transform: scale(1.2);
+}
+
+input[type="range"]::-moz-range-thumb {
+ width: 14px;
+ height: 14px;
+ border-radius: 50%;
+ background: var(--accent);
+ border: 1px solid rgba(255, 85, 51, .5);
+ box-shadow: 0 0 8px rgba(255, 85, 51, .55);
+ cursor: pointer;
+}
+
+pill {
+ display: inline-flex;
+ align-items: stretch;
+ border: 1px solid var(--border-bright);
+ border-radius: 40px;
+ overflow: hidden;
+ background: var(--surface);
+ font-size: 12px;
+ transition: border-color .15s;
+}
+
+pill[full] {
+ display: flex;
+ width: 100%;
+}
+
+pill:focus-within {
+ border-color: rgba(255, 85, 51, .4);
+ box-shadow: 0 0 0 3px rgba(255, 85, 51, .07);
+}
+
+pill>p {
+ display: flex;
+ align-items: center;
+ padding: 5px 12px 5px 13px;
+ color: var(--fg-dim);
+ letter-spacing: .08em;
+ font-size: 11px;
+ text-transform: uppercase;
+ border-right: 1px solid var(--border-bright);
+ white-space: nowrap;
+ background: rgba(49, 45, 41, .4);
+ margin: 0;
+}
+
+pill>elm {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ padding: 5px 13px 5px 11px;
+ color: var(--fg);
+ flex: 1;
+ min-width: 0;
+}
+
+pill>elm input,
+pill>elm select {
+ border: none;
+ background: transparent;
+ box-shadow: none;
+ padding: 0;
+ margin: 0;
+ font-size: 12px;
+ color: var(--fg);
+ width: 100%;
+ min-width: 0;
+ outline: none;
+}
+
+.modal-backdrop {
+ position: fixed;
+ inset: 0;
+ background: rgba(12, 11, 10, .82);
+ backdrop-filter: blur(4px);
+ z-index: 1000;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ opacity: 0;
+ pointer-events: none;
+ transition: opacity .2s ease;
+}
+
+.modal-backdrop.modal-open {
+ opacity: 1;
+ pointer-events: all;
+}
+
+.modal {
+ background: var(--surface);
+ border: 1px solid var(--border-bright);
+ border-radius: 8px;
+ min-width: 340px;
+ max-width: min(560px, calc(100vw - 40px));
+ max-height: calc(100vh - 80px);
+ overflow-y: auto;
+ position: relative;
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, .03), 0 24px 60px rgba(0, 0, 0, .6);
+ transform: translateY(10px) scale(.98);
+ transition: transform .22s ease;
+ scrollbar-width: thin;
+ scrollbar-color: var(--border-bright) transparent;
+
+ padding: 10px;
+}
+
+.modal-backdrop.modal-open .modal {
+ transform: translateY(0) scale(1);
+}
+
+.modal::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 1px;
+ background: linear-gradient(90deg, transparent 10%, rgba(255, 85, 51, .3) 50%, transparent 90%);
+ pointer-events: none;
+}
+
+.modal-header {
+ display: flex;
+ align-items: center;
+ padding: 14px 18px;
+ border-bottom: 1px solid var(--border);
+ gap: 8px;
+}
+
+.modal-title {
+ font-family: var(--font-mono);
+ font-size: 14px;
+ font-weight: 700;
+ letter-spacing: .06em;
+ text-transform: lowercase;
+ flex: 1;
+}
+
+.modal-close {
+ background: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ color: var(--fg-dim);
+ font-size: 14px;
+ cursor: pointer;
+ padding: 2px 6px;
+ line-height: 1;
+ transition: color .15s, border-color .15s, background .15s;
+}
+
+.modal-close:hover {
+ color: var(--fg);
+ border-color: var(--border-bright);
+ background: rgba(255, 255, 255, .04);
+}
+
+.modal-body {
+ padding: 18px;
+}
+
+.modal-footer {
+ display: flex;
+ justify-content: flex-end;
+ gap: 8px;
+ padding: 14px 18px;
+ border-top: 1px solid var(--border);
+}
+
+#sidebar-backdrop {
+ display: none;
+ position: fixed;
+ inset: 0;
+ background: rgba(12, 11, 10, .8);
+ z-index: 500;
+ opacity: 0;
+ pointer-events: none;
+ transition: opacity .25s ease;
+ backdrop-filter: blur(4px);
+}
+
+#sidebar-backdrop.open {
+ opacity: 1;
+ pointer-events: all;
+}
+
+@media (max-width: 680px) {
+ #sidebar-toggle {
+ display: inline-flex;
+ }
+
+ s-head button {
+ display: block;
+ }
+
+ sidebar {
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 72% !important;
+ max-width: 320px;
+ transform: translateX(-110%);
+ transition: transform .28s cubic-bezier(.4, 0, .2, 1);
+ box-shadow: 8px 0 40px rgba(0, 0, 0, .5);
+ border-right: 1px solid var(--border-bright);
+ }
+
+ sidebar.open {
+ transform: translateX(0);
+ }
+
+ #sidebar-backdrop {
+ display: block;
+ }
+} \ No newline at end of file