diff --git a/src/styles.css b/src/styles.css index a840810..818b6d9 100644 --- a/src/styles.css +++ b/src/styles.css @@ -1,16 +1,25 @@ :root { color-scheme: light; - --bg: #f6f1ea; - --panel: #fffaf3; - --panel-edge: #efe2d2; - --ink: #1f1a16; - --muted: #6d5f52; - --accent: #1b7f7a; - --accent-strong: #0e5f5a; - --accent-warm: #f2a65a; - --danger: #c04b45; - --shadow: 0 16px 40px rgba(35, 24, 16, 0.08); - --radius: 16px; + --bg-main: #ffe4e6; + --bg-sidebar: #fff1f2; + --accent: #9f1239; + --accent-strong: #7c0e2e; + --border: #fff; + --line: #fecdd3; + --field-border: #fda4af; + --ink: #7f1d1d; + --muted: #9f1239; + --subtle: #be5d75; + --danger: #e11d48; + --surface: #fff; + --shadow: 0 1px 3px rgba(159, 18, 57, 0.08); + --dialog-shadow: 0 16px 40px rgba(159, 18, 57, 0.18); + --radius: 5px; + --control-radius: 4px; + + --bg: var(--bg-main); + --panel: var(--bg-sidebar); + --panel-edge: var(--border); } * { @@ -25,12 +34,11 @@ body, body { margin: 0; - font-family: "Space Grotesk", system-ui, sans-serif; + overflow: hidden; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; + font-size: 14px; color: var(--ink); - background: - radial-gradient(circle at 10% 10%, rgba(255, 231, 205, 0.6), transparent 40%), - radial-gradient(circle at 90% 20%, rgba(193, 233, 229, 0.5), transparent 35%), - linear-gradient(135deg, #f7f1e8 0%, #f2ebe2 100%); + background: var(--bg); } .app { @@ -57,12 +65,15 @@ body { display: inline-flex; align-items: center; gap: 8px; + max-width: min(520px, 100%); padding: 8px 14px; - border-radius: 999px; - background: rgba(27, 127, 122, 0.12); - color: var(--accent-strong); + border: 1px solid var(--panel-edge); + border-radius: var(--radius); + background: var(--panel); + color: var(--accent); font-weight: 600; font-size: 13px; + overflow-wrap: anywhere; } .panes { @@ -101,9 +112,10 @@ body { .panel-title h2 { margin: 0; - font-family: "Fraunces", serif; font-size: 20px; font-weight: 600; + line-height: 1.2; + color: var(--accent); } .panel-title span { @@ -116,9 +128,9 @@ body { grid-template-rows: auto 1fr; gap: 6px; border: 1px solid var(--panel-edge); - border-radius: 12px; + border-radius: var(--radius); overflow: hidden; - background: white; + background: var(--surface); min-height: 180px; } @@ -133,10 +145,11 @@ body { } .table-header { - background: rgba(27, 127, 122, 0.08); + background: var(--bg-main); + color: var(--accent); font-weight: 600; text-transform: uppercase; - letter-spacing: 0.04em; + letter-spacing: 0; font-size: 11px; } @@ -145,27 +158,34 @@ body { } .table-row { - border-top: 1px solid rgba(200, 190, 180, 0.4); + border-top: 1px solid var(--bg-main); + color: var(--ink); cursor: pointer; transition: background 0.15s ease; } +.table-row > div { + min-width: 0; + overflow-wrap: anywhere; +} + .table-row:hover { - background: rgba(27, 127, 122, 0.08); + background: var(--bg-main); } .table-row.selected { - background: rgba(242, 166, 90, 0.2); + background: var(--line); } .checkbox { width: 18px; height: 18px; - border-radius: 5px; - border: 1px solid rgba(27, 127, 122, 0.5); + border-radius: var(--control-radius); + border: 1px solid var(--accent); display: grid; place-items: center; - background: white; + background: var(--surface); + color: var(--accent); } .checkbox.checked { @@ -182,71 +202,100 @@ body { } button { - border: none; - border-radius: 999px; + border: 1px solid var(--accent); + border-radius: var(--control-radius); padding: 8px 14px; font-family: inherit; + font-size: 14px; font-weight: 600; cursor: pointer; - background: #efe5d8; - color: var(--ink); - transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease; + background: var(--panel); + color: var(--accent); + transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease; + -webkit-user-select: none; + user-select: none; } button:hover { - transform: translateY(-1px); - box-shadow: 0 6px 16px rgba(26, 20, 14, 0.12); + background: var(--accent); + color: white; } button.primary { background: var(--accent); color: white; + border-color: var(--accent); } -button.secondary { - background: rgba(27, 127, 122, 0.12); - color: var(--accent-strong); +button.primary:hover { + background: var(--accent-strong); + border-color: var(--accent-strong); } +button.secondary, button.ghost { background: transparent; - border: 1px solid rgba(27, 127, 122, 0.3); + color: var(--accent); + border-color: var(--field-border); +} + +button.secondary:hover, +button.ghost:hover { + background: var(--bg-main); color: var(--accent-strong); + border-color: var(--accent); } button.danger { - background: rgba(192, 75, 69, 0.12); + background: var(--panel); color: var(--danger); + border-color: var(--danger); +} + +button.danger:hover { + background: var(--danger); + color: white; } button:disabled { opacity: 0.5; cursor: not-allowed; - transform: none; - box-shadow: none; + pointer-events: none; } textarea, input, select { - border-radius: 12px; - border: 1px solid rgba(167, 150, 132, 0.5); + border-radius: var(--control-radius); + border: 1px solid var(--field-border); padding: 10px 12px; font-family: inherit; - background: white; + font-size: 14px; + background: var(--surface); color: var(--ink); } +textarea::placeholder, +input::placeholder { + color: var(--subtle); +} + textarea { resize: vertical; min-height: 120px; + line-height: 1.45; } input:focus, textarea:focus, select:focus { - outline: 2px solid rgba(27, 127, 122, 0.3); - border-color: rgba(27, 127, 122, 0.5); + outline: 2px solid rgba(159, 18, 57, 0.2); + border-color: var(--accent); +} + +input[type="checkbox"], +select { + accent-color: var(--accent); } .notes-area { @@ -255,10 +304,10 @@ select:focus { } .rephrase-panel { - border: 1px solid rgba(167, 150, 132, 0.5); - border-radius: 12px; + border: 1px solid var(--line); + border-radius: var(--radius); padding: 8px; - background: #fff; + background: rgba(255, 255, 255, 0.7); display: flex; flex-direction: column; gap: 6px; @@ -275,16 +324,17 @@ select:focus { .rephrase-item { padding: 8px 10px; - border-radius: 10px; - border: 1px solid rgba(200, 190, 180, 0.6); + border-radius: var(--control-radius); + border: 1px solid var(--line); font-size: 12px; cursor: pointer; - background: rgba(27, 127, 122, 0.05); + background: var(--surface); } +.rephrase-item:hover, .rephrase-item.active { - background: rgba(242, 166, 90, 0.25); - border-color: rgba(242, 166, 90, 0.6); + background: var(--bg-main); + border-color: var(--field-border); } .concept-meta { @@ -294,7 +344,7 @@ select:focus { .image-prompt { min-height: 110px; - background: rgba(255, 255, 255, 0.7); + background: var(--surface); } .bottom-bar { @@ -302,9 +352,9 @@ select:focus { flex-wrap: wrap; gap: 12px; padding: 10px 12px; - background: rgba(255, 255, 255, 0.7); - border: 1px solid rgba(167, 150, 132, 0.4); - border-radius: 16px; + background: var(--panel); + border: 1px solid var(--panel-edge); + border-radius: var(--radius); box-shadow: var(--shadow); } @@ -317,6 +367,7 @@ select:focus { .input-group label { font-size: 12px; + font-weight: 600; color: var(--muted); min-width: 90px; }