:root{--ink:#2f2421;--muted:#806f69;--line:#eadfda;--paper:#ffffff;--canvas:#fbf8f6;--accent:#e66057;--accent-dark:#c94743;--accent-soft:#fff0ed;--shadow:0 12px 34px rgba(89,52,40,0.08)}*{box-sizing:border-box}html{background:#fbf8f6}body,html{min-width:320px}body{margin:0;color:var(--ink);background:radial-gradient(circle at 18% -20%,rgba(255,207,194,.4),transparent 30rem),#fbf8f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.shell{width:min(1600px,100%);margin:0 auto;padding:0 28px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.app-header{position:-webkit-sticky;position:sticky;z-index:10;top:0;border-bottom:1px solid rgba(229,215,209,.9);background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.app-header-inner{display:flex;min-height:70px;align-items:center;justify-content:space-between;gap:20px}.brand-lockup{display:flex;align-items:center;gap:11px}.brand-mark,.empty-art{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:3px;gap:3px;padding:6px;border-radius:11px;background:linear-gradient(135deg,#ee7e72,#d75355);box-shadow:0 7px 14px rgba(202,66,67,.2)}.brand-mark{width:38px;height:38px}.brand-mark span,.empty-art span{display:block;border-radius:999px;background:#fff9f7;font-size:0}.brand-name{font-size:16px;font-weight:800;letter-spacing:.02em}.brand-subtitle{margin-top:1px;color:#8f7c76;font-size:11px}.header-actions{display:flex;gap:9px}.button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:10px;padding:8px 13px;font-size:13px;font-weight:750;transition:.16s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button-primary{border-color:var(--accent);color:#fff;background:var(--accent);box-shadow:0 7px 15px rgba(220,87,82,.18)}.button-primary:hover:not(:disabled){border-color:var(--accent-dark);background:var(--accent-dark)}.button-secondary{border-color:#e8d9d4;color:#694c46;background:#fff}.button-secondary:hover:not(:disabled){border-color:#e0ada3;color:#b54a45;background:#fff8f6}.button-full{width:100%;margin-top:14px}.card-access-button{border-color:#efc6bd;color:#a84943;background:#fff5f2;white-space:nowrap}.card-access-button:hover:not(:disabled){border-color:#df8f84;color:#a33f3a;background:#ffece8}.card-access-button.is-active{border-color:#b9dacd;color:#39745e;background:#eff8f4}.card-modal-backdrop{position:fixed;z-index:220;inset:0;display:grid;place-items:center;padding:20px;background:rgba(48,34,30,.48);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.card-modal{position:relative;width:min(460px,100%);border:1px solid #eadbd6;border-radius:20px;padding:29px;background:#fff;box-shadow:0 30px 80px rgba(63,35,28,.24)}.card-modal h2{margin:6px 0 7px;color:#392825;font-size:24px;letter-spacing:-.035em}.card-modal-copy{margin:0;color:#89736c;font-size:12px;line-height:1.65}.card-modal-close{position:absolute;top:13px;right:14px;display:grid;width:31px;height:31px;place-items:center;border:0;border-radius:9px;color:#8b716a;background:#f8f3f1;font-size:21px;line-height:1}.card-modal-close:hover{color:#b54842;background:#fff0ed}.card-session-summary{display:grid;grid-template-columns:1.15fr .8fr 1fr;grid-gap:7px;gap:7px;margin-top:19px}.card-session-summary>div{min-width:0;border:1px solid #e6eee9;border-radius:10px;padding:10px;background:#f5faf7}.card-session-summary b,.card-session-summary span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-session-summary span{color:#789084;font-size:9px}.card-session-summary b{margin-top:4px;color:#3e6354;font-size:11px}.card-session-loading{margin:17px 0 0;border-radius:9px;padding:10px;color:#75877f;background:#f4f8f6;font-size:11px}.card-redeem-form{margin-top:20px}.card-redeem-form>label{display:block;margin-bottom:7px;color:#654d47;font-size:11px;font-weight:750}.card-redeem-form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px}.card-redeem-form input{min-width:0;border:1px solid #e5d7d2;border-radius:10px;padding:10px 11px;color:#3e2c28;background:#fff;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;letter-spacing:.03em;outline-color:#df8177;text-transform:uppercase}.card-modal-error{margin:11px 0 0;border-radius:8px;padding:9px 10px;color:#a63f3b;background:#fff0ed;font-size:11px;line-height:1.5}.card-logout-button{width:100%;margin-top:12px;border:0;padding:7px;color:#93736b;background:transparent;font-size:10px;text-decoration:underline;text-underline-offset:3px}.workspace{padding-top:28px;padding-bottom:46px}.workspace-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:0 0 22px}.eyebrow,.section-kicker{margin:0;color:#d05d55;font-size:10px;font-weight:800;letter-spacing:.12em}.workspace-intro h1{margin:5px 0 7px;font-size:clamp(22px,2.1vw,31px);letter-spacing:-.04em}.workspace-intro p:not(.eyebrow){max-width:680px;margin:0;color:var(--muted);font-size:13px;line-height:1.65}.save-status{display:flex;max-width:300px;align-items:center;gap:8px;color:#806f69;font-size:12px;line-height:1.4}.save-status i{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#65a98f;box-shadow:0 0 0 3px #e6f4ee}.save-status.is-loading i{background:#df9d39;box-shadow:0 0 0 3px #fff3db;animation:pulse 1.1s ease-in-out infinite}.studio-grid{grid-template-columns:284px minmax(480px,1fr) 292px;align-items:start}.left-sidebar,.right-sidebar,.studio-grid{display:grid;grid-gap:18px;gap:18px}.card,.editor-card{border:1px solid rgba(234,223,218,.95);border-radius:16px;background:var(--paper);box-shadow:var(--shadow)}.card{padding:17px}.card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.card h2,.editor-card h2{margin:3px 0 0;font-size:15px;letter-spacing:-.015em}.card-badge,.document-badge,.selected-code,.total-beads{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;padding:0 8px;color:#ad5750;background:#fff0ed;font-size:10px;font-weight:800}.upload-dropzone{display:grid;min-height:128px;place-items:center;align-content:center;grid-gap:5px;gap:5px;margin-top:15px;border:1.5px dashed #e7aaa2;border-radius:12px;padding:14px;color:#9d5a52;background:#fffaf8;text-align:center;outline:none;transition:.16s ease}.upload-dropzone:focus-visible,.upload-dropzone:hover{border-color:#da7168;background:#fff4f1}.upload-dropzone strong{display:block;max-width:235px;overflow:hidden;color:#61443f;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.upload-dropzone span:not(.upload-icon){color:#967b74;font-size:10px}.upload-icon{display:grid;width:31px;height:31px;place-items:center;border-radius:9px;color:#e45e56;background:#ffe5df;font-size:20px;font-weight:700}.source-preview{width:100%;height:108px;margin-top:11px;border:1px solid #eee4df;border-radius:10px;object-fit:cover}.control-field{display:block;margin-top:15px}.control-label{display:flex;justify-content:space-between;color:#76625c;font-size:12px}.control-label b{color:#47332e;font-size:11px}.control-field input[type=range]{width:100%;height:5px;margin:10px 0 0;accent-color:var(--accent)}.control-field select{width:100%;margin-top:8px;border:1px solid #e6dad5;border-radius:9px;padding:9px 10px;color:#4f3a35;background:#fff;font-size:12px;outline-color:#df8177}.check-row{display:flex;align-items:center;gap:8px;margin-top:16px;color:#5c4640;font-size:12px;cursor:pointer}.check-row input{width:15px;height:15px;margin:0;accent-color:var(--accent)}.check-row span{display:grid;grid-gap:2px;gap:2px}.check-row b{font-weight:650}.check-row small{color:#9a837b;font-size:10px}.inline-error{margin:10px 0 0;color:#bd3d38;font-size:11px;line-height:1.5}.card-copy{margin:10px 0 0;color:#8c7770;font-size:12px;line-height:1.55}.dimension-fields{display:grid;grid-template-columns:1fr 17px 1fr;align-items:end;grid-gap:7px;gap:7px;margin-top:14px}.dimension-fields label{display:grid;grid-gap:5px;gap:5px;color:#816b64;font-size:11px}.coordinate-inputs input,.dimension-fields input{width:100%;border:1px solid #e7dbd6;border-radius:8px;padding:8px;color:#44332f;background:#fff;outline-color:#df8177}.times{padding-bottom:8px;color:#b09b94;text-align:center}.draft-card{background:linear-gradient(145deg,#ffffff,#fff9f7)}.draft-dot{width:8px;height:8px;margin:6px 4px 0 0;border-radius:50%;background:#68aa91;box-shadow:0 0 0 3px #e8f4ee}.draft-actions{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:6px;gap:6px;margin-top:13px}.draft-actions button,.text-danger-button{min-height:30px;border:1px solid #e9dbd5;border-radius:8px;color:#725a53;background:#fff;font-size:10px;font-weight:750}.draft-actions button:hover:not(:disabled){border-color:#e7aaa1;color:#c24c46;background:#fff7f5}.text-danger-button{width:100%;margin-top:7px;border-color:transparent;color:#b25b55;background:transparent;text-decoration:underline;text-underline-offset:2px}.tutorial-section{margin-top:26px;padding:26px;border:1px solid #eaded9;border-radius:18px;background:linear-gradient(135deg,#fff,#fff8f5);box-shadow:0 12px 30px rgba(123,81,69,.06)}.tutorial-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.tutorial-heading h2{margin:5px 0;color:#352624;font-size:22px;letter-spacing:-.03em}.tutorial-heading p:not(.eyebrow){margin:0;color:var(--muted);font-size:13px}.tutorial-badge{padding:6px 10px;border-radius:999px;color:#c7544b;background:#fff0ed;font-size:11px;font-weight:800}.tutorial-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin:22px 0 16px;padding:0;list-style:none}.tutorial-steps li{display:flex;min-height:116px;gap:10px;padding:15px;border:1px solid #eee3df;border-radius:12px;background:rgba(255,255,255,.8)}.tutorial-steps li>b{display:grid;width:25px;height:25px;flex:0 0 auto;place-items:center;border-radius:8px;color:#fff;background:#e66b61;font-size:12px}.tutorial-steps h3{margin:2px 0 6px;color:#49332f;font-size:13px}.tutorial-steps p{margin:0;color:#816e67;font-size:11px;line-height:1.6}.tutorial-note{padding:11px 13px;border-radius:10px;color:#745d55;background:#fff4e7;font-size:12px;line-height:1.55}.tutorial-note b{color:#bc5a45}.launch-content{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);grid-gap:18px;gap:18px;margin-top:18px}.content-card{padding:24px;border:1px solid #eaded9;border-radius:16px;background:#fff;box-shadow:0 10px 26px rgba(123,81,69,.05)}.content-card h2{margin:6px 0 17px;color:#352624;font-size:20px;letter-spacing:-.03em}.content-list{display:grid;grid-gap:12px;gap:12px;margin:0;padding:0;list-style:none}.content-list li{padding-left:15px;color:#715d56;font-size:13px;line-height:1.65;position:relative}.content-list li:before{width:5px;height:5px;border-radius:50%;background:#e66b61;content:"";left:0;position:absolute;top:8px}.content-list b{color:#513b36}.faq-card details{border-top:1px solid #f0e6e2;padding:11px 0}.faq-card details:last-child{padding-bottom:0}.faq-card summary{color:#513b36;cursor:pointer;font-size:13px;font-weight:750}.faq-card details p{margin:8px 0 0;color:#806d65;font-size:12px;line-height:1.65}.site-footer{margin-top:12px;border-top:1px solid #eadfda;background:#fff}.site-footer-inner{display:flex;align-items:center;justify-content:center;gap:28px;padding-top:18px;padding-bottom:18px}.site-footer-centered{width:100%;text-align:center}.site-footer-line{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;line-height:1.8}.site-footer-line a{color:#795c55}.site-footer-separator{color:#c5b2ab}.site-footer-record-line{margin-top:4px;color:#a08d86}.site-footer b{color:#795c55;font-size:12px;font-weight:400}.site-footer p{margin:5px 0 0;color:#927d76;font-size:11px}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:15px}.site-footer a{color:#795c55;font-size:12px;text-decoration:none}.site-footer a:hover{color:#c9544c;text-decoration:underline;text-underline-offset:3px}.site-footer-records{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:23px;border-top:1px solid #f3eae6;color:#a08d86;font-size:11px}.legal-page{min-height:100vh;padding:54px 20px;background:radial-gradient(circle at 15% 0,#ffe8e3,transparent 32rem),#fbf8f6}.legal-card{width:min(780px,100%);margin:0 auto;padding:clamp(25px,5vw,52px);border:1px solid #eaded9;border-radius:20px;background:#fff;box-shadow:var(--shadow)}.legal-back{display:inline-block;margin-bottom:34px;color:#8a645d;font-size:13px;text-decoration:none}.legal-back:hover{color:#c9534b;text-decoration:underline;text-underline-offset:3px}.legal-card h1{margin:7px 0 8px;color:#342522;font-size:clamp(28px,5vw,38px);letter-spacing:-.045em}.legal-lead{margin:0 0 34px;color:#8d7871;font-size:13px;line-height:1.65}.legal-card section{margin-top:25px}.legal-card h2{margin:0 0 9px;color:#48332e;font-size:16px}.legal-card section p{margin:0;color:#6f5c56;font-size:13px;line-height:1.85}.legal-card section a{color:#bf514a}.admin-page{min-height:100vh;padding:28px;background:radial-gradient(circle at 15% 0,#ffe8e3,transparent 32rem),#fbf8f6}.admin-auth-page{display:grid;place-items:center}.admin-auth-card{width:min(450px,100%);border:1px solid #eaded9;border-radius:20px;padding:clamp(25px,5vw,42px);background:#fff;box-shadow:var(--shadow)}.admin-brand-mark{margin-bottom:22px}.admin-auth-card h1{margin:7px 0;color:#342522;font-size:29px;letter-spacing:-.04em}.admin-auth-card>p:not(.section-kicker):not(.admin-error){margin:0;color:#806d66;font-size:12px;line-height:1.7}.admin-auth-card form{margin-top:25px}.admin-auth-card label{display:block;margin-bottom:7px;color:#6d5550;font-size:10px;font-weight:800;letter-spacing:.06em}.admin-auth-card input{width:100%;border:1px solid #e4d7d2;border-radius:10px;padding:11px;color:#3e2d29;outline-color:#df8177}.admin-error{margin:12px 0 0;border-radius:9px;padding:9px 10px;color:#a63f3b;background:#fff0ed;font-size:11px}.admin-back-link{display:inline-block;margin-top:22px;color:#8b6b63;font-size:11px;text-decoration:none}.admin-back-link:hover{color:#bd4c46;text-decoration:underline}.admin-loading{display:grid;min-height:80vh;place-items:center;color:#826e67;font-size:13px}.admin-brand-link{color:inherit;text-decoration:none}.admin-exit-button{border-color:transparent;color:#a34d47;background:transparent}.admin-workspace{padding-top:30px;padding-bottom:50px}.admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.admin-heading h1{margin:5px 0 7px;color:#342522;font-size:clamp(24px,3vw,34px);letter-spacing:-.045em}.admin-heading p:not(.eyebrow){margin:0;color:#826e67;font-size:12px}.admin-sync{display:inline-flex;align-items:center;gap:7px;color:#658a78;font-size:11px}.admin-sync:before{width:7px;height:7px;border-radius:50%;background:#68a98f;box-shadow:0 0 0 3px #e7f4ee;content:""}.admin-sync.is-loading:before{background:#d99739;box-shadow:0 0 0 3px #fff2d9;animation:pulse 1.1s ease-in-out infinite}.admin-banner{margin-top:17px;border:1px solid #d8e9e1;border-radius:10px;padding:10px 13px;color:#47715e;background:#f1f9f5;font-size:11px}.admin-banner.is-error{border-color:#efd2cc;color:#a8403b;background:#fff1ee}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:20px}.admin-stat-grid article{min-height:112px;border:1px solid #eaded9;border-radius:15px;padding:17px;background:linear-gradient(145deg,#fff,#fffaf8);box-shadow:0 9px 24px rgba(94,56,44,.055)}.admin-stat-grid small,.admin-stat-grid span,.admin-stat-grid strong{display:block}.admin-stat-grid span{color:#826d65;font-size:11px;font-weight:700}.admin-stat-grid strong{margin:8px 0 4px;color:#3e2c28;font-size:25px;letter-spacing:-.04em}.admin-stat-grid small{color:#a18c84;font-size:9px}.admin-main-grid{display:grid;grid-template-columns:minmax(310px,.7fr) minmax(500px,1.3fr);grid-gap:16px;gap:16px;margin-top:16px}.admin-panel{min-width:0;border:1px solid #eaded9;border-radius:16px;padding:19px;background:#fff;box-shadow:0 10px 27px rgba(91,54,42,.06)}.admin-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.admin-panel-heading h2{margin:4px 0 0;color:#412e2a;font-size:16px}.admin-panel-heading h2 small{margin-left:5px;color:#9b837b;font-size:10px;font-weight:600}.issue-form{margin-top:15px}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.admin-form-grid label,.admin-note-field{display:grid;grid-gap:6px;gap:6px;color:#79625b;font-size:10px}.admin-form-grid input,.admin-form-grid select,.admin-note-field input,.card-filter input,.card-filter select{min-width:0;width:100%;border:1px solid #e5d9d4;border-radius:8px;padding:8px 9px;color:#46332e;background:#fff;font-size:11px;outline-color:#df8177}.admin-note-field{margin-top:10px}.issued-result{margin-top:15px;border:1px solid #efcbc3;border-radius:11px;padding:12px;background:#fff8f5}.issued-result-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.issued-result-heading b,.issued-result-heading small{display:block}.issued-result-heading b{color:#874a43;font-size:11px}.issued-result-heading small{margin-top:3px;color:#a8877f;font-size:9px}.issued-result-heading>div:last-child{display:flex;gap:5px}.issued-result-heading button,.status-toggle,.table-action,.table-pagination button{border:1px solid #e7d8d3;border-radius:7px;padding:5px 7px;color:#775b53;background:#fff;font-size:9px;font-weight:750}.issued-result-heading button:hover,.table-action:hover,.table-pagination button:hover:not(:disabled){border-color:#dfa79e;color:#b64842}.issued-result pre{max-height:180px;margin:10px 0 0;overflow:auto;border:1px solid #f0dfda;border-radius:8px;padding:10px;color:#523a34;background:#fff;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;line-height:1.7;white-space:pre-wrap}.card-list-panel{margin-top:16px}.card-filter{display:grid;grid-template-columns:minmax(180px,1fr) 160px auto;grid-gap:8px;gap:8px;margin-top:15px}.admin-table-scroll{margin-top:14px;overflow-x:auto}.usage-table-scroll{max-height:362px;overflow-y:auto}.admin-table{width:100%;border-collapse:collapse;font-size:10px}.admin-table th{padding:8px 9px;border-bottom:1px solid #eadfda;color:#947d75;background:#fcfaf9;text-align:left;white-space:nowrap}.admin-table td{max-width:230px;padding:9px;border-bottom:1px solid #f0e8e4;overflow:hidden;color:#65504a;text-overflow:ellipsis;white-space:nowrap}.admin-table tbody tr:hover{background:#fffbfa}.admin-table code{color:#513833;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.admin-table .empty-table{padding:35px 10px;color:#9c867e;text-align:center}.card-table{min-width:920px}.status-pill{display:inline-flex;border-radius:999px;padding:4px 7px;color:#47735f;background:#eaf6f0;font-size:9px;font-weight:750}.status-disabled,.status-expired,.status-failed{color:#a24943;background:#fff0ed}.status-reserved,.status-unactivated,.status-unused{color:#526f92;background:#edf4fb}.status-toggle{color:#40745e;border-color:#cfe2da;background:#f3faf7}.status-toggle.is-danger{color:#a54741;border-color:#efd2cd;background:#fff5f3}.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:13px;color:#927c74;font-size:9px}.table-pagination>div{display:flex;gap:5px}.editor-card{min-width:0;overflow:hidden}.editor-topline{display:flex;min-height:82px;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #eee4df}.document-title-row{display:flex;align-items:center;gap:8px}.editor-topline p{margin:5px 0 0;color:#917d76;font-size:12px}.editor-top-actions{display:flex;gap:6px}.icon-button{display:grid;width:33px;height:33px;place-items:center;border:1px solid #e7dad5;border-radius:9px;color:#6b514a;background:#fff;font-size:18px;transition:.16s ease}.icon-button:hover:not(:disabled){border-color:#dfaaa1;color:#bf4d47;background:#fff7f5}.canvas-toolbar{min-height:55px;flex-wrap:wrap;gap:10px;border-bottom:1px solid #eee4df;padding:9px 14px;background:#fffdfc}.canvas-toolbar,.toolbar-group{display:flex;align-items:center}.toolbar-group{gap:5px}.toolbar-label{margin-right:3px;color:#a18a83;font-size:10px;font-weight:800}.tool-button{display:inline-flex;min-height:31px;align-items:center;gap:5px;border:1px solid transparent;border-radius:8px;padding:5px 8px;color:#6d5650;background:transparent;font-size:11px;font-weight:700}.tool-button:hover:not(:disabled){color:#b44842;background:#fff3f0}.tool-button.is-active{border-color:#f1b4ac;color:#bd4742;background:#fff0ed}.tool-glyph{font-size:15px;line-height:1}.toolbar-divider{width:1px;height:23px;margin:0 2px;background:#eee3de}.toggle-button{display:inline-flex;align-items:center;gap:4px;color:#78625b;font-size:11px;cursor:pointer}.toggle-button input{margin:0;accent-color:var(--accent)}.toolbar-spacer{flex:1 1}.zoom-control{display:inline-flex;align-items:center;overflow:hidden;border:1px solid #e7dad5;border-radius:8px;color:#6f5a54;background:#fff;font-size:11px;font-weight:750}.zoom-control button{width:28px;height:29px;border:0;color:#6f5a54;background:transparent;font-size:17px}.zoom-control button:hover:not(:disabled){background:#fff1ed;color:#c74d48}.zoom-control span{min-width:42px;text-align:center}.canvas-stage{height:min(68vh,680px);min-height:430px;padding:18px;background:#f7f4f2}.canvas-scroll{position:relative;display:grid;width:100%;height:100%;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);place-items:center;overflow:hidden;border:1px solid #e8dfdb;border-radius:11px;padding:30px 18px 18px;background-color:#fdfcfb;background-image:radial-gradient(#ebe2de .7px,transparent 0);background-size:14px 14px}.thumbnail-label{z-index:1;top:8px;left:50%;transform:translateX(-50%);color:#a59088;letter-spacing:.05em;pointer-events:none}.thumbnail-expand,.thumbnail-label{position:absolute;font-size:10px;font-weight:750}.thumbnail-expand{z-index:2;top:7px;right:9px;border:1px solid #e7dad5;border-radius:7px;padding:4px 8px;color:#875d55;background:rgba(255,255,255,.92);box-shadow:0 2px 7px rgba(72,47,38,.08)}.thumbnail-expand:hover{border-color:#dfaaa1;color:#bd4742;background:#fff7f5}.pattern-canvas{display:block;max-width:100%;max-height:100%;box-shadow:0 6px 18px rgba(72,47,38,.1);touch-action:none}.canvas-stage.is-expanded{position:fixed;z-index:100;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;padding:24px;background:rgba(247,244,242,.98)}.canvas-stage.is-expanded .canvas-scroll{border-radius:16px}.canvas-stage.is-expanded .thumbnail-label{top:11px;font-size:12px}.canvas-stage.is-expanded .thumbnail-expand{top:10px;right:12px;padding:6px 10px;font-size:12px}.tool-brush .pattern-canvas{cursor:crosshair}.tool-eraser .pattern-canvas{cursor:cell}.tool-picker .pattern-canvas{cursor:copy}.empty-editor{display:grid;min-height:584px;place-content:center;justify-items:center;padding:36px;color:#806b65;text-align:center}.empty-art{width:58px;height:58px;gap:5px;padding:10px;margin-bottom:16px;border-radius:17px}.empty-editor h3{margin:0;color:#493530;font-size:17px}.empty-editor p{max-width:360px;margin:9px 0 17px;color:#957f78;font-size:12px;line-height:1.7}.canvas-footer{display:flex;min-height:65px;align-items:center;justify-content:space-between;gap:15px;padding:12px 18px;border-top:1px solid #eee4df;background:#fff}.active-color-chip,.hover-readout{display:flex;align-items:center;gap:8px;min-width:0;color:#806c65;font-size:11px}.active-color-chip i,.coordinate-result i{width:28px;height:28px;flex:0 0 auto;border:1px solid rgba(64,47,41,.18);border-radius:8px}.active-color-chip span,.hover-readout{min-width:0}.active-color-chip b,.hover-readout b{display:block;overflow:hidden;color:#503a35;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.active-color-chip small{display:block;margin-top:2px;color:#a08780;font-size:10px}.hover-readout{justify-content:flex-end;text-align:right}.hover-readout span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.color-search{display:flex;align-items:center;gap:5px;margin-top:15px;border:1px solid #e7dad5;border-radius:9px;padding:0 9px;color:#9a8179}.color-search input{width:100%;border:0;padding:9px 0;color:#4e3934;background:transparent;font-size:11px;outline:0}.swatch-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-gap:7px;gap:7px;max-height:238px;margin-top:13px;overflow-y:auto;padding:2px}.swatch{position:relative;aspect-ratio:1;border:1px solid rgba(70,50,44,.17);border-radius:7px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}.swatch:hover{transform:translateY(-1px);outline:2px solid #efbaaf;outline-offset:1px}.swatch.is-selected{outline:3px solid #dc625a;outline-offset:1px}.swatch span{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.5)}.empty-search{margin:14px 0 0;color:#a18b84;font-size:11px;text-align:center}.selected-color-detail{display:flex;align-items:center;gap:8px;margin-top:14px;border-top:1px solid #f0e6e1;padding-top:13px}.selected-color-detail i{width:24px;height:24px;border:1px solid rgba(65,47,42,.17);border-radius:7px}.selected-color-detail span{display:grid;flex:1 1;grid-gap:1px;gap:1px}.selected-color-detail b{font-size:11px}.selected-color-detail small{color:#937d75;font-size:10px}.selected-color-detail code{color:#8e7770;font-size:10px}.selected-color-detail button{border:0;border-radius:6px;padding:4px 6px;color:#a64d48;background:#fff0ed;font-size:10px;font-weight:750}.custom-color-box,.disabled-colors{margin-top:13px;border-top:1px solid #f0e6e1;padding-top:12px}.subsection-title{display:flex;align-items:center;justify-content:space-between;color:#6d5550;font-size:11px;font-weight:750}.subsection-title small{color:#a18982;font-size:9px;font-weight:500}.subsection-title button{border:0;padding:0;color:#c2534d;background:transparent;font-size:10px;text-decoration:underline;text-underline-offset:2px}.custom-color-controls{display:grid;grid-template-columns:28px minmax(0,1fr) 36px;grid-gap:6px;gap:6px;margin-top:8px}.native-color{width:28px;height:29px;border:1px solid #e6dad5;border-radius:7px;padding:2px;background:#fff;cursor:pointer}.custom-color-controls input:not(.native-color){min-width:0;border:1px solid #e6dad5;border-radius:7px;padding:6px 7px;color:#533d37;font-size:10px;outline-color:#df8177}.custom-color-controls button{border:0;border-radius:7px;color:#fff;background:#df675f;font-size:10px;font-weight:750}.disabled-chip-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.disabled-chip-list button{display:inline-flex;align-items:center;gap:3px;border:1px solid #e7ddd8;border-radius:7px;padding:4px 5px;color:#876e67;background:#faf8f7;font-size:9px}.disabled-chip-list button:hover{border-color:#dda79e;color:#bb4c46}.disabled-chip-list i{width:11px;height:11px;border:1px solid rgba(62,44,38,.14);border-radius:3px}.disabled-chip-list span{color:#bd4d47;font-size:12px;line-height:0}.coordinate-inputs{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:14px}.coordinate-inputs label{display:grid;grid-gap:5px;gap:5px;color:#8c756e;font-size:10px}.coordinate-inputs input{padding:7px;font-size:12px}.coordinate-result{display:flex;align-items:center;gap:8px;margin-top:12px;border-radius:10px;padding:8px;background:#fbf8f6}.coordinate-result span{display:grid;grid-gap:2px;gap:2px;font-size:11px}.coordinate-result b{color:#513a35}.coordinate-result small{color:#907970;font-size:10px}.stats-list{max-height:390px;margin-top:13px;overflow-y:auto}.stat-row{display:flex;align-items:center;gap:8px;min-height:37px;border-bottom:1px solid #f1e9e5;padding:6px 1px}.stat-row:last-child{border-bottom:0}.stat-row i{width:18px;height:18px;flex:0 0 auto;border:1px solid rgba(57,42,38,.16);border-radius:6px}.stat-row span{display:grid;flex:1 1;grid-gap:1px;gap:1px;min-width:0}.stat-row b{color:#5d433c;font-size:11px}.stat-row small{overflow:hidden;color:#9d867f;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.stat-row strong{color:#6e514b;font-size:11px}.empty-stats{margin:13px 0 2px;color:#9a837c;font-size:11px;line-height:1.6}@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}@media (max-width:1250px){.studio-grid{grid-template-columns:264px minmax(420px,1fr)}.right-sidebar{grid-column:1/-1;grid-template-columns:minmax(250px,1.1fr) minmax(220px,.8fr) minmax(260px,1.1fr)}.stats-list{max-height:245px}.tutorial-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.launch-content{grid-template-columns:1fr}}@media (max-width:900px){.workspace-intro{align-items:flex-start;flex-direction:column;gap:12px}.save-status{max-width:none}.studio-grid{grid-template-columns:245px minmax(0,1fr)}.right-sidebar{grid-template-columns:1fr 1fr}.statistics-card{grid-column:1/-1}.canvas-stage{height:min(62vh,520px);min-height:410px}.canvas-scroll,.empty-editor{min-height:0}.admin-main-grid{grid-template-columns:1fr}.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.shell{padding-right:14px;padding-left:14px}.app-header-inner{min-height:61px}.brand-subtitle,.header-actions .button-csv-export,.header-actions .button-secondary{display:none}.header-actions .button{min-height:34px;padding:7px 10px;font-size:11px}.header-actions .card-access-button{display:inline-flex}.workspace{padding-top:20px}.workspace-intro h1{font-size:23px}.studio-grid{display:block}.left-sidebar,.right-sidebar{margin-bottom:15px}.left-sidebar{grid-template-columns:1fr}.tutorial-section{padding:20px}.tutorial-heading{align-items:flex-start;flex-direction:column}.tutorial-steps{grid-template-columns:1fr}.site-footer-inner{align-items:flex-start;flex-direction:column}.site-footer nav{justify-content:flex-start}.editor-card{margin-bottom:15px}.right-sidebar{display:grid;grid-template-columns:1fr}.statistics-card{grid-column:auto}.canvas-toolbar{flex-wrap:wrap}.toolbar-divider,.toolbar-spacer{display:none}.zoom-control{margin-left:auto}.canvas-stage{height:min(58vh,440px);min-height:350px;padding:12px}.canvas-scroll,.empty-editor{min-height:0;max-height:none}.canvas-footer{align-items:flex-start;flex-direction:column}.hover-readout{justify-content:flex-start;text-align:left}.card-modal{padding:24px 20px}.card-redeem-form>div,.card-session-summary{grid-template-columns:1fr}.admin-page{padding:15px}.admin-heading{align-items:flex-start;flex-direction:column}.admin-stat-grid{grid-template-columns:1fr 1fr}.admin-form-grid,.card-filter{grid-template-columns:1fr}}