        :root {
            --md-sys-color-primary: #680099;
            --md-sys-color-on-primary: #ffffff;
            --md-sys-color-primary-container: #F1E0FF;
            --md-sys-color-on-primary-container: #23003B;
            --md-sys-color-background: #EFEFEF;
            --md-sys-color-on-background: #1C1B1E;
            --md-sys-color-surface: #FDF8FD;
            --md-sys-color-surface-variant: #f8f5fa;
            --md-sys-color-error: #B3261E;
            --md-sys-color-error-container: #F9DEDC;
            --md-sys-color-on-error-container: #410E0B;
            --transition-standard: all 0.3s cubic-bezier(0.2, 0, 0, 1);
        }

        body.dark-mode {
            --md-sys-color-primary: #D0BCFF;
            --md-sys-color-on-primary: #381E72;
            --md-sys-color-primary-container: #4F378A;
            --md-sys-color-on-primary-container: #EADDFF;
            --md-sys-color-background: #1C1B1E;
            --md-sys-color-on-background: #E6E1E6;
            --md-sys-color-surface: #2B2930;
            --md-sys-color-surface-variant: #49454E;
            --md-sys-color-error: #F2B8B5;
            --md-sys-color-error-container: #8C1D18;
            --md-sys-color-on-error-container: #F9DEDC;
        }

        body {
            font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            margin: 0;
            padding: 0;
            background-color: var(--md-sys-color-background);
            color: var(--md-sys-color-on-background);
            transition: var(--transition-standard);
            min-height: 100vh;
        }

        header {
            background-color: rgba(104, 0, 153, 0.05); 
            color: var(--md-sys-color-primary); 
            padding: 20px;
            text-align: center;
            border-bottom-left-radius: 32px;
            border-bottom-right-radius: 32px;
            position: sticky;
            top: 0;
            z-index: 50; 
            
            backdrop-filter: blur(20px) saturate(180%);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            
            border: 1px solid rgba(104, 0, 153, 0.1);
            border-top: none;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
        }

        body.dark-mode header {
            background-color: rgba(208, 188, 255, 0.05);
            border-color: rgba(255, 255, 255, 0.05);
            color: var(--md-sys-color-primary);
        }

        h1 { margin: 0; font-weight: 500; font-size: 2rem; }
        
        .container {
            padding: 24px;
            max-width: 800px;
            margin: auto;
        }

        button {
            font-family: inherit;
            font-weight: 500;
            border-radius: 100px;
            border: none;
            cursor: pointer;
            transition: var(--transition-standard);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            box-sizing: border-box;
            box-shadow: 
                rgba(0, 0, 0, 0.06) 0px -2px 5px 0px inset, 
                rgba(0, 0, 0, 0.03) 0px -5px 10px 0px inset, 
                rgba(0, 0, 0, 0.04) 0px 1px 1px, 
                rgba(0, 0, 0, 0.05) 0px 2px 2px, 
                rgba(0, 0, 0, 0.05) 0px 4px 4px, 
                rgba(0, 0, 0, 0.05) 0px 8px 8px;
        }

        button:active { transform: scale(0.95); }

        .btn-filled {
            background-color: #680099;
            color: #FFF;
            padding: 12px 24px;
            font-size: 1rem;
        }
        .btn-filled:hover { filter: brightness(1.1); }

        .btn-tonal {
            background-color: var(--md-sys-color-primary-container);
            color: var(--md-sys-color-on-primary-container);
            padding: 10px 20px;
            font-size: 0.9rem;
        }
        .btn-tonal:hover { filter: brightness(0.5); }
        body.dark-mode .btn-tonal:hover { filter: brightness(1.9); }

        .btn-error {
            background-color: var(--md-sys-color-error-container);
            color: var(--md-sys-color-on-error-container);
            padding: 10px 20px;
        }
        .btn-error:hover { background-color: var(--md-sys-color-error); color: white; }

        .btn-icon {
            border-radius: 50%;
            width: 36px;
            height: 36px;
            padding: 0;
            background-color: transparent;
            color: inherit;
        }
        .btn-icon:hover { background-color: var(--md-sys-color-surface-variant); }

        .controls-top {
            display: flex;
            justify-content: space-between;
            align-items: center;
            position: fixed;
            top: 20px;
            width: 100%;
            pointer-events: none;
            padding: 0 20px;
            box-sizing: border-box;
            z-index: 100;
        }

        .controls-top > button, .controls-top > label {
            pointer-events: auto;
        }

        .controls-top > button {
            background-color: var(--md-sys-color-surface);
            color: var(--md-sys-color-on-background);
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            padding: 10px 20px;
            border-radius: 100px;
            border: none;
        }

        .ui-switch {
          --switch-bg: rgb(135, 150, 165);
          --switch-width: 48px;
          --switch-height: 20px;
          --circle-diameter: 32px;
          --circle-bg: rgb(0, 56, 146);
          --circle-inset: calc((var(--circle-diameter) - var(--switch-height)) / 2);
        }

        .ui-switch input {
          display: none;
        }

        .slider {
          -webkit-appearance: none;
          -moz-appearance: none;
          appearance: none;
          width: var(--switch-width);
          height: var(--switch-height);
          background: var(--switch-bg);
          border-radius: 999px;
          position: relative;
          cursor: pointer;
        }

        .slider .circle {
          top: calc(var(--circle-inset) * -1);
          left: 0;
          width: var(--circle-diameter);
          height: var(--circle-diameter);
          position: absolute;
          background: var(--circle-bg);
          border-radius: inherit;
          background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjAiIHdpZHRoPSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICAgIDxwYXRoIGZpbGw9IiNmZmYiCiAgICAgICAgZD0iTTkuMzA1IDEuNjY3VjMuNzVoMS4zODlWMS42NjdoLTEuMzl6bS00LjcwNyAxLjk1bC0uOTgyLjk4Mkw1LjA5IDYuMDcybC45ODItLjk4Mi0xLjQ3My0xLjQ3M3ptMTAuODAyIDBMMTMuOTI3IDUuMDlsLjk4Mi45ODIgMS40NzMtMS40NzMtLjk4Mi0uOTgyek0xMCA1LjEzOWE0Ljg3MiA0Ljg3MiAwIDAwLTQuODYyIDQuODZBNC44NzIgNC44NzIgMCAwMDEwIDE0Ljg2MiA0Ljg3MiA0Ljg3MiAwIDAwMTQuODYgMTAgNC44NzIgNC44NzIgMCAwMDEwIDUuMTM5em0wIDEuMzg5QTMuNDYyIDMuNDYyIDAgMDExMy40NzEgMTBhMy40NjIgMy40NjIgMCAwMS0zLjQ3MyAzLjQ3MkEzLjQ2MiAzLjQ2MiAwIDAxNi41MjcgMTAgMy40NjIgMy40NjIgMCAwMTEwIDYuNTI4ek0xLjY2NSA5LjMwNXYxLjM5aDIuMDgzdi0xLjM5SDEuNjY2em0xNC41ODMgMHYxLjM5aDIuMDg0di0xLjM5aC0yLjA4NHpNNS4wOSAxMy45MjhMMy42MTYgMTUuNGwuOTgyLjk4MiAxLjQ3My0xLjQ3My0uOTgyLS45ODJ6bTkuODIgMGwtLjk4Mi45ODIgMS40NzMtMS40NzMuOTgyLS45ODItMS40NzMtMS40NzN6TTkuMzA1IDE2LjI1djIuMDgzaDEuMzg5VjE2LjI1aC0xLjM5eiIgLz4KPC9zdmc+");
          background-repeat: no-repeat;
          background-position: center center;
          -webkit-transition: left 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
          -o-transition: left 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
          transition: left 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: center;
          -ms-flex-align: center;
          align-items: center;
          -webkit-box-pack: center;
          -ms-flex-pack: center;
          justify-content: center;
          box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12);
        }

        .slider .circle::before {
          content: "";
          position: absolute;
          width: 100%;
          height: 100%;
          background: rgba(255, 255, 255, 0.75);
          border-radius: inherit;
          -webkit-transition: all 500ms;
          -o-transition: all 500ms;
          transition: all 500ms;
          opacity: 0;
        }

        .ui-switch input:checked+.slider .circle {
          left: calc(100% - var(--circle-diameter));
          background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjAiIHdpZHRoPSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICAgIDxwYXRoIGZpbGw9IiNmZmYiCiAgICAgICAgZD0iTTQuMiAyLjVsLS43IDEuOC0xLjguNyAxLjguNy43IDEuOC42LTEuOEw2LjcgNWwtMS45LS43LS42LTEuOHptMTUgOC4zYTYuNyA2LjcgMCAxMS02LjYtNi42IDUuOCA1LjggMCAwMDYuNiA2LjZ6IiAvPgo8L3N2Zz4=");
        }

        .ui-switch input:active+.slider .circle::before {
          -webkit-transition: 0s;
          -o-transition: 0s;
          transition: 0s;
          opacity: 1;
          width: 0;
          height: 0;
        }

        .clock {
            position: fixed;
            bottom: 24px;
            left: 50%;
            transform: translateX(-50%);
            background-color: var(--md-sys-color-surface-variant);
            color: var(--md-sys-color-on-background);
            padding: 10px 24px;
            border-radius: 100px;
            font-size: 1rem;
            font-weight: 500;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
            z-index: 100;
        }

        .new-list-container { text-align: center; margin-bottom: 32px; margin-top: 40px;}

        .list-container {
            background-color: var(--md-sys-color-surface);
            border-radius: 50px;
            padding: 24px;
            margin-bottom: 24px;
            transition: var(--transition-standard);
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
        }

        .list-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
            flex-wrap: wrap;
            gap: 12px;
        }

        .list-header h3 {
            margin: 0;
            font-size: 1.4rem;
            color: var(--md-sys-color-on-background);
            flex-grow: 1;
            padding: 10px;
        }
		
		.btn-edit-text {
            background: none !important;
            box-shadow: none !important;
            color: var(--md-sys-color-error);
            font-size: 0.8rem;
            padding: 0;
            margin-left: 8px;
            opacity: 0.7;
        }
        .btn-edit-text:hover { opacity: 1; transform: none; }

        .list-actions { display: flex; gap: 8px; }

        ul { list-style-type: none; padding: 0; margin: 0; }

        li {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 12px 20px;
            margin-bottom: 8px;
            background-color: var(--md-sys-color-surface-variant);
            border-radius: 32px;
            transition: var(--transition-standard);
			box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.1);
        }

        li span { flex-grow: 1; margin-right: 12px; font-size: 1.05rem; transition: var(--transition-standard); }
        li.checked { opacity: 0.6; box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.15); }
        li.checked span { text-decoration: line-through; }

        .item-actions { display: flex; gap: 8px; }
        .item-actions button { width: 36px; height: 36px; border-radius: 50%; padding: 0; }

        .btn-check { background-color: transparent; color: var(--md-sys-color-primary); }
        .btn-check:hover { background-color: var(--md-sys-color-primary-container); }
        li.checked .btn-check { background-color: var(--md-sys-color-primary); color: var(--md-sys-color-on-primary); }
        .btn-delete { background-color: transparent; color: var(--md-sys-color-error); }
        .btn-delete:hover { background-color: var(--md-sys-color-error-container); }

        .project-info-container, .prompt-modal-container {
            position: fixed; 
            top: 10%;
            left: 50%; 
            transform: translateX(-50%) scale(0.9);
            background: rgba(255, 255, 255, 0.03); 
            backdrop-filter: blur(25px) saturate(180%);
            -webkit-backdrop-filter: blur(25px) saturate(180%);
            border: 1px solid rgba(255, 255, 255, 0.2);
            box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2), inset 0 0 10px rgba(255, 255, 255, 0.1);
            border-radius: 32px; 
            width: 90%; max-width: 400px;
            opacity: 0; visibility: hidden; z-index: 200;
            transition: all 0.4s cubic-bezier(0.2, 0, 0, 1);
            color: var(--md-sys-color-on-background);
        }

        body.dark-mode .project-info-container, body.dark-mode .prompt-modal-container {
            background: rgba(0, 0, 0, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.05);
        }

        .project-info-container.show, .prompt-modal-container.show { 
            opacity: 1; 
            visibility: visible; 
            transform: translateX(-50%) scale(1);
        }
		
        .modal-header { padding: 24px 24px 0 24px; display: flex; justify-content: space-between; align-items: center; }
        .modal-content { padding: 24px; }
        
        .prompt-input {
            width: 100%;
            padding: 14px 20px;
            border-radius: 20px;
            border: 1px solid rgba(255, 255, 255, 0.1);
            background: rgba(255, 255, 255, 0.05);
            color: inherit;
            font-family: inherit;
            font-size: 1rem;
            margin-bottom: 20px;
            box-sizing: border-box;
            outline: none;
        }

        .modal-overlay {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0,0,0,0.4); backdrop-filter: blur(4px);
            z-index: 150; opacity: 0; visibility: hidden; transition: var(--transition-standard);
        }
        .modal-overlay.show { opacity: 1; visibility: visible; }

        .anim-enter { animation: slideInUp 0.4s cubic-bezier(0.2, 0, 0, 1) forwards; }
        .anim-exit { animation: scaleOut 0.3s cubic-bezier(0.2, 0, 0, 1) forwards; }

        @keyframes slideInUp {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }
        @keyframes scaleOut {
            from { opacity: 1; transform: scale(1); }
            to { opacity: 0; transform: scale(0.9); }
        }