:root{--color-bg: #ffffff;--color-bg-secondary:#f7f6f3;--color-bg-hover: #efefef;--color-border: #e3e3e0;--color-text: #37352f;--color-text-muted: #9b9a97;--color-accent: #2eaadc;--color-accent-hover:#1a9bcb;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", Helvetica, Arial, sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-lg: 1.125rem;--fs-xl: 1.5rem;--fs-2xl: 2rem;--fw-normal: 400;--fw-medium: 500;--fw-bold: 700;--lh-tight: 1.3;--lh-normal: 1.6;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 64px;--sidebar-width: 280px;--header-height: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 20px -2px rgba(0, 0, 0, .05), 0 2px 10px -2px rgba(0, 0, 0, .03);--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-light: rgba(59, 130, 246, .08);--color-bg-page: #f1f5f9;--color-status-draft: #f59e0b;--color-status-draft-bg: rgba(245, 158, 11, .08);--color-status-done: #10b981;--color-status-done-bg: rgba(16, 185, 129, .08);--color-danger: #ef4444;--transition-fast: .12s ease;--transition-base: .2s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--color-text);background:var(--color-bg)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font:inherit;color:inherit}ul,ol{list-style:none}img{display:block;max-width:100%}@media print{body{background:#fff;color:#000}.no-print{display:none!important}}.sidebar{width:var(--sidebar-width);display:flex;flex-direction:column;padding:var(--space-lg);background:var(--color-bg);border-right:1px solid var(--color-border);position:sticky;top:0;height:100vh;flex-shrink:0;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xl)}.sidebar-logo{width:40px;height:40px;background:var(--color-primary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #3b82f640}.sidebar-logo-icon{color:#fff;font-size:var(--fs-lg);font-weight:var(--fw-bold)}.sidebar-app-name{font-size:1.25rem;font-weight:var(--fw-bold);letter-spacing:-.02em}.sidebar-app-accent{color:var(--color-primary)}.sidebar-nav{display:flex;flex-direction:column;gap:4px;flex:1}.sidebar-link{display:flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-md);border-radius:var(--radius-lg);font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--color-text-muted);transition:all var(--transition-fast);text-decoration:none}.sidebar-link:hover{background:var(--color-bg-hover);color:var(--color-text)}.sidebar-link--active{background:var(--color-primary-light);color:var(--color-primary)}.sidebar-icon{width:20px;height:20px;flex-shrink:0}.sidebar-section-label{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-sm) var(--space-md);margin-top:var(--space-md)}.sidebar-footer{margin-top:auto;padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.sidebar-badge{font-size:var(--fs-xs);color:var(--color-text-muted);background:var(--color-bg-secondary);padding:4px var(--space-sm);border-radius:var(--radius-sm)}.dashboard{max-width:960px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-xl)}.dash-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}@media(max-width:768px){.dash-hero-grid{grid-template-columns:1fr}}.dash-hero-card{position:relative;overflow:hidden;border-radius:var(--radius-2xl);padding:var(--space-lg);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base)}.dash-hero-card:hover{transform:translateY(-2px)}.dash-hero-content{position:relative;z-index:1}.dash-hero-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.dash-hero-icon{width:48px;height:48px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dash-hero-icon--light{background:#fff3;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dash-hero-icon--gray{background:var(--color-bg-secondary);color:var(--color-text-muted)}.dash-hero-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:#fff;margin-bottom:2px}.dash-hero-title--dark{color:var(--color-text)}.dash-hero-desc{font-size:var(--fs-sm);color:#ffffffb3}.dash-hero-desc--muted{color:var(--color-text-muted)}.dash-hero-btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-lg);border-radius:var(--radius-xl);font-size:var(--fs-base);font-weight:var(--fw-bold);transition:all var(--transition-fast);box-shadow:var(--shadow-lg)}.dash-hero-btn--white{background:#fff;color:var(--color-primary)}.dash-hero-btn--white:hover{background:#eff6ff}.dash-hero-btn--dark{background:var(--color-text);color:#fff}.dash-hero-btn--dark:hover{opacity:.9}.dash-hero-btn-arrow{font-size:var(--fs-lg)}.dash-hero-bg-icon{position:absolute;right:-32px;bottom:-32px;font-family:Material Icons,sans-serif;font-size:12rem;color:#ffffff0d;pointer-events:none;transition:transform .5s ease;line-height:1}.dash-hero-card:hover .dash-hero-bg-icon{transform:scale(1.1)}.dash-hero-bg-icon--light{color:#00000008}.dash-hero-card--primary{background:linear-gradient(135deg,#3b82f6,#4f46e5);box-shadow:0 8px 32px #3b82f626}.dash-hero-card--white{background:var(--color-bg);border:1px solid var(--color-border);box-shadow:var(--shadow-lg)}.dash-section{display:flex;flex-direction:column;gap:var(--space-md)}.dash-section-header{display:flex;align-items:center;justify-content:space-between}.dash-section-title{display:flex;align-items:center;gap:var(--space-sm);font-size:1.2rem;font-weight:var(--fw-bold)}.dash-section-bar{width:5px;height:22px;border-radius:999px;flex-shrink:0}.dash-list{display:flex;flex-direction:column;gap:var(--space-sm)}.dash-row{display:flex;align-items:center;justify-content:space-between;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:16px 20px;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.dash-row:hover{border-color:#3b82f64d;box-shadow:var(--shadow-md)}.dash-row-left{display:flex;align-items:center;gap:16px;min-width:0}.dash-row-icon{width:44px;height:44px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dash-row-icon--blue{background:#3b82f614;color:var(--color-primary)}.dash-row-icon--indigo{background:#6366f114;color:#6366f1}.dash-row-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-row:hover .dash-row-title{color:var(--color-primary)}.dash-row-meta{display:flex;align-items:center;gap:var(--space-md)}.dash-row-date{font-size:var(--fs-sm);color:var(--color-text-muted)}.dash-status{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:var(--fw-bold);padding:2px 8px;border-radius:999px}.dash-status-dot{width:5px;height:5px;border-radius:50%}.dash-status--draft{background:var(--color-status-draft-bg);color:var(--color-status-draft)}.dash-status--draft .dash-status-dot{background:var(--color-status-draft)}.dash-status--done{background:var(--color-status-done-bg);color:var(--color-status-done)}.dash-status--done .dash-status-dot{background:var(--color-status-done)}.dash-row-menu{padding:var(--space-sm);border-radius:var(--radius-md);color:var(--color-text-muted);transition:all var(--transition-fast)}.dash-row-menu:hover{background:#ef444414;color:var(--color-danger)}.dash-empty{text-align:center;padding:var(--space-xl) 0;color:var(--color-text-muted);font-size:var(--fs-sm)}.layout{display:flex;flex:1;min-height:0;overflow:hidden}.layout-editor{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg)}.layout-divider{width:1px;background:var(--color-border);flex-shrink:0}.layout-preview{flex:1;overflow-y:auto;padding:var(--space-xl) var(--space-lg);background:var(--color-bg-secondary)}@media(max-width:768px){.layout{flex-direction:column}.layout-divider{width:100%;height:1px}}.ym-picker{display:flex;align-items:center;gap:var(--space-xs)}.ym-picker-input{padding:10px var(--space-sm);background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-lg);font-size:var(--fs-base);line-height:var(--lh-normal);transition:all var(--transition-fast);-moz-appearance:textfield}.ym-picker-input::-webkit-inner-spin-button,.ym-picker-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ym-picker-year{width:80px}.ym-picker-month{width:56px}.ym-picker-input:hover{border-color:#cbd5e1}.ym-picker-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);background:var(--color-bg)}.ym-picker-input::placeholder{color:#94a3b8}.ym-picker-label{font-size:var(--fs-sm);color:var(--color-text-muted);flex-shrink:0}.editor-panel{display:flex;flex-direction:column;height:100%;min-height:0}.editor-content{flex:1;overflow-y:auto;padding:var(--space-xl) var(--space-lg);padding-bottom:calc(var(--space-xl) * 2);background:var(--color-bg-page)}.editor-title-section{max-width:640px;margin:0 auto var(--space-xl)}.editor-title-input{width:100%;padding:var(--space-sm) 0;font-size:1.5rem;font-weight:var(--fw-bold);color:var(--color-text);border:none;border-bottom:2px solid transparent;background:transparent;transition:border-color var(--transition-fast)}.editor-title-input:hover{border-bottom-color:var(--color-border)}.editor-title-input:focus{outline:none;border-bottom-color:var(--color-primary)}.editor-title-input::placeholder{color:var(--color-text-muted);font-weight:var(--fw-normal)}.editor-section-divider{height:1px;background:var(--color-border);margin:var(--space-xl) auto;max-width:640px}.step{max-width:640px;margin:0 auto}.step-header{margin-bottom:var(--space-lg)}.step-title{font-size:1.5rem;font-weight:var(--fw-bold);color:var(--color-text);margin-bottom:var(--space-xs)}.step-desc{font-size:var(--fs-sm);color:var(--color-text-muted)}.step-section{margin-bottom:var(--space-xl)}.step-section:last-child{margin-bottom:0}.step-section-header{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--color-primary);padding-bottom:var(--space-sm);margin-bottom:var(--space-lg)}.step-section-title{font-size:1.25rem;font-weight:var(--fw-bold);color:var(--color-text)}.step-section-note{font-size:var(--fs-xs);color:var(--color-text-muted)}.editor-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--space-lg) var(--space-xl);overflow:hidden}.editor-section-accent{display:flex;align-items:center;gap:var(--space-sm);padding-left:var(--space-md);border-left:4px solid var(--color-primary);margin-bottom:var(--space-md)}.editor-section-accent-title{font-size:1.25rem;font-weight:var(--fw-bold);color:var(--color-text)}.editor-optional{font-size:var(--fs-xs);color:var(--color-text-muted);background:var(--color-bg-secondary);padding:2px var(--space-sm);border-radius:var(--radius-sm)}.editor-section-desc{font-size:var(--fs-sm);color:var(--color-text-muted);margin-bottom:var(--space-lg)}.editor-sub-heading{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--color-text);margin-bottom:var(--space-md)}.editor-sub-bar{width:4px;height:16px;background:var(--color-primary);border-radius:2px;flex-shrink:0}.editor-divider{border:none;border-top:1px solid #f1f5f9;margin:var(--space-lg) 0}.editor-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}@media(max-width:540px){.editor-grid-2{grid-template-columns:1fr}}.editor-field{margin-bottom:var(--space-md)}.editor-field:last-child{margin-bottom:0}.editor-field-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xs)}.editor-label{display:block;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-text);margin-bottom:var(--space-xs)}.editor-label-bold{display:block;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--color-text)}.editor-required{font-size:11px;color:#ef4444;font-weight:var(--fw-normal)}.editor-char-count{font-size:var(--fs-xs);color:var(--color-text-muted)}.editor-input,.editor-textarea{width:100%;padding:10px var(--space-md);background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-lg);font-size:var(--fs-base);line-height:var(--lh-normal);transition:all var(--transition-fast)}.editor-input:hover,.editor-textarea:hover{border-color:#cbd5e1}.editor-input:focus,.editor-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);background:var(--color-bg)}.editor-input::placeholder,.editor-textarea::placeholder{color:#94a3b8}.editor-textarea{resize:vertical;padding:var(--space-md)}.editor-entries{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-md)}.editor-entry-card{position:relative;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:20px}.editor-entry-card:hover .editor-entry-delete{opacity:1}.editor-entry-delete{position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;background:#ef4444;color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast);box-shadow:0 2px 8px #ef44444d;cursor:pointer;border:none}.editor-entry-delete:hover{background:#dc2626}.editor-entry-grid{display:grid;grid-template-columns:auto 1fr;gap:var(--space-lg)}@media(max-width:540px){.editor-entry-grid{grid-template-columns:1fr}}.editor-entry-main{display:flex;flex-direction:column;gap:var(--space-md)}.editor-entry-main .editor-field{margin-bottom:0}.editor-add-btn{width:100%;padding:var(--space-md);border:2px dashed rgba(59,130,246,.3);border-radius:var(--radius-xl);color:var(--color-primary);font-size:var(--fs-sm);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;gap:var(--space-sm);background:transparent;transition:all var(--transition-fast);cursor:pointer}.editor-add-btn:hover{background:var(--color-primary-light);border-color:#3b82f680}.editor-qual-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.editor-qual-date{flex-shrink:0}.editor-qual-name{flex:1}.editor-qual-delete{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);border-radius:var(--radius-sm);background:none;border:none;cursor:pointer;transition:color var(--transition-fast)}.editor-qual-delete:hover{color:#ef4444}.editor-tip{display:flex;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:#3b82f60d;border:1px solid rgba(59,130,246,.15);border-radius:var(--radius-xl);margin-top:var(--space-lg);color:var(--color-primary)}.editor-tip--inline{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg)}.editor-tip-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--color-primary);margin-bottom:2px}.editor-tip-text{font-size:var(--fs-sm);color:#64748b;line-height:var(--lh-normal)}.editor-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-sm)}.editor-tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-sm);background:var(--color-primary-light);color:var(--color-primary);padding:4px var(--space-sm);border-radius:var(--radius-lg);font-weight:var(--fw-medium)}.editor-tag-remove{font-size:var(--fs-xs);line-height:1;color:var(--color-primary);opacity:.6;transition:opacity var(--transition-fast);background:none;border:none;cursor:pointer;padding:0}.editor-tag-remove:hover{opacity:1}.preview-panel{display:flex;justify-content:center}.preview-sheet{width:100%;max-width:560px;background:var(--color-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-xl)}.preview-header{text-align:center;margin-bottom:var(--space-md)}.preview-name{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin-bottom:2px}.preview-furigana{font-size:var(--fs-sm);color:var(--color-text-muted);margin-bottom:var(--space-xs)}.preview-contact{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:var(--space-sm);font-size:var(--fs-sm);color:var(--color-text-muted)}.preview-dot{width:3px;height:3px;border-radius:50%;background:var(--color-text-muted)}.preview-hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-md) 0}.preview-section{margin-bottom:var(--space-lg)}.preview-section-title{font-size:var(--fs-base);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:2px solid var(--color-text)}.preview-entry{margin-bottom:var(--space-md)}.preview-entry-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-xs)}.preview-entry-date{font-size:var(--fs-sm);color:var(--color-text-muted);white-space:nowrap}.preview-entry-desc{font-size:var(--fs-sm);color:var(--color-text);line-height:var(--lh-normal)}.preview-skills{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.preview-skill-tag{font-size:var(--fs-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);padding:2px var(--space-sm);border-radius:var(--radius-sm)}.preview-entry-position{font-weight:var(--fw-normal);color:var(--color-text-muted)}.preview-body{font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--color-text);white-space:pre-wrap}.preview-placeholder{color:var(--color-text-muted);opacity:.5}.cv-work-card-content,.cv-project-card-content{display:flex;flex-direction:column;gap:var(--space-md)}.cv-work-card-content .editor-field,.cv-project-card-content .editor-field{margin-bottom:0}.cv-preview-doc-type{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary);margin-bottom:var(--space-xs)}.cv-preview-project{margin-bottom:var(--space-lg);padding:var(--space-md);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.cv-preview-project:last-child{margin-bottom:0}.cv-preview-project-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-xs)}.cv-preview-project-role{font-size:var(--fs-sm);color:var(--color-primary);font-weight:var(--fw-medium);margin-bottom:var(--space-xs)}.cv-preview-project-tech{font-size:var(--fs-sm);color:var(--color-text-muted);margin-bottom:var(--space-xs)}.cv-preview-tech-label{font-weight:var(--fw-bold);margin-right:var(--space-xs)}.cv-preview-project-achievement{font-size:var(--fs-sm);color:var(--color-text);margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--color-border)}.cv-preview-achievement-label{font-weight:var(--fw-bold);color:var(--color-primary);margin-right:var(--space-xs)}.editor-page{display:flex;flex-direction:column;flex:1;min-height:0;margin:calc(-1 * var(--space-xl));height:100vh}.editor-page-toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0}.editor-page-back{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-text-muted);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.editor-page-back:hover{color:var(--color-primary);background:var(--color-primary-light)}.editor-page-badge{font-size:var(--fs-xs);color:var(--color-text-muted)}.master-page{height:100%;overflow-y:auto;padding:var(--space-xl) var(--space-lg);padding-bottom:calc(var(--space-xl) * 2);background:var(--color-bg-page)}.master-page-header{max-width:640px;margin:0 auto var(--space-xl)}.master-page-title{font-size:1.5rem;font-weight:var(--fw-bold);color:var(--color-text);margin-bottom:var(--space-xs)}.master-page-desc{font-size:var(--fs-sm);color:var(--color-text-muted);line-height:var(--lh-normal)}.master-page-content{max-width:640px;margin:0 auto}.master-page-badge{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--fs-xs);color:var(--color-status-done);background:var(--color-status-done-bg);padding:4px var(--space-sm);border-radius:var(--radius-sm);margin-top:var(--space-sm)}.app{display:flex;height:100vh;overflow:hidden}.app-main{flex:1;overflow-y:auto;background:var(--color-bg-page);padding:var(--space-xl)}
