:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--font-script: "Courier New", Courier, monospace;--background: #c3c2b7;--foreground: #111111;--card: #f8f6e7;--card-foreground: #111111;--popover: #ffffff;--popover-foreground: #111111;--primary: #ffcc00;--primary-foreground: #111111;--secondary: #e3e0d4;--secondary-foreground: #111111;--muted: #f3f4f6;--muted-foreground: #6b7280;--accent: #facc15;--accent-foreground: #111111;--tertiary: #a4b9d3;--destructive: #ef4444;--destructive-foreground: #ffffff;--border: #e5e7eb;--input: #e5e7eb;--ring: #facc15;--radius: .5rem;--spacing-unit: 4px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .15)}:root.dark-theme{--background: #191816;--foreground: #e5e5e5;--card: #262624;--card-foreground: #f3f3f3;--popover: #181818;--popover-foreground: #f3f3f3;--primary: #ffcc00;--primary-foreground: #111111;--secondary: #1f1f1f;--secondary-foreground: #e5e5e5;--muted: #2a2a2a;--muted-foreground: #a1a1a1;--accent: #c59f07;--accent-foreground: #111111;--tertiary: #24539f;--destructive: #a91b1b;--destructive-foreground: #f3f3f3;--border: #353535;--input: #2a2a2a;--ring: #facc15}*{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--font-sans);background-color:var(--background);color:var(--foreground);transition:background-color .2s ease-in-out,color .2s ease-in-out}#app{display:flex;flex-direction:column;height:100vh}.main-area{display:flex;flex-direction:row;flex-grow:1;overflow:hidden}.content-area{flex-grow:1;display:flex;justify-content:center;padding:calc(var(--spacing-unit) * 2)}.editor-wrapper{display:flex;align-items:center;flex-direction:column;flex-grow:1;overflow:hidden;width:100%;gap:calc(var(--spacing-unit) * 2)}@media (max-width: 768px){.main-area{flex-direction:column}}.editor-area{display:flex;flex:1;overflow:hidden;border-top:1px solid var(--border);cursor:text}.bold{font-weight:700}.italic{font-style:italic}.underline{text-decoration:underline}.btn,.btn-small{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--secondary);color:var(--secondary-foreground);cursor:pointer;font-size:.875rem;font-weight:500;transition:all .15s ease;white-space:nowrap}.btn-small{padding:.375rem .75rem;font-size:.75rem}.btn:hover,.btn-small:hover{background:var(--accent);border-color:var(--border);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active,.btn-small:active{transform:translateY(0);box-shadow:inset 0 2px 4px #0000001a}.btn-danger{color:var(--destructive-foreground);border-color:var(--destructive);background:var(--destructive)}.btn-danger:hover{background:var(--destructive);color:var(--destructive-foreground);border-color:var(--destructive);opacity:.8}.auth-modal{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.auth-content{background:var(--card);color:var(--card-foreground);border-radius:var(--radius);padding:2rem;width:100%;max-width:400px;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.auth-content h3{margin:0 0 1.5rem;font-size:1.25rem;font-weight:600;text-align:center}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-form input{padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--input);color:var(--foreground);font-size:1rem}.auth-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem}.toast-notification{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background-color:var(--secondary);color:var(--secondary-foreground);padding:12px 24px;border-radius:var(--radius);z-index:3000;opacity:0;transition:opacity .5s,bottom .5s;box-shadow:var(--shadow-lg)}.toast-notification.show{opacity:1;bottom:30px}.toast-notification.error{background-color:var(--destructive);color:var(--destructive-foreground)}.search-widget{position:absolute;top:1rem;right:1rem;background:var(--popover);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;box-shadow:var(--shadow-lg);display:flex;gap:.5rem;align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;min-width:280px;transition:all .2s ease}.search-widget.hidden{display:none}.search-widget input{flex:1;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;background:var(--input);color:var(--foreground);transition:all .15s ease;outline:none;font-family:inherit}.search-widget input:focus{border-color:var(--ring);background:var(--background);box-shadow:0 0 0 3px #3b82f61a}.search-widget input::placeholder{color:var(--muted-foreground)}.search-widget button{padding:.5rem .75rem;border:none;border-radius:var(--radius);background:var(--secondary);color:var(--secondary-foreground);cursor:pointer;font-size:.75rem;font-weight:500;transition:all .15s ease;white-space:nowrap;min-width:60px}.search-widget button:hover{background:var(--accent);color:var(--accent-foreground);transform:translateY(-1px)}.search-widget button:active{transform:translateY(0);background:var(--secondary)}.search-widget button:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.search-widget button[data-action=close]{background:var(--destructive);color:var(--destructive-foreground);padding:.375rem;min-width:auto;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.search-widget button[data-action=close]:hover{background:var(--destructive);opacity:.8}@media (max-width: 768px){.search-widget{top:.5rem;right:.5rem;left:.5rem;min-width:auto;padding:.5rem;border-radius:var(--radius)}.search-widget input{font-size:16px;padding:.75rem}.search-widget button{padding:.75rem;font-size:.875rem}}@media (max-width: 480px){.search-widget{flex-direction:column;gap:.75rem;align-items:stretch}.search-widget button{width:100%;justify-content:center}.search-widget button[data-action=close]{position:absolute;top:.5rem;right:.5rem;width:28px;height:28px}}#editor-container{flex:1;padding:1in 1in 1in 1.5in;white-space:pre-wrap;position:relative;overflow-y:auto;width:8.5in;max-width:100%;font-family:var(--font-script);font-size:12pt;line-height:1em;background:var(--card);color:var(--card-foreground);border:none;outline:none;box-shadow:var(--shadow-lg);-webkit-user-select:none;user-select:none;touch-action:pan-y}#editor-container:focus{outline:none;box-shadow:inset 0 0 0 2px var(--ring)}#editor-container::-webkit-scrollbar{width:12px}#editor-container::-webkit-scrollbar-track{background:var(--secondary);border-radius:var(--radius)}#editor-container::-webkit-scrollbar-thumb{background:var(--muted-foreground);border-radius:var(--radius);border:2px solid var(--secondary)}#editor-container::-webkit-scrollbar-thumb:hover{background:var(--foreground)}.line{display:block}.page-break{height:2in;position:relative}.page-break:before{content:"";position:absolute;top:1in;left:0;right:0;border-top:2px dashed var(--muted-foreground)}.page-break-label{position:absolute;top:calc(1in - .5em);left:50%;transform:translate(-50%);background:var(--background);padding:0 .5em;font-size:.8rem;color:var(--muted-foreground);font-family:var(--font-mono)}.line.scene-heading{text-transform:uppercase;font-weight:700;width:60ch}.line.action{width:60ch}.line.character{text-transform:uppercase;margin-left:2in;width:25ch}.line.parenthetical{margin-left:1.5in;width:20ch}.line.dialogue{margin-left:1in;width:40ch}.line.transition{text-transform:uppercase;text-align:right;margin-left:4.5in;width:15ch}.line.shot{text-transform:uppercase;font-weight:700;width:60ch}.iconbar{display:flex;align-items:center;gap:calc(var(--spacing-unit) * 1);padding:calc(var(--spacing-unit) * 2);border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-md);border-radius:9999px;-webkit-user-select:none;user-select:none;margin:calc(var(--spacing-unit) * 2);width:max-content;max-width:100%;position:relative}.iconbar-main-content{display:inline-flex;align-items:center;gap:calc(var(--spacing-unit) * 1);flex-wrap:nowrap;overflow:hidden}.iconbtn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--foreground);border-radius:var(--radius);cursor:pointer;transition:all .15s ease;position:relative;flex-shrink:0}.iconbtn svg{width:18px;height:18px;pointer-events:none}.iconbtn:hover{background:var(--accent);transform:translateY(-1px)}.iconbtn:active{transform:translateY(0) scale(.95);background:var(--secondary)}.iconbtn:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.iconbtn[disabled]{opacity:.4;cursor:not-allowed;color:var(--muted-foreground)}.iconbtn[disabled]:hover{background:transparent;transform:none}.sep{width:1px;height:24px;background:var(--border);margin:0 calc(var(--spacing-unit) * 1);border-radius:.5px;flex-shrink:0}.dropdown-container{position:relative;display:inline-block}.dropdown-content{display:none;position:absolute;top:100%;left:0;background-color:var(--popover);min-width:160px;box-shadow:var(--shadow-lg);z-index:1001;border-radius:var(--radius);padding:calc(var(--spacing-unit) * 1);margin-top:calc(var(--spacing-unit) * 1);border:1px solid var(--border)}.dropdown-content.visible{display:block}.dropdown-item{color:var(--popover-foreground);padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3);text-decoration:none;display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;border-radius:calc(var(--radius) - 2px);font-size:.875rem}.dropdown-item:hover{background-color:var(--accent)}.iconbar-more-container{position:relative;visibility:hidden}.iconbar-dropdown{position:absolute;top:100%;right:0;background:var(--background);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:1001;padding:calc(var(--spacing-unit) * 1);margin-top:calc(var(--spacing-unit) * 1);display:none;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing-unit) * 1);width:200px}.iconbar-dropdown.visible{display:flex;width:max-content}.iconbar-dropdown .iconbtn{width:38px;justify-content:center}.iconbtn:before{content:"";position:absolute;inset:0;border-radius:var(--radius);background:linear-gradient(135deg,#ffffff1a,#fff0);opacity:0;transition:opacity .15s ease}.iconbtn:hover:before{opacity:1}.iconbtn:focus-visible{outline:2px solid var(--ring);outline-offset:1px;box-shadow:0 0 0 4px #3b82f61a}.iconbtn:active{transform:translateY(0) scale(.95);background:var(--secondary);box-shadow:inset 0 2px 4px #0000001a}@media (max-width: 768px){.iconbar{margin:calc(var(--spacing-unit) * 1);padding:6px;gap:2px;border-radius:10px;overflow:visible}.iconbar-main-content{overflow-x:hidden}.iconbtn{width:42px;height:42px}.iconbtn svg{width:20px;height:20px}.sep{height:28px;margin:0 2px}}@media (max-width: 480px){.iconbar{margin:2px;padding:4px;gap:1px}.iconbtn{width:40px;height:40px}.iconbtn svg{width:18px;height:18px}.sep{height:26px;margin:0 1px}}@media (hover: none) and (pointer: coarse){.iconbtn:hover{background:transparent;transform:none}.iconbtn:active{background:var(--secondary);transform:scale(.95)}}.widget-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10;will-change:transform}.widget-layer>*{pointer-events:auto}.cursor{position:absolute;width:2px;background:var(--primary);visibility:visible;border-radius:1px}.remote-cursor{position:absolute;width:2px;background:var(--tertiary);border-radius:1px;z-index:10}.remote-cursor-label{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:var(--muted);color:var(--muted-foreground);padding:2px 6px;border-radius:var(--radius);font-size:12px;white-space:nowrap;margin-bottom:4px}.selection{background:#3b82f633;border-radius:2px;letter-spacing:-.01px}.search-match{background:#fbbf2466;border-radius:2px;letter-spacing:-.01px}.search-match-current{background:#f9731666;border-radius:2px;letter-spacing:-.01px}@media (max-width: 768px){.cursor{width:2px}}@media (max-width: 480px){.cursor{width:4px}}.title-page-container{background:var(--card);color:var(--card-foreground);display:flex;justify-content:center;align-items:center;text-align:center;padding:2em;height:100%;width:8.5in}.title-page-container.hidden{display:none}.title-page-content{display:flex;flex-direction:column;justify-content:space-between;height:100%;width:100%;max-width:600px}.title-main{flex-grow:1;display:flex;flex-direction:column;justify-content:center}.close-title-page-btn{position:absolute;top:1em;left:1em;padding:.5em 1em;background:var(--secondary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--secondary-foreground)}.title-main h1{font-size:2.5em;margin-bottom:1em;text-transform:uppercase;text-decoration:underline}.title-main h2{font-size:1.2em;margin-bottom:1em}.title-main h3{font-size:1.5em;margin-bottom:3em}.contact-info{text-align:left;font-size:.9em;padding-bottom:2em}.file-manager-modal{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.file-manager-content{background:var(--card);color:var(--card-foreground);border-radius:var(--radius);padding:1.5rem;width:100%;max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.file-manager-content h3{margin:0 0 1.5rem;font-size:1.25rem;font-weight:600}.file-list{margin-bottom:1.5rem}.file-item{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;background:var(--secondary);transition:all .2s ease}.file-name{font-weight:500;flex:1;font-family:var(--font-mono);font-size:.875rem}.file-date{color:var(--muted-foreground);font-size:.75rem;white-space:nowrap}.file-manager-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1.5rem;border-top:1px solid var(--border)}.auth-prompt{text-align:center;padding:10px;border-radius:var(--radius);margin-bottom:15px}.side-menu{display:flex;flex-direction:column;background:var(--secondary);padding:calc(var(--spacing-unit) * 2);border-right:1px solid var(--border);gap:calc(var(--spacing-unit) * 2)}.sidemenu-button{background:transparent;border:none;color:var(--foreground);cursor:pointer;border-radius:var(--radius);width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:background-color .2s,color .2s}.sidemenu-bottom{margin-top:auto;display:flex;flex-direction:column;gap:calc(var(--spacing-unit) * 2)}.sidemenu-button:hover{background:var(--accent)}.sidemenu-button.selected{background:var(--primary);color:var(--primary-foreground)}.sidemenu-button svg{width:20px;height:20px}.menu-bar{display:flex;align-items:center;background:var(--secondary);padding:0 calc(var(--spacing-unit) * 2);border-bottom:1px solid var(--border)}.logo{display:flex;align-items:center;padding:0 calc(var(--spacing-unit) * 3)}.menu{position:relative}.menu button{background:none;border:none;padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 4);cursor:pointer;color:var(--foreground)}.menu button:hover{background:var(--accent)}.menu-dropdown{display:none;position:absolute;top:100%;left:0;background:var(--popover);border:1px solid var(--border);border-radius:var(--radius);min-width:200px;box-shadow:var(--shadow-md);z-index:40}.menu-dropdown.visible{display:block}.menu-dropdown a{display:block;padding:calc(var(--spacing-unit) * 3) calc(var(--spacing-unit) * 4);text-decoration:none;color:var(--popover-foreground)}.menu-dropdown a:hover{background:var(--accent)}.menu-dropdown hr{margin:calc(var(--spacing-unit) * 2) 0;border:0;border-top:1px solid var(--border)}.share-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.share-modal-content{background-color:var(--card);color:var(--card-foreground);border-radius:var(--radius);padding:24px;width:500px;max-width:90%;box-shadow:var(--shadow-lg)}.share-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.share-modal-header h2{margin:0;font-size:20px}.btn-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--foreground)}.add-people{display:flex;gap:8px;margin-bottom:24px}.add-people input{flex-grow:1;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--input);color:var(--foreground)}.people-with-access h3{font-size:16px;margin-bottom:12px}.user-list{display:flex;flex-direction:column;gap:12px}.user-item{display:flex;justify-content:space-between;align-items:center}.user-email{font-weight:700}.user-role{color:var(--muted-foreground);margin-left:8px}.btn-remove{background:none;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--foreground)}.share-modal-footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.general-access h3{font-size:14px;margin:0}.general-access p{margin:0;font-size:12px;color:var(--muted-foreground)}.btn-done{background-color:var(--primary);color:var(--primary-foreground);padding:8px 16px;border-radius:var(--radius);border:none;cursor:pointer}.statistics-view{padding:2rem;background:var(--card);color:var(--card-foreground);height:100%;overflow-y:auto;width:8.5in}.statistics-content h2{margin-top:0;font-size:1.5rem;border-bottom:1px solid var(--border);padding-bottom:.5rem;margin-bottom:1rem}.statistics-content h3{font-size:1.2rem;margin-top:2rem;margin-bottom:1rem;border-bottom:1px solid var(--border);padding-bottom:.5rem}.statistics-content ul{list-style:none;padding:0;margin:0}.statistics-content li{margin-bottom:.5rem}.character-stats{columns:2;gap:2rem}.welcome-modal{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.welcome-modal-content{background:var(--card);color:var(--card-foreground);border-radius:var(--radius);padding:1.5rem;width:100%;max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.welcome-modal-content h3{margin:0 0 1.5rem;font-size:1.25rem;font-weight:600}.welcome-modal-content ul{margin-bottom:1.5rem}.welcome-modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1.5rem;border-top:1px solid var(--border)}
