|
- @use '../atoms/variables' as *;
-
- // ─── Minimal Theme ─────────────────────────────────────────────────────────────
- // Gilt nur wenn body[data-theme="minimal"] gesetzt ist.
- // Standard-Theme bleibt vollständig unverändert.
-
- body[data-theme="minimal"] {
- background: #fff;
-
- // ── Normale Top-Nav ausblenden ──────────────────────────────────────────────
- .main-nav { display: none; }
-
- // ── Hamburger-Nav einblenden ────────────────────────────────────────────────
- .hamburger-nav {
- display: flex;
- justify-content: flex-end;
- padding: $space-3 $space-3 0;
- }
-
- // ── Page-Background weiß ───────────────────────────────────────────────────
- .tt-page { background: #fff; }
-
- // ── TT-Header: kein Gradient, cleaner Rahmen ───────────────────────────────
- .tt-header {
- background: #fff;
- box-shadow: 0 1px 0 $color-border;
- padding: $space-3 $space-5;
- min-height: auto;
- flex-direction: column;
- align-items: stretch;
- gap: 0;
- }
-
- // Standard-Meta und Collapsible umschalten
- .tt-header__meta { display: none; }
- .tt-header__minimal-bar { display: flex; }
-
- // Collapsible: standardmäßig versteckt (JS steuert aria-expanded)
- .tt-header__collapsible {
- overflow: hidden;
- transition: max-height $transition-slow;
- max-height: 0;
-
- &.is-open { max-height: 120px; }
- }
-
- // Week-Nav im Minimal-Stil (dunkler Hintergrund funktioniert nicht auf weiß)
- .week-nav {
- background: var(--color-bg);
- border-radius: $radius-md;
- margin-top: $space-2;
- }
-
- .week-nav__arrow { color: $color-text-dark; &:hover { background: $color-border; } }
- .week-nav__day-name { color: $color-text-base; }
- .week-nav__day-date { color: $color-text-muted; }
- .week-nav__day--active { background: $color-text-dark; .week-nav__day-name, .week-nav__day-date { color: $color-white; } }
- .week-nav__day:hover:not(.week-nav__day--active) { background: rgba($color-text-dark, 0.07); }
- .week-nav__cal { background: rgba($color-text-dark, 0.08); color: $color-text-dark; &:hover { background: rgba($color-text-dark, 0.15); } }
-
- // ── Greeting versteckt ─────────────────────────────────────────────────────
- .greeting { display: none; }
-
- // ── Content zentriert und schmaler ────────────────────────────────────────
- .tt-content {
- max-width: 520px;
- padding: $space-6 $space-4;
- gap: $space-6;
- }
-
- // ── Entry Form: cleaner, größere Inputs ────────────────────────────────────
- .entry-form {
- background: #fff;
- border: none;
- box-shadow: none;
- border-radius: 0;
- padding: $space-4 0;
- }
-
- .entry-form__grid {
- grid-template-columns: 100px 1fr;
- gap: $space-5 $space-4;
- }
-
- .input,
- .select,
- .textarea {
- font-size: $font-size-md;
- }
-
- // Höhere Inputs (außer Textarea)
- .input,
- .select {
- height: 44px;
- padding: 0 $space-3;
- }
-
- // Borderless inputs inside the entry form
- .entry-form .input,
- .entry-form .select {
- border: none;
- box-shadow: none;
- background-color: $color-bg;
-
- &:focus { box-shadow: none; }
- }
-
- // Bemerkung-Zeile: standardmäßig versteckt
- .entry-form__label--note,
- .entry-form__field--note {
- display: none;
-
- &.is-visible { display: flex; }
- }
-
- .entry-form__label--note.is-visible { display: block; }
-
- // Bemerkung-Toggle-Row: standardmäßig sichtbar (im Standard ausgeblendet)
- .entry-form__note-toggle-row { display: flex; }
-
- // ── Entry-List-Summary ─────────────────────────────────────────────────────
- .entry-list__summary { display: block; }
-
- // Entry List standardmäßig versteckt (JS steuert)
- .entry-list.is-collapsed {
- display: none;
- }
-
- .entry-list {
- box-shadow: none;
- border: 1px solid $color-border;
- border-radius: $radius-md;
- }
-
- // ── Unterseiten (Report, Clients, etc.): nur Navigation ───────────────────
- // Subpages übernehmen den Hamburger und das weiße Layout automatisch
- // durch .main-nav { display: none } und .hamburger-nav { display: block }
-
- // Report-Seite weißer Hintergrund
- .report-page,
- .crud-page,
- .account-page,
- .team-page {
- background: #fff;
- }
- }
-
- // ─── Hamburger-Nav (immer im DOM, per CSS im Standard versteckt) ──────────────
-
- .hamburger-nav {
- display: none; // Standard: versteckt
- position: relative;
- }
-
- .hamburger-nav__toggle {
- width: 40px;
- height: 40px;
- border: 1px solid $color-border;
- border-radius: $radius-md;
- background: #fff;
- cursor: pointer;
- display: flex;
- align-items: center;
- justify-content: center;
- box-shadow: $shadow-card;
- transition: background $transition-fast;
-
- &:hover { background: $color-bg; }
- }
-
- // Hamburger-Icon aus drei Balken
- .hamburger-nav__icon,
- .hamburger-nav__icon::before,
- .hamburger-nav__icon::after {
- display: block;
- width: 18px;
- height: 2px;
- background: $color-text-dark;
- border-radius: 2px;
- transition: transform $transition-base, opacity $transition-fast;
- }
-
- .hamburger-nav__icon {
- position: relative;
-
- &::before,
- &::after {
- content: '';
- position: absolute;
- left: 0;
- }
-
- &::before { top: -5px; }
- &::after { top: 5px; }
- }
-
- // X-Icon wenn geöffnet
- .hamburger-nav__toggle[aria-expanded="true"] {
- .hamburger-nav__icon {
- background: transparent;
- &::before { transform: translateY(5px) rotate(45deg); }
- &::after { transform: translateY(-5px) rotate(-45deg); }
- }
- }
-
- .hamburger-nav__panel {
- position: absolute;
- top: calc(100% + #{$space-2});
- right: 0;
- min-width: 200px;
- background: #fff;
- border: 1px solid $color-border;
- border-radius: $radius-md;
- box-shadow: 0 8px 24px rgba(0,0,0,0.12);
- padding: $space-2 0;
- z-index: 301;
- }
-
- .hamburger-nav__item {
- display: block;
- padding: $space-3 $space-5;
- font-size: $font-size-base;
- font-weight: $font-weight-medium;
- color: $color-text-base;
- text-decoration: none;
- transition: background $transition-fast, color $transition-fast;
-
- &:hover { background: $color-bg; color: $color-text-dark; }
-
- &--active {
- color: var(--color-primary);
- font-weight: $font-weight-bold;
- }
- }
-
- .hamburger-nav__divider {
- height: 1px;
- background: $color-border;
- margin: $space-2 0;
- }
-
- // ─── TT-Header Minimal-Bar (immer im DOM, im Standard ausgeblendet) ───────────
-
- .tt-header__minimal-bar {
- display: none; // Standard: versteckt, Minimal: sichtbar (override oben)
- align-items: center;
- justify-content: space-between;
- padding: $space-1 0;
- }
-
- .tt-header__minimal-date {
- font-size: $font-size-md;
- font-weight: $font-weight-bold;
- color: $color-text-dark;
- }
-
- .tt-header__week-toggle {
- background: none;
- border: 1px solid $color-border;
- border-radius: $radius-pill;
- padding: $space-1 $space-3;
- font-size: $font-size-sm;
- font-weight: $font-weight-medium;
- color: $color-text-muted;
- cursor: pointer;
- transition: border-color $transition-fast, color $transition-fast;
-
- &:hover { border-color: $color-text-muted; color: $color-text-dark; }
- &[aria-expanded="true"] { color: $color-text-dark; border-color: $color-text-dark; }
- }
-
- // ─── Entry-List-Summary (immer im DOM, im Standard ausgeblendet) ──────────────
-
- .entry-list__summary {
- display: none; // Standard: versteckt
- }
-
- .entry-list__summary-btn {
- width: 100%;
- display: flex;
- align-items: center;
- gap: $space-2;
- padding: $space-3 $space-4;
- background: none;
- border: 1px solid $color-border;
- border-radius: $radius-md;
- font-size: $font-size-base;
- font-weight: $font-weight-medium;
- color: $color-text-base;
- cursor: pointer;
- transition: background $transition-fast;
-
- &:hover { background: $color-bg; }
- }
-
- .entry-list__summary-count { font-weight: $font-weight-bold; color: $color-text-dark; }
- .entry-list__summary-sep { color: $color-text-light; }
- .entry-list__summary-total { color: $color-text-muted; }
- .entry-list__summary-arrow {
- margin-left: auto;
- color: $color-text-muted;
- font-size: $font-size-xs;
- transition: transform $transition-fast;
-
- .entry-list__summary-btn[aria-expanded="true"] & {
- transform: rotate(180deg);
- }
- }
-
- // ─── Note-Toggle-Button (immer im DOM, im Standard ausgeblendet) ──────────────
-
- .entry-form__note-toggle-row {
- display: none; // Standard: versteckt, Minimal: flex (override oben)
- grid-column: 2;
- }
-
- .entry-form__note-toggle {
- background: none;
- border: none;
- padding: 0;
- font-size: $font-size-sm;
- color: $color-primary;
- cursor: pointer;
- font-weight: $font-weight-medium;
- transition: color $transition-fast;
-
- &:hover { color: var(--color-primary-dark); }
- &.is-open { color: $color-text-muted; }
- }
-
- // ─── Theme-Picker auf der Account-Seite ──────────────────────────────────────
-
- .account-form__divider-row {
- grid-column: 1 / -1;
- padding: $space-2 0 $space-4;
- }
-
- .account-form__divider {
- border: none;
- border-top: 1px solid $color-border;
- margin: 0;
- }
-
- .theme-picker {
- display: flex;
- gap: $space-3;
- flex-wrap: wrap;
- }
-
- .theme-option {
- display: flex;
- flex-direction: column;
- gap: $space-1;
- padding: $space-4;
- border: 2px solid $color-border;
- border-radius: $radius-md;
- cursor: pointer;
- min-width: 160px;
- transition: border-color $transition-fast, background $transition-fast;
- user-select: none;
-
- input[type="radio"] { display: none; }
-
- &:hover { border-color: var(--color-primary-light); background: rgba($color-primary, 0.02); }
-
- &--active {
- border-color: var(--color-primary);
- background: rgba($color-primary, 0.04);
- }
- }
-
- .theme-option__label {
- font-size: $font-size-base;
- font-weight: $font-weight-bold;
- color: $color-text-dark;
- }
-
- .theme-option__desc {
- font-size: $font-size-sm;
- color: $color-text-muted;
- line-height: 1.4;
- }
|